File:  [parser3project] / parser3 / Attic / configure.in
Revision 1.3: download - view: text, annotated - select for diffs - revision graph
Tue Feb 5 12:09:22 2002 UTC (24 years, 5 months ago) by paf
Branches: MAIN
CVS tags: HEAD
rewritten ^cache to use non-blocking-exclusive-caches

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: