dnl Process this file with autoconf to produce a configure script. AC_INIT(README) AM_INIT_AUTOMAKE(parser, 3.0b, nodefine) dnl not perfect, but would do P3S=`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' else rm -f src/include/pa_version.h.new fi AC_PROG_INSTALL AC_PROG_CC AC_LANG_C AC_C_INLINE AC_PROG_CXX AC_LANG_CPLUSPLUS dnl Arguments AC_ARG_ENABLE(string-origins, [ --disable-string-origins to switch off string origin tracking], [ if test "$enableval" = "no"; then 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_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 ) AC_ARG_WITH(gnome-xml,[ --with-gnome-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 ]) 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) ) ) 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 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) dnl Configure libltdl AC_CONFIG_SUBDIRS(src/libltdl) dnl Checks for typedefs, structures, and compiler characteristics. AC_TYPE_SIZE_T dnl Checks for header files. 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 ) dnl Checks for libraries. dnl Some systems (Solaris 2.x) require libnsl (Network Services Library) case "$host" in *-sunos5.6* | *-solaris2.6*) AC_CHECK_LIB(xnet, main) ;; *-sunos5* | *-solaris2*) AC_CHECK_LIB(socket, main) AC_CHECK_LIB(nsl, main) ;; *-nec-sysv4*) AC_CHECK_LIB(nsl, gethostbyname) AC_CHECK_LIB(socket, socket) ;; *-cygwin*) AC_DEFINE(WIN32,,Windows32 target platform) AC_CHECK_LIB(wsock32, socket) ;; esac AC_CHECK_LIB(m, sin) dnl Checks for functions. AC_CHECK_FUNCS( trunc \ round \ sign \ flock \ _locking \ lockf \ getrusage ) 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.])) 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 # expand apostrophed e_sysconfdir=$sysconfdir test "$e_sysconfdir" = "\${prefix}/etc" && e_sysconfdir="${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 AC_SUBST(charsetsdir) # expand apostrophed e_libdir=$libdir if test "$e_libdir" = "\${exec_prefix}/lib"; then # Let make expand exec_prefix. e_exec_prefix=$exec_prefix test "x$e_exec_prefix" = xNONE && e_exec_prefix=$prefix # expand apostrophed test "$e_libdir" = "\${exec_prefix}/lib" && e_libdir="${e_exec_prefix}/lib" fi sqldriversdir=$e_libdir 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/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)