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 + -
显示快捷键?