+dnl ------ EXPAT
+expat=yes
+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,[LIBS="$LIBS -lexpat"])
+ if test "$ac_cv_lib_expat_XML_ParserCreate" = "yes"; then
+ AC_CHECK_HEADERS(expat.h)
+ else
+ LIBS="$xLIBS"
+ CFLAGS="$xCFLAGS"
+ fi
+fi
+dnl
+dnl ------ PERL
+perl=yes
+PERL_XS_INIT="NULL"
+PERL_XS_INIT_INCLUDE=''
+PERL_BINARY=""
+AC_ARG_WITH(perl, [ --with-perl[=FILE] perl binary location],[perl=$withval])
+if test "$perl" != "no"; then
+ AC_MSG_CHECKING(for perl binary)
+ if test "$perl" == "yes"; then
+ perlbin=`which perl`
+ else
+ perlbin="$perl"
+ fi
+ if test -x "$perlbin"; then
+ AC_MSG_RESULT($perlbin)
+ AC_MSG_CHECKING(perl core directory)
+ archdir=`$perlbin -MConfig -e 'print $Config{archlib}'`;
+ perlcore="$archdir/CORE";
+ if test "$perlcore"; then
+ PERL_BINARY="$perlbin"
+ AC_MSG_RESULT($perlcore)
+ AC_DEFINE(HAVE_PERL,1)
+ else
+ AC_MSG_RESULT(Failed)
+ AC_DEFINE(HAVE_PERL,0)
+ fi
+
+ AC_MSG_CHECKING("for ExtUtils::Embed to determine ccopts")
+ PERL_CFLAGS=`$perlbin -MExtUtils::Embed -e ccopts 2>/dev/null`
+ if test "$PERL_CFLAGS"; then
+ AC_MSG_RESULT(OK)
+ else
+ PERL_CFLAGS="-I$perlcore"
+ AC_MSG_RESULT(Using defaults)
+ fi
+
+ AC_MSG_CHECKING("for ExtUtils::Embed to determine ldflags")
+ PERL_LIBS=`$perlbin -MExtUtils::Embed -e ldopts 2>/dev/null`
+ if test "$PERL_LIBS"; then
+ AC_MSG_RESULT(OK)
+ else
+ PERL_LIBS="-L$perlcore -lperl -lm"
+ AC_MSG_RESULT(Using defaults)
+ fi
+
+ AC_MSG_CHECKING("for ExtUtils::Embed to create xs_init")
+ xsf="recctrl/xsinit.h"
+ `rm $xsf 2>/dev/null`;
+
+ `$perlbin -MExtUtils::Embed -e xsinit -- -o $xsf 2>/dev/null`
+ if test -r "$xsf"; then
+ AC_MSG_RESULT(OK)
+ PERL_XS_INIT="xs_init"
+ PERL_XS_INIT_INCLUDE='#include "xsinit.h"'
+ else
+ AC_MSG_RESULT(XS libraries are not going to be available)
+ fi
+
+ ZPERL_LIBS="$LIBS"
+ CFLAGS="$PERL_CFLAGS $CFLAGS"
+ LIBS="$PERL_LIBS $LIBS"
+ else
+ AC_DEFINE(HAVE_PERL,0)
+ AC_MSG_RESULT(Not found)
+ fi
+fi
+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