X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=configure.ac;h=e87b59b97c12257e1e9b0552f938f1f4db0c9f65;hp=bd60312ca3f9e6715c127fc0061fb06285e2275d;hb=02ebf1b5aa8c7371c2678663fd1c13d01d80955c;hpb=e899be08cd969b68e8fa04975b9c9205ff8acbae diff --git a/configure.ac b/configure.ac index bd60312..e87b59b 100644 --- a/configure.ac +++ b/configure.ac @@ -1,8 +1,8 @@ -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.38 2006-09-18 15:16:14 adam Exp $ +dnl $Id: configure.ac,v 1.78 2007-05-08 08:27:13 adam Exp $ AC_PREREQ(2.59) -AC_INIT([yaz],[2.1.31],[adam@indexdata.dk]) +AC_INIT([yaz],[3.0.2],[yaz-help@indexdata.dk]) AC_CONFIG_SRCDIR(configure.ac) AC_CONFIG_AUX_DIR([config]) AM_INIT_AUTOMAKE([1.8]) @@ -23,7 +23,21 @@ YAZ_DOC 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 + #endif + #if HAVE_SYS_SOCKET_H + #include + #endif + #if HAVE_NET_IF_H + #include + #endif + #if HAVE_NETINET_IN_H + #include + #endif +]) AC_HEADER_STDC if test "$ac_cv_header_stdc" = "no"; then AC_MSG_WARN([Your system doesn not seem to support ANSI C]) @@ -163,6 +177,49 @@ if test "$with_iconv" != "no"; then ]) ]) 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(getaddrinfo vsnprintf gettimeofday poll strerror_r localtime_r usleep fopen64) case $host in @@ -257,72 +314,55 @@ if test "$enable_tcpd" -a "$enable_tcpd" != "no"; then 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 - 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 - 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([ + OCFLAGS=$CFLAGS + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + 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_t id; pthread_join(id, 0); ], + [ PTHREAD_LIBS=$lib; break ] + ) + done + LIBS=$OLIBS + fi + CFLAGS=$OCFLAGS + PTHREAD_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( [ @@ -378,12 +418,14 @@ include/yaz/Makefile 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])