AC_INIT([libpsl], [0.4.0], [tim.ruehsen@gmx.de], [libpsl], [http://github.com/rockdaboot/libpsl]) AC_PREREQ([2.59]) AM_INIT_AUTOMAKE([1.10 -Wall no-define]) # Generate two configuration headers; one for building the library itself with # an autogenerated template, and a second one that will be installed alongside # the library. AC_CONFIG_HEADERS([config.h]) AC_PROG_CXX m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) #LT_INIT([disable-static]) LT_INIT AC_CONFIG_MACRO_DIR([m4]) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) # # Gettext # AM_GNU_GETTEXT([external],[need-ngettext]) AM_GNU_GETTEXT_VERSION([0.18.1]) # # check for gtk-doc # m4_ifdef([GTK_DOC_CHECK], [ GTK_DOC_CHECK([1.15],[--flavour no-tmpl]) ],[ AM_CONDITIONAL([ENABLE_GTK_DOC], false) ]) # # enable creation of man pages # AC_ARG_ENABLE(man,[AC_HELP_STRING([--enable-man], [generate man pages [default=auto]])],enable_man=yes,enable_man=no) AS_IF([test "$enable_man" != no], [ AC_PATH_PROG([XSLTPROC], [xsltproc]) AS_IF([test -z "$XSLTPROC"], [ AS_IF([test "$enable_man" = yes], [ AC_MSG_ERROR([xsltproc is required for --enable-man]) ]) enable_man=no ]) ]) AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno) AC_MSG_CHECKING([whether to generate man pages]) AS_IF([ test "$enable_man" != no ], [ AC_MSG_RESULT([yes]) ], [ AC_MSG_RESULT([no]) ]) # Define these substitions here to keep all version information in one place. # For information on how to properly maintain the library version information, # refer to the libtool manual, section "Updating library version information": # http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html # # 1. Start with version information of ‘0:0:0’ for each libtool library. # 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. # 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’). # 4. If any interfaces have been added, removed, or changed since the last update, increment current, and set revision to 0. # 5. If any interfaces have been added since the last public release, then increment age. # 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], [2:0:2]) AC_SUBST([LIBPSL_VERSION], $VERSION) # Check for libicu HAVE_LIBICU=no AC_ARG_WITH(libicu, AC_HELP_STRING([--without-libicu], [build libpsl without IDNA/Punycode support]), [], [ # using pkg-config won't work on older systems like Ubuntu 12.04 LTS Server Edition 64bit OLDLIBS=$LIBS LIBS="-licuuc $LIBS" AC_MSG_CHECKING([for ICU unicode library]) AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[u_strToUTF8(NULL, 0, NULL, NULL, 0, NULL);]])], [HAVE_LIBICU=yes; AC_MSG_RESULT([yes]) AC_DEFINE([WITH_LIBICU], [1], [generate PSL data with IDNA2008 UTS#46 punycode])], [LIBS=$OLDLIBS; AC_MSG_ERROR([no working ICU unicode library was found])]) # AC_SEARCH_LIBS(uidna_close, icuuc, # [HAVE_LIBICU=yes; AC_DEFINE([WITH_LIBICU], [1], [generate PSL data with IDNA2008 UTS#46 punycode])], # [AC_MSG_ERROR(*** libicu was not found. Aborting.)], # -licudata ) # PKG_CHECK_MODULES(LIBICU, [icu-uc], # [HAVE_LIBICU=yes; AC_DEFINE([WITH_LIBICU], [1], [generate PSL data with IDNA2008 UTS#46 punycode])]) ]) # Check for enable/disable builtin PSL data AC_ARG_ENABLE(builtin, AS_HELP_STRING([--disable-builtin], [do not compile PSL data into library]), [ enable_builtin=no ], [ enable_builtin=yes AC_DEFINE([WITH_BUILTIN], [1], [compile PSL data into library]) AS_IF([test $HAVE_LIBICU != yes], [ # Check for idn2 fallback to generate punycode AC_CHECK_PROG(HAVE_IDN2, idn2, yes, AC_MSG_ERROR(Cannot find required tool 'idn2' as fallback.)) ]) ]) AM_CONDITIONAL([WITH_BUILTIN], [test $enable_builtin = yes]) # 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]) if test "${ac_enable_valgrind}" = "yes" ; then AC_CHECK_PROG(HAVE_VALGRIND, valgrind, yes, no) if test "$HAVE_VALGRIND" = "yes" ; then 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" else TESTS_INFO="Valgrind not found" fi else TESTS_INFO="Valgrind testing not enabled" fi # Check for custom PSL file AC_ARG_WITH(psl-file, AC_HELP_STRING([--with-psl-file=[PATH]], [path to PSL file]), PSL_FILE=$withval, PSL_FILE="\$(top_srcdir)/data/effective_tld_names.dat") AC_SUBST(PSL_FILE) # Check for custom PSL test file AC_ARG_WITH(psl-testfile, AC_HELP_STRING([--with-psl-testfile=[PATH]], [path to PSL test file]), PSL_TESTFILE=$withval, PSL_TESTFILE="\$(top_srcdir)/data/test_psl.txt") AC_SUBST(PSL_TESTFILE) # Override the template file name of the generated .pc file, so that there # 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 docs/libpsl/Makefile docs/libpsl/version.xml data/Makefile tests/Makefile libpsl.pc:libpsl.pc.in]) 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} ICU: ${HAVE_LIBICU} Builtin PSL: ${enable_builtin} PSL File: ${PSL_FILE} PSL Test File: ${PSL_TESTFILE} Tests: ${TESTS_INFO} ])