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
)
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 <new>
#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)
E-mail: