aboutsummaryrefslogtreecommitdiff
path: root/configure.seed
diff options
context:
space:
mode:
authorToni <matzeton@googlemail.com>2021-10-10 13:13:52 +0200
committerGitHub <noreply@github.com>2021-10-10 13:13:52 +0200
commitcf931fda6bfb3925555c7bd11d950a886676bcb3 (patch)
treea1ae588d0b7a0b96b7ef258f18ed59e962e7d418 /configure.seed
parent6ff67b5043e52db3de1c8fc63dddabe906612217 (diff)
Get rid of `configure.seed` as it comes with some disadvantages. (#1328)
* using Autotools best-practices to achieve (hopefully) the same result Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
Diffstat (limited to 'configure.seed')
-rw-r--r--configure.seed289
1 files changed, 0 insertions, 289 deletions
diff --git a/configure.seed b/configure.seed
deleted file mode 100644
index 69739ca44..000000000
--- a/configure.seed
+++ /dev/null
@@ -1,289 +0,0 @@
-AC_INIT([libndpi], [@NDPI_VERSION_SHORT@])
-
-AC_CONFIG_AUX_DIR([.])
-AC_CONFIG_MACRO_DIR([m4])
-
-AM_INIT_AUTOMAKE([foreign subdir-objects])
-
-AC_PREFIX_DEFAULT(/usr)
-
-EXTRA_TARGETS="example tests tests/unit tests/dga"
-AC_ARG_WITH(only-libndpi, AS_HELP_STRING([--with-only-libndpi], [Build only libndpi (no examples, tests etc)]))
-AS_IF([test "${with_only_libndpi+set}" = set],[
- EXTRA_TARGETS=""
-])
-
-GNU_PREFIX=""
-
-AC_ARG_WITH(sanitizer, AS_HELP_STRING([--with-sanitizer], [Build with support for address, undefined and leak sanitizer]))
-AC_ARG_ENABLE(fuzztargets, AS_HELP_STRING([--enable-fuzztargets], [Enable fuzz targets]),[enable_fuzztargets=$enableval],[enable_fuzztargets=no])
-AS_IF([test "x$enable_fuzztargets" = "xyes"], [BUILD_FUZZTARGETS=1], [BUILD_FUZZTARGETS=0])
-AM_CONDITIONAL([BUILD_FUZZTARGETS], [test "x$enable_fuzztargets" = "xyes"])
-
-AS_IF([test "${with_sanitizer+set}" = set],[
- CFLAGS="${CFLAGS} -g3 -O0 -fsanitize=address -fsanitize=undefined -fno-sanitize=alignment -fsanitize=leak -fno-omit-frame-pointer"
- LDFLAGS="${LDFLAGS} -fsanitize=address -fsanitize=undefined -fno-sanitize=alignment -fsanitize=leak"
-])
-
-LT_INIT
-LT_LIB_M
-PKG_PROG_PKG_CONFIG
-
-SYSTEM=`uname -s`
-if test $SYSTEM = "Darwin"; then
-dnl> AC_PROG_CC(clang gcc)
- AM_PROG_CC_C_O(clang gcc)
- AC_PROG_CXX(clang++ g++)
- AC_PROG_CC_STDC(clang gcc)
-else
-dnl> AC_PROG_CC
- AM_PROG_CC_C_O
- AC_PROG_CXX
- AC_PROG_CC_STDC
-fi
-AC_LANG_WERROR
-
-NDPI_VERSION_SHORT="@NDPI_VERSION_SHORT@"
-NDPI_MAJOR="@NDPI_MAJOR@"
-NDPI_MINOR="@NDPI_MINOR@"
-NDPI_PATCH="@NDPI_PATCH@"
-
-AC_DEFINE_UNQUOTED(NDPI_MAJOR_RELEASE, "${NDPI_MAJOR}", [nDPI major release])
-AC_DEFINE_UNQUOTED(NDPI_MINOR_RELEASE, "${NDPI_MINOR}", [nDPI minor release])
-AC_DEFINE_UNQUOTED(NDPI_PATCH_LEVEL, "${NDPI_PATCH}", [nDPI patch level])
-
-# .git as directory in a cloned repo
-# .git as file in submodule based integration
-if test -d ".git" || test -f ".git" ; then :
- GIT_TAG=`git log -1 --format=%h`
- GIT_DATE=`git log -1 --format=%cd`
- #
- # On CentOS 6 `git rev-list HEAD --count` does not work
- #
- #
- GIT_NUM=`git log --pretty=oneline | wc -l | tr -d '[[:space:]]'`
- GIT_RELEASE="${PACKAGE_VERSION}-${GIT_NUM}-${GIT_TAG}"
-
- A=`git log src/include/ndpi_typedefs.h|wc -l`
- B=`git log src/include/ndpi_protocol_ids.h|wc -l`
- C=`git log src/include/ndpi_api.h.in|wc -l`
- NDPI_API_VERSION=$((A+B+C))
-else
- GIT_RELEASE="${PACKAGE_VERSION}"
- GIT_DATE=`date -u -r CHANGELOG.md`
- if test -z "$SOURCE_DATE_EPOCH" ; then :
- SOURCE_DATE_EPOCH=`date +%s`
- fi
- NDPI_API_VERSION=`echo $SOURCE_DATE_EPOCH | cut -c7-10`
-fi
-
-NDPI_API_VERSION=`echo $NDPI_API_VERSION | sed 's/^0*//'`
-
-echo "Setting API version to $NDPI_API_VERSION"
-
-AC_DEFINE_UNQUOTED(NDPI_GIT_RELEASE, "${GIT_RELEASE}", [GIT Release])
-AC_DEFINE_UNQUOTED(NDPI_GIT_DATE, "${GIT_DATE}", [Last GIT change])
-
-if ! test "${with_only_libndpi+set}" = set; then :
- dnl> used by json-c for unit tests
- PKG_CHECK_MODULES([JSONC], [json-c], [JSONC_LIBS="${pkg_cv_JSONC_LIBS}" JSONC_CFLAGS="${pkg_cv_JSONC_CFLAGS}"])
- AC_CHECK_LIB([json-c], [json_object_put], [], [
- AC_MSG_WARN([JSON-C not available. Disabled unit test.])
- JSONC_LIBS=""
- JSONC_CFLAGS=""
- EXTRA_TARGETS="example tests tests/dga"
- ])
- AX_PTHREAD([],[
- AC_MSG_WARN([POSIX Threads not available. Building library only.])
- JSONC_LIBS=""
- JSONC_CFLAGS=""
- EXTRA_TARGETS=""
- ])
-fi
-
-LIBS="$LIBS $JSONC_LIBS"
-CFLAGS="-W -Wall -Wno-unused-parameter -Wno-unused-function $CFLAGS $JSONC_CFLAGS"
-
-AC_CHECK_HEADERS([netinet/in.h stdint.h stdlib.h string.h unistd.h math.h float.h])
-AC_CHECK_LIB([m], [sqrt], [], [LIBM="-lm"])
-
-ADDITIONAL_LIBS="$LIBM"
-PCAP_HOME=$HOME/PF_RING/userland
-
-DPDK_TARGET=
-AC_MSG_CHECKING([DPDK (used by ndpiReader)])
-if test -d $HOME/DPDK; then :
- AC_MSG_RESULT(yes)
- DPDK_TARGET=dpdk
-else
- AC_MSG_RESULT([no (missing $HOME/DPDK)])
-fi
-
-if ! test -d $PCAP_HOME; then :
- PCAP_HOME=`pwd`/../../PF_RING/userland
-fi
-SHORT_MACHINE=`uname -m | cut -b1-3`
-if test $SHORT_MACHINE = "arm"; then
- LIBNUMA=""
-else
- AC_CHECK_LIB([numa], [numa_available], [LIBNUMA="-lnuma"])
-fi
-
-MACHINE=`uname -m`
-
-CUSTOM_NDPI=
-
-if test -d ../nDPI-custom; then :
- CUSTOM_NDPI="-DCUSTOM_NDPI_PROTOCOLS"
- AC_MSG_RESULT([Compiling with custom nDPI protocols])
-fi
-
-if test -d ../ndpi-pro; then :
- with_maxminddb=1
-fi
-
-case "$host" in
- *-*-mingw32*|*-*-msys)
- PCAP_INC=""
- PCAP_LIB=""
- case "$host" in
- x86_64-*)
- BUILD_MINGW_X64=1
- ;;
- i686-*)
- ;;
- *)
- AC_MSG_ERROR([Unsupported MingW cross compiler.])
- ;;
- esac
- CFLAGS="${CFLAGS}"
- LDFLAGS="${LDFLAGS} -lws2_32"
- BUILD_MINGW=1
- ;;
- *)
- if test -f $PCAP_HOME/libpcap/libpcap.a; then :
- echo "Using libpcap from $PCAP_HOME"
- PCAP_INC="-I $PCAP_HOME/libpcap"
- PCAP_LIB="$PCAP_HOME/libpcap/libpcap.a $PCAP_HOME/lib/libpfring.a $LIBNUMA `$PCAP_HOME/lib/pfring_config --libs`"
- AC_CHECK_LIB([rt], [clock_gettime], [PCAP_LIB="$PCAP_LIB -lrt"])
- AC_CHECK_LIB([nl], [nl_handle_alloc], [PCAP_LIB="$PCAP_LIB -lnl"])
- # The dlopen() function is in libdl on GLIBC-based systems
- # and in the C library for *BSD systems
- AC_CHECK_LIB([dl], [dlopen], [DL_LIB="-ldl"],[AC_CHECK_LIB([c],
- [dlopen], [DL_LIB="-lc"],
- [AC_MSG_ERROR([unable to find the dlopen(), dlsym() functions]) ]) ])
- elif test "${with_only_libndpi+set}" != set; then :
- AC_CHECK_LIB([pcap], [pcap_open_live], [PCAP_LIB="-lpcap"])
- if test $ac_cv_lib_pcap_pcap_open_live = "no"; then :
- AC_MSG_ERROR([Missing libpcap(-dev) library required to compile the example application.])
- fi
- fi
- ;;
-esac
-
-AC_ARG_ENABLE([debug-messages],
- AS_HELP_STRING([--enable-debug-messages], [Define NDPI_ENABLE_DEBUG_MESSAGES=1]), [
- AC_DEFINE(NDPI_ENABLE_DEBUG_MESSAGES, 1, [Enable ndpi_debug_messages]) ])
-
-@FUZZY@ AS_IF([test "x$enable_fuzztargets" = "xyes"], [
-@FUZZY@ AC_PROG_CXX
-@FUZZY@ AC_LANG_PUSH(C++)
-@FUZZY@ tmp_saved_flags=$[]_AC_LANG_PREFIX[]FLAGS
-@FUZZY@ AX_CHECK_COMPILE_FLAG([-fsanitize=fuzzer],,
-@FUZZY@ [AC_MSG_ERROR([--enable-fuzztargets requires -fsanitize=fuzzer which is only supported by LLVM])],
-@FUZZY@ [-Werror])
-@FUZZY@ AS_IF([test "x$LIB_FUZZING_ENGINE" = "x"], [
-@FUZZY@ LIB_FUZZING_ENGINE=-fsanitize=fuzzer
-@FUZZY@ AC_SUBST(LIB_FUZZING_ENGINE)
-@FUZZY@ ])
-@FUZZY@ _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $LIB_FUZZING_ENGINE"
-@FUZZY@ AC_MSG_CHECKING([whether $CXX accepts $LIB_FUZZING_ENGINE])
-@FUZZY@ AC_LINK_IFELSE([AC_LANG_SOURCE([[
-@FUZZY@ #include <sys/types.h>
-@FUZZY@ extern "C" int LLVMFuzzerTestOneInput(const unsigned char *Data, size_t Size);
-@FUZZY@ extern "C" int LLVMFuzzerTestOneInput(const unsigned char *Data, size_t Size) {
-@FUZZY@ (void)Data;
-@FUZZY@ (void)Size;
-@FUZZY@ return 0;
-@FUZZY@ }
-@FUZZY@ ]])],
-@FUZZY@ [ AC_MSG_RESULT(yes)
-@FUZZY@ has_sanitizefuzzer=yes],
-@FUZZY@ [ AC_MSG_RESULT(no) ]
-@FUZZY@ )
-@FUZZY@ _AC_LANG_PREFIX[]FLAGS=$tmp_saved_flags
-@FUZZY@ AC_LANG_POP()
-@FUZZY@ ])
-AM_CONDITIONAL([HAS_FUZZLDFLAGS], [test "x$has_sanitizefuzzer" = "xyes"])
-
-AC_CHECK_LIB(pthread, pthread_setaffinity_np, AC_DEFINE_UNQUOTED(HAVE_PTHREAD_SETAFFINITY_NP, 1, [libc has pthread_setaffinity_np]))
-
-dnl> GCRYPT
-GCRYPT_ENABLED=1
-AC_ARG_ENABLE([gcrypt],
- [AS_HELP_STRING([--disable-gcrypt], [Avoid compiling with libgcrypt/libgpg-error, even if they are present. QUIC sub-classification may be missing])],
- [GCRYPT_ENABLED=0],
- [AC_CHECK_LIB(gcrypt, gcry_cipher_checktag)])
-AS_IF([test ${GCRYPT_ENABLED} -eq 1], [
- if test "x$ac_cv_lib_gcrypt_gcry_cipher_checktag" = xyes; then :
- ADDITIONAL_LIBS="${ADDITIONAL_LIBS} -lgcrypt"
- else
- $as_unset ac_cv_lib_gcrypt_gcry_cipher_checktag
- AC_CHECK_LIB(gpg-error, gpg_strerror_r)
- AC_CHECK_LIB(gcrypt, gcry_cipher_checktag)
- if test "x$ac_cv_lib_gcrypt_gcry_cipher_checktag" = xyes -a "x$ac_cv_lib_gpg_error_gpg_strerror_r" = xyes; then :
- ADDITIONAL_LIBS="${ADDITIONAL_LIBS} -lgcrypt -lgpg-error"
- else
- GCRYPT_ENABLED=0
- fi
- fi
-])
-
-dnl> PCRE
-PCRE_ENABLED=0
-AC_ARG_WITH(pcre, [ --with-pcre Enable nDPI build with libpcre])
-if test "${with_pcre+set}" = set; then :
- AC_CHECK_LIB(pcre, pcre_compile, AC_DEFINE_UNQUOTED(HAVE_PCRE, 1, [libpcre(-dev) is present]))
- if test "x$ac_cv_lib_pcre_pcre_compile" = xyes; then :
- ADDITIONAL_LIBS="${ADDITIONAL_LIBS} -lpcre"
- PCRE_ENABLED=1
- fi
-fi
-
-dnl> GeoIP
-AC_ARG_WITH(maxminddb, [ --with-maxminddb Enable nDPI build with libmaxminddb])
-if test "${with_maxminddb+set}" = set; then :
- AC_CHECK_LIB([maxminddb], [MMDB_lookup_sockaddr])
- AC_HAVE_HEADERS(maxminddb.h)
- if test ".${ac_cv_lib_maxminddb_MMDB_lookup_sockaddr}" = ".yes" && test ".${ac_cv_header_maxminddb_h}" = ".yes"; then
- ADDITIONAL_LIBS="${ADDITIONAL_LIBS} -lmaxminddb"
- AC_DEFINE_UNQUOTED(HAVE_MAXMINDDB, 1, [MaxMind DB support])
- fi
-fi
-
-AC_CONFIG_FILES([Makefile example/Makefile example/Makefile.dpdk tests/Makefile tests/unit/Makefile tests/dga/Makefile libndpi.pc src/include/ndpi_define.h src/lib/Makefile python/Makefile fuzz/Makefile src/include/ndpi_api.h])
-AC_CONFIG_FILES([tests/do.sh], [chmod +x tests/do.sh])
-AC_CONFIG_HEADERS(src/include/ndpi_config.h)
-AC_SUBST(GIT_RELEASE)
-AC_SUBST(NDPI_MAJOR)
-AC_SUBST(NDPI_MINOR)
-AC_SUBST(NDPI_PATCH)
-AC_SUBST(NDPI_VERSION_SHORT)
-AC_SUBST(PCAP_INC)
-AC_SUBST(PCAP_LIB)
-AC_SUBST(ADDITIONAL_LIBS)
-AC_SUBST(DL_LIB)
-AC_SUBST(DPDK_TARGET)
-AC_SUBST(HAVE_PTHREAD_SETAFFINITY_NP)
-AC_SUBST(CUSTOM_NDPI)
-AC_SUBST(NDPI_API_VERSION)
-AC_SUBST(EXTRA_TARGETS)
-AC_SUBST(BUILD_MINGW)
-AC_SUBST(BUILD_MINGW_X64)
-AC_SUBST(BUILD_FUZZTARGETS)
-AC_SUBST(JSONC_CFLAGS)
-AC_SUBST(JSONC_LIBS)
-AC_SUBST(GCRYPT_ENABLED)
-AC_SUBST(PCRE_ENABLED)
-AC_SUBST(GNU_PREFIX)
-AC_OUTPUT