X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=configure.ac;h=e3a1f57a2207439d7a28ed6b7369248004638fee;hp=2f2bf26881413d70ba376a33143079e58c57dc88;hb=7dca3501222dc961d4067367fc5222c48d36e0ef;hpb=58dda1e89dc22c400b7da64582eebc91c6c598ec diff --git a/configure.ac b/configure.ac index 2f2bf26..e3a1f57 100644 --- a/configure.ac +++ b/configure.ac @@ -1,8 +1,8 @@ dnl YAZ Toolkit, Index Data 1995-2007 dnl See the file LICENSE for details. -dnl $Id: configure.ac,v 1.62 2007-02-23 14:04:37 adam Exp $ +dnl $Id: configure.ac,v 1.66 2007-03-07 08:05:25 adam Exp $ AC_PREREQ(2.59) -AC_INIT([yaz],[2.1.51],[yaz-help@indexdata.dk]) +AC_INIT([yaz],[2.1.52],[yaz-help@indexdata.dk]) AC_CONFIG_SRCDIR(configure.ac) AC_CONFIG_AUX_DIR([config]) AM_INIT_AUTOMAKE([1.8]) @@ -311,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( [