From 1f1e8bcb1df844bc24a1896e1c4edfd04722b42c Mon Sep 17 00:00:00 2001 From: david Date: Thu, 22 Nov 2007 08:37:34 +0000 Subject: [PATCH] Check for Python only if Zenmap is requested, and bail out if Zenmap is explicitly requested and Python is not available. --- aclocal.m4 | 17 +++ configure | 413 +++++++++++++++++++++++++++++---------------------- configure.ac | 47 +++--- 3 files changed, 276 insertions(+), 201 deletions(-) diff --git a/aclocal.m4 b/aclocal.m4 index f380a318f..e81215b37 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -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]) diff --git a/configure b/configure index 0c4d484d4..42102749a 100755 --- a/configure +++ b/configure @@ -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="" - ;; - esac - + 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 diff --git a/configure.ac b/configure.ac index fad22f380..c4dcec48f 100644 --- a/configure.ac +++ b/configure.ac @@ -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) - BUILDZENMAP="" - INSTALLZENMAP="" - ZENMAP_CLEAN="" - ZENMAP_DIST_CLEAN="" - ;; - esac] -) +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="" +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