Fixed bug #2068: pkg-config trouble.
[yaz-moved-to-github.git] / configure.ac
index 1c5c06b..a717538 100644 (file)
@@ -1,11 +1,11 @@
-dnl YAZ Toolkit, Index Data 1995-2007
+dnl YAZ Toolkit, Index Data 1995-2008
 dnl See the file LICENSE for details.
-dnl $Id: configure.ac,v 1.64 2007-02-25 14:46:50 adam Exp $
-AC_PREREQ(2.59)
-AC_INIT([yaz],[2.1.51],[yaz-help@indexdata.dk])
+dnl $Id: configure.ac,v 1.109 2008-01-28 08:14:52 adam Exp $
+AC_PREREQ(2.60)
+AC_INIT([yaz],[3.0.24],[yaz-help@indexdata.dk])
 AC_CONFIG_SRCDIR(configure.ac)
 AC_CONFIG_AUX_DIR([config])
-AM_INIT_AUTOMAKE([1.8])
+AM_INIT_AUTOMAKE([1.9])
 dnl
 AC_SUBST(READLINE_LIBS)
 AC_SUBST(YAZ_CONF_CFLAGS)
@@ -14,7 +14,7 @@ AC_PROG_CC
 AC_PROG_CPP
 AC_CHECK_PROGS(YACC, 'bison -y')
 test -z "$YACC" && AC_MSG_WARN([GNU bison not found])
-AC_CHECK_PROGS(TCLSH, tclsh8.5 tclsh8.4 tclsh8.3 tclsh8.2, tclsh)
+AC_CHECK_PROGS([TCLSH], [tclsh tclsh8.5 tclsh8.4 tclsh8.3 tclsh8.2], [tclsh])
 AC_PROG_INSTALL
 AM_PROG_LIBTOOL
 AC_PATH_PROG(pkgconfigpath, pkg-config, NONE)
@@ -23,14 +23,17 @@ YAZ_DOC
 dnl 
 dnl
 dnl ------ Headers
-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],[],[],[
+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
@@ -174,49 +177,6 @@ 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 "${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
 AC_CHECK_FUNCS(getaddrinfo vsnprintf gettimeofday poll strerror_r localtime_r usleep fopen64)
 case $host in
@@ -292,7 +252,7 @@ if test "$enable_tcpd" -a "$enable_tcpd" != "no"; then
        CPPFLAGS="$CPPFLAGS -I$enable_tcpd/include"
     fi
     AC_MSG_CHECKING(for working tcpd.h)
-    LIBS="$LIBS -lwrap -lnsl"
+    LIBS="$LIBS -lwrap"
     AC_TRY_LINK([#include <syslog.h>
 #include <tcpd.h>
            int allow_severity = LOG_INFO;
@@ -312,10 +272,8 @@ if test "$enable_tcpd" -a "$enable_tcpd" != "no"; then
 fi
 dnl
 AC_SUBST(YAZ_CONFIG_CFLAGS)
-dnl
-HAVETHREADS=0
-dnl
 dnl ------ GNU threads
+HAVETHREADS=0
 AC_ARG_ENABLE(pth, [  --enable-pth            enable GNU threads],[enable_pth=$enableval],[enable_pth=no])
 AC_SUBST(LIBPTH)
 if test "$enable_pth" = "yes"; then
@@ -337,20 +295,36 @@ 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
     ACX_PTHREAD([
+           OCFLAGS=$CFLAGS
            CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
-           AC_DEFINE(YAZ_POSIX_THREADS)
-           LIBS="$PTHREAD_LIBS $LIBS"
-           YAZ_CONFIG_CFLAGS="$YAZ_CONFIG_CFLAGS $PTHREAD_CFLAGS -DYAZ_POSIX_THREADS=1"
+           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
+           CFLAGS=$OCFLAGS
+           PTHREAD_CFLAGS="$PTHREAD_CFLAGS -DYAZ_POSIX_THREADS=1"
            ])
 fi
 
 dnl ----- libXSLT/libEXLT/libXML2
 AC_SUBST(XML2_CFLAGS)
 
+xml_enabled=false
 YAZ_LIBXML2(
     [
        AC_DEFINE(YAZ_HAVE_XML2) 
        YAZ_CONFIG_CFLAGS="$YAZ_CONFIG_CFLAGS -DYAZ_HAVE_XML2=1"
+       xml_enabled=true
     ]
 )
 
@@ -374,6 +348,16 @@ if test "$XML2_LIBS"; then
 fi
 
 dnl
+dnl 
+AC_CHECK_ICU([3.6],[
+       if test "$xml_enabled" = "true"; then
+           ICU_CPPFLAGS="$ICU_CPPFLAGS -D YAZ_HAVE_ICU=1"
+       else
+           ICU_CPPFLAGS=""
+           AC_MSG_WARN([ICU support disabled because XML support is unavailable])
+       fi
+])
+dnl
 dnl ------ Memory debugging
 AC_ARG_ENABLE(memdebug, [  --enable-memdebug       enable memory debugging],[enable_memdebug=$enableval],[enable_memdebug=none])
 if test "$enable_memdebug" = "yes"; then
@@ -387,6 +371,9 @@ AC_SUBST(YAZ_SRC_ROOT)
 AC_SUBST(YAZ_BUILD_ROOT)
 YAZ_SRC_ROOT=`cd ${srcdir}; pwd`
 YAZ_BUILD_ROOT=`pwd`
+
+dnl ------ windows version files
+WIN_FILEVERSION=`echo $PACKAGE_VERSION|tr . ,`.1
 dnl
 dnl ------ Makefiles
 dnl
@@ -401,7 +388,6 @@ include/yaz/Makefile
 client/Makefile
 ztest/Makefile
 zoom/Makefile
-ziffy/Makefile
 doc/Makefile
 doc/local.ent
 doc/common/Makefile
@@ -410,7 +396,10 @@ 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])
+],[
+       sed s%yaz_echo_source=yes%yaz_echo_source=no%g < yaz-config > util/yaz-config && chmod +x yaz-config util/yaz-config
+    ]
+)
 
 
 echo \