--- parser3/Attic/configure.in 2002/02/06 16:15:50 1.6 +++ parser3/Attic/configure.in 2013/07/29 09:57:58 1.195 @@ -1,333 +1,470 @@ -dnl Process this file with autoconf to produce a configure script. -AC_INIT(README) -AM_INIT_AUTOMAKE(parser, 3.0b, nodefine) +dnl Autoconf initialisation +AC_PREREQ(2.59) +AC_INIT(parser, 3.4.3b) +AC_CONFIG_SRCDIR(README) -dnl not perfect, but would do -P3S=`pwd` + +dnl Automake Initialisation +AM_INIT_AUTOMAKE + + +dnl Expand srcdir +P3S=`cd $srcdir/src ; pwd` AC_SUBST(P3S) -PARSER_VERSION=$VERSION -echo "/* automatically generated by configure */" > src/include/pa_version.h.new -echo "/* edit configure.in to change version number */" >> src/include/pa_version.h.new -echo "#define PARSER_VERSION \"$PARSER_VERSION\"" >> src/include/pa_version.h.new -cmp src/include/pa_version.h.new src/include/pa_version.h >/dev/null 2>&1 -if test $? -ne 0 ; then - rm -f src/include/pa_version.h && mv src/include/pa_version.h.new src/include/pa_version.h && \ - echo 'Updated src/include/pa_version.h' + +dnl Parser version update +AC_CANONICAL_HOST +AC_DEFINE_UNQUOTED(PARSER_VERSION,"$VERSION (compiled on $host)",parser version) + +AC_SUBST(host_os) +case $host_os in + *cygwin* ) AC_DEFINE(CYGWIN,,using cygwin building environment);; +esac + + +dnl Checks for programs +AC_PROG_INSTALL +AC_PROG_AWK + +AC_PROG_YACC +if test "$YACC" != "bison -y"; then + AC_MSG_WARN(to regenerate Parser grammar YOU WOULD NEED BISON) else - rm -f src/include/pa_version.h.new + AC_MSG_CHECKING(bison version) + oldIFS=$IFS; IFS=. + set `bison -V | sed -e 's/^GNU Bison version //' -e 's/^bison (GNU Bison) //' -e 's/$/./'` + IFS=$oldIFS + if test "$1" = "1" -a "$2" -lt "25"; then + AC_MSG_WARN(Bison 1.25 or newer needed to regenerate Parser compiler (found $1.$2).) + fi + AC_MSG_RESULT($1.$2 (ok)) fi -AC_PROG_INSTALL -AC_PROG_CC -AC_LANG_C AC_C_INLINE AC_PROG_CXX -AC_LANG_CPLUSPLUS +AC_PROG_CC +dnl most tests should be compiled with C compiler [especially qsort test] +AC_LANG_C -dnl Arguments -AC_ARG_ENABLE(string-origins, [ --disable-string-origins to switch off string origin tracking], +dnl Dll extension +AC_MSG_CHECKING(for dynamic-link library extension) +case "$host_os" in + *cygwin* ) dll_extension=dll;; + * ) dll_extension=so +esac +AC_MSG_RESULT($dll_extension) +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" +) + +AC_ARG_WITH(assertions, [ --with-assertions to enable assertions], + AC_MSG_WARN(enabling assertions) +, + AC_DEFINE(NDEBUG,,assertions disabled) +) + +AC_ARG_WITH(sjlj-exceptions,[ --with-sjlj-exceptions enable simple 'throw' from dynamic library], + AC_DEFINE(PA_WITH_SJLJ_EXCEPTIONS,,one can throw from dynamic library) +) + + +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], +[ + SAFE_MODE=$enableval +] +) + +if test "$SAFE_MODE" = "no"; then + AC_MSG_WARN(enabling reading of files belonging to group+user other then effective) +else + AC_DEFINE(PA_SAFE_MODE,,disabled reading of files belonging to group+user other then effective) +fi + + +dnl Disable execs argument +AC_ARG_ENABLE(execs, [ --disable-execs to disable any execs + (file::exec, file::cgi, unix mail:send)], [ if test "$enableval" = "no"; then - AC_DEFINE(NO_STRING_ORIGIN,,no string origin tracking) + AC_MSG_WARN(disabling file execs) + AC_DEFINE(NO_PA_EXECS,,pa_exec disabled) fi ] ) -AC_ARG_WITH(apache13,[ --with-apache13[=D] D is the Apache13 source distribution directory - builds library for apache_module using that dir - (do not add /src)], - APACHE13=$withval - if test \! -f "$APACHE13/src/include/httpd.h"; then - AC_MSG_ERROR($APACHE13 does not seem to be valid Apache13 source distribution directory) - 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], +[ +if test "$enableval" = "no"; then + AC_MSG_WARN(disabling stringstream usage) + AC_DEFINE(NO_STRINGSTREAM,,stringstream disabled) +fi +] ) -AC_SUBST(APACHE13) -AM_CONDITIONAL(COMPILE_APACHE13_MODULE, test -n "$APACHE13") -AC_ARG_WITH(pathlink,[ --with-pathlink[=LKEY] put dynamic libraries paths to binary - using linker key (-R, -rpath-link)], - LD_PATHLINK=$withval -) +dnl GC argument +AC_ARG_WITH(gc,[ --with-gc[=D] D is the directory where + Boehm garbage collecting library is installed],[ + + GC=$withval + GC_LIBS="$GC/libgc.la" + + if test -f $GC_LIBS; then + GC_OK="yes" + else + GC_LIBS="-L$GC -lgc" + fi + + if test "$GC" = "yes"; then + GC="" + GC_LIBS="-lgc" + AC_MSG_WARN([--with-gc value was not specified, hoping linker would find it]) + fi +],[ + GC_LIBS="-lgc" + AC_MSG_WARN([--with-gc was not specified, hoping linker would find it]) +]) + +if test -z "$GC_OK"; then + AC_MSG_CHECKING(for libgc) + SAVE_LIBS=$LIBS + LIBS="$LIBS $GC_LIBS" + AC_TRY_LINK([ extern int GC_dont_gc; ],[ GC_dont_gc=0; ], + AC_MSG_RESULT(yes) + , + AC_MSG_RESULT(no) + if test -z "$GC"; then + AC_MSG_ERROR(please specify path to libgc: --with-gc=D) + else + AC_MSG_ERROR($GC does not seem to be valid libgc installation directory) + fi + ) + LIBS=$SAVE_LIBS +fi + +AC_SUBST(GC_LIBS) -AC_ARG_WITH(gnome-xml,[ --with-gnome-xml[=D] D is the directory where + +dnl PCRE argument +AC_ARG_WITH(pcre,[ --with-pcre=D D 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]) + 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) + SAVE_LIBS=$LIBS + LIBS="$LIBS $PCRE_LIBS $PCRE_INCLUDES" + AC_TRY_LINK([ #include ],[ const char *v=pcre_version(); ], + AC_MSG_RESULT(yes) + , + AC_MSG_RESULT(no) + if test -z "$PCRE"; then + AC_MSG_ERROR(please specify path to PCRE: --with-pcre=D) + else + AC_MSG_ERROR($PCRE does not seem to be valid PCRE installation directory) + fi + ) + LIBS=$SAVE_LIBS +fi + +AC_SUBST(PCRE_INCLUDES) +AC_SUBST(PCRE_LIBS) + + +dnl XML/XSLT argument +AC_ARG_WITH(xml,[ --with-xml=D D is the directory where Gnome XML libraries are installed],[ - GNOME_XML=$withval - XMLBIN_DIR="$GNOME_XML/bin" - XMLINC_DIR="$GNOME_XML/include" - XMLLIB_DIR="$GNOME_XML/lib" - - if test \! -d $XMLBIN_DIR -o \! -d $XMLINC_DIR -o \! -d $XMLLIB_DIR; then - AC_MSG_ERROR($GNOME_XML does not seem to be valid Gnome installation directory) - fi - - AC_DEFINE(XML,,xml-abled parser) - - LIBXML2_SO_NAME=`cd $XMLLIB_DIR ; ls libxml2.?? libxml2.??? 2>/dev/null | grep -v \.la$ | sed 's/lib//' | sed 's/\..*//'` - if test -z "$LIBXML2_SO_NAME"; then - AC_MSG_ERROR($LIBXML_DIR does not containt XML2 dynamic library) - fi - LIBGDOME_SO_NAME=`cd $XMLLIB_DIR ; ls libgdome.?? libgdome.??? 2>/dev/null | grep -v \.la$ | sed 's/lib//' | sed 's/\..*//'` - if test -z "$LIBGDOME_SO_NAME"; then - AC_MSG_ERROR($LIBXML_DIR does not containt GDOME dynamic library) - fi - LIBXSLT_SO_NAME=`cd $XMLLIB_DIR ; ls libxslt.?? libxslt.??? 2>/dev/null | grep -v \.la$ | sed 's/lib//' | sed 's/\..*//'` - if test -z "$LIBXSLT_SO_NAME"; then - AC_MSG_ERROR($LIBXML_DIR does not containt XSLT dynamic library) - fi - LIBEXSLT_SO_NAME=`cd $XMLLIB_DIR ; ls libexslt.?? libexslt.??? 2>/dev/null | grep -v \.la$ | sed 's/lib//' | sed 's/\..*//'` - if test -z "$LIBEXSLT_SO_NAME"; then - AC_MSG_ERROR($LIBXML_DIR does not containt EXSLT dynamic library) - fi - - GLIB_CONFIG=$XMLBIN_DIR/glib-config - if test \! -x $GLIB_CONFIG; then - GLIB_CONFIG=glib-config - fi - GLIB_CFLAGS=`$GLIB_CONFIG --cflags` - GLIB_LIBS=`$GLIB_CONFIG --libs` - - XML_INCLUDES="$GLIB_CFLAGS -I$XMLINC_DIR -I$XMLINC_DIR/libgdome -I$XMLINC_DIR/libxml2" - XML_LIBS="-L$XMLLIB_DIR -lglib -l$LIBXML2_SO_NAME -l$LIBGDOME_SO_NAME -l$LIBXSLT_SO_NAME -l$LIBEXSLT_SO_NAME" - if test \! -z "$LD_PATHLINK"; then - XML_LIBS="$XML_LIBS -Wl,$LD_PATHLINK -Wl,$XMLLIB_DIR" - fi + + XML=$withval + XML_LIBS="-lxml2 -lxslt -lexslt" + + if test -z "$XML" -o "$XML" = "yes"; then + XML="" + XML_INCLUDES="-I/usr/include/libxml2" + AC_MSG_WARN([--with-xml value was not specified, hoping linker would find it]) + else + XML_INCLUDES="-I$XML/include -I$XML/include/libxml2" + + 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 + XML_LIBS="$XML/lib/libxml2.la $XML/lib/libxslt.la $XML/lib/libexslt.la" + XML_OK="yes" + fi + fi + + if test -z "$XML_OK"; then + AC_MSG_CHECKING(for xml) + SAVE_LIBS=$LIBS + LIBS="$LIBS $XML_LIBS $XML_INCLUDES" + AC_TRY_LINK([ #include ],[ const char *v=xsltEngineVersion; ], + AC_MSG_RESULT(yes) + , + AC_MSG_RESULT(no) + if test -z "$XML"; then + AC_MSG_ERROR(please specify path to Gnome XML libraries: --with-xml=D) + else + AC_MSG_ERROR($XML does not seem to be valid Gnome XML installation directory) + fi + ) + LIBS=$SAVE_LIBS + fi + AC_DEFINE(XML,,xml-abled parser) ]) + AC_SUBST(XML_INCLUDES) AC_SUBST(XML_LIBS) -AC_ARG_WITH(db2,[ --with-db2[=D] D is the DB2 installation directory - DO NOT FORGET TO COMPILE DB2 WITH EXCEPTIONS SUPPORT!], - DB2_INST=$withval - if test \! -f "$DB2_INST/include/db.h"; then - AC_MSG_ERROR($DB2_INST does not seem to be valid DB2 installation directory) - fi - if test \! -f "$DB2_INST/lib/libdb.a"; then - AC_MSG_ERROR($DB2_INST does not seem to be valid DB2 installation directory) - fi - - AC_MSG_CHECKING(version of LIBDB) - AC_TRY_COMPILE( - #include <$DB2_INST/include/db.h> - , - #ifdef DB_VERSION_MAJOR - # if DB_VERSION_MAJOR!=2 - # error Parser needs LIBDB of 2.x.x version to compile - # endif - #else - # error DB_VERSION_MAJOR not defined - #endif - ,[ - AC_MSG_RESULT(ok) - DB2=1 - AC_DEFINE(DB2,,DB2-abled parser) - DB2_INCLUDES="-I$DB2_INST/include" - DB2_LIBS="-L$DB2_INST/lib -ldb" - ], - AC_MSG_ERROR(bad, we need 2.x.x version) - ) + +dnl Mail receive argument +AC_ARG_WITH(mailreceive,[ --with-mailreceive=D is the directory where + Gnome MIME library is installed],[ + MIME=$withval + GLIB="glib-2.0" + GMIME="gmime-2.4" + + if test -z "$MIME" -o "$MIME" = "yes"; then + MIME="" + MIME_INCLUDES=`pkg-config --cflags $GMIME 2>/dev/null` + MIME_LIBS=`pkg-config --libs $GMIME 2>/dev/null` + AC_MSG_WARN([--with-mailreceive value was not specified, hoping linker would find Gnome MIME library]) + else + MIME_INCLUDES="-I$MIME/include/$GMIME" + MIME_LIBS="-l$GMIME" + if test -f $MIME/include/$GMIME/gmime/gmime.h -a -f $MIME/lib/lib$GMIME.la; then + MIME_LIBS="$MIME/lib/lib$GMIME.la" + if test -f $MIME/lib/lib$GLIB.la; then + MIME_INCLUDES="$MIME_INCLUDES -I$MIME/include/$GLIB -I$MIME/lib/$GLIB/include" + else + GLIB_INCLUDES=`pkg-config --cflags $GLIB 2>/dev/null` + MIME_INCLUDES="$MIME_INCLUDES $GLIB_INCLUDES" + fi + MIME_OK="yes" + fi + fi + + if test -z "$MIME_OK"; then + AC_MSG_CHECKING(for mime) + SAVE_LIBS=$LIBS + LIBS="$LIBS $MIME_LIBS $MIME_INCLUDES" + AC_TRY_LINK([ #include ],[ guint v=gmime_major_version; ], + AC_MSG_RESULT(yes) + , + AC_MSG_RESULT(no) + if test -z "$MIME"; then + AC_MSG_ERROR(please specify path to Gnome MIME library: --with-mailreceive=D) + else + AC_MSG_ERROR($MIME does not seem to be valid Gnome MIME installation directory) + fi + ) + LIBS=$SAVE_LIBS + fi + AC_DEFINE(WITH_MAILRECEIVE,,has \$mail:received) +]) + +AC_SUBST(MIME_INCLUDES) +AC_SUBST(MIME_LIBS) + + +dnl Sendmail argument +AC_ARG_WITH(sendmail,[ \"--with-sendmail=COMMAND\" forces this command to send mail. + example: \"--with-sendmail=/usr/sbin/sendmail -t\" + (makes parser ignore user-defined sendmail commands)], + AC_DEFINE_UNQUOTED(PA_FORCED_SENDMAIL,"$withval",parser uses this command instead of user-defined sendmail commands) ) -AC_SUBST(DB2_INCLUDES) -AC_SUBST(DB2_LIBS) -dnl AC_CANONICAL_SYSTEM -AC_CANONICAL_HOST -AC_SUBST(host_os) -dnl Checks for programs. -AC_PROG_INSTALL -AC_PROG_MAKE_SET -AC_PROG_RANLIB -AC_PROG_AWK +dnl Apache module argument +AC_ARG_WITH(apache,[ --with-apache=FILE FILE is the full path for APXS + builds apache DSO module using apxs],[ + APXS=$withval + + if test -z "$APXS" -o "$APXS" = "yes"; then + APXS=`which apxs 2>/dev/null` + if test -z "$APXS"; then + APXS=`which apxs2 2>/dev/null` + fi + fi + + APACHE=`$APXS -q TARGET 2>/dev/null` + + if test -z "$APACHE"; then + AC_MSG_ERROR($APXS does not seem to be valid apache apxs utility path) + fi + + APACHE_MAIN_INC=`$APXS -q INCLUDEDIR` + APACHE_EXTRA_INC=`$APXS -q EXTRA_INCLUDES 2>/dev/null` + APACHE_INC="-I$APACHE_MAIN_INC $APACHE_EXTRA_INC" + APACHE_CFLAGS=`$APXS -q CFLAGS` +]) +AC_SUBST(APACHE) +AC_SUBST(APACHE_INC) +AC_SUBST(APACHE_CFLAGS) +AM_CONDITIONAL(COMPILE_APACHE_MODULE, test -n "$APACHE") -AC_PROG_YACC -if test "$YACC" != "bison -y"; then - AC_MSG_WARN(to regenerate Parser grammar YOU WOULD NEED BISON) -else - AC_MSG_CHECKING(bison version) - oldIFS=$IFS; IFS=. - set `bison -V | sed -e 's/^GNU Bison version //'` - IFS=$oldIFS - if test "$1" = "1" -a "$2" -lt "25"; then - AC_MSG_WARN(Bison 1.25 or newer needed to regenerate Parser compiler (found $1.$2).) - fi - AC_MSG_RESULT($1.$2 (ok)) -fi dnl Enable building of the convenience library -dnl and set LIBLTDL accordingly -AC_LIBLTDL_CONVENIENCE(src/libltdl) -dnl Substitute INCLTDL and LIBLTDL in the Makefiles -AC_SUBST(INCLTDL) -AC_SUBST(LIBLTDL) -AC_SUBST(LIBADD_DL) -dnl Configure libtool -AM_PROG_LIBTOOL -AC_SUBST(LIBTOOL_DEPS) +LT_CONFIG_LTDL_DIR(src/lib/ltdl) +LT_INIT(dlopen win32-dll no-pic) +LTDL_INIT -dnl Configure libltdl -AC_CONFIG_SUBDIRS(src/libltdl) -dnl Checks for typedefs, structures, and compiler characteristics. +dnl Checks for typedefs, structures, and compiler characteristics +AC_C_BIGENDIAN( + AC_DEFINE(PA_BIG_ENDIAN,,compile for sparc processor) +, + AC_DEFINE(PA_LITTLE_ENDIAN,,compile for intel processor or compatible) +, + AC_MSG_ERROR(word endianness not determined for some obscure reason) +) AC_TYPE_SIZE_T +AC_TYPE_SSIZE_T +AC_TYPE_UINT8_T +AC_TYPE_UINT16_T +AC_TYPE_UINT32_T +AC_TYPE_UINT64_T -dnl Checks for header files. +AC_STRUCT_DIRENT_D_TYPE -AC_CHECK_HEADERS( -unistd.h \ -process.h \ -stddef.h \ -stdarg.h \ -fcntl.h \ -sys/stat.h \ -io.h \ -stdio.h \ -errno.h \ -ctype.h \ -math.h \ -time.h sys/time.h \ -stdlib.h \ -string.h \ -direct.h \ -setjmp.h \ -memory.h \ -new \ -sys/file.h \ -sys/locking.h \ -sys/types.h \ -sys/select.h \ -sys/resource.h -) +dnl Checks for C header files +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(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) -dnl Checks for libraries. -dnl Some systems (Solaris 2.x) require libnsl (Network Services Library) +dnl Checks for libraries case "$host" in + *-freebsd4*) + AC_DEFINE(FREEBSD4,,FreeBSD4X target platform) + ;; *-sunos5.6* | *-solaris2.6*) - AC_CHECK_LIB(xnet, main) + AC_CHECK_LIB(xnet, main) ;; *-sunos5* | *-solaris2*) - AC_CHECK_LIB(socket, main) - AC_CHECK_LIB(nsl, main) + AC_CHECK_LIB(socket, main) + AC_CHECK_LIB(nsl, main) ;; *-nec-sysv4*) - AC_CHECK_LIB(nsl, gethostbyname) - AC_CHECK_LIB(socket, socket) + AC_CHECK_LIB(nsl, gethostbyname) + AC_CHECK_LIB(socket, socket) ;; *-cygwin*) - AC_DEFINE(WIN32,,Windows32 target platform) - AC_CHECK_LIB(wsock32, socket) + AC_DEFINE(WIN32,,Windows32 target platform) ;; esac AC_CHECK_LIB(m, sin) +AC_CHECK_LIB(crypt, crypt) -dnl Checks for functions. -AC_CHECK_FUNCS( -trunc \ -round \ -sign \ -flock \ -_locking \ -lockf \ -getrusage -) +dnl Checks for functions +AC_CHECK_FUNCS(flock _locking fcntl lockf ftruncate fchmod) +AC_CHECK_FUNCS(getrusage gettimeofday crypt sigsetjmp siglongjmp unsetenv) -dnl We require qsort(3) and select(2). -AC_CHECK_FUNCS(qsort, , AC_MSG_ERROR([No qsort library function.])) -AC_CHECK_FUNCS(select, , AC_MSG_ERROR([No select library function.])) +dnl on some linux[seen on 2.4] it's a macro +PA_CHECK_SIGSETJMP -AC_MSG_CHECKING(whether compiler supports pragma pack) -AC_TRY_COMPILE( -, -#pragma pack(1) -struct must_be_1_byte { - char c; -}; -#pragma pack() -if(sizeof(must_be_1_byte)!=1) - return 1; -,[ - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_PRAGMA_PACK,,compiler supports pragma pack) -], - AC_MSG_RESULT(no) -) -AC_MSG_CHECKING(for set_new_handler) -AC_TRY_COMPILE( -#ifdef HAVE_NEW -#include -#endif -void failed_new() {} -, -std::set_new_handler(failed_new); -,[ - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_SET_NEW_HANDLER,,library has set_new_handler func) -], - AC_MSG_RESULT(no) -) - - -dnl AC_ARG_ENABLE(db, [ --enable-db to enable 'hashfile' parser class], -dnl [ -dnl if test "$enableval" != "no"; then -dnl AC_CHECK_HEADERS(db.h) -dnl AC_CHECK_LIB(db, __db_open) -dnl fi -dnl ] -dnl ) - -dnl Apache libs -APACHE_LIBS=$LIBS -AC_CHECK_LIB(stdc++, __builtin_new, - APACHE_LIBS="$APACHE_LIBS -lstdc++" -) -AC_SUBST(APACHE_LIBS) - - -dnl install directories +dnl see comment above +AC_LANG_PUSH(C++) +PA_CHECK_MATH_FUNCS_ONE_ARG(trunc round sign) +AC_LANG_POP -# expand apostrophed -e_prefix=$prefix -test "x$e_prefix" = xNONE && e_prefix=$ac_default_prefix -e_sysconfdir=$sysconfdir -test "$e_sysconfdir" = "\${prefix}/etc" && e_sysconfdir="${e_prefix}/etc" - -dnl this is used in targets/cgi/parser3.C to load root config +dnl We require qsort(3) +AC_CHECK_FUNCS(qsort, , AC_MSG_ERROR([No qsort library function.])) -rootconfigdir=$e_sysconfdir -AC_SUBST(rootconfigdir) -dnl these are used to fill in etc/parser3.conf +dnl For correct mail receiving we need to know local offset from GMT +dnl it be timezone+(daylight?60*60*sign(timezone):0) +dnl or it can be tm.tm_gmtoff or it can be tm.tm_tzadj -charsetsdir=$e_sysconfdir/parser3.charsets -AC_SUBST(charsetsdir) +AC_MSG_CHECKING(for timezone variable) +AC_TRY_COMPILE([#include ], [time_t test=timezone;], AC_DEFINE(HAVE_TIMEZONE) AC_MSG_RESULT(yes), AC_MSG_RESULT(no)) -# expand apostrophed -e_libdir=$libdir -if test "$e_libdir" = "\${exec_prefix}/lib"; then +AC_MSG_CHECKING(for daylight variable) +AC_TRY_COMPILE([#include ], [int test=daylight;], AC_DEFINE(HAVE_DAYLIGHT) AC_MSG_RESULT(yes), AC_MSG_RESULT(no)) - # Let make expand exec_prefix. - e_exec_prefix=$exec_prefix - test "x$e_exec_prefix" = xNONE && e_exec_prefix=$prefix +AC_MSG_CHECKING(for tm_gmtoff in struct tm) +AC_TRY_COMPILE([#include ], [struct tm tm; tm.tm_gmtoff=0;], AC_DEFINE(HAVE_TM_GMTOFF) AC_MSG_RESULT(yes), AC_MSG_RESULT(no)) - # expand apostrophed - test "$e_libdir" = "\${exec_prefix}/lib" && e_libdir="${e_exec_prefix}/lib" -fi +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)) -sqldriversdir=$e_libdir -AC_SUBST(sqldriversdir) - -dnl Output makefiles +dnl Output header and makefiles +AH_TEMPLATE([HAVE_DAYLIGHT],[Define if you have daylight external variable in ]) +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 ]) AM_CONFIG_HEADER(src/include/pa_config_auto.h) -AC_OUTPUT(Makefile src/Makefile src/libltdl/Makefile src/types/Makefile src/classes/Makefile src/classes/gd/Makefile src/main/Makefile src/pcre/Makefile src/targets/Makefile src/targets/cgi/pa_config_paths.h src/targets/cgi/Makefile src/targets/apache13/Makefile src/targets/apache13/p3runConfigure etc/parser3.charsets/Makefile etc/parser3.conf etc/Makefile) + +AC_OUTPUT( + Makefile + src/Makefile + src/types/Makefile + src/classes/Makefile + src/include/Makefile + src/main/Makefile + src/sql/Makefile + src/lib/Makefile + src/lib/gd/Makefile + src/lib/smtp/Makefile + src/lib/gc/Makefile + src/lib/gc/include/Makefile + src/lib/pcre/Makefile + src/lib/cord/Makefile + src/lib/cord/include/Makefile + src/lib/cord/include/private/Makefile + src/lib/md5/Makefile + src/lib/sdbm/Makefile + src/lib/sdbm/pa-include/Makefile + src/lib/json/Makefile + src/lib/memcached/Makefile + src/lib/curl/Makefile + src/targets/Makefile + src/targets/cgi/Makefile + src/targets/apache/Makefile + src/targets/isapi/Makefile + etc/Makefile + etc/parser3.charsets/Makefile + bin/Makefile + bin/auto.p.dist)