--- parser3/Attic/configure.in 2002/04/29 11:46:59 1.21 +++ parser3/Attic/configure.in 2002/12/09 09:18:48 1.52 @@ -1,6 +1,6 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(README) -AM_INIT_AUTOMAKE(parser, 3.0, nodefine) +AM_INIT_AUTOMAKE(parser, 3.0.HEAD, nodefine) dnl expand srcdir P3S=`cd $srcdir/src ; pwd` @@ -18,13 +18,36 @@ else rm -f $srcdir/src/include/pa_version.h.new fi +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 + +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 the order of C, C++ is important AC_PROG_CC AC_LANG_C AC_C_INLINE AC_PROG_CXX AC_LANG_CPLUSPLUS - dnl Arguments AC_ARG_ENABLE(link-libstdcpp, [ --disable-link-libstdcpp to disable libstdc++ linkage, @@ -96,15 +119,29 @@ PA_SUBSTCHARSET(windows-1257,windows1257 PA_SUBSTCHARSET(koi8-r,koi8r) +AC_MSG_CHECKING(for dynamic-link library extension) +case "$host_os" in +hpux9* | hpux10* | hpux11*) + dll_extension=sl + ;; +cygwin) + dll_extension=dll + ;; +*) + dll_extension=so +esac +AC_MSG_RESULT($dll_extension) +AC_SUBST(dll_extension) + AC_ARG_WITH(mysql-client,[ --with-mysql-client=mysqlclientlib?withparams MySQL client dynamic library to root config], mysql_client=$withval , AC_MSG_CHECKING(for mysql client) for lib in \ - /usr/local/lib/mysql/libmysqlclient.so \ - /usr/local/lib/libmysqlclient.so \ - /usr/lib/libmysqlclient.so; do + /usr/local/lib/mysql/libmysqlclient.$dll_extension \ + /usr/local/lib/libmysqlclient.$dll_extension \ + /usr/lib/libmysqlclient.$dll_extension; do if test -f $lib; then mysql_client=$lib; fi done @@ -124,9 +161,9 @@ AC_ARG_WITH(pgsql-client,[ --with-pgsql , AC_MSG_CHECKING(for pgsql client) for lib in \ - /usr/local/pgsql/lib/libpq.so \ - /usr/local/lib/libpq.so \ - /usr/lib/libpq.so; do + /usr/local/pgsql/lib/libpq.$dll_extension \ + /usr/local/lib/libpq.$dll_extension \ + /usr/lib/libpq.$dll_extension; do if test -f $lib; then pgsql_client=$lib; fi done @@ -145,7 +182,7 @@ AC_ARG_WITH(oracle-client,[ --with-orac oracle_client=$withval , AC_MSG_CHECKING(for oracle client) - lib=$ORACLE_HOME/lib/libclntsh.so + lib=$ORACLE_HOME/lib/libclntsh.$dll_extension if test -f $lib; then oracle_client=$lib; fi if test -z "$oracle_client"; then @@ -165,6 +202,9 @@ AC_ARG_WITH(pathlink,[ --with-pathlink= using linker key (-R, -rpath-link)], LD_PATHLINK=$withval ) +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) +) AC_ARG_WITH(glib-config,[ --with-glib-config=FILE FILE is glib library @@ -183,7 +223,7 @@ AC_ARG_WITH(shared-xml,[ --with-shared- AC_MSG_ERROR($GNOME_XML does not seem to be valid Gnome installation directory) fi - AC_DEFINE(XML,,xml-abled parser) + AC_DEFINE(XML,,xml-abled parser (uses shared library)) LIBXML2_SO_NAME=`cd $XMLLIB ; ls libxml2.?? libxml2.??? 2>/dev/null | grep -v \.la$ | sed 's/lib//' | sed 's/\..*//'` LIBGDOME_SO_NAME=`cd $XMLLIB ; ls libgdome.?? libgdome.??? 2>/dev/null | grep -v \.la$ | sed 's/lib//' | sed 's/\..*//'` @@ -205,7 +245,6 @@ AC_ARG_WITH(shared-xml,[ --with-shared- XML_LIBS="$XML_LIBS -Wl,$LD_PATHLINK -Wl,$XMLLIB" fi ]) - AC_ARG_WITH(static-xml,[ --with-static-xml=D D is the directory where Gnome XML libraries are installed (static libs)],[ GNOME_XML=$withval @@ -217,7 +256,7 @@ AC_ARG_WITH(static-xml,[ --with-static- AC_MSG_ERROR($GNOME_XML does not seem to be valid Gnome installation directory) fi - AC_DEFINE(XML,,xml-abled parser) + AC_DEFINE(XML,,xml-abled parser (uses static library)) if test -z "$GLIB_CONFIG"; then GLIB_CONFIG=$XMLBIN/glib-config @@ -238,6 +277,68 @@ changequote([, ])dnl AC_SUBST(XML_INCLUDES) AC_SUBST(XML_LIBS) +AC_ARG_WITH(shared-mailreceive,[ --with-shared-mailreceive=D is the directory where + Gnome MIME library is installed (shared lib)],[ + GNOME_MIME=$withval + MIMEBIN="$GNOME_MIME/bin" + MIMEINC="$GNOME_MIME/include" + MIMELIB="$GNOME_MIME/lib" + + if test \! -d $MIMEBIN -o \! -d $MIMEINC -o \! -d $MIMELIB; then + AC_MSG_ERROR($GNOME_MIME does not seem to be valid Gnome installation directory) + fi + + AC_DEFINE(WITH_MAILRECEIVE,,has \$mail:received (uses shared library)) + + LIBMIME_SO_NAME=`cd $MIMELIB ; ls libgmime.?? libgmime.??? 2>/dev/null | grep -v \.la$ | sed 's/lib//' | sed 's/\..*//'` + + if test -z "$GLIB_CONFIG"; then + GLIB_CONFIG=$MIMEBIN/glib-config + if test \! -x $GLIB_CONFIG; then + GLIB_CONFIG=glib-config + fi + fi + GLIB_CFLAGS=`$GLIB_CONFIG --cflags` + GLIB_LIBS=`$GLIB_CONFIG --libs` + + MIME_INCLUDES="$GLIB_CFLAGS -I$MIMEINC/gmime" + MIME_LIBS="$GLIB_LIBS -L$MIMELIB -l$LIBMIME_SO_NAME" + if test \! -z "$LD_PATHLINK"; then + MIME_LIBS="$MIME_LIBS -Wl,$LD_PATHLINK -Wl,$MIMELIB" + fi +]) +AC_ARG_WITH(static-mailreceive,[ --with-static-mailreceive=D is the directory where + Gnome MIME library is installed (static lib)],[ + GNOME_MIME=$withval + MIMEBIN="$GNOME_MIME/bin" + MIMEINC="$GNOME_MIME/include" + MIMELIB="$GNOME_MIME/lib" + + if test \! -d $MIMEBIN -o \! -d $MIMEINC -o \! -d $MIMELIB; then + AC_MSG_ERROR($GNOME_MIME does not seem to be valid Gnome installation directory) + fi + + AC_DEFINE(WITH_MAILRECEIVE,,has \$mail:received (uses static library)) + + if test -z "$GLIB_CONFIG"; then + GLIB_CONFIG=$MIMEBIN/glib-config + if test \! -x $GLIB_CONFIG; then + GLIB_CONFIG=glib-config + fi + fi + GLIB_CFLAGS=`$GLIB_CONFIG --cflags` + +dnl '-L/usr/local/lib -lglib' -> /usr/local/lib +changequote(, )dnl + GLIB_DIR=`$GLIB_CONFIG --libs | sed 's/.*-L\([^ ]*\).*/\1/'` + GLIB_NAME=`$GLIB_CONFIG --libs | sed 's/.*-l\([^ ]*\).*/\1/'` +changequote([, ])dnl + MIME_INCLUDES="$GLIB_CFLAGS -I$MIMEINC/gmime" + MIME_LIBS="$MIMELIB/libgmime.a $GLIB_DIR/lib$GLIB_NAME.a" +]) +AC_SUBST(MIME_INCLUDES) +AC_SUBST(MIME_LIBS) + AC_ARG_WITH(sendmail,[ \"--with-sendmail=COMMAND\" forces this command to send mail. example: \"--with-sendmail=/usr/sbin/sendmail -t\" @@ -258,40 +359,16 @@ AC_SUBST(APACHE13) AM_CONDITIONAL(COMPILE_APACHE13_MODULE, test -n "$APACHE13") -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 - -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) +AC_LIBLTDL_CONVENIENCE(src/lib/ltdl) dnl Substitute INCLTDL and LIBLTDL in the Makefiles AC_SUBST(INCLTDL) AC_SUBST(LIBLTDL) dnl Configure libltdl -AC_CONFIG_SUBDIRS(src/libltdl) -dnl moved from src/libltdl/configure.in +AC_CONFIG_SUBDIRS(src/lib/ltdl) +dnl copied from lib/libltdl/configure.in [can not move, they need this info to detect other vitals, ex. NEED_USCORE] LIBADD_DL= AC_CHECK_LIB(dl, dlopen, [AC_DEFINE(HAVE_LIBDL, 1) LIBADD_DL="-ldl"], [AC_CHECK_FUNC(dlopen, [AC_DEFINE(HAVE_LIBDL, 1)])]) @@ -311,12 +388,17 @@ fi dnl Checks for typedefs, structures, and compiler characteristics. AC_TYPE_SIZE_T +dnl gmime +AC_CHECK_TYPE(off_t, long) +AC_CHECK_TYPE(ssize_t, int) + dnl Checks for header files. AC_HEADER_TIME AC_CHECK_HEADERS( +signal.h \ unistd.h \ process.h \ stddef.h \ @@ -328,6 +410,7 @@ stdio.h \ errno.h \ ctype.h \ math.h \ +crypt.h \ time.h sys/time.h \ stdlib.h \ string.h \ @@ -339,7 +422,12 @@ sys/file.h \ sys/locking.h \ sys/types.h \ sys/select.h \ -sys/resource.h +sys/resource.h \ +winsock.h \ +sys/socket.h \ +netinet/in.h \ +arpa/inet.h \ +netdb.h ) dnl Checks for libraries. @@ -361,10 +449,16 @@ case "$host" in AC_DEFINE(WIN32,,Windows32 target platform) AC_CHECK_LIB(wsock32, socket) ;; +# never tested this, only theoretically by letter from demos about parser2 build + *-hpux*) + AC_CHECK_LIB(nsl, main) + ;; esac AC_CHECK_LIB(m, sin) +AC_CHECK_LIB(crypt, crypt) + dnl Checks for functions. AC_CHECK_FUNCS( @@ -375,7 +469,10 @@ flock \ _locking \ fcntl \ lockf \ -getrusage +getrusage \ +gettimeofday \ +crypt \ +sigsetjmp siglongjmp ) dnl We require qsort(3) and select(2). @@ -383,17 +480,56 @@ 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 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 +dnl or it can be tm.tm_tzadj + +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)) + +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)) + +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)) + +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(whether compiler supports pragma pack) AC_TRY_COMPILE( -, #pragma pack(1) -struct must_be_1_byte { +struct _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) ], @@ -451,11 +587,6 @@ test "x$e_prefix" = xNONE && e_prefix=$a 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 - -rootconfigdir=$e_sysconfdir -AC_SUBST(rootconfigdir) - dnl these are used to fill in etc/parser3.conf charsetsdir=$e_sysconfdir/parser3.charsets @@ -480,4 +611,4 @@ AC_SUBST(sqldriversdir) dnl Output makefiles 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/classes/smtp/Makefile src/include/Makefile src/main/Makefile src/sql/Makefile src/patches/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 src/targets/isapi/Makefile etc/parser3.charsets/Makefile etc/parser3.conf etc/Makefile) +AC_OUTPUT(Makefile src/Makefile src/types/Makefile src/classes/Makefile src/classes/gd/Makefile src/classes/smtp/Makefile src/include/Makefile src/main/Makefile src/sql/Makefile src/lib/Makefile src/lib/ltdl/Makefile src/lib/pcre/Makefile src/lib/md5/Makefile src/lib/patches/Makefile src/targets/Makefile src/targets/cgi/Makefile src/targets/apache13/Makefile src/targets/apache13/hook/Makefile src/targets/apache13/p3runConfigure src/targets/isapi/Makefile etc/Makefile etc/parser3.charsets/Makefile bin/Makefile bin/auto.p.dist)