+dnl ------ -lm
+AC_CHECK_LIB(m,sqrt)
+dnl ------ -ldl
+AC_CHECK_LIB(dl,dlopen)
+dnl
+dnl ------ EXPAT
+expat=yes
+AC_SUBST(EXPAT_LIBS)
+AC_ARG_WITH(expat, [ --with-expat[=DIR] EXPAT library in DIR],[expat=$withval])
+if test "$expat" != "no"; then
+ xLIBS="$LIBS";
+ xCFLAGS="$CFLAGS";
+ if test "$expat" != "yes"; then
+ EXPAT_CFLAGS="-I$expat/include"
+ EXPAT_LIBS="-L$expat/lib"
+ CFLAGS="$EXPAT_CFLAGS $CFLAGS"
+ LIBS="$EXPAT_LIBS $LIBS"
+ fi
+ AC_CHECK_LIB(expat,XML_ParserCreate,[EXPAT_LIBS="$EXPAT_LIBS -lexpat"])
+ if test "$ac_cv_lib_expat_XML_ParserCreate" = "yes"; then
+ AC_CHECK_HEADERS(expat.h)
+ fi
+ LIBS="$xLIBS"
+ CFLAGS="$xCFLAGS"
+fi
+dnl
+dnl ------- 64 bit files
+AC_MSG_CHECKING(for LFS)
+AC_TRY_RUN([#define _FILE_OFFSET_BITS 64
+#include <sys/types.h>
+#include <unistd.h>
+#include <string.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <errno.h>
+int main(int argc, char **argv)
+{
+ off_t o;
+ char tmp_str[32];
+ int fd;
+ struct flock area;
+ if (sizeof(off_t) != 8)
+ exit (1);
+ o = 2000000000;
+ sprintf (tmp_str, "%Ld", o+o+o);
+ if (strcmp (tmp_str, "6000000000"))
+ exit (1);
+ fd = creat ("config.tmp", 0644);
+ if (fd < 0)
+ exit (1);
+ area.l_type = F_WRLCK;
+ area.l_whence = SEEK_SET;
+ area.l_len = area.l_start = 0L;
+ if (fcntl(fd, F_SETLKW, &area))
+ exit (1);
+ close (fd);
+ unlink ("config.tmp");
+ exit (0);
+}
+],bits=64,bits=32,bits=32)
+if test "$bits" = "64"; then
+ AC_DEFINE(_FILE_OFFSET_BITS,64)
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT(no)
+fi
+dnl ------ Modules
+AC_SUBST(SHARED_MODULE_LA)
+SHARED_MODULE_LA=""
+AC_SUBST(STATIC_MODULE_OBJ)
+STATIC_MODULE_OBJ=""
+AC_SUBST(STATIC_MODULE_LADD)
+STATIC_MODULE_LADD=""
+AC_DEFUN([ZEBRA_MODULE],[
+ AC_ARG_ENABLE(mod-$1,[$3],[myen=$enableval],[myen=$2])
+ AC_MSG_CHECKING([for module $1])
+ if test "$myen" = "yes"; then
+ myen="shared"
+ fi
+ if test "$enable_shared" != "yes"; then
+ if test "$myen" = "shared"; then
+ myen="static"
+ fi
+ fi
+ m=`echo $1|tr .- __`
+ if test "$myen" = "shared"; then
+ AC_MSG_RESULT([shared])
+ SHARED_MODULE_LA="${SHARED_MODULE_LA} mod-$1.la"
+ elif test "$myen" = "static" -o "$myen" = "yes"; then
+ AC_MSG_RESULT([static])
+ STATIC_MODULE_OBJ="${STATIC_MODULE_OBJ} \$(mod_${m}_la_OBJECTS)"
+ STATIC_MODULE_LADD="${STATIC_MODULE_LADD} \$(mod_${m}_la_LADD)"
+ modcpp=`echo $1|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
+ AC_DEFINE_UNQUOTED([IDZEBRA_STATIC_$modcpp])
+ elif test "$myen" = "no"; then
+ AC_MSG_RESULT([disabled])
+ else
+ AC_MSG_RESULT([$myen])
+ AC_MSG_ERROR([invalid --enable-mod-$1 value. Use on,off,static or shared])
+ fi
+])
+
+ZEBRA_MODULE(text,static, [ --enable-mod-text Text filter])
+ZEBRA_MODULE(grs-sgml,static,[ --enable-mod-grs-sgml Simple SGML/XML filter])
+ZEBRA_MODULE(grs-regx,shared,[ --enable-mod-grs-regx REGX/TCL filter])
+ZEBRA_MODULE(grs-marc,shared,[ --enable-mod-grs-marc MARC filter])
+ZEBRA_MODULE(grs-danbib,shared,[ --enable-mod-grs-danbib DanBib filter (DBC)])
+ZEBRA_MODULE(safari,shared, [ --enable-mod-safari Safari filter (DBC)])
+if test "$ac_cv_header_expat_h" = "yes"; then
+ def="shared"
+else
+ def="no"
+fi
+ZEBRA_MODULE(grs-xml,[$def], [ --enable-mod-grs-xml XML filter (Expat based)])
+if test "$XSLT_VER"; then
+ def="shared"
+else
+ def="no"
+fi
+ZEBRA_MODULE(xslt,[$def], [ --enable-mod-xslt XSLT filter])
+ZEBRA_MODULE(alvis,shared, [ --enable-mod-alvis ALVIS filter])