X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=configure.ac;h=eab19ccef22e6ebbe447a692e6ca9203f0d86357;hp=41bddf97c756492fb5ae88872c579435eafca8b7;hb=3f7c21d3bf85a142671d97bd4183bc3fe9b61e9e;hpb=5fb7fa9318c6ea4a6aeecd515cc00fcd46709a3d diff --git a/configure.ac b/configure.ac index 41bddf9..eab19cc 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.48 2006-11-29 22:35:17 adam Exp $ +dnl $Id: configure.ac,v 1.65 2007-02-25 21:04:04 adam Exp $ AC_PREREQ(2.59) -AC_INIT([yaz],[2.1.41],[yaz-help@indexdata.dk]) +AC_INIT([yaz],[2.1.51],[yaz-help@indexdata.dk]) AC_CONFIG_SRCDIR(configure.ac) AC_CONFIG_AUX_DIR([config]) AM_INIT_AUTOMAKE([1.8]) @@ -23,7 +23,18 @@ 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 netinet/if_ether.h netinet/in_systm.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 netinet/in.h netdb.h arpa/inet.h netinet/tcp.h netinet/in_systm.h]) +AC_CHECK_HEADERS([netinet/if_ether.h],[],[],[ + #if HAVE_SYS_TYPES_H + #include + #endif + #if HAVE_SYS_SOCKET_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,35 +174,47 @@ if test "$with_iconv" != "no"; then ]) ]) fi -dnl ------ libpcap +dnl ------ libpcap / ziffy +AC_SUBST(ZIFFY_PROG) AC_SUBST(PCAP_LIBS) AC_SUBST(PCAP_CFLAGS) -AC_ARG_WITH(pcap-dir, [ --with-pcap-dir libpcap root dir located in (dir)], PCAP_DIR="$withval", PCAP_DIR=no) +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" && - 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" - AC_MSG_RESULT([found in $PCAP_DIR]) -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" - AC_MSG_RESULT([found in $PCAP_DIR]) -elif test -d /usr && - test -r /usr/lib/libpcap.a && - test -r /usr/include/pcap.h; then - PCAP_DIR="/usr" - PCAP_LIBS="${LIBS} -lpcap" - AC_MSG_RESULT([found in $PCAP_DIR]) -else +if test "${PCAP_DIR}" != "no"; then + if 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 + else + if 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 +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 @@ -288,72 +311,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([ + 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_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( [ @@ -416,6 +422,7 @@ 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])