X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=configure.ac;h=b9ea1072cd248941bf0c4c7cd6f55debdabc6058;hp=ec34cf58605ee83ad638cbd9a921f5aea2ce2829;hb=9757a9ac857180889850aec2756595c04501aeb7;hpb=b8d5d7476807b64d1c197efd9710cd4f5291152c diff --git a/configure.ac b/configure.ac index ec34cf5..b9ea107 100644 --- a/configure.ac +++ b/configure.ac @@ -1,72 +1,51 @@ dnl Zebra, Index Data ApS, 1995-2006 -dnl $Id: configure.ac,v 1.6 2006-05-23 09:41:06 marc Exp $ +dnl $Id: configure.ac,v 1.41 2006-11-28 11:42:13 adam Exp $ dnl AC_PREREQ(2.59) -AC_INIT([idzebra],[1.4.0],[adam@indexdata.dk]) +AC_INIT([idzebra],[2.0.6],[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 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/times.h sys/time.h sys/wait.h sys/utsname.h unistd.h) dnl ------ crypt AC_CHECK_LIB(crypt, crypt) if test "$ac_cv_lib_crypt_crypt" = "yes"; then - AC_CHECK_HEADERS(crypt.h) + 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 + yazflag=threads else - yazflag="" + yazflag="" fi dnl dnl ------ YAZ -YAZ_INIT($yazflag,2.1.9) -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($yazflag,2.1.40) +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 +55,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 +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"]) + 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,20 +191,20 @@ 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 @@ -243,9 +225,8 @@ int main(int argc, char **argv) if (sizeof(off_t) != 8) exit (1); o = 2000000000; - sprintf (tmp_str, "%Ld", o+o+o); - if (strcmp (tmp_str, "6000000000")) - exit (1); + if ((o+o+o) / 3 != o) + exit(1); fd = creat ("config.tmp", 0644); if (fd < 0) exit (1); @@ -260,14 +241,15 @@ int main(int argc, char **argv) } ],bits=64,bits=32,bits=32) if test "$bits" = "64"; then - AC_DEFINE(_FILE_OFFSET_BITS,64) - AC_MSG_RESULT(yes) + AC_DEFINE(_FILE_OFFSET_BITS,64) + AC_MSG_RESULT(yes) else - AC_MSG_RESULT(no) + AC_MSG_RESULT(no) fi AC_CHECK_SIZEOF([off_t]) AC_CHECK_SIZEOF([long long]) -AC_CHECK_SIZEOF([long]) +ZEBRA_CFLAGS="-DZEBRA_ZINT=${ac_cv_sizeof_long_long}" +AC_DEFINE_UNQUOTED(ZEBRA_ZINT,${ac_cv_sizeof_long_long}) dnl ------ Modules AC_SUBST(SHARED_MODULE_LA) SHARED_MODULE_LA="" @@ -282,52 +264,70 @@ 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(grs-csv,shared, [ --enable-mod-grs-csv CSV filter]) -ZEBRA_MODULE(grs-danbib,shared,[ --enable-mod-grs-danbib DanBib filter (DBC)]) 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(xslt,[$def], [ --enable-mod-xslt XSLT filter]) -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(alvis,[$def], [ --enable-mod-alvis ALVIS filter (Requires libxslt)]) 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) @@ -345,17 +345,13 @@ AC_OUTPUT([ isamc/Makefile rset/Makefile data1/Makefile - recctrl/Makefile index/Makefile include/Makefile include/idzebra/Makefile tab/Makefile doc/Makefile - doc/zebra.xml + doc/local.ent doc/common/Makefile - doc/common/html.dsl - doc/common/html.xsl doc/common/print.dsl - doc/common/tkl.xsl test/Makefile test/gils/Makefile test/usmarc/Makefile test/api/Makefile test/xslt/Makefile test/xpath/Makefile @@ -368,41 +364,18 @@ AC_OUTPUT([ test/espec/Makefile test/filters/Makefile examples/Makefile examples/gils/Makefile examples/zthes/Makefile - examples/marc21/Makefile examples/alvis-oai/Makefile + 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 \ "------------------------------------------------------------------------ -Configuration: - Package: ${PACKAGE} - Version: ${VERSION} - Bugreport: ${PACKAGE_BUGREPORT} + ZEBRA Package: ${PACKAGE} + ZEBRA Version: ${VERSION} Source code location: ${srcdir} C Preprocessor: ${CPP} C Preprocessor flags: ${CPPFLAGS} @@ -415,6 +388,15 @@ Configuration: Automake: ${AUTOMAKE} Archiver: ${AR} Ranlib: ${RANLIB} - + YAZ Version: ${YAZVERSION} + YAZ Include: ${YAZINC} + YAZ La Lib: ${YAZLALIB} + YAZ Lib: ${YAZLIB} + Bugreport: ${PACKAGE_BUGREPORT} ------------------------------------------------------------------------" +dnl Local Variables: +dnl mode:shell-script +dnl sh-indentation:2 +dnl sh-basic-offset: 4 +dnl End: