X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=configure.ac;h=58d9116b23e8914cbfdc5fdab61fad361d3983cd;hp=b733914d289d0b457e1d434e259a79ee13fbfac0;hb=d8b7b88d8cb7baef72f3489b189ba4c7f2a9c648;hpb=72c776b15ed8f48acb406c9a543bd808b3cfc5a3 diff --git a/configure.ac b/configure.ac index b733914..58d9116 100644 --- a/configure.ac +++ b/configure.ac @@ -1,72 +1,44 @@ -dnl Zebra, Index Data ApS, 1995-2006 -dnl $Id: configure.ac,v 1.13 2006-06-12 09:27:00 marc Exp $ +dnl Zebra, Index Data ApS, 1995-2008 +dnl $Id: configure.ac,v 1.73 2008-01-18 09:07:01 adam Exp $ dnl AC_PREREQ(2.59) -AC_INIT([idzebra],[1.4.0],[adam@indexdata.dk]) +AC_INIT([idzebra],[2.0.24],[zebra-help@indexdata.dk]) AC_CONFIG_SRCDIR(configure.ac) AC_CONFIG_AUX_DIR(config) AM_INIT_AUTOMAKE([1.8]) +PACKAGE_SUFFIX="-2.0" +AC_SUBST(PACKAGE_SUFFIX) +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(ZEBRA_CFLAGS) dnl dnl ------ Checking programs AC_PROG_CC AC_PROG_CPP -AM_DISABLE_SHARED AM_PROG_LIBTOOL +AC_DEFINE_UNQUOTED(HOST_TRIPLET,"${host}") 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_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 +YAZ_INIT([server icu],[3.0.17]) +if test "$YAZVERSION" = "NONE"; then + AC_MSG_ERROR([YAZ development libraries required]) fi +YAZ_DOC 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 @@ -76,127 +48,130 @@ TCL_INCLUDE="" tclconfig=NONE AC_ARG_WITH(tclconfig, [ --with-tclconfig=DIR tclConfig.sh in DIR], [tclconfig=$withval]) if test "x$tclconfig" = xNONE; then - saveprefix=${prefix} - AC_PREFIX_PROGRAM(tclsh) - tclconfig=${prefix}/lib - prefix=${saveprefix} - if test ! -r ${tclconfig}/tclConfig.sh; then - # Not found, try search for Tcl on Debian systems. - for d in /usr/lib/tcl*; do - if test -f $d/tclConfig.sh; then - tclconfig=$d - fi - done - fi + saveprefix=${prefix} + AC_PREFIX_PROGRAM(tclsh) + tclconfig=${prefix}/lib + prefix=${saveprefix} + if test ! -r ${tclconfig}/tclConfig.sh; then + # Not found, try search for Tcl on Debian systems. + for d in /usr/lib/tcl*; do + if test -f $d/tclConfig.sh; then + tclconfig=$d + fi + done + fi fi AC_MSG_CHECKING(for Tcl) if test -r ${tclconfig}/tclConfig.sh; then - . ${tclconfig}/tclConfig.sh - if test -r ${tclconfig}/../generic/tcl.h; then - TCL_INCLUDE=-I${tclconfig}/../generic - TCL_LIB="$TCL_BUILD_LIB_SPEC $TCL_LIBS" - elif test -d ${TCL_PREFIX}/include/tcl${TCL_VERSION}; then - TCL_INCLUDE=-I${TCL_PREFIX}/include/tcl${TCL_VERSION} - TCL_LIB="$TCL_LIB_SPEC $TCL_LIBS" - else - TCL_INCLUDE=-I${TCL_PREFIX}/include - TCL_LIB="$TCL_LIB_SPEC $TCL_LIBS" - fi - TCL_LIB=`echo $TCL_LIB|sed 's%-L/usr/lib%%g'` - SHLIB_CFLAGS=$TCL_SHLIB_CFLAGS - SHLIB_LD=$TCL_SHLIB_LD - SHLIB_SUFFIX=$TCL_SHLIB_SUFFIX - SHLIB_VERSION=$TCL_SHLIB_VERSION - AC_MSG_RESULT($TCL_VERSION) - AC_DEFINE(HAVE_TCL_H,1) + . ${tclconfig}/tclConfig.sh + if test -r ${tclconfig}/../generic/tcl.h; then + TCL_INCLUDE=-I${tclconfig}/../generic + TCL_LIB="$TCL_BUILD_LIB_SPEC $TCL_LIBS" + elif test -d ${TCL_PREFIX}/include/tcl${TCL_VERSION}; then + TCL_INCLUDE=-I${TCL_PREFIX}/include/tcl${TCL_VERSION} + TCL_LIB="$TCL_LIB_SPEC $TCL_LIBS" + else + TCL_INCLUDE=-I${TCL_PREFIX}/include + TCL_LIB="$TCL_LIB_SPEC $TCL_LIBS" + fi + TCL_LIB=`echo $TCL_LIB|sed 's%-L/usr/lib%%g'` + SHLIB_CFLAGS=$TCL_SHLIB_CFLAGS + SHLIB_LD=$TCL_SHLIB_LD + SHLIB_SUFFIX=$TCL_SHLIB_SUFFIX + SHLIB_VERSION=$TCL_SHLIB_VERSION + AC_MSG_RESULT($TCL_VERSION) - # The Mac OSX -framework causes problems with Libtool - # and dependancy libs.. so apply Tcl libs everywhere - # bug #461 - case $host in - *-*-darwin*) - LIBS="$LIBS $TCL_LIB"; - ;; - esac + 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 + *-*-darwin*) + LIBS="$LIBS $TCL_LIB"; + ;; + esac + else - AC_MSG_RESULT(Not found) - AC_DEFINE(HAVE_TCL_H,0) + AC_MSG_RESULT(Not found) + AC_DEFINE(HAVE_TCL_H,0) fi dnl -dnl ------ mkstemp -AC_CHECK_FUNCS(mkstemp) +dnl ------ various functions +AC_CHECK_FUNCS(mkstemp atoll) 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"]) + 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([ + 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([ + 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 + ],[ + rl_completion_matches (0, 0); + ],AC_DEFINE(HAVE_READLINE_RL_COMPLETION_MATCHES)) + LIBS=$xLIBS fi dnl dnl ------ iconv AC_ARG_WITH(iconv, [ --with-iconv[=DIR] iconv library in DIR]) if test "$with_iconv" != "no"; then - AC_MSG_CHECKING(for iconv) - oldLIBS="$LIBS" - oldCPPFLAGS="${CPPFLAGS}" - if test "$with_iconv" != "yes" -a "$with_iconv" != ""; then - LIBS="$LIBS -L${with_iconv}/lib" - CPPFLAGS="${CPPFLAGS} -I${with_iconv}/include" - fi - AC_TRY_LINK([ + AC_MSG_CHECKING(for iconv) + oldLIBS="$LIBS" + oldCPPFLAGS="${CPPFLAGS}" + if test "$with_iconv" != "yes" -a "$with_iconv" != ""; then + LIBS="$LIBS -L${with_iconv}/lib" + CPPFLAGS="${CPPFLAGS} -I${with_iconv}/include" + fi + AC_TRY_LINK([ #include - ],[ - iconv_t t = iconv_open("", ""); - ],[ - AC_DEFINE(HAVE_ICONV_H) - AC_MSG_RESULT(yes) - ],[ - LIBS="$LIBS -liconv" - AC_TRY_LINK([ + ],[ + iconv_t t = iconv_open("", ""); + ],[ + AC_DEFINE(HAVE_ICONV_H) + AC_MSG_RESULT(yes) + ],[ + LIBS="$LIBS -liconv" + AC_TRY_LINK([ #include - ],[ - iconv_t t = iconv_open("", ""); - ],[ - AC_DEFINE(HAVE_ICONV_H) - AC_MSG_RESULT(yes) - ],[ - LIBS="$oldLIBS" - CPPFLAGS="$oldCPPFLAGS" - AC_MSG_RESULT(no) - ]) - ]) + ],[ + iconv_t t = iconv_open("", ""); + ],[ + AC_DEFINE(HAVE_ICONV_H) + AC_MSG_RESULT(yes) + ],[ + LIBS="$oldLIBS" + CPPFLAGS="$oldCPPFLAGS" + AC_MSG_RESULT(no) + ]) + ]) fi dnl dnl ------- BZIP2 AC_CHECK_LIB(bz2,bzCompressInit) if test "$ac_cv_lib_bz2_bzCompressInit" = "yes"; then - AC_CHECK_HEADERS(bzlib.h) + AC_CHECK_HEADERS(bzlib.h) else - AC_CHECK_LIB(bz2,BZ2_bzCompressInit) - if test "$ac_cv_lib_bz2_BZ2_bzCompressInit" = "yes"; then - AC_CHECK_HEADERS(bzlib.h) - fi + AC_CHECK_LIB(bz2,BZ2_bzCompressInit) + if test "$ac_cv_lib_bz2_BZ2_bzCompressInit" = "yes"; then + AC_CHECK_HEADERS(bzlib.h) + fi fi dnl dnl ------ -lm @@ -209,65 +184,32 @@ expat=yes AC_SUBST(EXPAT_LIBS) AC_ARG_WITH(expat, [ --with-expat[=DIR] EXPAT library in DIR],[expat=$withval]) if test "$expat" != "no"; then - xLIBS="$LIBS"; - xCFLAGS="$CFLAGS"; - if test "$expat" != "yes"; then - EXPAT_CFLAGS="-I$expat/include" - EXPAT_LIBS="-L$expat/lib" - CFLAGS="$EXPAT_CFLAGS $CFLAGS" - LIBS="$EXPAT_LIBS $LIBS" - fi - AC_CHECK_LIB(expat,XML_ParserCreate,[EXPAT_LIBS="$EXPAT_LIBS -lexpat"]) - if test "$ac_cv_lib_expat_XML_ParserCreate" = "yes"; then + xLIBS="$LIBS"; + xCFLAGS="$CFLAGS"; + if test "$expat" != "yes"; then + EXPAT_CFLAGS="-I$expat/include" + EXPAT_LIBS="-L$expat/lib" + CFLAGS="$EXPAT_CFLAGS $CFLAGS" + LIBS="$EXPAT_LIBS $LIBS" + fi + AC_CHECK_LIB(expat,XML_ParserCreate,[EXPAT_LIBS="$EXPAT_LIBS -lexpat"]) + if test "$ac_cv_lib_expat_XML_ParserCreate" = "yes"; then AC_CHECK_HEADERS(expat.h) - fi - LIBS="$xLIBS" - CFLAGS="$xCFLAGS" + fi + LIBS="$xLIBS" + CFLAGS="$xCFLAGS" 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}) dnl ------ Modules AC_SUBST(SHARED_MODULE_LA) SHARED_MODULE_LA="" @@ -282,49 +224,71 @@ AC_DEFUN([ZEBRA_MODULE],[ myen="shared" fi if test "$enable_shared" != "yes"; then - if test "$myen" = "shared"; then - myen="static" - fi + if test "$myen" = "shared"; then + myen="static" + fi fi m=`echo $1|tr .- __` - if test "$myen" = "shared"; then - AC_MSG_RESULT([shared]) - SHARED_MODULE_LA="${SHARED_MODULE_LA} mod-$1.la" - elif test "$myen" = "static" -o "$myen" = "yes"; then - AC_MSG_RESULT([static]) - STATIC_MODULE_OBJ="${STATIC_MODULE_OBJ} \$(mod_${m}_la_OBJECTS)" - STATIC_MODULE_LADD="${STATIC_MODULE_LADD} \$(mod_${m}_la_LADD)" - modcpp=`echo $1|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_` - AC_DEFINE_UNQUOTED([IDZEBRA_STATIC_$modcpp]) - elif test "$myen" = "no"; then - AC_MSG_RESULT([disabled]) + if test "$myen" = "no" -o "$myen" = "disabled"; then + AC_MSG_RESULT([disabled]) + elif test "$2" = "disabled"; then + AC_MSG_RESULT([disabled]) + AC_MSG_ERROR([Cannot enable mod-$1 because of missing libs (XML, etc)]) + elif test "$myen" = "shared"; then + AC_MSG_RESULT([shared]) + SHARED_MODULE_LA="${SHARED_MODULE_LA} mod-$1.la" + elif test "$myen" = "static"; then + AC_MSG_RESULT([static]) + STATIC_MODULE_OBJ="${STATIC_MODULE_OBJ} \$(mod_${m}_la_OBJECTS)" + STATIC_MODULE_LADD="${STATIC_MODULE_LADD} \$(mod_${m}_la_LADD)" + modcpp=`echo $1|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_` + AC_DEFINE_UNQUOTED([IDZEBRA_STATIC_$modcpp]) else - AC_MSG_RESULT([$myen]) - AC_MSG_ERROR([invalid --enable-mod-$1 value. Use on,off,static or shared]) + AC_MSG_RESULT([$myen]) + AC_MSG_ERROR([invalid --enable-mod-$1 value. Use on,off,static or shared]) 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) +ZEBRA_MODULE(text,shared, [ --enable-mod-text Text filter]) ZEBRA_MODULE(grs-regx,shared,[ --enable-mod-grs-regx REGX/TCL filter]) 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" + def="shared" else - def="no" + def="disabled" fi ZEBRA_MODULE(grs-xml,[$def], [ --enable-mod-grs-xml XML filter (Expat based)]) -if test "$XSLT_VER"; then - def="shared" -else - def="no" -fi -ZEBRA_MODULE(alvis,[$def], [ --enable-mod-alvis ALVIS filter]) +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 +ZEBRA_MODULE(dom,[$def], [ --enable-mod-dom XML/XSLT filter (Requires libxslt)]) +ZEBRA_MODULE(alvis,[$def], [ --enable-mod-alvis ALVIS filter (Requires libxslt)]) +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 doesn't seem to support ANSI C) fi AC_SUBST(IDZEBRA_SRC_ROOT) AC_SUBST(IDZEBRA_BUILD_ROOT) @@ -342,7 +306,6 @@ AC_OUTPUT([ isamc/Makefile rset/Makefile data1/Makefile - recctrl/Makefile index/Makefile include/Makefile include/idzebra/Makefile tab/Makefile @@ -365,31 +328,9 @@ AC_OUTPUT([ examples/marc21/Makefile examples/marcxml/Makefile examples/alvis-oai/Makefile idzebra.spec - idzebra-config + idzebra-config-2.0 Doxyfile -],[sed s%idzebra_echo_source=yes%idzebra_echo_source=no%g < idzebra-config > util/idzebra-config && chmod +x idzebra-config util/idzebra-config]) - - -echo \ ' -Build and install binaries with the usual - make - make check - make install - -Build distribution tarball with - make dist - -Verify distribution tarball with - make distcheck - -Or just build the Debian packages without configuring - dpkg-buildpackage -rfakeroot -' - -if test -z "$YAZLIB"; then - echo "YAZ was not found. Use --with-yaz=DIR to specify location." - test -f /etc/debian_version && echo "Debian package libyaz-dev is required." -fi +],[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]) echo \ "------------------------------------------------------------------------ @@ -415,3 +356,8 @@ echo \ Bugreport: ${PACKAGE_BUGREPORT} ------------------------------------------------------------------------" +dnl Local Variables: +dnl mode:shell-script +dnl sh-indentation:2 +dnl sh-basic-offset: 4 +dnl End: