--- parser3/configure.ac 2015/09/03 18:05:38 1.1 +++ parser3/configure.ac 2024/09/10 19:12:59 1.57 @@ -1,10 +1,10 @@ -dnl Autoconf initialisation +dnl Autoconf initialization AC_PREREQ(2.59) -AC_INIT(parser, 3.4.4b) +AC_INIT(parser, 3.4.7b) AC_CONFIG_SRCDIR(README) -dnl Automake Initialisation +dnl Automake Initialization AM_INIT_AUTOMAKE @@ -61,7 +61,22 @@ AC_SUBST(dll_extension) dnl Misc arguments AC_ARG_WITH(build-warnings, [ --with-build-warnings to enable build-time compiler warnings if gcc is used], AC_MSG_WARN(enabling compiler warnings) - CXXFLAGS="$CXXFLAGS -W -Wall -Wstrict-prototypes -Wmissing-prototypes" + CXXFLAGS="$CXXFLAGS -Wextra -Wall -Wno-parentheses" +) + +AC_ARG_WITH(coverage, [ --with-coverage to enable gcov code coverage support], + AC_MSG_WARN(enabling gcov support) + CFLAGS=`echo "$CFLAGS" | $SED -e 's/-O[0-9]*//g'` + CXXFLAGS=`echo "$XXCFLAGS" | $SED -e 's/-O[0-9]*//g'` + CFLAGS="$CFLAGS -O0 -fprofile-arcs -ftest-coverage" + CXXFLAGS="$CXXFLAGS -O0 -fprofile-arcs -ftest-coverage" + LDFLAGS="$LDFLAGS -lgcov" +) + +AC_ARG_WITH(profiler, [ --with-profiler to enable gprof code profiler support], + AC_MSG_WARN(enabling gprof support) + CFLAGS="$CFLAGS -O0 -pg -g" + CXXFLAGS="$CXXFLAGS -O0 -pg -g" ) AC_ARG_WITH(assertions, [ --with-assertions to enable assertions], @@ -70,11 +85,16 @@ AC_ARG_WITH(assertions, [ --with-assert AC_DEFINE(NDEBUG,,assertions disabled) ) -AC_ARG_WITH(sjlj-exceptions,[ --with-sjlj-exceptions enable simple 'throw' from dynamic library], +AC_ARG_WITH(sjlj-exceptions, [ --with-sjlj-exceptions to enable simple 'throw' from dynamic library], AC_DEFINE(PA_WITH_SJLJ_EXCEPTIONS,,one can throw from dynamic library) ) +AC_ARG_WITH(system-cfg, [ --with-system-cfg=FILE to specify system-wide auto.p], + AC_DEFINE_UNQUOTED(SYSTEM_CONFIG_FILE,"$withval",system-wide auto.p) +) + + dnl Safe mode argument AC_ARG_ENABLE(safe-mode, [ --disable-safe-mode to enable reading and executing files belonging to group+user other then effective], @@ -103,8 +123,8 @@ fi dnl String stream argument -AC_ARG_ENABLE(stringstream, [ --disable-stringstream to disable stringstream usage. - when disabled table.save use more memory but it's safer on freebsd 4.x], +AC_ARG_ENABLE(stringstream, [ --disable-stringstream to disable stringstream usage. + when disabled table.save uses more memory, but more compilers are supported], [ if test "$enableval" = "no"; then AC_MSG_WARN(disabling stringstream usage) @@ -115,7 +135,7 @@ fi dnl GC argument -AC_ARG_WITH(gc,[ --with-gc[=D] D is the directory where +AC_ARG_WITH(gc,[ --with-gc[=DIR] DIR is the directory where Boehm garbage collecting library is installed],[ GC=$withval @@ -146,7 +166,7 @@ if test -z "$GC_OK"; then , AC_MSG_RESULT(no) if test -z "$GC"; then - AC_MSG_ERROR(please specify path to libgc: --with-gc=D) + AC_MSG_ERROR(please specify path to libgc: --with-gc=DIR) else AC_MSG_ERROR($GC does not seem to be valid libgc installation directory) fi @@ -158,32 +178,52 @@ AC_SUBST(GC_LIBS) dnl PCRE argument -AC_ARG_WITH(pcre,[ --with-pcre=D D is the directory where +AC_ARG_WITH(pcre,[ --with-pcre=DIR DIR is the directory where PCRE library is installed],[ PCRE=$withval - PCRE_INCLUDES="-I$PCRE/include" - PCRE_LIBS="$PCRE/lib/libpcre.la" - - if test -f $PCRE/include/pcre.h -a -f $PCRE_LIBS; then - PCRE_OK="yes" - else - PCRE_LIBS="-L$PCRE -lpcre" - fi if test "$PCRE" = "yes"; then PCRE="" - PCRE_LIBS="-lpcre" - PCRE_INCLUDES="" AC_MSG_WARN([--with-pcre value was not specified, hoping linker would find it]) + else + PCRE_INCLUDES="-I$PCRE/include" + + if test -f $PCRE/include/pcre.h -a -f $PCRE/lib/libpcre.la; then + PCRE_OK="yes" + PCRE_LIBS="$PCRE/lib/libpcre.la" + else + if test -f $PCRE/include/pcre2.h -a -f $PCRE/lib/libpcre2-8.la; then + PCRE_OK="yes" + PCRE_LIBS="$PCRE/lib/libpcre2-8.la" + AC_DEFINE(HAVE_PCRE2,,PCRE2 is available) + else + PCRE_LIBS="-L$PCRE/lib" + fi + fi fi ],[ - PCRE_LIBS="-lpcre" - PCRE_INCLUDES="" AC_MSG_WARN([--with-pcre was not specified, hoping linker would find it]) ]) if test -z "$PCRE_OK"; then - AC_MSG_CHECKING(for prce) + AC_MSG_CHECKING(for pcre2) + SAVE_LIBS=$LIBS + LIBS="$LIBS $PCRE_LIBS $PCRE_INCLUDES -lpcre2-8" + AC_TRY_LINK([ #define PCRE2_CODE_UNIT_WIDTH 8 +#include ],[ void *v=pcre2_general_context_create(0,0,0); ], + AC_MSG_RESULT(yes) + PCRE_LIBS="$PCRE_LIBS -lpcre2-8" + AC_DEFINE(HAVE_PCRE2,,PCRE2 is available) + PCRE_OK="yes" + , + AC_MSG_RESULT(no) + ) + LIBS=$SAVE_LIBS +fi + +if test -z "$PCRE_OK"; then + AC_MSG_CHECKING(for pcre) + PCRE_LIBS="$PCRE_LIBS -lpcre" SAVE_LIBS=$LIBS LIBS="$LIBS $PCRE_LIBS $PCRE_INCLUDES" AC_TRY_LINK([ #include ],[ const char *v=pcre_version(); ], @@ -191,7 +231,7 @@ if test -z "$PCRE_OK"; then , AC_MSG_RESULT(no) if test -z "$PCRE"; then - AC_MSG_ERROR(please specify path to PCRE: --with-pcre=D) + AC_MSG_ERROR(please specify path to PCRE: --with-pcre=DIR) else AC_MSG_ERROR($PCRE does not seem to be valid PCRE installation directory) fi @@ -204,7 +244,7 @@ AC_SUBST(PCRE_LIBS) dnl XML/XSLT argument -AC_ARG_WITH(xml,[ --with-xml=D D is the directory where +AC_ARG_WITH(xml,[ --with-xml=DIR DIR is the directory where Gnome XML libraries are installed],[ XML=$withval @@ -216,6 +256,7 @@ AC_ARG_WITH(xml,[ --with-xml=D AC_MSG_WARN([--with-xml value was not specified, hoping linker would find it]) else XML_INCLUDES="-I$XML/include -I$XML/include/libxml2" + XML_LIBS="-L$XML/lib $XML_LIBS" if test -f $XML/include/libxslt/xslt.h -a -f $XML/lib/libxml2.la \ -a -f $XML/lib/libxslt.la -a -f $XML/lib/libexslt.la; then @@ -233,7 +274,7 @@ AC_ARG_WITH(xml,[ --with-xml=D , AC_MSG_RESULT(no) if test -z "$XML"; then - AC_MSG_ERROR(please specify path to Gnome XML libraries: --with-xml=D) + AC_MSG_ERROR(please specify path to Gnome XML libraries: --with-xml=DIR) else AC_MSG_ERROR($XML does not seem to be valid Gnome XML installation directory) fi @@ -248,7 +289,7 @@ AC_SUBST(XML_LIBS) dnl Mail receive argument -AC_ARG_WITH(mailreceive,[ --with-mailreceive=D is the directory where +AC_ARG_WITH(mailreceive,[ --with-mailreceive=DIR is the directory where Gnome MIME library is installed],[ MIME=$withval GLIB="glib-2.0" @@ -258,6 +299,11 @@ AC_ARG_WITH(mailreceive,[ --with-mailre MIME="" MIME_INCLUDES=`pkg-config --cflags $GMIME 2>/dev/null` MIME_LIBS=`pkg-config --libs $GMIME 2>/dev/null` + if test -z "$MIME_LIBS"; then + GMIME="gmime-3.0" + MIME_INCLUDES=`pkg-config --cflags $GMIME 2>/dev/null` + MIME_LIBS=`pkg-config --libs $GMIME 2>/dev/null` + fi AC_MSG_WARN([--with-mailreceive value was not specified, hoping linker would find Gnome MIME library]) else MIME_INCLUDES="-I$MIME/include/$GMIME" @@ -283,7 +329,7 @@ AC_ARG_WITH(mailreceive,[ --with-mailre , AC_MSG_RESULT(no) if test -z "$MIME"; then - AC_MSG_ERROR(please specify path to Gnome MIME library: --with-mailreceive=D) + AC_MSG_ERROR(please specify path to Gnome MIME library: --with-mailreceive=DIR) else AC_MSG_ERROR($MIME does not seem to be valid Gnome MIME installation directory) fi @@ -365,7 +411,7 @@ AC_HEADER_STDC AC_HEADER_TIME AC_CHECK_HEADERS(stdio.h sys/types.h sys/stat.h stdlib.h stddef.h memory.h string.h strings.h inttypes.h stdint.h unistd.h) -AC_CHECK_HEADERS(assert.h limits.h ctype.h math.h process.h stdarg.h setjmp.h signal.h) +AC_CHECK_HEADERS(assert.h limits.h ctype.h math.h process.h stdarg.h setjmp.h signal.h pthread.h) AC_CHECK_HEADERS(errno.h dirent.h fcntl.h io.h sys/file.h sys/locking.h sys/select.h sys/resource.h sys/wait.h) AC_CHECK_HEADERS(sys/socket.h netinet/in.h arpa/inet.h netdb.h) @@ -373,7 +419,10 @@ AC_CHECK_HEADERS(sys/socket.h netinet/in dnl Checks for libraries case "$host" in *-freebsd4*) - AC_DEFINE(FREEBSD4,,FreeBSD4X target platform) + AC_DEFINE(FREEBSD4,,FreeBSD4.X target platform) + ;; + *-freebsd1*) + AC_DEFINE(FREEBSD1X,,FreeBSD1X.X target platform) ;; *-sunos5.6* | *-solaris2.6*) AC_CHECK_LIB(xnet, main) @@ -406,7 +455,7 @@ PA_CHECK_SIGSETJMP dnl see comment above AC_LANG_PUSH(C++) -PA_CHECK_MATH_FUNCS_ONE_ARG(trunc round sign) +PA_CHECK_MATH_FUNCS_ONE_ARG(trunc round sign isfinite) AC_LANG_POP @@ -427,6 +476,15 @@ AC_TRY_COMPILE([#include ], [str AC_MSG_CHECKING(for tm_tzadj in struct tm) AC_TRY_COMPILE([#include ], [struct tm tm; tm.tm_tzadj=0;], AC_DEFINE(HAVE_TM_TZADJ) AC_MSG_RESULT(yes), AC_MSG_RESULT(no)) +AC_MSG_CHECKING(for gettid) +AC_TRY_COMPILE([ +#include +#include +], [uint tid=syscall(__NR_gettid);], AC_DEFINE(HAVE_GETTID) AC_MSG_RESULT(yes), AC_MSG_RESULT(no)) + +AC_MSG_CHECKING(for TLS) +AC_TRY_COMPILE([__thread int i=0;], [], AC_DEFINE(HAVE_TLS) AC_MSG_RESULT(yes), AC_MSG_RESULT(no)) + AC_MSG_CHECKING(for 0..9999 year date range support) AC_TRY_RUN([ #include @@ -449,6 +507,8 @@ dnl Output header and makefiles AH_TEMPLATE([HAVE_TIMEZONE],[Define if you have timezone external variable in ]) AH_TEMPLATE([HAVE_TM_GMTOFF],[Define if you have tm_gmtoff member of tm structure in ]) AH_TEMPLATE([HAVE_TM_TZADJ],[Define if you have tm_tzadj member of tm structure in ]) +AH_TEMPLATE([HAVE_GETTID],[Define if you have gettid()]) +AH_TEMPLATE([HAVE_TLS],[Define if you have Thread-Local Storage]) AH_TEMPLATE([PA_DATE64],[Define if you have 0..9999 year date range support]) AM_CONFIG_HEADER(src/include/pa_config_auto.h) @@ -483,5 +543,4 @@ AC_OUTPUT( src/targets/isapi/Makefile etc/Makefile etc/parser3.charsets/Makefile - bin/Makefile - bin/auto.p.dist) + etc/auto.p)