mirror of
https://github.com/nmap/nmap.git
synced 2025-12-25 17:09:02 +00:00
Check for Python in configure and substitute PYTHON in the makefile.
This commit is contained in:
@@ -27,7 +27,7 @@ LIBPCAPDIR = @libpcapdir@
|
||||
LIBPCREDIR = @LIBPCREDIR@
|
||||
export LIBDNETDIR = @LIBDNETDIR@
|
||||
ZENMAPDIR = zenmap
|
||||
PYTHON = python
|
||||
PYTHON = @PYTHON@
|
||||
DEFS = @DEFS@ -DNMAP_NAME=\"$(NMAP_NAME)\" -DNMAP_URL=\"$(NMAP_URL)\" -DNMAP_PLATFORM=\"$(NMAP_PLATFORM)\" -DNMAPDATADIR=\"$(nmapdatadir)\" -DNMAPLIBEXECDIR=\"$(nmaplibexecdir)\"
|
||||
# For mtrace debugging -- see MTRACE define in main.cc for instructions
|
||||
# Should only be enabled during debugging and not in any real release.
|
||||
|
||||
164
aclocal.m4
vendored
164
aclocal.m4
vendored
@@ -11,4 +11,168 @@
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# AM_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
|
||||
# ---------------------------------------------------------------------------
|
||||
# Adds support for distributing Python modules and packages. To
|
||||
# install modules, copy them to $(pythondir), using the python_PYTHON
|
||||
# automake variable. To install a package with the same name as the
|
||||
# automake package, install to $(pkgpythondir), or use the
|
||||
# pkgpython_PYTHON automake variable.
|
||||
#
|
||||
# The variables $(pyexecdir) and $(pkgpyexecdir) are provided as
|
||||
# locations to install python extension modules (shared libraries).
|
||||
# Another macro is required to find the appropriate flags to compile
|
||||
# extension modules.
|
||||
#
|
||||
# If your package is configured with a different prefix to python,
|
||||
# users will have to add the install directory to the PYTHONPATH
|
||||
# environment variable, or create a .pth file (see the python
|
||||
# documentation for details).
|
||||
#
|
||||
# If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will
|
||||
# cause an error if the version of python installed on the system
|
||||
# doesn't meet the requirement. MINIMUM-VERSION should consist of
|
||||
# numbers and dots only.
|
||||
AC_DEFUN([AM_PATH_PYTHON],
|
||||
[
|
||||
dnl Find a Python interpreter. Python versions prior to 1.5 are not
|
||||
dnl supported because the default installation locations changed from
|
||||
dnl $prefix/lib/site-python in 1.4 to $prefix/lib/python1.5/site-packages
|
||||
dnl in 1.5.
|
||||
m4_define_default([_AM_PYTHON_INTERPRETER_LIST],
|
||||
[python python2 python2.5 python2.4 python2.3 python2.2 dnl
|
||||
python2.1 python2.0 python1.6 python1.5])
|
||||
|
||||
m4_if([$1],[],[
|
||||
dnl No version check is needed.
|
||||
# Find any Python interpreter.
|
||||
if test -z "$PYTHON"; then
|
||||
AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :)
|
||||
fi
|
||||
am_display_PYTHON=python
|
||||
], [
|
||||
dnl A version check is needed.
|
||||
if test -n "$PYTHON"; then
|
||||
# If the user set $PYTHON, use it and don't search something else.
|
||||
AC_MSG_CHECKING([whether $PYTHON version >= $1])
|
||||
AM_PYTHON_CHECK_VERSION([$PYTHON], [$1],
|
||||
[AC_MSG_RESULT(yes)],
|
||||
[AC_MSG_ERROR(too old)])
|
||||
am_display_PYTHON=$PYTHON
|
||||
else
|
||||
# Otherwise, try each interpreter until we find one that satisfies
|
||||
# VERSION.
|
||||
AC_CACHE_CHECK([for a Python interpreter with version >= $1],
|
||||
[am_cv_pathless_PYTHON],[
|
||||
for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do
|
||||
test "$am_cv_pathless_PYTHON" = none && break
|
||||
AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break])
|
||||
done])
|
||||
# Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
|
||||
if test "$am_cv_pathless_PYTHON" = none; then
|
||||
PYTHON=:
|
||||
else
|
||||
AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON])
|
||||
fi
|
||||
am_display_PYTHON=$am_cv_pathless_PYTHON
|
||||
fi
|
||||
])
|
||||
|
||||
if test "$PYTHON" = :; then
|
||||
dnl Run any user-specified action, or abort.
|
||||
m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])])
|
||||
else
|
||||
|
||||
dnl Query Python for its version number. Getting [:3] seems to be
|
||||
dnl the best way to do this; it's what "site.py" does in the standard
|
||||
dnl library.
|
||||
|
||||
AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version],
|
||||
[am_cv_python_version=`$PYTHON -c "import sys; print sys.version[[:3]]"`])
|
||||
AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
|
||||
|
||||
dnl Use the values of $prefix and $exec_prefix for the corresponding
|
||||
dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made
|
||||
dnl distinct variables so they can be overridden if need be. However,
|
||||
dnl general consensus is that you shouldn't need this ability.
|
||||
|
||||
AC_SUBST([PYTHON_PREFIX], ['${prefix}'])
|
||||
AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
|
||||
|
||||
dnl At times (like when building shared libraries) you may want
|
||||
dnl to know which OS platform Python thinks this is.
|
||||
|
||||
AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform],
|
||||
[am_cv_python_platform=`$PYTHON -c "import sys; print sys.platform"`])
|
||||
AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
|
||||
|
||||
|
||||
dnl Set up 4 directories:
|
||||
|
||||
dnl pythondir -- where to install python scripts. This is the
|
||||
dnl site-packages directory, not the python standard library
|
||||
dnl directory like in previous automake betas. This behavior
|
||||
dnl is more consistent with lispdir.m4 for example.
|
||||
dnl Query distutils for this directory. distutils does not exist in
|
||||
dnl Python 1.5, so we fall back to the hardcoded directory if it
|
||||
dnl doesn't work.
|
||||
AC_CACHE_CHECK([for $am_display_PYTHON script directory],
|
||||
[am_cv_python_pythondir],
|
||||
[am_cv_python_pythondir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(0,0,prefix='$PYTHON_PREFIX')" 2>/dev/null ||
|
||||
echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"`])
|
||||
AC_SUBST([pythondir], [$am_cv_python_pythondir])
|
||||
|
||||
dnl pkgpythondir -- $PACKAGE directory under pythondir. Was
|
||||
dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is
|
||||
dnl more consistent with the rest of automake.
|
||||
|
||||
AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE])
|
||||
|
||||
dnl pyexecdir -- directory for installing python extension modules
|
||||
dnl (shared libraries)
|
||||
dnl Query distutils for this directory. distutils does not exist in
|
||||
dnl Python 1.5, so we fall back to the hardcoded directory if it
|
||||
dnl doesn't work.
|
||||
AC_CACHE_CHECK([for $am_display_PYTHON extension module directory],
|
||||
[am_cv_python_pyexecdir],
|
||||
[am_cv_python_pyexecdir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(1,0,prefix='$PYTHON_EXEC_PREFIX')" 2>/dev/null ||
|
||||
echo "${PYTHON_EXEC_PREFIX}/lib/python${PYTHON_VERSION}/site-packages"`])
|
||||
AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir])
|
||||
|
||||
dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE)
|
||||
|
||||
AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE])
|
||||
|
||||
dnl Run any user-specified action.
|
||||
$2
|
||||
fi
|
||||
|
||||
])
|
||||
|
||||
|
||||
# AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
|
||||
# ---------------------------------------------------------------------------
|
||||
# Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION.
|
||||
# Run ACTION-IF-FALSE otherwise.
|
||||
# This test uses sys.hexversion instead of the string equivalent (first
|
||||
# word of sys.version), in order to cope with versions such as 2.2c1.
|
||||
# hexversion has been introduced in Python 1.5.2; it's probably not
|
||||
# worth to support older versions (1.5.1 was released on October 31, 1998).
|
||||
AC_DEFUN([AM_PYTHON_CHECK_VERSION],
|
||||
[prog="import sys, string
|
||||
# split strings by '.' and convert to numeric. Append some zeros
|
||||
# because we need at least 4 digits for the hex conversion.
|
||||
minver = map(int, string.split('$2', '.')) + [[0, 0, 0]]
|
||||
minverhex = 0
|
||||
for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[[i]]
|
||||
sys.exit(sys.hexversion < minverhex)"
|
||||
AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])])
|
||||
|
||||
m4_include([acinclude.m4])
|
||||
|
||||
144
configure
vendored
144
configure
vendored
@@ -313,7 +313,7 @@ ac_subdirs_all="$ac_subdirs_all libpcre"
|
||||
ac_subdirs_all="$ac_subdirs_all libdnet-stripped"
|
||||
ac_subdirs_all="$ac_subdirs_all nselib"
|
||||
ac_subdirs_all="$ac_subdirs_all $nmap_cfg_subdirs"
|
||||
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libpcapdir pcredir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX CXXPROG COMPAT_OBJS COMPAT_SRCS build build_cpu build_vendor build_os host host_cpu host_vendor host_os LUAFLAGS CPP EGREP BUILDZENMAP INSTALLZENMAP ZENMAP_CLEAN ZENMAP_DIST_CLEAN OPENSSL_LIBS PCAP_DEPENDS PCAP_CLEAN PCAP_DIST_CLEAN LIBPCAP_LIBS subdirs LIBPCRE_LIBS LIBPCREDIR PCRE_DEPENDS PCRE_CLEAN PCRE_DIST_CLEAN LIBDNET_LIBS LIBDNETDIR DNET_DEPENDS DNET_CLEAN DNET_DIST_CLEAN LIBLUA_LIBS LIBLUADIR LUA_DEPENDS LUA_CLEAN LUA_DIST_CLEAN INSTALLNSE NSELIB_CLEAN NSELIB_DIST_CLEAN NBASEDIR LIBNBASE_LIBS NSOCKDIR LIBNSOCK_LIBS LIBOBJS LTLIBOBJS'
|
||||
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libpcapdir pcredir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX CXXPROG COMPAT_OBJS COMPAT_SRCS build build_cpu build_vendor build_os host host_cpu host_vendor host_os LUAFLAGS CPP EGREP BUILDZENMAP INSTALLZENMAP ZENMAP_CLEAN ZENMAP_DIST_CLEAN OPENSSL_LIBS PCAP_DEPENDS PCAP_CLEAN PCAP_DIST_CLEAN LIBPCAP_LIBS subdirs LIBPCRE_LIBS LIBPCREDIR PCRE_DEPENDS PCRE_CLEAN PCRE_DIST_CLEAN LIBDNET_LIBS LIBDNETDIR DNET_DEPENDS DNET_CLEAN DNET_DIST_CLEAN LIBLUA_LIBS LIBLUADIR LUA_DEPENDS LUA_CLEAN LUA_DIST_CLEAN INSTALLNSE NSELIB_CLEAN NSELIB_DIST_CLEAN NBASEDIR LIBNBASE_LIBS NSOCKDIR LIBNSOCK_LIBS PYTHON PYTHON_VERSION PYTHON_PREFIX PYTHON_EXEC_PREFIX PYTHON_PLATFORM pythondir pkgpythondir pyexecdir pkgpyexecdir LIBOBJS LTLIBOBJS'
|
||||
ac_subst_files=''
|
||||
|
||||
# Initialize some variables set by options.
|
||||
@@ -7012,6 +7012,139 @@ fi
|
||||
|
||||
|
||||
|
||||
# Find any Python interpreter.
|
||||
if test -z "$PYTHON"; then
|
||||
for ac_prog in python python2 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5
|
||||
do
|
||||
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
||||
set dummy $ac_prog; ac_word=$2
|
||||
echo "$as_me:$LINENO: checking for $ac_word" >&5
|
||||
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
|
||||
if test "${ac_cv_path_PYTHON+set}" = set; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
else
|
||||
case $PYTHON in
|
||||
[\\/]* | ?:[\\/]*)
|
||||
ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
|
||||
;;
|
||||
*)
|
||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||
for as_dir in $PATH
|
||||
do
|
||||
IFS=$as_save_IFS
|
||||
test -z "$as_dir" && as_dir=.
|
||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||
if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||
ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
|
||||
echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||
break 2
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
PYTHON=$ac_cv_path_PYTHON
|
||||
|
||||
if test -n "$PYTHON"; then
|
||||
echo "$as_me:$LINENO: result: $PYTHON" >&5
|
||||
echo "${ECHO_T}$PYTHON" >&6
|
||||
else
|
||||
echo "$as_me:$LINENO: result: no" >&5
|
||||
echo "${ECHO_T}no" >&6
|
||||
fi
|
||||
|
||||
test -n "$PYTHON" && break
|
||||
done
|
||||
test -n "$PYTHON" || PYTHON=":"
|
||||
|
||||
fi
|
||||
am_display_PYTHON=python
|
||||
|
||||
|
||||
if test "$PYTHON" = :; then
|
||||
{ { echo "$as_me:$LINENO: error: no suitable Python interpreter found" >&5
|
||||
echo "$as_me: error: no suitable Python interpreter found" >&2;}
|
||||
{ (exit 1); exit 1; }; }
|
||||
else
|
||||
|
||||
|
||||
echo "$as_me:$LINENO: checking for $am_display_PYTHON version" >&5
|
||||
echo $ECHO_N "checking for $am_display_PYTHON version... $ECHO_C" >&6
|
||||
if test "${am_cv_python_version+set}" = set; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
else
|
||||
am_cv_python_version=`$PYTHON -c "import sys; print sys.version[:3]"`
|
||||
fi
|
||||
echo "$as_me:$LINENO: result: $am_cv_python_version" >&5
|
||||
echo "${ECHO_T}$am_cv_python_version" >&6
|
||||
PYTHON_VERSION=$am_cv_python_version
|
||||
|
||||
|
||||
|
||||
PYTHON_PREFIX='${prefix}'
|
||||
|
||||
PYTHON_EXEC_PREFIX='${exec_prefix}'
|
||||
|
||||
|
||||
|
||||
echo "$as_me:$LINENO: checking for $am_display_PYTHON platform" >&5
|
||||
echo $ECHO_N "checking for $am_display_PYTHON platform... $ECHO_C" >&6
|
||||
if test "${am_cv_python_platform+set}" = set; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
else
|
||||
am_cv_python_platform=`$PYTHON -c "import sys; print sys.platform"`
|
||||
fi
|
||||
echo "$as_me:$LINENO: result: $am_cv_python_platform" >&5
|
||||
echo "${ECHO_T}$am_cv_python_platform" >&6
|
||||
PYTHON_PLATFORM=$am_cv_python_platform
|
||||
|
||||
|
||||
|
||||
|
||||
echo "$as_me:$LINENO: checking for $am_display_PYTHON script directory" >&5
|
||||
echo $ECHO_N "checking for $am_display_PYTHON script directory... $ECHO_C" >&6
|
||||
if test "${am_cv_python_pythondir+set}" = set; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
else
|
||||
am_cv_python_pythondir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(0,0,prefix='$PYTHON_PREFIX')" 2>/dev/null ||
|
||||
echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
|
||||
fi
|
||||
echo "$as_me:$LINENO: result: $am_cv_python_pythondir" >&5
|
||||
echo "${ECHO_T}$am_cv_python_pythondir" >&6
|
||||
pythondir=$am_cv_python_pythondir
|
||||
|
||||
|
||||
|
||||
pkgpythondir=\${pythondir}/$PACKAGE
|
||||
|
||||
|
||||
echo "$as_me:$LINENO: checking for $am_display_PYTHON extension module directory" >&5
|
||||
echo $ECHO_N "checking for $am_display_PYTHON extension module directory... $ECHO_C" >&6
|
||||
if test "${am_cv_python_pyexecdir+set}" = set; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
else
|
||||
am_cv_python_pyexecdir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(1,0,prefix='$PYTHON_EXEC_PREFIX')" 2>/dev/null ||
|
||||
echo "${PYTHON_EXEC_PREFIX}/lib/python${PYTHON_VERSION}/site-packages"`
|
||||
fi
|
||||
echo "$as_me:$LINENO: result: $am_cv_python_pyexecdir" >&5
|
||||
echo "${ECHO_T}$am_cv_python_pyexecdir" >&6
|
||||
pyexecdir=$am_cv_python_pyexecdir
|
||||
|
||||
|
||||
|
||||
pkgpyexecdir=\${pyexecdir}/$PACKAGE
|
||||
|
||||
|
||||
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
subdirs="$subdirs $nmap_cfg_subdirs "
|
||||
|
||||
ac_config_files="$ac_config_files Makefile"
|
||||
@@ -7683,6 +7816,15 @@ s,@NBASEDIR@,$NBASEDIR,;t t
|
||||
s,@LIBNBASE_LIBS@,$LIBNBASE_LIBS,;t t
|
||||
s,@NSOCKDIR@,$NSOCKDIR,;t t
|
||||
s,@LIBNSOCK_LIBS@,$LIBNSOCK_LIBS,;t t
|
||||
s,@PYTHON@,$PYTHON,;t t
|
||||
s,@PYTHON_VERSION@,$PYTHON_VERSION,;t t
|
||||
s,@PYTHON_PREFIX@,$PYTHON_PREFIX,;t t
|
||||
s,@PYTHON_EXEC_PREFIX@,$PYTHON_EXEC_PREFIX,;t t
|
||||
s,@PYTHON_PLATFORM@,$PYTHON_PLATFORM,;t t
|
||||
s,@pythondir@,$pythondir,;t t
|
||||
s,@pkgpythondir@,$pkgpythondir,;t t
|
||||
s,@pyexecdir@,$pyexecdir,;t t
|
||||
s,@pkgpyexecdir@,$pkgpyexecdir,;t t
|
||||
s,@LIBOBJS@,$LIBOBJS,;t t
|
||||
s,@LTLIBOBJS@,$LTLIBOBJS,;t t
|
||||
CEOF
|
||||
|
||||
@@ -671,6 +671,7 @@ else
|
||||
nmap_cfg_subdirs="$NBASEDIR $libpcapdir $nmap_cfg_subdirs"
|
||||
fi
|
||||
|
||||
AM_PATH_PYTHON
|
||||
|
||||
dnl Commented out -- awaiting transition to Zenmap.
|
||||
dnl if test "${with_nmapfe}" = "yes"; then
|
||||
|
||||
Reference in New Issue
Block a user