/
githubmirror
/
libpsl
Обзор
Документация
Войти
/
githubmirror
/
libpsl
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
configure.ac
667 строк
22 KB
Bernhard M. Wiedemann
configure.ac: fix typo that broke SOURCE_DATE_EPOCH for COPYRIGHT_YEAR
04 авг 2026, 16:40
04 авг 2026, 16:40
29b259c
Код
Авторство
О чём код?
m4_define([libpsl_version], m4_normalize(m4_include(version.txt))) AC_INIT([libpsl], [libpsl_version], [tim.ruehsen@gmx.de], [libpsl], [https://github.com/rockdaboot/libpsl]) AC_PREREQ([2.59]) AC_CONFIG_AUX_DIR([build-aux]) AM_INIT_AUTOMAKE([1.10 no-define foreign dist-lzip]) dnl Generate two configuration headers; one for building the library itself with dnl an autogenerated template, and a second one that will be installed alongside dnl the library. AC_CONFIG_HEADERS([config.h]) AC_PROG_CC m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) LT_INIT([win32-dll]) AC_CONFIG_MACRO_DIR([m4]) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) AC_SYS_LARGEFILE dnl Check that compiler understands inline AC_C_INLINE dnl Check for visibility support gl_VISIBILITY dnl Solaris has socket in libsocket and inet_ntop in libnsl, but also needs dnl libsocket, so the order is important here AC_CHECK_LIB([socket], [socket], [ AC_CHECK_LIB([nsl], [inet_ntop], [:], [:]) ], [:]) dnl AM_ICONV sets @LIBICONV@ and @LTLIBICONV@ for use in Makefile.am dnl libunistring may depend on libiconv, so invoke it before gl_LIBUNISTRING AM_ICONV dnl Unicode support gl_LIBUNISTRING dnl dnl Generate version defines for include file dnl AC_SUBST([LIBPSL_VERSION_MAJOR], [$(echo $VERSION | cut -d'.' -f1)]) AC_SUBST([LIBPSL_VERSION_MINOR], [$(echo $VERSION | cut -d'.' -f2)]) AC_SUBST([LIBPSL_VERSION_PATCH], [$(echo $VERSION | cut -d'.' -f3)]) AC_SUBST([LIBPSL_VERSION_NUMBER], [$(printf '0x%02x%02x%02x' $LIBPSL_VERSION_MAJOR $LIBPSL_VERSION_MINOR $LIBPSL_VERSION_PATCH)]) AC_SUBST([COPYRIGHT_MONTH], [m4_esyscmd([LC_ALL=C date -u -d "@$SOURCE_DATE_EPOCH" +%B 2>/dev/null || LC_ALL=C date -u -r "$SOURCE_DATE_EPOCH" +%B 2>/dev/null || LC_ALL=C date -u +%B])]) AC_SUBST([COPYRIGHT_YEAR], [m4_esyscmd([LC_ALL=C date -u -d "@$SOURCE_DATE_EPOCH" +%Y 2>/dev/null || LC_ALL=C date -u -r "$SOURCE_DATE_EPOCH" +%Y 2>/dev/null || LC_ALL=C date -u +%Y])]) AC_CONFIG_FILES([include/libpsl.h tools/psl.1]) dnl dnl Gettext dnl AM_GNU_GETTEXT([external],[need-ngettext]) AM_GNU_GETTEXT_VERSION([0.19.3]) AM_GNU_GETTEXT_REQUIRE_VERSION([0.19.3]) dnl dnl check for gtk-doc dnl m4_ifdef([GTK_DOC_CHECK], [ GTK_DOC_CHECK([1.15],[--flavour no-tmpl]) ],[ AM_CONDITIONAL([ENABLE_GTK_DOC], false) ]) dnl needed for some older versions of gtk-doc m4_ifdef([GTK_DOC_USE_LIBTOOL], [], [ AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], false) ]) AS_IF([test "$have_gtk_doc" = yes && test "$enable_gtk_doc" = yes], [ AC_SUBST([LIBPSL_DOCS], [docs/libpsl]) ]) dnl dnl enable creation of man pages dnl AC_ARG_ENABLE([man], [AS_HELP_STRING([--enable-man], [generate man pages [default=auto]])], [ AS_IF([test "$enable_man" = yes], [ AC_PATH_PROG([XSLTPROC], [xsltproc]) AS_IF([test -z "$XSLTPROC"], [ AC_MSG_ERROR([xsltproc is required for --enable-man]) enable_man="no (xsltproc not found)" ]) ]) ], [enable_man=no]) AM_CONDITIONAL([ENABLE_MAN], [test "$enable_man" = "yes"]) dnl src/psl-make-dafsa needs python 2.7+ AS_IF([test ! -f src/suffixes_dafsa.h || test ! -f tests/psl.dafsa || test ! -f tests/psl_ascii.dafsa], [ AM_PATH_PYTHON([2.7],, [AC_MSG_ERROR([python 2.7+ is required to convert the PSL data])]) ]) PKG_PROG_PKG_CONFIG AC_ARG_ENABLE([fuzzing], [AS_HELP_STRING([--enable-fuzzing], [Turn on fuzzing build (for developers)])], [ AS_IF([test "$enable_fuzzing" = yes], [ AC_SUBST([LIB_FUZZING_ENGINE]) AC_DEFINE([FUZZING], 1, [Define to 1 if this is a fuzzing build]) ]) ], [enable_fuzzing=no; LIB_FUZZING_ENGINE=""]) AM_CONDITIONAL([FUZZING], [test "$enable_fuzzing" = "yes"]) AC_ARG_ENABLE([cfi], [AS_HELP_STRING([--enable-cfi], [Turn on clang's Control Flow Integrity (CFI)])], [ AS_IF([test "$enable_cfi" = yes], [ SANITIZER_CFLAGS="$SANITIZER_CFLAGS -B/usr/bin/gold -fsanitize=cfi -flto -fvisibility=default -fno-sanitize-trap=all" AC_LINK_IFELSE([ AC_LANG_PROGRAM([], []) ], [], [ AC_MSG_ERROR([clang 3.7+ and the 'gold' linker are required for --enable-cfi]) ]) ]) ], [enable_cfi=no]) AC_ARG_ENABLE([ubsan], [AS_HELP_STRING([--enable-ubsan], [Turn on Undefined Behavior Sanitizer (UBSan)])], [ AS_IF([test "$enable_ubsan" = yes], [ dnl Set basic UBSAN compiler flags. Add your own to CFLAGS. SANITIZER_CFLAGS="$SANITIZER_CFLAGS -fsanitize=undefined -fno-sanitize-recover=undefined" ]) ], [enable_ubsan=no]) AC_ARG_ENABLE([asan], [AS_HELP_STRING([--enable-asan], [Turn on Address Sanitizer (ASan)])], [ AS_IF([test "$enable_asan" = yes], [ dnl Set basic ASAN compiler flags. Add your own to CFLAGS. SANITIZER_CFLAGS="$SANITIZER_CFLAGS -fsanitize=address -fno-omit-frame-pointer" AX_CHECK_COMPILE_FLAG([-fsanitize-address-use-after-scope], [SANITIZER_CFLAGS="$SANITIZER_CFLAGS -fsanitize-address-use-after-scope"]) ]) ], [enable_asan=no]) dnl Define these substitutions here to keep all version information in one place. dnl For information on how to properly maintain the library version information, dnl refer to the libtool manual, section "Updating library version information": dnl https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html dnl dnl 1. Start with version information of '0:0:0' for each libtool library. dnl 2. Update the version information only immediately before a public release of your software. More frequent updates are unnecessary, and only guarantee that the current interface number gets larger faster. dnl 3. If the library source code has changed at all since the last update, then increment revision ('c:r:a' becomes 'c:r+1:a'). dnl 4. If any interfaces have been added, removed, or changed since the last update, increment current, and set revision to 0. dnl 5. If any interfaces have been added since the last public release, then increment age. dnl 6. If any existing interfaces have been removed or changed since the last public release, then set age to 0. AC_SUBST([LIBPSL_SO_VERSION], m4_normalize(m4_include([libtool_version_info.txt]))) AC_SUBST([LIBPSL_VERSION], [$VERSION]) dnl Check for enable/disable runtime PSL data AC_ARG_ENABLE([runtime], [ --enable-runtime[[=IDNA library]] Specify the IDNA library used for libpsl run-time conversions: libidn2 [[default]]: IDNA2008 library (also needs libunistring) libicu: IDNA2008 UTS#46 library libicucore: IDNA2008 UTS#46 library shipped with Apple OSes libidn: IDNA2003 library (also needs libunistring) --disable-runtime Do not link runtime IDNA functionality ], [ AS_IF( [test "$enableval" = "libidn2" || test "$enableval" = "yes"], [enable_runtime=libidn2; AC_DEFINE([WITH_LIBIDN2], [1], [generate PSL data using libidn2])], [test "$enableval" = "libicu"], [enable_runtime=libicu; AC_DEFINE([WITH_LIBICU], [1], [generate PSL data using libicu])], [test "$enableval" = "libicucore"], [enable_runtime=libicucore; AC_DEFINE([WITH_LIBICUCORE], [1], [generate PSL data using libicucore])], [test "$enableval" = "libidn"], [enable_runtime=libidn; AC_DEFINE([WITH_LIBIDN], [1], [generate PSL data using libidn])], [test "$enableval" = "no"], [enable_runtime=no], [AC_MSG_ERROR([Unknown value $enableval for --enable-runtime])] ) ], [ dnl this is the default if neither --enable-runtime nor --disable-runtime were specified enable_runtime=auto ]) dnl Check for enable/disable builtin PSL data AC_ARG_ENABLE([builtin], [ --enable-builtin Generate built-in PSL data --disable-builtin Do not generate built-in PSL data ], [ AS_IF( [test "$enableval" = "yes"], [enable_builtin=yes], [test "$enableval" = "libidn" || test "$enableval" = "libidn2" || test "$enableval" = "libicu"], [AC_MSG_WARN([--enable-builtin=$enableval is deprecated, use --enable-builtin (enabled by default)]); enable_builtin=yes], [test "$enableval" = "no"], [enable_builtin=no], [AC_MSG_ERROR([Unknown value $enableval])] ) ], [ dnl this is the default if neither --enable-builtin nor --disable-builtin were specified enable_builtin=yes ]) AS_IF([test "$enable_builtin" = "yes"], [ AC_DEFINE([ENABLE_BUILTIN], [1], [Generate built-in PSL data]) ]) dnl Global project-specific compiler and linker flags. dnl dnl We should not use plain *FLAGS since they belong to the user. dnl We can temporary modify them for configuration checks, but then we need to dnl restore them to their original values. AM_CPPFLAGS="-I\$(top_builddir)/include -I\$(top_srcdir)/include" AM_CFLAGS="$AM_CFLAGS $SANITIZER_CFLAGS" AM_LDFLAGS= AC_SUBST([AM_CPPFLAGS]) AC_SUBST([AM_CFLAGS]) AC_SUBST([AM_LDFLAGS]) dnl If we are building only static libraries, we need to define PSL_STATIC dnl when building psl executable; this is required on Windows since libpsl dnl uses __declspec(dllimport) by default. AS_IF([test "${enable_shared}" = "no"], [AS_VAR_APPEND([AM_CPPFLAGS], [" -DPSL_STATIC"])]) dnl We use pkg-config/pkgconf to find dependencies. We want to ensure that we dnl are able to find them even if they are installed as static libraries only. dnl dnl If we were able to locate package using PKG_CHECK_MODULES, try to do a dnl link test to ensure that we can link against it. This may fail because only dnl static library is available but we did not add private libraries dnl (Libs.private) or compiler flags (Cflags.private). dnl dnl If we failed to link against library found with PKG_CHECK_MODULES, try dnl to use PKG_CHECK_MODULES_STATIC to obtain compiler and linker flags dnl required to link against static library. dnl Compiler flags required to use $enable_runtime (when != "no") runtime_CFLAGS= dnl Libraries required to use $enable_runtime (when != "no") runtime_LIBS= AC_SUBST([runtime_CFLAGS]) AC_SUBST([runtime_LIBS]) dnl Check for libicucore AS_IF( [test "$enable_runtime" = "libicucore" || { test "$host_vendor" = "apple" && test "$enable_runtime" = "auto"; }], [ HAVE_LIBICUCORE=no dnl Check if we can link against libicucore AC_CHECK_LIB(icucore, uidna_openUTS46, [ AC_CHECK_HEADER(unicode/uidna.h, [ HAVE_LIBICUCORE=yes ]) ]) AS_IF([test "$HAVE_LIBICUCORE" = "yes"], [ runtime_LIBS="-licucore" AS_IF([test "$enable_runtime" = "auto"], [ enable_runtime=libicucore AC_DEFINE([WITH_LIBICUCORE], [1], [generate PSL data using libicucore]) ]) ], [ AS_IF([test "$enable_runtime" = "libicucore"], [ AC_MSG_ERROR([You requested libicucore but it is not available or usable.]) ]) ]) ]) dnl Check for libidn2 AS_IF( [test "$enable_runtime" = "libidn2" || test "$enable_runtime" = "auto"], [ HAVE_LIBIDN2=no dnl Save CFLAGS and LIBS so we can restore them later __save_CFLAGS=$CFLAGS __save_LIBS=$LIBS m4_define([LIBIDN2_LINK_TEST], [AC_LANG_PROGRAM( [extern char idn2_lookup_u8 (void);], [idn2_lookup_u8();] )]) PKG_CHECK_MODULES([LIBIDN2], [libidn2], [HAVE_LIBIDN2=maybe], [HAVE_LIBIDN2=no]) dnl Check if we can link against libidn2 AS_IF([test "$HAVE_LIBIDN2" = maybe], [ CFLAGS="$LIBIDN2_CFLAGS $CFLAGS" LIBS="$LIBIDN2_LIBS $LIBS" AC_LINK_IFELSE([ LIBIDN2_LINK_TEST ], [ HAVE_LIBIDN2=yes ], [ AC_MSG_NOTICE([located libidn2 but cannot link... trying static linking]) LIBIDN2_CFLAGS= LIBIDN2_LIBS= CFLAGS=$__save_CFLAGS LIBS=$__save_LIBS ]) ]) dnl If we cannot link against found libidn2, try static linking AS_IF([test "$HAVE_LIBIDN2" = maybe], [ PKG_CHECK_MODULES_STATIC([LIBIDN2], [libidn2], [ CFLAGS="$LIBIDN2_CFLAGS $CFLAGS" LIBS="$LIBIDN2_LIBS $LIBS" AC_LINK_IFELSE([ LIBIDN2_LINK_TEST ], [ HAVE_LIBIDN2=yes AC_MSG_NOTICE([using static libidn2]) ], [ HAVE_LIBIDN2=no AC_MSG_NOTICE([libidn2 is installed but unusable]) LIBIDN2_CFLAGS= LIBIDN2_LIBS= CFLAGS=$__save_CFLAGS LIBS=$__save_LIBS ]) ], [ HAVE_LIBIDN2=no ]) ]) CFLAGS=$__save_CFLAGS LIBS=$__save_LIBS AS_IF([test "$HAVE_LIBIDN2" = "yes"], [ runtime_CFLAGS=$LIBIDN2_CFLAGS runtime_LIBS=$LIBIDN2_LIBS AS_IF([test "$enable_runtime" = "auto"], [ enable_runtime=libidn2 AC_DEFINE([WITH_LIBIDN2], [1], [generate PSL data using libidn2]) ]) ], [test "$enable_runtime" = "libidn2"], [ AC_MSG_ERROR([You requested libidn2 but it is not installed or usable.]) ]) ]) dnl Check for libicu AS_IF( [test "$enable_runtime" = "libicu" || test "$enable_runtime" = "auto"], [ HAVE_LIBICU=no dnl Whether we found libicu using pkg-config HAVE_LIBICU_PC=no dnl Save CFLAGS and LIBS so we can restore them later __save_CFLAGS=$CFLAGS __save_LIBS=$LIBS m4_define([ICU_LINK_TEST], [AC_LANG_PROGRAM( [[#include <unicode/ustring.h>]], [[u_strToUTF8(NULL, 0, NULL, NULL, 0, NULL);]] )]) dnl using pkg-config won't work on older systems like Ubuntu 12.04 LTS Server Edition 64bit dnl using AC_SEARCH_LIBS also don't work since functions have the library version appended PKG_CHECK_MODULES([LIBICU], [icu-uc], [ HAVE_LIBICU_PC=yes HAVE_LIBICU=maybe ], [ HAVE_LIBICU=no ]) dnl Check if we can link against libicu AS_IF([test "$HAVE_LIBICU" = maybe], [ CFLAGS="$LIBICU_CFLAGS $CFLAGS" LIBS="$LIBICU_LIBS $LIBS" AC_LINK_IFELSE([ ICU_LINK_TEST ], [ HAVE_LIBICU=yes ], [ AC_MSG_NOTICE([located libicu but cannot link... trying static linking]) LIBICU_CFLAGS= LIBICU_LIBS= CFLAGS=$__save_CFLAGS LIBS=$__save_LIBS ]) ]) dnl If we cannot link against found libicu, try static linking AS_IF([test "$HAVE_LIBICU" = maybe], [ PKG_CHECK_MODULES_STATIC([LIBICU], [icu-uc], [ CFLAGS="$LIBICU_CFLAGS $CFLAGS" LIBS="$LIBICU_LIBS $LIBS" AC_LINK_IFELSE([ ICU_LINK_TEST ], [ HAVE_LIBICU=yes AC_MSG_NOTICE([using static libicu]) ], [ HAVE_LIBICU_PC=no HAVE_LIBICU=no AC_MSG_NOTICE([libicu is installed but unusable]) LIBICU_CFLAGS= LIBICU_LIBS= CFLAGS=$__save_CFLAGS LIBS=$__save_LIBS ]) ], [ HAVE_LIBICU=no ]) ]) dnl Try -licuuc AS_IF([test "$HAVE_LIBICU" = no], [ AC_MSG_CHECKING([for ICU unicode library]) LIBS="-licuuc $LIBS" AC_LINK_IFELSE([ ICU_LINK_TEST ], [ HAVE_LIBICU=yes LIBICU_LIBS='-licuuc' ], [ HAVE_LIBICU=no LIBS=$__save_LIBS ]) AC_MSG_RESULT([$HAVE_LIBICU]) ]) CFLAGS=$__save_CFLAGS LIBS=$__save_LIBS AS_IF([test "$HAVE_LIBICU" = "yes"], [ runtime_CFLAGS=$LIBICU_CFLAGS runtime_LIBS=$LIBICU_LIBS AS_IF([test "$enable_runtime" = "auto"], [ enable_runtime=libicu AC_DEFINE([WITH_LIBICU], [1], [generate PSL data using libicu]) ]) ], [test "$enable_runtime" = "libicu"], [ AC_MSG_ERROR([You requested libicu but it is not installed or usable.]) ]) ]) dnl Check for libidn AS_IF( [test "$enable_runtime" = "libidn"], [ HAVE_LIBIDN=no dnl Save CFLAGS and LIBS so we can restore them later __save_CFLAGS=$CFLAGS __save_LIBS=$LIBS m4_define([LIBIDN_LINK_TEST], [AC_LANG_PROGRAM( [extern char idna_to_ascii_8z (void);], [idna_to_ascii_8z();] )]) PKG_CHECK_MODULES([LIBIDN], [libidn], [HAVE_LIBIDN=maybe], [HAVE_LIBIDN=no]) dnl Check if we can link against libidn AS_IF([test "$HAVE_LIBIDN" = maybe], [ CFLAGS="$LIBIDN_CFLAGS $CFLAGS" LIBS="$LIBIDN_LIBS $LIBS" AC_LINK_IFELSE([ LIBIDN_LINK_TEST ], [ HAVE_LIBIDN=yes ], [ AC_MSG_NOTICE([located libidn but cannot link... trying static linking]) LIBIDN_CFLAGS= LIBIDN_LIBS= CFLAGS=$__save_CFLAGS LIBS=$__save_LIBS ]) ]) dnl If we cannot link against found libidn, try static linking AS_IF([test "$HAVE_LIBIDN" = maybe], [ PKG_CHECK_MODULES_STATIC([LIBIDN], [libidn], [ CFLAGS="$LIBIDN_CFLAGS $CFLAGS" LIBS="$LIBIDN_LIBS $LIBS" AC_LINK_IFELSE([ LIBIDN_LINK_TEST ], [ HAVE_LIBIDN=yes AC_MSG_NOTICE([using static libidn]) ], [ HAVE_LIBIDN=no AC_MSG_NOTICE([libidn is installed but unusable]) LIBIDN_CFLAGS= LIBIDN_LIBS= CFLAGS=$__save_CFLAGS LIBS=$__save_LIBS ]) ], [ HAVE_LIBIDN=no ]) ]) CFLAGS=$__save_CFLAGS LIBS=$__save_LIBS AS_IF([test "$HAVE_LIBIDN" = "yes"], [ runtime_CFLAGS=$LIBIDN_CFLAGS runtime_LIBS=$LIBIDN_LIBS ], [test "$enable_runtime" = "libidn"], [ AC_MSG_ERROR([You requested libidn but it is not installed or usable.]) ]) ]) dnl last fallback is noruntime/nobuiltin AS_IF([test "$enable_runtime" = "auto"], [enable_runtime=no]) dnl If we use libidn or libidn2, we also need libiconv and libunistring. libicucore also needs iconv AS_IF( [test "$enable_runtime" = "libidn2" || test "$enable_runtime" = "libidn" || test "$enable_runtime" = "libicucore"], [ __save_LIBS=$LIBS LIBS=$LIBICONV AC_LINK_IFELSE([ AC_LANG_PROGRAM([#include <iconv.h>], [iconv_open ("", "");]) ], [:], [ AC_MSG_ERROR([You requested libidn2|libidn|libicucore but libiconv is not installed.]) ]) LIBS=$__save_LIBS runtime_LIBS="$runtime_LIBS $LTLIBICONV" AS_IF([test "$enable_runtime" != "libicucore"], [ LIBS=$LIBUNISTRING AC_LINK_IFELSE([ AC_LANG_PROGRAM([char u8_tolower (void);], [u8_tolower ();]) ], [:], [ AC_MSG_ERROR([You requested libidn2|libidn but libunistring is not installed.]) ]) LIBS=$__save_LIBS runtime_LIBS="$runtime_LIBS $LTLIBUNISTRING" ]) ]) AM_CONDITIONAL([WITH_LIBICU], [test "$enable_runtime" = "libicu"]) AM_CONDITIONAL([WITH_LIBICUCORE], [test "$enable_runtime" = "libicucore"]) AM_CONDITIONAL([WITH_LIBIDN2], [test "$enable_runtime" = "libidn2"]) AM_CONDITIONAL([WITH_LIBIDN], [test "$enable_runtime" = "libidn"]) AM_CONDITIONAL([ENABLE_BUILTIN], [test "$enable_builtin" = "yes"]) dnl libpsl.pc libpsl_pc_Cflags= libpsl_pc_Cflags_private= libpsl_pc_Libs= libpsl_pc_Libs_private= libpsl_pc_Requires= libpsl_pc_Requires_private= AS_IF( [test "$enable_runtime" = libidn2], [ libpsl_pc_Libs_private="$LTLIBUNISTRING $LTLIBICONV $LIBS" libpsl_pc_Requires_private=libidn2 ], [test "$enable_runtime" = libidn], [ libpsl_pc_Libs_private="$LTLIBUNISTRING $LTLIBICONV $LIBS" libpsl_pc_Requires_private=libidn ], [test "$enable_runtime" = libicu], [ AS_IF([test "$HAVE_LIBICU_PC" = yes], [ libpsl_pc_Libs_private="$LIBS" libpsl_pc_Requires_private=icu-uc ], [ libpsl_pc_Libs_private="$LIBICU_LIBS $LIBS" ]) ], [test "$enable_runtime" = libicucore], [ libpsl_pc_Libs_private="-licucore $LTLIBICONV $LIBS" ]) dnl On Windows we use pkgconf-specific Cflags.private to pass -DPSL_STATIC AS_CASE([${host}], [*-mingw32 | *-mingw64 | *-windows], [ libpsl_pc_Cflags_private='Cflags.private: -DPSL_STATIC' libpsl_pc_Requires='pkgconf' ]) AC_SUBST([libpsl_pc_Cflags]) AC_SUBST([libpsl_pc_Cflags_private]) AC_SUBST([libpsl_pc_Libs]) AC_SUBST([libpsl_pc_Libs_private]) AC_SUBST([libpsl_pc_Requires]) AC_SUBST([libpsl_pc_Requires_private]) dnl Check for clock_gettime() used for performance measurement AC_SEARCH_LIBS([clock_gettime], [rt]) dnl Check for valgrind ac_enable_valgrind=no AC_ARG_ENABLE([valgrind-tests], AS_HELP_STRING([--enable-valgrind-tests], [enable using Valgrind for tests]), [ac_enable_valgrind=$enableval], [ac_enable_valgrind=no]) AS_IF([test "${ac_enable_valgrind}" = "yes"], [ AC_CHECK_PROG([HAVE_VALGRIND], [valgrind], [yes], [no]) AS_IF([test "$HAVE_VALGRIND" = "yes"], [ VALGRIND_ENVIRONMENT="valgrind --error-exitcode=1 --leak-check=yes --show-reachable=yes --track-origins=yes" AC_SUBST([VALGRIND_ENVIRONMENT]) TESTS_INFO="Test suite will be run under Valgrind" ], [ TESTS_INFO="Valgrind not found" ]) ], [ TESTS_INFO="Valgrind testing not enabled" ]) dnl Check for distribution-wide PSL file AC_ARG_WITH([psl-distfile], AS_HELP_STRING([--with-psl-distfile=[PATH]], [path to distribution-wide PSL file]), [PSL_DISTFILE=$withval], [PSL_DISTFILE=]) AC_SUBST([PSL_DISTFILE]) dnl Check for custom PSL file AC_ARG_WITH([psl-file], AS_HELP_STRING([--with-psl-file=[PATH]], [path to PSL file]), [PSL_FILE=$withval], [PSL_FILE="\$(top_srcdir)/list/public_suffix_list.dat"]) AC_SUBST([PSL_FILE]) dnl Check for custom PSL test file AC_ARG_WITH([psl-testfile], AS_HELP_STRING([--with-psl-testfile=[PATH]], [path to PSL test file]), [PSL_TESTFILE=$withval], [PSL_TESTFILE="\$(top_srcdir)/list/tests/tests.txt"]) AC_SUBST([PSL_TESTFILE]) AC_CHECK_FUNCS([clock_gettime fmemopen nl_langinfo]) AC_CHECK_DECLS([localtime_r]) dnl check for dirent.h AC_CHECK_HEADERS([dirent.h]) dnl Override the template file name of the generated .pc file, so that there dnl is no need to rename the template file when the API version changes. AC_CONFIG_FILES([Makefile include/Makefile src/Makefile tools/Makefile po/Makefile.in fuzz/Makefile tests/Makefile docs/libpsl/Makefile docs/libpsl/version.xml libpsl.pc:libpsl.pc.in msvc/Makefile msvc/config.h.win32 msvc/config-msvc.mak]) AC_OUTPUT AC_MSG_NOTICE([Summary of build options: Version: ${PACKAGE_VERSION} Host OS: ${host_os} Install prefix: ${prefix} Compiler: ${CC} CFlags: ${CFLAGS} ${CPPFLAGS} LDFlags: ${LDFLAGS} Libs: ${LIBS} Runtime: ${enable_runtime} Builtin: ${enable_builtin} PSL Dist File: ${PSL_DISTFILE} PSL File: ${PSL_FILE} PSL Test File: ${PSL_TESTFILE} Sanitizers: UBSan $enable_ubsan, ASan $enable_asan, CFI $enable_cfi Docs: $enable_gtk_doc Man pages: $enable_man Tests: ${TESTS_INFO} Fuzzing build: $enable_fuzzing, $LIB_FUZZING_ENGINE ])