dnl YAZ Toolkit, Index Data 1995-2007
dnl See the file LICENSE for details.
-dnl $Id: configure.ac,v 1.58 2007-01-23 20:02:09 adam Exp $
+dnl $Id: configure.ac,v 1.101 2007-12-30 22:04:12 adam Exp $
AC_PREREQ(2.59)
-AC_INIT([yaz],[2.1.49],[yaz-help@indexdata.dk])
+AC_INIT([yaz],[3.0.18],[yaz-help@indexdata.dk])
AC_CONFIG_SRCDIR(configure.ac)
AC_CONFIG_AUX_DIR([config])
AM_INIT_AUTOMAKE([1.8])
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)
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/times.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 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])
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
+ if test "${ac_cv_header_netinet_if_ether_h}" = "no"; then
+ :
+ elif test "${PCAP_DIR}" != "yes" && test "${PCAP_DIR}" != "default"; then
+ PCAP_LIBS="-lpcap"
+ if test "$PCAP_DIR" != "/usr"; then
+ PCAP_LIBS="-L$PCAP_DIR $PCAP_LIBS"
+ PCAP_CFLAGS="-I$PCAP_DIR"
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
+ oldLibs=$LIBS
+ AC_CHECK_LIB([pcap], [main])
+ if test "$ac_cv_lib_pcap_main" = "yes"; then
+ AC_CHECK_HEADER([pcap.h])
+ if test "$ac_cv_header_pcap_h" = "yes"; then
+ PCAP_LIBS="-lpcap"
+ fi
fi
+ LIBS=$oldLibs
fi
fi
-if test -z "$ZIFFY_PROG"; then
+AC_MSG_CHECKING([for libpcap (required for ziffy)])
+if test -z "${PCAP_LIBS}"; then
AC_MSG_RESULT([not found. ziffy disabled])
- if test "${PCAP_DIR}" != "default" && test "${PCAP_DIR}" != "no"; then
+ if test "${PCAP_DIR}" = "yes"; then
AC_MSG_ERROR([libpcap missing])
fi
else
AC_MSG_RESULT([found in $PCAP_DIR])
+ ZIFFY_PROG=ziffy
fi
dnl ------ various functions
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;
fi
fi
dnl
-AC_SUBST(THREAD_CFLAGS)
-HAVETHREADS=0
-THREAD_CFLAGS=""
-LIBTHREAD=""
+AC_SUBST(YAZ_CONFIG_CFLAGS)
dnl
+dnl
+AC_CHECK_ICU([3.6],[ICU_CPPFLAGS="$ICU_CPPFLAGS -D YAZ_HAVE_ICU=1"])
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
+ 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([
+ 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.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)
-AC_SUBST(YAZ_CONFIG_CFLAGS)
-YAZ_CONFIG_CFLAGS=""
YAZ_LIBXML2(
[
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
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])
+],[
+ sed s%yaz_echo_source=yes%yaz_echo_source=no%g < yaz-config > util/yaz-config && chmod +x yaz-config util/yaz-config
+ ]
+)
echo \