166 lines
5.8 KiB
Plaintext
166 lines
5.8 KiB
Plaintext
|
||
AC_INIT([libpsl], [0.3.1], [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 interfaces have been removed or changed since the last public release, then set age to 0.
|
||
AC_SUBST([LIBPSL_SO_VERSION], [1:1:1])
|
||
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 <unicode/ustring.h>]],
|
||
[[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_WARN([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])
|
||
])
|
||
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}
|
||
])
|