configure.ac

来自「Ubuntu packages of security software。 相」· AC 代码 · 共 708 行 · 第 1/2 页

AC
708
字号
# Require autoconf 2.13 -*- mode: fundamental; -*-AC_PREREQ(2.13)dnl Process this file with autoconf to produce a configure script.AC_INIT(nmap.cc)AC_ARG_WITH(localdirs,AC_HELP_STRING([--with-localdirs], [Explicitly ask compiler to use /usr/local/{include,libs} if they exist ]),  [ case "$with_localdirs" in      yes)        user_localdirs=1        ;;      no)        user_localdirs=0        ;;    esac    ],  [ user_localdirs=0 ] )if test "$user_localdirs" = 1; then   if test -d /usr/local/lib; then     LDFLAGS="$LDFLAGS -L/usr/local/lib"     fi   if test -d /usr/local/include; then     CFLAGS="$CFLAGS -I/usr/local/include"     CXXFLAGS="$CFLAGS -I/usr/local/include"   fifilibpcapdir=libpcapAC_SUBST(libpcapdir)pcredir=libpcreAC_SUBST(pcredir)dnl use config.h instead of -D macrosAC_CONFIG_HEADER(config.h)dnl Host specific hacksAC_CANONICAL_HOSTAC_C_INLINEdnl Checks for programs.AC_PROG_CCAC_PROG_CXX if test -n "$GXX"; then      CXXFLAGS="$CXXFLAGS -Wall " fiAC_CHECK_PROG(CXXPROG, "$CXX", "AVAILABLE", "MISSING", "$PATH":/)if test $CXXPROG = "MISSING"; then  AC_MSG_ERROR([Could not locate a C++ compiler. If it exists, add it to your PATH or give configure the CXX=path_to_compiler argument.  Otherwise, install a C++ compiler such as g++ or install a binary package of Nmap (see http://www.insecure.org/nmap/nmap_download.html ))])fiAC_MSG_CHECKING([whether the compiler is gcc 4 or greater])if test x"$GXX" = xno; then  AC_MSG_RESULT([no])else  # On some distros, there are snapshots available as gcc4  if test -z "$ac_cv_prog_CC" || test x"$CC" = xgcc4; then    our_gcc="$CC"  else    our_gcc="$ac_cv_prog_CC"  fi  nmap_gcc_major_version=0  case `$our_gcc --version | sed -e 's,\..*,.,' -e q` in    *4.)      nmap_gcc_major_version=4      ;;  esac  if test 4 -ge $nmap_gcc_major_version; then    AC_MSG_RESULT([yes])    CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"  else    AC_MSG_RESULT([no])  fifi# Remember that all following tests will run with this CXXFLAGS by defaultAC_MSG_CHECKING(for __func__)AC_TRY_COMPILE([#include <stdio.h>],[printf ("%s", __func__);],have_func=yes, have_func=no)if test "x$have_func" = "xyes"; then   AC_MSG_RESULT(yes)else   AC_MSG_RESULT(no)   AC_MSG_CHECKING(for __FUNCTION__)   AC_TRY_COMPILE([#include <stdio.h>],[printf ("%s", __FUNCTION__);],have_function=yes, have_function=no)   if test "x$have_function" = "xyes"; then      AC_MSG_RESULT(yes)      AC_DEFINE(__func__, __FUNCTION__)   else      AC_MSG_RESULT(no)      AC_DEFINE(__func__, __FILE__)   fifiAC_SUBST(COMPAT_OBJS)AC_SUBST(COMPAT_SRCS)AC_PATH_TOOL([STRIP], [strip], [/bin/true])needs_cpp_precomp=noLUAFLAGS="MYCFLAGS=\"-DLUA_USE_POSIX -DLUA_USE_DLOPEN\""case "$host" in  *alpha-dec-osf*)    AC_DEFINE(DEC)    ;;  *-netbsd* | *-knetbsd*-gnu)    AC_DEFINE(NETBSD)    LDFLAGS="-Wl,-E $LDFLAGS" # needed for nse-C-module support    ;;  *-openbsd*)    AC_DEFINE(OPENBSD)    LDFLAGS="-Wl,-E $LDFLAGS" # needed for nse-C-module support    ;;  *-freebsd* | *-kfreebsd*-gnu | *-dragonfly*)    AC_DEFINE(FREEBSD)    LDFLAGS="-Wl,-E $LDFLAGS" # needed for nse-C-module support    ;;  *-bsdi*)    AC_DEFINE(BSDI)    LUAFLAVOR=bsd    ;;  *-sgi-irix5* | *-sgi-irix6*)    AC_DEFINE(IRIX)    ;;  *-hpux*)    AC_DEFINE(HPUX)    # To link with libnet and NM (/usr/lib/libnm.sl) library    # on HP-UX 11.11 (other versions?) Mikhail Zakharov (zmey20000@yahoo.com)    AC_CHECK_LIB(nm, open_mib)    ;;  *-solaris2.0* | *-solaris2.1* | *-solaris2.2* | *-solaris2.3* | *-solaris2.4* | *-solaris2.5.1 )      AC_DEFINE(STUPID_SOLARIS_CHECKSUM_BUG)    AC_DEFINE(SOLARIS)    ;;  *-solaris*)    AC_DEFINE(SOLARIS)    ;;  *-sunos4*)    AC_DEFINE(SUNOS)    AC_DEFINE(SPRINTF_RETURNS_STRING)    ;;  *-linux*)    AC_DEFINE(LINUX)    AC_DEFINE(PCAP_TIMEOUT_IGNORED)  # libpcap doesn't even LOOK at the timeout you give it under Linux    LDFLAGS="-Wl,-E $LDFLAGS" # needed for nse-C-module support    ;;  *-apple-darwin*)    AC_DEFINE(MACOSX)    dnl on Mac OSX the math library seems to contain unwanted getopt cruft    AC_CHECK_LIB(m, main)    LUAFLAGS="MYCFLAGS=\"-DLUA_USE_MACOSX\""    needs_cpp_precomp=yes    ;;  *)   LUAFLAGS="MYCFLAGS=\"-DLUA_USE_POSIX -DLUA_USE_DLOPEN\""esacAC_SUBST(LUAFLAGS)dnl Checks for header files.AC_CHECK_HEADERS(pwd.h termios.h sys/sockio.h)dnl If any socket libraries neededAC_SEARCH_LIBS(setsockopt, socket)AC_SEARCH_LIBS(gethostbyname, nsl)# Do they want Zenmap?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])fiif 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_cleanfiAC_SUBST(BUILDZENMAP)AC_SUBST(INSTALLZENMAP)AC_SUBST(ZENMAP_CLEAN)AC_SUBST(ZENMAP_DIST_CLEAN)# We test whether they specified openssl desires explicitlyuse_openssl="yes"specialssldir=""AC_ARG_WITH(openssl,AC_HELP_STRING([--with-openssl=DIR],[Use optional openssl libs and includes from [DIR]/lib/ and [DIR]/include/openssl/)]),[  case "$with_openssl" in  yes)    ;;  no)    use_openssl="no"    ;;  *)    specialssldir="$with_openssl"    CXXFLAGS="$CXXFLAGS -I$with_openssl/include"    LDFLAGS="$LDFLAGS -L$with_openssl/lib"    ;;  esac])# If they didn't specify it, we try to find itif test "$use_openssl" = "yes" -a -z "$specialssldir"; then  AC_CHECK_HEADER(openssl/ssl.h,,  [ use_openssl="no"    AC_MSG_WARN([Failed to find openssl/ssl.h so OpenSSL will not be used. If it is installed you can try the --with-openssl=DIR argument]) ])# use_openssl="yes" given explicitly in next 2 rules to avoid adding lib to $LIBS if test "$use_openssl" = "yes"; then   AC_CHECK_LIB(crypto, BIO_int_ctrl,    [ use_openssl="yes"],    [ use_openssl="no"    AC_MSG_WARN([Failed to find libcrypto so OpenSSL will not be used. If it is installed you can try the --with-openssl=DIR argument]) ]) fi if test "$use_openssl" = "yes"; then   AC_CHECK_LIB(ssl, SSL_new,    [ use_openssl="yes" ],    [ use_openssl="no"    AC_MSG_WARN([Failed to find libssl so OpenSSL will not be used. If it is installed you can try the --with-openssl=DIR argument]) ],    [ -lcrypto ]) fifiOPENSSL_LIBS=if test "$use_openssl" = "yes"; then  AC_DEFINE(HAVE_OPENSSL)  OPENSSL_LIBS="-lssl -lcrypto"fiAC_SUBST(OPENSSL_LIBS)dnl Check whether libpcap is already availablehave_libpcap=no# By default, search for pcap librarytest "${with_libpcap+set}" != "set" && with_libpcap=yesAC_ARG_WITH(libpcap,AC_HELP_STRING([--with-libpcap=DIR], [Look for pcap in DIR/include and DIR/libs.])AC_HELP_STRING([--with-libpcap=included], [Always use version included with Nmap]),[  case "$with_libpcap" in  yes)    AC_CHECK_HEADER(pcap.h,[      AC_CHECK_LIB(pcap, pcap_datalink,      [have_libpcap=yes ])])    ;;  included)    have_libpcap=no   ;;  *)    _cppflags=$CXXFLAGS    _ldflags=$LDFLAGS    CXXFLAGS="-I$with_libpcap/include $CXXFLAGS"    LDFLAGS="-L$with_libpcap/lib $LDFLAGS"    AC_CHECK_HEADER(pcap.h,[      AC_CHECK_LIB(pcap, pcap_datalink,	[have_libpcap=yes	LIBPCAP_INC=$with_libpcap/include	LIBPCAP_LIB=$with_libpcap/lib])])    LDFLAGS=$_ldflags    CXXFLAGS=$_cppflags    ;;  esac])if test $needs_cpp_precomp = yes; then  CXXFLAGS="-no-cpp-precomp $CXXFLAGS"fiif test $have_libpcap = yes; then  if test "${LIBPCAP_INC+set}" = "set"; then    _cflags=$CXXFLAGS    _ldflags=$LDFLAGS    CXXFLAGS="-I$LIBPCAP_INC $CXXFLAGS"    LDFLAGS="-L$LIBPCAP_LIB $LDFLAGS"  fi  # link with -lpcap for the purposes of this test  LIBS_OLD="$LIBS"  LIBS="$LIBS -lpcap"  AC_MSG_CHECKING(if libpcap version is recent enough)  AC_TRY_RUN([#include <stdio.h>extern char pcap_version[];int main() {  int major, minor1, minor2;  sscanf(pcap_version,"%d.%d.%d", &major, &minor1, &minor2);  if (major > 0)     exit(0);  if (minor1 < 9)    exit(1);  if (minor2 < 4)    exit(1);  exit(0);}],[AC_MSG_RESULT(yes); have_libpcap=yes],[AC_MSG_RESULT(no); have_libpcap=no])LIBS="$LIBS_OLD"fiLIBPCAP_LIBS="-lpcap"if test $have_libpcap = yes; then  PCAP_DEPENDS=""  PCAP_BUILD=""  PCAP_CLEAN=""  PCAP_DIST_CLEAN=""  AC_DEFINE(HAVE_LIBPCAP)else  if test "${LIBPCAP_INC+set}" = "set"; then    LDFLAGS="-L$libpcapdir $_ldflags"    CXXFLAGS="$_cflags -I$LIBPCAP_INC"  else    LDFLAGS="-L$libpcapdir $LDFLAGS"    CXXFLAGS="$CXXFLAGS -I$libpcapdir"  fi  PCAP_DEPENDS='$(LIBPCAPDIR)/libpcap.a'  PCAP_BUILD="pcap_build"  PCAP_CLEAN="pcap_clean"  PCAP_DIST_CLEAN="pcap_dist_clean"fiAC_SUBST(PCAP_DEPENDS)AC_SUBST(PCAP_BUILD)AC_SUBST(PCAP_CLEAN)AC_SUBST(PCAP_DIST_CLEAN)AC_SUBST(LIBPCAP_LIBS)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?