-dnl YAZ Toolkit, Index Data 1994-2006
+dnl YAZ Toolkit, Index Data 1995-2007
dnl See the file LICENSE for details.
-dnl $Id: configure.ac,v 1.30 2006-08-08 20:35:02 adam Exp $
+dnl $Id: configure.ac,v 1.74 2007-04-16 21:53:08 adam Exp $
AC_PREREQ(2.59)
-AC_INIT([yaz],[2.1.25],[adam@indexdata.dk])
+AC_INIT([yaz],[2.1.99.3],[yaz-help@indexdata.dk])
AC_CONFIG_SRCDIR(configure.ac)
AC_CONFIG_AUX_DIR([config])
AM_INIT_AUTOMAKE([1.8])
dnl
dnl
dnl ------ Headers
-AC_CHECK_HEADERS(dirent.h fnmatch.h wchar.h locale.h langinfo.h pwd.h sys/select.h sys/socket.h sys/stat.h sys/time.h sys/types.h sys/un.h sys/wait.h unistd.h)
+AC_CHECK_HEADERS([dirent.h fnmatch.h wchar.h locale.h langinfo.h pwd.h unistd.h sys/select.h sys/socket.h sys/stat.h sys/time.h sys/times.h sys/types.h sys/un.h sys/wait.h netdb.h arpa/inet.h netinet/tcp.h netinet/in_systm.h])
+AC_CHECK_HEADERS([net/if.h netinet/in.h netinet/if_ether.h],[],[],[
+ #if HAVE_SYS_TYPES_H
+ #include <sys/types.h>
+ #endif
+ #if HAVE_SYS_SOCKET_H
+ #include <sys/socket.h>
+ #endif
+ #if HAVE_NET_IF_H
+ #include <net/if.h>
+ #endif
+ #if HAVE_NETINET_IN_H
+ #include <netinet/in.h>
+ #endif
+])
AC_HEADER_STDC
if test "$ac_cv_header_stdc" = "no"; then
AC_MSG_WARN([Your system doesn not seem to support ANSI C])
])
])
fi
+dnl ------ libpcap / ziffy
+
+AC_SUBST(ZIFFY_PROG)
+AC_SUBST(PCAP_LIBS)
+AC_SUBST(PCAP_CFLAGS)
+ZIFFY_PROG=
+AC_ARG_WITH(pcap, [ --with-pcap[=DIR] libpcap root dir located in (dir)], [PCAP_DIR="$withval"],[PCAP_DIR=default])
+
+AC_MSG_CHECKING([for libpcap (required for ziffy)])
+if test "${PCAP_DIR}" != "no"; then
+ if test "${ac_cv_header_netinet_if_ether_h}" = "no"; then
+ :
+ elif test "${PCAP_DIR}" != "yes" && test "${PCAP_DIR}" != "default"; then
+ if test -r $PCAP_DIR/libpcap.a && test -r $PCAP_DIR/pcap.h; then
+ PCAP_DIR="$PCAP_DIR"
+ PCAP_LIBS="${LIBS} -L$PCAP_DIR -lpcap"
+ PCAP_CFLAGS="${INCS} -I$PCAP_DIR"
+ ZIFFY_PROG=ziffy
+ fi
+ elif test -d /usr/local &&
+ test -r /usr/local/lib/libpcap.a &&
+ test -r /usr/local/include/pcap.h; then
+ PCAP_DIR="/usr/local"
+ PCAP_LIBS="${LIBS} -L$PCAP_DIR/lib -lpcap"
+ PCAP_CFLAGS="${INCS} -I$PCAP_DIR/include"
+ ZIFFY_PROG=ziffy
+ elif test -d /usr &&
+ test -r /usr/lib/libpcap.a &&
+ test -r /usr/include/pcap.h; then
+ PCAP_DIR="/usr"
+ PCAP_LIBS="${LIBS} -lpcap"
+ ZIFFY_PROG=ziffy
+ fi
+fi
+if test -z "$ZIFFY_PROG"; then
+ AC_MSG_RESULT([not found. ziffy disabled])
+ if test "${PCAP_DIR}" != "default" && test "${PCAP_DIR}" != "no"; then
+ AC_MSG_ERROR([libpcap missing])
+ fi
+else
+ AC_MSG_RESULT([found in $PCAP_DIR])
+fi
+
dnl ------ various functions
-AC_CHECK_FUNCS(vsnprintf gettimeofday poll strerror_r localtime_r usleep fopen64)
+AC_CHECK_FUNCS(getaddrinfo vsnprintf gettimeofday poll strerror_r localtime_r usleep fopen64)
case $host in
*-*-darwin*)
trypoll="no";
fi
fi
dnl
-AC_SUBST(THREAD_CFLAGS)
+AC_SUBST(YAZ_CONFIG_CFLAGS)
+dnl
HAVETHREADS=0
-THREAD_CFLAGS=""
-LIBTHREAD=""
dnl
dnl ------ GNU threads
AC_ARG_ENABLE(pth, [ --enable-pth enable GNU threads],[enable_pth=$enableval],[enable_pth=no])
AC_SUBST(LIBPTH)
if test "$enable_pth" = "yes"; then
+ PTH_LIBS=""
OLIBS=$LIBS
AC_CHECK_LIB(pth,main)
if test "$ac_cv_lib_pth_main" = "yes"; then
AC_CHECK_HEADERS(pth.h)
if test "$ac_cv_header_pth_h" = "yes"; then
- LIBTHREAD="-lpth"
- THREAD_CFLAGS="-DYAZ_GNU_THREADS=1"
+ PTH_LIBS="-lpth"
+ CFLAGS="$CFLAGS -DYAZ_GNU_THREADS=1"
HAVETHREADS=1
fi
fi
- LIBS="$OLIBS $LIBTHREAD"
+ LIBS="$OLIBS $PTH_LIBS"
fi
dnl
dnl ------ POSIX Threads
AC_ARG_ENABLE(threads, [ --disable-threads disable POSIX threads],[enable_threads=$enableval],[enable_threads=yes])
if test "$enable_threads" = "yes" -a "$HAVETHREADS" = "0"; then
- OLIBS=$LIBS
- OCC=$CC
- AC_CHECK_LIB(pthread,main)
- AC_MSG_CHECKING(for working POSIX Threads)
- AC_TRY_LINK([#include <pthread.h>
- void *func(void *p) { return 0; }
- ],[
- pthread_t pthread_id;
- pthread_create (&pthread_id, 0, func, 0);],
- thread_ok=yes,thread_ok=no)
- if test "$thread_ok" = "yes"; then
- AC_MSG_RESULT(yes)
- LIBTHREAD="-lpthread"
- THREAD_CFLAGS="-DYAZ_POSIX_THREADS=1 -D_REENTRANT"
- HAVETHREADS=1
- else
- CC="$CC -pthread"
- AC_TRY_LINK([#include <pthread.h>
- void *func(void *p) { return 0; }
- ],[
- pthread_t pthread_id;
- pthread_create (&pthread_id, 0, func, 0);],
- thread_ok=yes,thread_ok=no)
- if test "$thread_ok" = "yes"; then
- AC_MSG_RESULT([yes,BSD])
- THREAD_CFLAGS="-pthread -DYAZ_POSIX_THREADS=1 -D_REENTRANT"
- LIBTHREAD="-pthread"
- HAVETHREADS=1
- fi
- fi
- if test "$thread_ok" = "no"; then
- AC_MSG_RESULT(no)
- fi
- CC=$OCC
- LIBS="$OLIBS $LIBTHREAD"
+ ACX_PTHREAD([
+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+ AC_DEFINE(YAZ_POSIX_THREADS)
+ dnl unfortunately empty thread lib spec is problematic because
+ dnl 'yaz-config --cflags' is not always passed to linker in
+ dnl applications using YAZ (such as Zebra).
+ if test "x$PTHREAD_LIBS" = "x"; then
+ OLIBS=$LIBS
+ for lib in -lpthread -lpthreads -lc_r; do
+ LIBS="$lib $OLIBS"
+ AC_TRY_LINK([ #include <pthread.h> ],
+ [ pthread_t id; pthread_join(id, 0); ],
+ [ PTHREAD_LIBS=$lib; break ]
+ )
+ done
+ LIBS=$OLIBS
+ fi
+ LIBS="$PTHREAD_LIBS $LIBS"
+ YAZ_CONFIG_CFLAGS="$YAZ_CONFIG_CFLAGS $PTHREAD_CFLAGS -DYAZ_POSIX_THREADS=1"
+ ])
fi
dnl ----- libXSLT/libEXLT/libXML2
AC_SUBST(XML2_CFLAGS)
-AC_SUBST(YAZ_CONFIG_CFLAGS)
-YAZ_CONFIG_CFLAGS=""
YAZ_LIBXML2(
[
client/Makefile
ztest/Makefile
zoom/Makefile
+ziffy/Makefile
doc/Makefile
doc/local.ent
doc/common/Makefile
doc/common/print.dsl
etc/Makefile
yaz-config
+yaz.pc
Doxyfile
],[sed s%yaz_echo_source=yes%yaz_echo_source=no%g < yaz-config > util/yaz-config && chmod +x yaz-config util/yaz-config])