--- parser3/Attic/configure.in 2002/02/08 10:20:08 1.8 +++ parser3/Attic/configure.in 2002/06/20 16:31:06 1.29.2.2 @@ -1,9 +1,9 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(README) -AM_INIT_AUTOMAKE(parser, 3.0b, nodefine) +AM_INIT_AUTOMAKE(parser, 3.0.0003, nodefine) dnl expand srcdir -P3S=`cd $srcdir ; pwd` +P3S=`cd $srcdir/src ; pwd` AC_SUBST(P3S) PARSER_VERSION=$VERSION @@ -27,110 +27,236 @@ AC_LANG_CPLUSPLUS dnl Arguments +AC_ARG_ENABLE(link-libstdcpp, [ --disable-link-libstdcpp to disable libstdc++ linkage, + if you belive you do not need one], +[ +LINK_LIBSTDCPP_FLAG=$enableval +if test "$enableval" = "no"; then + AC_MSG_WARN(disabling libstdc++ linkage) +fi +] +) +AM_CONDITIONAL(DO_NOT_LINK_LIBSTDCPP, test "$LINK_LIBSTDCPP_FLAG" = "no") + AC_ARG_ENABLE(string-origins, [ --disable-string-origins to switch off string origin tracking], [ if test "$enableval" = "no"; then + AC_MSG_WARN(disabling string origin tracking) AC_DEFINE(NO_STRING_ORIGIN,,no string origin tracking) 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 +AC_ARG_ENABLE(execs, [ --disable-execs to disable any execs + (file::exec, file::cgi, unix mail:send)], +[ +if test "$enableval" = "no"; then + AC_MSG_WARN(disabling file execs) + AC_DEFINE(NO_PA_EXECS,,pa_exec disabled) +fi +] ) -AC_SUBST(APACHE13) -AM_CONDITIONAL(COMPILE_APACHE13_MODULE, test -n "$APACHE13") +AC_ARG_ENABLE(foreign-group-files, [ --disable-foreign-group-files to disable read and executing + files belonging to group other then effective], +[ +if test "$enableval" = "no"; then + AC_MSG_WARN(disabling reading of files belonging to group other then effective) + AC_DEFINE(NO_FOREIGN_GROUP_FILES,,disabled reading and executing files of non-process-effective-group) +fi +] +) +srccharsetsdir=$srcdir/etc/parser3.charsets +CHARSETS_REQUESTED="windows-1251" +AC_ARG_WITH(charsets, [ --with-charsets=CHARSET[,CHARSET,...] Enables charsets in root config (windows-1251, + windows-1250 windows-1257 koi8-r; Default is windows-1251)], +[CHARSETS_REQUESTED=`echo $withval | sed -e 's/,/ /g'`]) + +# Checking whether all requested charsets have corresponding .cfg files +for c in $CHARSETS_REQUESTED; do + if test \! -f $srccharsetsdir/$c.cfg; then + AC_MSG_ERROR(bad charset requested "$c" - file $srccharsetsdir/$c.cfg not found) + fi +done + +# Switching on commentcharset_XXX='#' +AC_DEFUN(PA_SUBSTCHARSET, [ + commentcharset_$2='#' + for c in $CHARSETS_REQUESTED; do + if test "$1" = "$c"; then + AC_MSG_WARN(Enabling charset $1) + commentcharset_$2= + fi + done + AC_SUBST(commentcharset_$2) +]) +PA_SUBSTCHARSET(windows-1251,windows1251) +PA_SUBSTCHARSET(windows-1250,windows1250) +PA_SUBSTCHARSET(windows-1257,windows1257) +PA_SUBSTCHARSET(koi8-r,koi8r) + + +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 + if test -f $lib; then mysql_client=$lib; fi + done + + if test -z "$mysql_client"; then + mysql_client="-configure could not guess-" + AC_MSG_WARN(could not guess mysql client) + else + AC_MSG_RESULT($mysql_client) + fi + +) +AC_SUBST(mysql_client) + +AC_ARG_WITH(pgsql-client,[ --with-pgsql-client=pgsqlclientlib?withparams + PgSQL client dynamic library to root config], + mysql_client=$withval +, + 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 + if test -f $lib; then pgsql_client=$lib; fi + done + + if test -z "$pgsql_client"; then + pgsql_client="-configure could not guess-" + AC_MSG_WARN(could not guess pgsql client) + else + AC_MSG_RESULT($pgsql_client) + fi + +) +AC_SUBST(pgsql_client) -AC_ARG_WITH(pathlink,[ --with-pathlink[=LKEY] put dynamic libraries paths to binary +AC_ARG_WITH(oracle-client,[ --with-oracle-client=oracleclientlib?withparams + Oracle client dynamic library], + oracle_client=$withval +, + AC_MSG_CHECKING(for oracle client) + lib=$ORACLE_HOME/lib/libclntsh.so + if test -f $lib; then oracle_client=$lib; fi + + if test -z "$oracle_client"; then + oracle_client="-configure could not guess-" + AC_MSG_WARN(could not guess oracle client) + else + oracle_client="$oracle_client?ORACLE_HOME=$ORACLE_HOME&ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data" + AC_MSG_RESULT($oracle_client) + fi + +) +AC_SUBST(oracle_client) + + + +AC_ARG_WITH(pathlink,[ --with-pathlink=LKEY put dynamic libraries paths to binary using linker key (-R, -rpath-link)], LD_PATHLINK=$withval ) -AC_ARG_WITH(gnome-xml,[ --with-gnome-xml[=D] D is the directory where - Gnome XML libraries are installed],[ + +AC_ARG_WITH(glib-config,[ --with-glib-config=FILE FILE is glib library + configuration file (search for glib*-config)], + GLIB_CONFIG=$withval +) + +AC_ARG_WITH(shared-xml,[ --with-shared-xml=D D is the directory where + Gnome XML libraries are installed (shared libs)],[ GNOME_XML=$withval - XMLBIN_DIR="$GNOME_XML/bin" - XMLINC_DIR="$GNOME_XML/include" - XMLLIB_DIR="$GNOME_XML/lib" + XMLBIN="$GNOME_XML/bin" + XMLINC="$GNOME_XML/include" + XMLLIB="$GNOME_XML/lib" - if test \! -d $XMLBIN_DIR -o \! -d $XMLINC_DIR -o \! -d $XMLLIB_DIR; then + if test \! -d $XMLBIN -o \! -d $XMLINC -o \! -d $XMLLIB; 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 + 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/\..*//'` + LIBXSLT_SO_NAME=`cd $XMLLIB ; ls libxslt.?? libxslt.??? 2>/dev/null | grep -v \.la$ | sed 's/lib//' | sed 's/\..*//'` + LIBEXSLT_SO_NAME=`cd $XMLLIB ; ls libexslt.?? libexslt.??? 2>/dev/null | grep -v \.la$ | sed 's/lib//' | sed 's/\..*//'` + + if test -z "$GLIB_CONFIG"; then + GLIB_CONFIG=$XMLBIN/glib-config + if test \! -x $GLIB_CONFIG; then + GLIB_CONFIG=glib-config + fi 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" + XML_INCLUDES="$GLIB_CFLAGS -I$XMLINC -I$XMLINC/libgdome -I$XMLINC/libxml2" + XML_LIBS="$GLIB_LIBS -L$XMLLIB -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" + XML_LIBS="$XML_LIBS -Wl,$LD_PATHLINK -Wl,$XMLLIB" fi ]) -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) +AC_ARG_WITH(static-xml,[ --with-static-xml=D D is the directory where + Gnome XML libraries are installed (static libs)],[ + GNOME_XML=$withval + XMLBIN="$GNOME_XML/bin" + XMLINC="$GNOME_XML/include" + XMLLIB="$GNOME_XML/lib" + + if test \! -d $XMLBIN -o \! -d $XMLINC -o \! -d $XMLLIB; then + AC_MSG_ERROR($GNOME_XML does not seem to be valid Gnome 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) + + AC_DEFINE(XML,,xml-abled parser) + + if test -z "$GLIB_CONFIG"; then + GLIB_CONFIG=$XMLBIN/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 + XML_INCLUDES="$GLIB_CFLAGS -I$XMLINC -I$XMLINC/libgdome -I$XMLINC/libxml2" + XML_LIBS="$XMLLIB/libgdome.a $XMLLIB/libxslt.a $XMLLIB/libexslt.a $XMLLIB/libxml2.a $GLIB_DIR/lib$GLIB_NAME.a" +]) +AC_SUBST(XML_INCLUDES) +AC_SUBST(XML_LIBS) + - 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) - ) +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) + + +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 +) +AC_SUBST(APACHE13) +AM_CONDITIONAL(COMPILE_APACHE13_MODULE, test -n "$APACHE13") + dnl AC_CANONICAL_SYSTEM AC_CANONICAL_HOST @@ -162,13 +288,25 @@ 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) dnl Configure libltdl AC_CONFIG_SUBDIRS(src/libltdl) +dnl moved from src/libltdl/configure.in +LIBADD_DL= +AC_CHECK_LIB(dl, dlopen, [AC_DEFINE(HAVE_LIBDL, 1) LIBADD_DL="-ldl"], +[AC_CHECK_FUNC(dlopen, [AC_DEFINE(HAVE_LIBDL, 1)])]) +AC_CHECK_FUNC(shl_load, [AC_DEFINE(HAVE_SHL_LOAD, 1)], +[AC_CHECK_LIB(dld, shl_load, [AC_DEFINE(HAVE_SHL_LOAD, 1) LIBADD_DL="$LIBADD_DL -ldld"])]) +AC_CHECK_LIB(dld, dld_link, [AC_DEFINE(HAVE_DLD, 1)dnl +test "x$ac_cv_lib_dld_shl_load" = yes || LIBADD_DL="$LIBADD_DL -ldld"]) +AC_SUBST(LIBADD_DL) + +if test "x$ac_cv_func_dlopen" = xyes || test "x$ac_cv_lib_dl_dlopen" = xyes; then + LIBS_SAVE="$LIBS" + LIBS="$LIBS $LIBADD_DL" + AC_CHECK_FUNCS(dlerror) + LIBS="$LIBS_SAVE" +fi dnl Checks for typedefs, structures, and compiler characteristics. @@ -176,6 +314,8 @@ AC_TYPE_SIZE_T dnl Checks for header files. +AC_HEADER_TIME + AC_CHECK_HEADERS( unistd.h \ process.h \ @@ -221,6 +361,10 @@ 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) @@ -245,15 +389,12 @@ AC_CHECK_FUNCS(select, , AC_MSG_ERROR([N 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) ], @@ -285,11 +426,20 @@ dnl fi dnl ] dnl ) + dnl Apache libs -APACHE_LIBS=$LIBS -AC_CHECK_LIB(stdc++, __builtin_new, - APACHE_LIBS="$APACHE_LIBS -lstdc++ -lm" -) +APACHE_LIBS="$LIBS $LIBADD_DL" +dnl append stdc++ to libs list commented +dnl 1. because binary seem to work without it +dnl purpose of this: remove strange name dependance +dnl for linker creates reference not for libstc++.xx but +dnl for something specific to local system, +dnl thus reducing binary compatibility +dnl 2. for same reason linker of targets/cgi/parser3 changed to +dnl "C" compiler from "C++" compiler +dnl AC_CHECK_LIB(stdc++, __builtin_new, +dnl APACHE_LIBS="$APACHE_LIBS -lstdc++" +dnl ) AC_SUBST(APACHE_LIBS) @@ -302,11 +452,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 @@ -318,7 +463,7 @@ if test "$e_libdir" = "\${exec_prefix}/l # Let make expand exec_prefix. e_exec_prefix=$exec_prefix - test "x$e_exec_prefix" = xNONE && e_exec_prefix=$prefix + test "x$e_exec_prefix" = xNONE && e_exec_prefix=$e_prefix # expand apostrophed test "$e_libdir" = "\${exec_prefix}/lib" && e_libdir="${e_exec_prefix}/lib" @@ -331,4 +476,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/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/Makefile etc/parser3.charsets/Makefile bin/Makefile bin/auto.p.dist)