1
0
mirror of https://github.com/nmap/nmap.git synced 2025-12-06 12:41:29 +00:00

Check for Python only if Zenmap is requested, and bail out if Zenmap is

explicitly requested and Python is not available.
This commit is contained in:
david
2007-11-22 08:37:34 +00:00
parent 53752ad8de
commit 1f1e8bcb1d
3 changed files with 276 additions and 201 deletions

17
aclocal.m4 vendored
View File

@@ -175,4 +175,21 @@ 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])])
# Copyright (C) 2001, 2003, 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_RUN_LOG(COMMAND)
# -------------------
# Run COMMAND, save the exit status in ac_status, and log it.
# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
AC_DEFUN([AM_RUN_LOG],
[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
(exit $ac_status); }])
m4_include([acinclude.m4])

407
configure vendored
View File

@@ -678,6 +678,15 @@ LUAFLAGS
CPP
GREP
EGREP
PYTHON
PYTHON_VERSION
PYTHON_PREFIX
PYTHON_EXEC_PREFIX
PYTHON_PLATFORM
pythondir
pkgpythondir
pyexecdir
pkgpyexecdir
BUILDZENMAP
INSTALLZENMAP
ZENMAP_CLEAN
@@ -716,15 +725,6 @@ LIBNBASE_LIBS
NSOCKDIR
NSOCK_BUILD
LIBNSOCK_LIBS
PYTHON
PYTHON_VERSION
PYTHON_PREFIX
PYTHON_EXEC_PREFIX
PYTHON_PLATFORM
pythondir
pkgpythondir
pyexecdir
pkgpyexecdir
LIBOBJS
LTLIBOBJS'
ac_subst_files=''
@@ -5436,25 +5436,222 @@ fi
# Do they want Zenmap?
BUILDZENMAP=build-zenmap
INSTALLZENMAP=install-zenmap
ZENMAP_CLEAN=zenmap_clean
ZENMAP_DIST_CLEAN=zenmap_dist_clean
# Check whether --with-zenmap was given.
if test "${with_zenmap+set}" = set; then
withval=$with_zenmap; case "$with_zenmap" in
no)
BUILDZENMAP=""
INSTALLZENMAP=""
ZENMAP_CLEAN=""
ZENMAP_DIST_CLEAN=""
withval=$with_zenmap;
else
with_zenmap=check
fi
if test "$with_zenmap" != "no"; then
if test -n "$PYTHON"; then
# If the user set $PYTHON, use it and don't search something else.
{ echo "$as_me:$LINENO: checking whether $PYTHON version >= 2.4" >&5
echo $ECHO_N "checking whether $PYTHON version >= 2.4... $ECHO_C" >&6; }
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.4', '.')) + [0, 0, 0]
minverhex = 0
for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i]
sys.exit(sys.hexversion < minverhex)"
if { echo "$as_me:$LINENO: $PYTHON -c "$prog"" >&5
($PYTHON -c "$prog") >&5 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
{ echo "$as_me:$LINENO: result: yes" >&5
echo "${ECHO_T}yes" >&6; }
else
{ { echo "$as_me:$LINENO: error: too old" >&5
echo "$as_me: error: too old" >&2;}
{ (exit 1); exit 1; }; }
fi
am_display_PYTHON=$PYTHON
else
# Otherwise, try each interpreter until we find one that satisfies
# VERSION.
{ echo "$as_me:$LINENO: checking for a Python interpreter with version >= 2.4" >&5
echo $ECHO_N "checking for a Python interpreter with version >= 2.4... $ECHO_C" >&6; }
if test "${am_cv_pathless_PYTHON+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
for am_cv_pathless_PYTHON in python python2 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5 none; do
test "$am_cv_pathless_PYTHON" = none && break
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.4', '.')) + [0, 0, 0]
minverhex = 0
for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i]
sys.exit(sys.hexversion < minverhex)"
if { echo "$as_me:$LINENO: $am_cv_pathless_PYTHON -c "$prog"" >&5
($am_cv_pathless_PYTHON -c "$prog") >&5 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
break
fi
done
fi
{ echo "$as_me:$LINENO: result: $am_cv_pathless_PYTHON" >&5
echo "${ECHO_T}$am_cv_pathless_PYTHON" >&6; }
# Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
if test "$am_cv_pathless_PYTHON" = none; then
PYTHON=:
else
# Extract the first word of "$am_cv_pathless_PYTHON", so it can be a program name with args.
set dummy $am_cv_pathless_PYTHON; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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
IFS=$as_save_IFS
;;
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
fi
am_display_PYTHON=$am_cv_pathless_PYTHON
fi
if test "$PYTHON" = :; then
if test "$with_zenmap" = "check"; then
{ echo "$as_me:$LINENO: WARNING: Not building Zenmap because Python 2.4 or later was not found" >&5
echo "$as_me: WARNING: Not building Zenmap because Python 2.4 or later was not found" >&2;}
else
{ { echo "$as_me:$LINENO: error: --with-zenmap requires Python 2.4 or later
See \`config.log' for more details." >&5
echo "$as_me: error: --with-zenmap requires Python 2.4 or later
See \`config.log' for more details." >&2;}
{ (exit 1); exit 1; }; }
fi
with_zenmap=no
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
fi
if test "$with_zenmap" = "no"; then
BUILDZENMAP=""
INSTALLZENMAP=""
ZENMAP_CLEAN=""
ZENMAP_DIST_CLEAN=""
else
BUILDZENMAP=build-zenmap
INSTALLZENMAP=install-zenmap
ZENMAP_CLEAN=zenmap_clean
ZENMAP_DIST_CLEAN=zenmap_dist_clean
fi
@@ -8294,142 +8491,6 @@ LIBNSOCK_LIBS="-lnsock"
subdirs="$subdirs nsock/src"
# 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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
IFS=$as_save_IFS
;;
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
ac_config_files="$ac_config_files Makefile"
cat >confcache <<\_ACEOF
@@ -9112,6 +9173,15 @@ LUAFLAGS!$LUAFLAGS$ac_delim
CPP!$CPP$ac_delim
GREP!$GREP$ac_delim
EGREP!$EGREP$ac_delim
PYTHON!$PYTHON$ac_delim
PYTHON_VERSION!$PYTHON_VERSION$ac_delim
PYTHON_PREFIX!$PYTHON_PREFIX$ac_delim
PYTHON_EXEC_PREFIX!$PYTHON_EXEC_PREFIX$ac_delim
PYTHON_PLATFORM!$PYTHON_PLATFORM$ac_delim
pythondir!$pythondir$ac_delim
pkgpythondir!$pkgpythondir$ac_delim
pyexecdir!$pyexecdir$ac_delim
pkgpyexecdir!$pkgpyexecdir$ac_delim
BUILDZENMAP!$BUILDZENMAP$ac_delim
INSTALLZENMAP!$INSTALLZENMAP$ac_delim
ZENMAP_CLEAN!$ZENMAP_CLEAN$ac_delim
@@ -9135,15 +9205,6 @@ DNET_DEPENDS!$DNET_DEPENDS$ac_delim
DNET_BUILD!$DNET_BUILD$ac_delim
DNET_CLEAN!$DNET_CLEAN$ac_delim
DNET_DIST_CLEAN!$DNET_DIST_CLEAN$ac_delim
LIBLUA_LIBS!$LIBLUA_LIBS$ac_delim
LIBLUADIR!$LIBLUADIR$ac_delim
LUA_DEPENDS!$LUA_DEPENDS$ac_delim
LUA_BUILD!$LUA_BUILD$ac_delim
LUA_CLEAN!$LUA_CLEAN$ac_delim
LUA_DIST_CLEAN!$LUA_DIST_CLEAN$ac_delim
INSTALLNSE!$INSTALLNSE$ac_delim
NSELIB_CLEAN!$NSELIB_CLEAN$ac_delim
NSELIB_DIST_CLEAN!$NSELIB_DIST_CLEAN$ac_delim
_ACEOF
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
@@ -9185,21 +9246,21 @@ _ACEOF
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
cat >conf$$subs.sed <<_ACEOF
LIBLUA_LIBS!$LIBLUA_LIBS$ac_delim
LIBLUADIR!$LIBLUADIR$ac_delim
LUA_DEPENDS!$LUA_DEPENDS$ac_delim
LUA_BUILD!$LUA_BUILD$ac_delim
LUA_CLEAN!$LUA_CLEAN$ac_delim
LUA_DIST_CLEAN!$LUA_DIST_CLEAN$ac_delim
INSTALLNSE!$INSTALLNSE$ac_delim
NSELIB_CLEAN!$NSELIB_CLEAN$ac_delim
NSELIB_DIST_CLEAN!$NSELIB_DIST_CLEAN$ac_delim
NBASEDIR!$NBASEDIR$ac_delim
NBASE_BUILD!$NBASE_BUILD$ac_delim
LIBNBASE_LIBS!$LIBNBASE_LIBS$ac_delim
NSOCKDIR!$NSOCKDIR$ac_delim
NSOCK_BUILD!$NSOCK_BUILD$ac_delim
LIBNSOCK_LIBS!$LIBNSOCK_LIBS$ac_delim
PYTHON!$PYTHON$ac_delim
PYTHON_VERSION!$PYTHON_VERSION$ac_delim
PYTHON_PREFIX!$PYTHON_PREFIX$ac_delim
PYTHON_EXEC_PREFIX!$PYTHON_EXEC_PREFIX$ac_delim
PYTHON_PLATFORM!$PYTHON_PLATFORM$ac_delim
pythondir!$pythondir$ac_delim
pkgpythondir!$pkgpythondir$ac_delim
pyexecdir!$pyexecdir$ac_delim
pkgpyexecdir!$pkgpyexecdir$ac_delim
LIBOBJS!$LIBOBJS$ac_delim
LTLIBOBJS!$LTLIBOBJS$ac_delim
_ACEOF

View File

@@ -175,26 +175,33 @@ AC_SEARCH_LIBS(setsockopt, socket)
AC_SEARCH_LIBS(gethostbyname, nsl)
# Do they want Zenmap?
BUILDZENMAP=build-zenmap
INSTALLZENMAP=install-zenmap
ZENMAP_CLEAN=zenmap_clean
ZENMAP_DIST_CLEAN=zenmap_dist_clean
AC_ARG_WITH(zenmap, AC_HELP_STRING([--without-zenmap], [Skip installation of the Zenmap graphical frontend]),
[ case "$with_zenmap" in
no)
AC_ARG_WITH(zenmap, AC_HELP_STRING([--without-zenmap], [Skip installation of the Zenmap graphical frontend]), [], [with_zenmap=check])
if test "$with_zenmap" != "no"; then
AM_PATH_PYTHON([2.4], [],
[if test "$with_zenmap" = "check"; then
AC_MSG_WARN([Not building Zenmap because Python 2.4 or later was not found])
else
AC_MSG_FAILURE([--with-zenmap requires Python 2.4 or later])
fi
with_zenmap=no])
fi
if test "$with_zenmap" = "no"; then
BUILDZENMAP=""
INSTALLZENMAP=""
ZENMAP_CLEAN=""
ZENMAP_DIST_CLEAN=""
;;
esac]
)
else
BUILDZENMAP=build-zenmap
INSTALLZENMAP=install-zenmap
ZENMAP_CLEAN=zenmap_clean
ZENMAP_DIST_CLEAN=zenmap_dist_clean
fi
AC_SUBST(BUILDZENMAP)
AC_SUBST(INSTALLZENMAP)
AC_SUBST(ZENMAP_CLEAN)
AC_SUBST(ZENMAP_DIST_CLEAN)
# We test whether they specified openssl desires explicitly
use_openssl="yes"
specialssldir=""
@@ -690,16 +697,6 @@ AC_SUBST(LIBNSOCK_LIBS)
AC_CONFIG_SUBDIRS(nsock/src)
AM_PATH_PYTHON
dnl Commented out -- awaiting transition to Zenmap.
dnl if test "${with_nmapfe}" = "yes"; then
dnl Check for GTK+
dnl AM_PATH_GTK_2_0(2.4.0,
dnl AC_CONFIG_SUBDIRS(nmapfe),
dnl AC_MSG_WARN([Gtk+ has not been installed -> nmapfe will not be made]))
dnl fi
AC_OUTPUT(Makefile)
# Krad ASCII ART#!#@$!@#$
if test -f docs/leet-nmap-ascii-art.txt; then