File:  [parser3project] / parser3 / Attic / configure.in
Revision 1.35: download - view: text, annotated - select for diffs - revision graph
Tue Jun 25 13:57:21 2002 UTC (24 years ago) by paf
Branches: MAIN
CVS tags: release_3_0_0004, HEAD
crypt library configured

dnl Process this file with autoconf to produce a configure script.
AC_INIT(README)
AM_INIT_AUTOMAKE(parser, 3.0.HEAD, nodefine)

dnl expand srcdir
P3S=`cd $srcdir/src ; pwd`
AC_SUBST(P3S)

PARSER_VERSION=$VERSION
echo "/* automatically generated by configure */" > $srcdir/src/include/pa_version.h.new
echo "/* edit configure.in to change version number */" >> $srcdir/src/include/pa_version.h.new
echo "#define PARSER_VERSION \"$PARSER_VERSION\"" >> $srcdir/src/include/pa_version.h.new
cmp $srcdir/src/include/pa_version.h.new $srcdir/src/include/pa_version.h >/dev/null 2>&1
if test $? -ne 0 ; then
    rm -f $srcdir/src/include/pa_version.h && mv $srcdir/src/include/pa_version.h.new $srcdir/src/include/pa_version.h && \
    echo Updated $srcdir/src/include/pa_version.h
else
	rm -f $srcdir/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(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_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_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(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(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="$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

    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/\..*//'`
    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 -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"
    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
    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

    AC_DEFINE(XML,,xml-abled parser (uses static library))

    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_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\"
                          (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_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
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/lib/libltdl)
dnl Substitute INCLTDL and LIBLTDL in the Makefiles
AC_SUBST(INCLTDL)
AC_SUBST(LIBLTDL)

dnl Configure libltdl
AC_CONFIG_SUBDIRS(src/lib/libltdl)
dnl moved from src/lib/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.

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(
unistd.h \
process.h \
stddef.h \
stdarg.h \
fcntl.h \
sys/stat.h \
io.h \
stdio.h \
errno.h \
ctype.h \
math.h \
crypt.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 \
sys/resource.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)
  ;;
# 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(
trunc \
round \
sign \
flock \
_locking \
fcntl \
lockf \
getrusage \
crypt
)

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 _1_byte {
	char c;
};
#pragma pack()
,,[
    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 $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)


dnl install directories

# expand apostrophed
e_prefix=$prefix
test "x$e_prefix" = xNONE && e_prefix=$ac_default_prefix

e_sysconfdir=$sysconfdir
test "$e_sysconfdir" = "\${prefix}/etc" && e_sysconfdir="${e_prefix}/etc"

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=$e_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/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/libltdl/Makefile src/lib/pcre/Makefile src/lib/md5/Makefile src/lib/patches/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)

E-mail: