X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=configure.ac;h=db1eb8956aae74dff0f05747e10988aa51b620d6;hp=100bdc8b1a43358d8adfb41515429a5bdece1dc1;hb=c3ff843e467932c6027a8b3b2ebda7b44612447e;hpb=54453c3aa60e354161680de92b95a279ef6a0916 diff --git a/configure.ac b/configure.ac index 100bdc8..db1eb89 100644 --- a/configure.ac +++ b/configure.ac @@ -1,21 +1,25 @@ -dnl Zebra, Index Data ApS, 1995-2006 -dnl $Id: configure.ac,v 1.25 2006-07-06 07:56:00 adam Exp $ +dnl This file is part of the Zebra server. +dnl Copyright (C) Index Data. See LICENSE.zebra for details. dnl -AC_PREREQ(2.59) -AC_INIT([idzebra],[2.0.0],[adam@indexdata.dk]) -AC_CONFIG_SRCDIR(configure.ac) -AC_CONFIG_AUX_DIR(config) -AM_INIT_AUTOMAKE([1.8]) +AC_PREREQ(2.60) +AC_INIT([idzebra], +m4_esyscmd([. ./IDMETA; echo $VERSION|tr -d '\n']), +[zebra-help@indexdata.dk]) +AC_CONFIG_HEADERS([include/config.h]) +AC_CONFIG_SRCDIR([configure.ac]) +AC_CONFIG_AUX_DIR([config]) +AM_INIT_AUTOMAKE([1.9]) PACKAGE_SUFFIX="-2.0" AC_SUBST(PACKAGE_SUFFIX) -ZEBRALIBS_VERSION_INFO=0:0:0 -AC_SUBST(ZEBRALIBS_VERSION_INFO) +dnl http://www.gnu.org/software/libtool/manual.html#Versioning +ZEBRALIBS_VERSION_INFO=0:1:0 +AC_SUBST([ZEBRALIBS_VERSION_INFO]) main_zebralib=index/libidzebra${PACKAGE_SUFFIX}.la AC_SUBST(main_zebralib) dnl ------ Substitutions -AC_SUBST(TCL_INCLUDE) -AC_SUBST(TCL_LIB) -AC_SUBST(READLINE_LIBS) +AC_SUBST([TCL_INCLUDE]) +AC_SUBST([TCL_LIB]) +AC_SUBST([ZEBRA_CFLAGS]) dnl dnl ------ Checking programs AC_PROG_CC @@ -23,58 +27,19 @@ AC_PROG_CPP AM_PROG_LIBTOOL dnl dnl ------ headers -AC_CHECK_HEADERS(sys/resource.h sys/times.h sys/time.h sys/wait.h unistd.h) +AC_CHECK_HEADERS([sys/resource.h sys/time.h sys/wait.h sys/utsname.h unistd.h]) dnl ------ crypt -AC_CHECK_LIB(crypt, crypt) +AC_CHECK_LIB([crypt],[crypt]) if test "$ac_cv_lib_crypt_crypt" = "yes"; then - AC_CHECK_HEADERS(crypt.h) -fi -dnl -dnl ------ threads -AC_ARG_ENABLE(threads, [ --disable-threads disable threads],[enable_threads=$enableval],[enable_threads=yes]) -if test "$enable_threads" = "yes"; then - yazflag=threads -else - yazflag="" + AC_CHECK_HEADERS([crypt.h]) fi dnl dnl ------ YAZ -YAZ_INIT($yazflag,2.1.20) +YAZ_INIT([server icu],[3.0.47]) if test "$YAZVERSION" = "NONE"; then AC_MSG_ERROR([YAZ development libraries required]) fi YAZ_DOC -dnl ----- libXSLT -AC_SUBST(XSLT_LIBS) -AC_SUBST(XSLT_CFLAGS) -xsltdir=yes -AC_ARG_WITH(xslt,[[ --with-xslt[=PREFIX] use libxslt in PREFIX]],xsltdir=$withval) -if test "$xsltdir" = "yes"; then - for d in /usr /usr/local; do - if test -x $d/bin/xslt-config; then - xsltdir=$d - fi - done -fi -if test "$xsltdir" != "no"; then - AC_MSG_CHECKING(for libXSLT) - - if test -x $xsltdir/bin/xslt-config; then - XSLT_VER=`$xsltdir/bin/xslt-config --version` - AC_MSG_RESULT($XSLT_VER) - have_xslt_version=`echo "$XSLT_VER" | awk 'BEGIN { FS = "."; } { printf "%d", ([$]1 * 1000 + [$]2) * 1000 + [$]3;}'` - if test $have_xslt_version -lt 1001011; then - AC_MSG_WARN([libXSLT too old. Use 1.1.11 or later.]) - XSLT_VER="" - else - XSLT_LIBS=`$xsltdir/bin/xslt-config --libs` - XSLT_CFLAGS=`$xsltdir/bin/xslt-config --cflags` - AC_DEFINE(HAVE_XSLT) - fi - else - AC_MSG_RESULT(Not found) - fi -fi dnl ------ Look for Tcl dnl See if user has specified location of tclConfig.sh; otherwise dnl see if tclConfig.sh exists in same prefix lcoation as tclsh; otherwise @@ -116,8 +81,12 @@ if test -r ${tclconfig}/tclConfig.sh; then SHLIB_SUFFIX=$TCL_SHLIB_SUFFIX SHLIB_VERSION=$TCL_SHLIB_VERSION AC_MSG_RESULT($TCL_VERSION) - AC_DEFINE(HAVE_TCL_H,1) - + + old_CPPFLAGS=$CPPFLAGS + CPPFLAGS="${TCL_INCLUDE} $CPPFLAGS" + AC_CHECK_HEADERS(tcl.h) + CPPFLAGS=${old_CPPFLAGS} + # The Mac OSX -framework causes problems with Libtool # and dependancy libs.. so apply Tcl libs everywhere bug #461 case $host in @@ -132,34 +101,7 @@ else fi dnl dnl ------ various functions -AC_CHECK_FUNCS(mkstemp) -dnl -dnl ------ GNU Readline -READLINE_SHARED_LIBADD="" -AC_CHECK_LIB(ncurses, tgetent, [READLINE_SHARED_LIBADD="-lncurses"], - AC_CHECK_LIB(termcap, tgetent, [READLINE_SHARED_LIBADD="-ltermcap"]) -) -READLINE_LIBS="" -AC_CHECK_LIB(readline, readline, [READLINE_LIBS="$READLINE_LIBS -lreadline $READLINE_SHARED_LIBADD"],,$READLINE_SHARED_LIBADD) -AC_CHECK_LIB(history, add_history, [READLINE_LIBS="$READLINE_LIBS -lhistory"]) -if test "$ac_cv_lib_readline_readline" = "yes"; then - AC_CHECK_HEADERS(readline/readline.h readline/history.h) - xLIBS=$LIBS - LIBS="$LIBS $READLINE_LIBS" - AC_TRY_LINK([ - #include - #include - ],[ - rl_attempted_completion_over = 0; - ],AC_DEFINE(HAVE_READLINE_COMPLETION_OVER)) - AC_TRY_LINK([ - #include - #include - ],[ - rl_completion_matches (0, 0); - ],AC_DEFINE(HAVE_READLINE_RL_COMPLETION_MATCHES)) - LIBS=$xLIBS -fi +AC_CHECK_FUNCS(mkstemp atoll) dnl dnl ------ iconv AC_ARG_WITH(iconv, [ --with-iconv[=DIR] iconv library in DIR]) @@ -176,7 +118,7 @@ if test "$with_iconv" != "no"; then ],[ iconv_t t = iconv_open("", ""); ],[ - AC_DEFINE(HAVE_ICONV_H) + AC_DEFINE([HAVE_ICONV_H],[1],[Whether iconv.h is defined]) AC_MSG_RESULT(yes) ],[ LIBS="$LIBS -liconv" @@ -185,7 +127,7 @@ if test "$with_iconv" != "no"; then ],[ iconv_t t = iconv_open("", ""); ],[ - AC_DEFINE(HAVE_ICONV_H) + AC_DEFINE([HAVE_ICONV_H],[1]) AC_MSG_RESULT(yes) ],[ LIBS="$oldLIBS" @@ -206,14 +148,19 @@ else fi fi dnl +dnl ------- zlib +AC_CHECK_LIB([z],[compress2]) +if test "$ac_cv_lib_z_compress2" = "yes"; then + AC_CHECK_HEADERS([zlib.h]) +fi dnl ------ -lm -AC_CHECK_LIB(m,sqrt) +AC_CHECK_LIB([m], [sqrt]) dnl ------ -ldl -AC_CHECK_LIB(dl,dlopen) +AC_CHECK_LIB([dl], [dlopen]) dnl dnl ------ EXPAT expat=yes -AC_SUBST(EXPAT_LIBS) +AC_SUBST([EXPAT_LIBS]) AC_ARG_WITH(expat, [ --with-expat[=DIR] EXPAT library in DIR],[expat=$withval]) if test "$expat" != "no"; then xLIBS="$LIBS"; @@ -233,54 +180,21 @@ if test "$expat" != "no"; then fi dnl dnl ------- 64 bit files -AC_MSG_CHECKING(for LFS) -AC_TRY_RUN([#define _FILE_OFFSET_BITS 64 -#include -#include -#include -#include -#include -#include -int main(int argc, char **argv) -{ - off_t o; - char tmp_str[32]; - int fd; - struct flock area; - if (sizeof(off_t) != 8) - exit (1); - o = 2000000000; - sprintf (tmp_str, "%Ld", o+o+o); - if (strcmp (tmp_str, "6000000000")) - exit (1); - fd = creat ("config.tmp", 0644); - if (fd < 0) - exit (1); - area.l_type = F_WRLCK; - area.l_whence = SEEK_SET; - area.l_len = area.l_start = 0L; - if (fcntl(fd, F_SETLKW, &area)) - exit (1); - close (fd); - unlink ("config.tmp"); - exit (0); -} -],bits=64,bits=32,bits=32) -if test "$bits" = "64"; then - AC_DEFINE(_FILE_OFFSET_BITS,64) - AC_MSG_RESULT(yes) +AC_SYS_LARGEFILE +AC_CHECK_TYPES([long long]) +if test "${ac_cv_type_long_long}" = "yes"; then + ZINT_VALUE=1 else - AC_MSG_RESULT(no) -fi -AC_CHECK_SIZEOF([off_t]) -AC_CHECK_SIZEOF([long long]) -AC_CHECK_SIZEOF([long]) + ZINT_VALUE=0 +fi +ZEBRA_CFLAGS="-DZEBRA_ZINT=${ZINT_VALUE}" +AC_DEFINE_UNQUOTED([ZEBRA_ZINT],${ZINT_VALUE},[Whehter zint is long long]) dnl ------ Modules -AC_SUBST(SHARED_MODULE_LA) +AC_SUBST([SHARED_MODULE_LA]) SHARED_MODULE_LA="" -AC_SUBST(STATIC_MODULE_OBJ) +AC_SUBST([STATIC_MODULE_OBJ]) STATIC_MODULE_OBJ="" -AC_SUBST(STATIC_MODULE_LADD) +AC_SUBST([STATIC_MODULE_LADD]) STATIC_MODULE_LADD="" AC_DEFUN([ZEBRA_MODULE],[ AC_ARG_ENABLE(mod-$1,[$3],[myen=$enableval],[myen=$2]) @@ -314,33 +228,74 @@ AC_DEFUN([ZEBRA_MODULE],[ fi ]) -ZEBRA_MODULE(text,static, [ --enable-mod-text Text filter]) -ZEBRA_MODULE(grs-sgml,static,[ --enable-mod-grs-sgml Simple SGML/XML filter]) +AC_DEFINE([IDZEBRA_STATIC_GRS_SGML],[1],[Whether module grs.sgml is static]) +AC_DEFINE([IDZEBRA_STATIC_TEXT],[0],[Whether module text is static]) +ZEBRA_MODULE(text,shared, [ --enable-mod-text Text filter]) +AC_DEFINE([IDZEBRA_STATIC_GRS_REGX],[0],[Whether module grs.regx is static]) ZEBRA_MODULE(grs-regx,shared,[ --enable-mod-grs-regx REGX/TCL filter]) +AC_DEFINE([IDZEBRA_STATIC_GRS_MARC],[0],[Whether module grs.marc is static]) ZEBRA_MODULE(grs-marc,shared,[ --enable-mod-grs-marc MARC filter]) -ZEBRA_MODULE(safari,shared, [ --enable-mod-safari Safari filter (DBC)]) if test "$ac_cv_header_expat_h" = "yes"; then def="shared" else def="disabled" fi +AC_DEFINE([IDZEBRA_STATIC_GRS_XML],[0],[Whether module grs.xml is static]) ZEBRA_MODULE(grs-xml,[$def], [ --enable-mod-grs-xml XML filter (Expat based)]) -if test "$XSLT_VER"; then - def="shared" -else - def="disabled" -fi -ZEBRA_MODULE(alvis,[$def], [ --enable-mod-alvis ALVIS filter (Requires libxslt)]) +oldCPPFLAGS="$CPPFLAGS" +CPPFLAGS="$CPPFLAGS $YAZINC" +AC_PREPROC_IFELSE( + [AC_LANG_PROGRAM([[ +#if YAZ_HAVE_XML2 +#include +#include +#include +#include +#include +#include +#else +#error Libxml2 not available +#endif +]],[[ +#if LIBXML_VERSION < 20615 +#error Libxml2 version < 2.6.15. xmlreader not reliable/present +#endif +]])], + [def="shared"], + [def="disabled"]) +CPPFLAGS=$oldCPPFLAGS +AC_DEFINE([IDZEBRA_STATIC_DOM],[0],[Whether module dom is static]) +ZEBRA_MODULE(dom,[$def], [ --enable-mod-dom XML/XSLT filter (Requires libxslt)]) +AC_DEFINE([IDZEBRA_STATIC_ALVIS],[0],[Whether module alvis is static]) +ZEBRA_MODULE(alvis,[$def], [ --enable-mod-alvis ALVIS filter (Requires libxslt)]) +AC_DEFINE([IDZEBRA_STATIC_SAFARI],[0],[Whether module safari is static]) +ZEBRA_MODULE(safari,shared,[ --enable-mod-safari Safari filter (DBC)]) + dnl ------ ANSI C Header files AC_STDC_HEADERS if test "$ac_cv_header_stdc" = "no"; then - AC_MSG_WARN(Your system doesn't seem to support ANSI C) + AC_MSG_WARN([Your system does not seem to support ANSI C]) fi -AC_SUBST(IDZEBRA_SRC_ROOT) -AC_SUBST(IDZEBRA_BUILD_ROOT) +AC_SUBST([IDZEBRA_SRC_ROOT]) +AC_SUBST([IDZEBRA_BUILD_ROOT]) IDZEBRA_SRC_ROOT=`cd ${srcdir}; pwd` IDZEBRA_BUILD_ROOT=`pwd` +dnl +dnl ------ versioning +dnl +WIN_FILEVERSION=`echo $PACKAGE_VERSION | $AWK 'BEGIN { FS = "."; } { m = $4; printf("%d,%d,%d,%d", $1, $2, $3 == "" ? "0" : $3, $4 == "" ? "1" : $4);}'` +AC_SUBST([WIN_FILEVERSION]) +VERSION_HEX=`echo $PACKAGE_VERSION | $AWK 'BEGIN { FS = "."; } { printf("%x", ($1 * 256 + $2) * 256 + $3);}'` +AC_SUBST([VERSION_HEX]) +if test -d ${srcdir}/.git; then + VERSION_SHA1=`git show --pretty=format:%H|head -1` +else + VERSION_SHA1=`head -1 ${srcdir}/ChangeLog|awk '{print $2}'` +fi +AC_SUBST([VERSION_SHA1]) +dnl dnl ------ Create Makefiles +dnl AC_OUTPUT([ Makefile util/Makefile @@ -356,7 +311,7 @@ AC_OUTPUT([ include/Makefile include/idzebra/Makefile tab/Makefile doc/Makefile - doc/local.ent + doc/local0.ent doc/common/Makefile doc/common/print.dsl test/Makefile test/gils/Makefile test/usmarc/Makefile test/api/Makefile @@ -364,19 +319,26 @@ AC_OUTPUT([ test/xpath/Makefile test/rusmarc/Makefile test/cddb/Makefile test/malxml/Makefile test/mbox/Makefile - test/config/Makefile test/sort2/Makefile - test/xelm/Makefile - test/dmoz/Makefile test/sort/Makefile test/zsh/Makefile + test/config/Makefile + test/dmoz/Makefile test/zsh/Makefile test/marcxml/Makefile test/charmap/Makefile test/codec/Makefile test/espec/Makefile test/filters/Makefile - examples/Makefile examples/gils/Makefile examples/zthes/Makefile - examples/marc21/Makefile examples/marcxml/Makefile - examples/alvis-oai/Makefile - idzebra.spec - idzebra-config + examples/Makefile + examples/gils/Makefile + examples/marc21/Makefile + examples/marcxml/Makefile + examples/oai-pmh/Makefile + examples/zthes/Makefile + idzebra-config-2.0 Doxyfile -],[sed s%echo_source=yes%echo_source=no%g < idzebra-config > util/idzebra-config && chmod +x idzebra-config util/idzebra-config]) + win/version.nsi + include/idzebra/version.h +],[ + sed s%echo_source=yes%echo_source=no%g < idzebra-config-2.0 > util/idzebra-config-2.0 && chmod +x idzebra-config-2.0 util/idzebra-config-2.0 + diff doc/local.ent doc/local0.ent >/dev/null 2>/dev/null \ + || cp doc/local0.ent doc/local.ent +]) echo \ "------------------------------------------------------------------------