From 0d47952611198ef6b1163f366dc03922d20b1475 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 09:42:04 +0200 Subject: Adding upstream version 7.94+git20230807.3be01efb1+dfsg. Signed-off-by: Daniel Baumann --- ncat/configure.ac | 327 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 327 insertions(+) create mode 100644 ncat/configure.ac (limited to 'ncat/configure.ac') diff --git a/ncat/configure.ac b/ncat/configure.ac new file mode 100644 index 0000000..0f7d3ed --- /dev/null +++ b/ncat/configure.ac @@ -0,0 +1,327 @@ +# -*- Autoconf -*- +# Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.59) +AC_INIT(ncat_main.c) + +AC_CONFIG_HEADER(config.h) + +m4_include([../acinclude.m4]) + +AC_CANONICAL_HOST + +use_openssl="yes" +specialssldir="" +AC_ARG_WITH(openssl,[ --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" + LDFLAGS="$LDFLAGS -L$with_openssl/lib" + CPPFLAGS="-I$with_openssl/include $CPPFLAGS" + ;; + esac] +) + +# Checks for programs. +AC_PROG_CC +if test -n "$GCC"; then + CFLAGS="$CFLAGS -Wall" +fi +AC_PROG_INSTALL + +AC_PATH_TOOL([STRIP], [strip], [/bin/true]) + +# Checks for header files. +AC_HEADER_STDC +AC_HEADER_SYS_WAIT +AC_CHECK_HEADERS([fcntl.h limits.h netdb.h netinet/in.h stdlib.h string.h strings.h sys/param.h sys/socket.h sys/time.h unistd.h sys/un.h]) +AC_CHECK_HEADERS([linux/vm_sockets.h], , , [#include ]) + +# Checks for typedefs, structures, and compiler characteristics. +AC_HEADER_STAT +AC_C_CONST +AC_HEADER_TIME + +# Checks for library functions. +AC_FUNC_FORK +AC_FUNC_SELECT_ARGTYPES +AC_TYPE_SIGNAL +AC_FUNC_VPRINTF +AC_SEARCH_LIBS(setsockopt, socket) +# Ncat does not call gethostbyname directly, but some of the libraries +# it links to (such as libpcap) do. Instead it calls getaddrinfo. At +# one point we changed this test to use getaddrinfo rather than +# gethostbyname, but on a Solaris 9 SPARC box that function could be +# called without -lnsl, while gethostbyname sitll required -lnsl, so +# we changed the test back. +AC_SEARCH_LIBS(gethostbyname, nsl) +# OpenSSL requires dlopen on some platforms +AC_SEARCH_LIBS(dlopen, dl) +AC_CHECK_FUNCS([dup2 gettimeofday inet_ntoa memset mkstemp select socket strcasecmp strchr strdup strerror strncasecmp strtol]) + +# If they didn't specify it, we try to find it +if 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]) ]) + + if test "$use_openssl" = "yes"; then + AC_CHECK_HEADER(openssl/err.h,, + [ use_openssl="no" + AC_MSG_WARN([Failed to find openssl/err.h 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_HEADER(openssl/rand.h,, + [ use_openssl="no" + AC_MSG_WARN([Failed to find openssl/rand.h 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(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 ]) + fi +fi + +OPENSSL_LIBS= +if test "$use_openssl" = "yes"; then + AC_DEFINE([HAVE_OPENSSL], [1], [Define to 1 if you have OpenSSL.]) + AC_DEFINE([HAVE_HTTP_DIGEST], [1], [Define to 1 to enable HTTP Digest authentication (requires OpenSSL).]) + OPENSSL_LIBS="-lssl -lcrypto" + # Define in Makefile also. + HAVE_OPENSSL=yes + AC_SUBST(HAVE_OPENSSL) +fi + +AC_SUBST(OPENSSL_LIBS) + +libpcapdir=../libpcap +AC_SUBST(libpcapdir) + +dnl Check whether libpcap is already available +have_libpcap=no + +# By default, search for pcap library +test "${with_libpcap+set}" != "set" && with_libpcap=yes + +AC_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_create, + [have_libpcap=yes ])]) + ;; + included) + have_libpcap=no + ;; + *) + _cppflags=$CXXFLAGS + _ldflags=$LDFLAGS + + CPPFLAGS="-I$with_libpcap/include $CPPFLAGS" + LDFLAGS="-L$with_libpcap/lib $LDFLAGS" + + AC_CHECK_HEADER(pcap.h,[ + AC_CHECK_LIB(pcap, pcap_create, + [have_libpcap=yes + LIBPCAP_INC=$with_libpcap/include + LIBPCAP_LIB=$with_libpcap/lib])]) + + LDFLAGS=$_ldflags + CXXFLAGS=$_cppflags + ;; + esac] +) + +if test $have_libpcap = yes; then + if test "${LIBPCAP_INC+set}" = "set"; then + _cflags=$CXXFLAGS + _ldflags=$LDFLAGS + + CPPFLAGS="-I$LIBPCAP_INC $CPPFLAGS" + LDFLAGS="-L$LIBPCAP_LIB $LDFLAGS" + fi + + # link with -lpcap for the purposes of this test + LIBS_OLD="$LIBS" + LIBS="$LIBS -lpcap" + PCAP_IS_SUITABLE([have_libpcap=yes], [have_libpcap=no], [have_libpcap=yes]) + LIBS="$LIBS_OLD" +fi + +PCAP_LIBS="-lpcap" +if test $have_libpcap = yes; then + PCAP_DEPENDS="" + PCAP_BUILD="" + PCAP_CLEAN="" + PCAP_DIST_CLEAN="" + AC_DEFINE([HAVE_LIBPCAP], [1], [Define to 1 if you have libpcap]) +else + if test "${LIBPCAP_INC+set}" = "set"; then + LDFLAGS="-L$libpcapdir $_ldflags" + CPPFLAGS="$CPPFLAGS -I$LIBPCAP_INC" + else + LDFLAGS="-L$libpcapdir $LDFLAGS" + CPPFLAGS="$CPPFLAGS -I$libpcapdir" + fi + PCAP_DEPENDS='$(LIBPCAPDIR)/libpcap.a' + PCAP_BUILD="build-pcap" + PCAP_CLEAN="clean-pcap" + PCAP_DIST_CLEAN="distclean-pcap" +fi + +AC_SUBST(PCAP_DEPENDS) +AC_SUBST(PCAP_BUILD) +AC_SUBST(PCAP_CLEAN) +AC_SUBST(PCAP_DIST_CLEAN) +AC_SUBST(PCAP_LIBS) + +# Needed on AIX. +AC_CHECK_LIB(odm, odm_initialize) + +# Needed on AIX. +AC_CHECK_LIB(odm, odm_initialize) +AC_CHECK_LIB(cfg, _system_configuration) + + + +LIBLUADIR=../liblua + +have_lua=no +requested_included_lua=no +no_lua=no + +# First we test whether they specified liblua explicitly +AC_ARG_WITH(liblua, +AC_HELP_STRING([--with-liblua=DIR], [Use an existing (compiled) lua lib from DIR/include and DIR/lib.]) +AC_HELP_STRING([--with-liblua=included], [Use the liblua version included with Nmap]) +AC_HELP_STRING([--without-liblua], [Compile without lua (this will exclude all of NSE from compilation)]), +[ case "$with_liblua" in + yes) + ;; + included) + CPPFLAGS="-I\$(top_srcdir)/$LIBLUADIR $CPPFLAGS" + LIBLUA_LIBS="\$(top_srcdir)/$LIBLUADIR/liblua.a" + LUA_DEPENDS="\$(top_srcdir)/$LIBLUADIR/liblua.a" + LUA_BUILD="build-lua" + LUA_CLEAN="clean-lua" + LUA_DIST_CLEAN="distclean-lua" + have_lua="yes" + AC_DEFINE([LUA_INCLUDED], [1], [Using included liblua]) + + ;; + no) + no_lua="yes" + ;; + *) + CPPFLAGS="-I$with_liblua/include $CPPFLAGS" + LDFLAGS="-L$with_liblua/lib $LDFLAGS" + ;; + esac] +) + +LUA_CFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN" +AC_SUBST(LUA_CFLAGS) + +# They don't want lua +if test "$no_lua" = "yes"; then + CPPFLAGS="-DNOLUA $CPPFLAGS" + NOLUA="yes" + LIBLUA_LIBS="" + LUA_DEPENDS="" + LUA_BUILD="" + LUA_CLEAN="" + LUA_DIST_CLEAN="" + INSTALLNSE="" + +else + + # If they didn't specify it, we try to find it + if test $have_lua != yes; then + AC_CHECK_HEADERS([lua5.4/lua.h lua/5.4/lua.h lua.h lua/lua.h], [break]) + AC_SEARCH_LIBS(lua_isyieldable, [lua5.4 lua54 lua], [have_lua=yes],, [-lm]) + AC_LANG_PUSH(C) + AC_MSG_CHECKING([for lua version >= 504]) + AC_PREPROC_IFELSE([ AC_LANG_PROGRAM( + [[ + #ifdef HAVE_LUA5_4_LUA_H + #include + #elif defined HAVE_LUA_5_4_LUA_H + #include + #elif defined HAVE_LUA_H || defined LUA_INCLUDED + #include + #elif defined HAVE_LUA_LUA_H + #include + #endif + + #if (LUA_VERSION_NUM < 504) + #error Incorrect Lua version + #endif + ]], + [[if(LUA_VERSION_NUM < 504) return 1;]])], + [have_lua=yes], [have_lua=no]) + AC_LANG_POP(C) + + LUA_DEPENDS="" + LUA_BUILD="" + LUA_CLEAN="" + LUA_DIST_CLEAN="" + fi + + # if we didn't find we use our own + if test $have_lua != yes; then + AC_MSG_RESULT(no) + CPPFLAGS="-I\$(top_srcdir)/$LIBLUADIR $CPPFLAGS" + LIBLUA_LIBS="\$(top_srcdir)/$LIBLUADIR/liblua.a" + LUA_DEPENDS="\$(top_srcdir)/$LIBLUADIR/liblua.a" + LUA_BUILD="build-lua" + LUA_CLEAN="clean-lua" + LUA_DIST_CLEAN="distclean-lua" + AC_DEFINE([LUA_INCLUDED], [1], [Using included liblua]) + else + AC_MSG_RESULT(yes) + fi + + INSTALLNSE="install-nse" +fi + +AC_SUBST(NOLUA) +AC_SUBST(LIBLUA_LIBS) +AC_SUBST(LIBLUADIR) +AC_SUBST(LUA_DEPENDS) +AC_SUBST(LUA_BUILD) +AC_SUBST(LUA_CLEAN) +AC_SUBST(LUA_DIST_CLEAN) + + + +AC_CONFIG_FILES(Makefile) +AC_OUTPUT +# NCAT ASCII ART +if test -f docs/ncat-ascii-art.txt; then + cat docs/ncat-ascii-art.txt +fi + +echo "Configuration complete." -- cgit v1.2.3