Windows: use Boost 1.59, msvc 14.0
[metaproxy-moved-to-github.git] / configure.ac
index 3e247fb..6e15185 100644 (file)
@@ -2,19 +2,19 @@
 ## Process this file with autoconf to produce a configure script.
 
 # Autoconf and automake setup
-AC_PREREQ(2.59)
-AC_INIT([metaproxy],[1.0.5], [adam@indexdata.dk])
+AC_PREREQ([2.60])
+AC_INIT([metaproxy],
+m4_esyscmd([. ./IDMETA; echo $VERSION|tr -d '\n']),
+[metaproxy-help@indexdata.dk])
 
-AC_CONFIG_HEADERS(src/config.hpp)
+AC_CONFIG_HEADERS([src/config.hpp])
 
 AC_CONFIG_SRCDIR([configure.ac]) 
 AC_CONFIG_AUX_DIR([config])
 AC_CANONICAL_SYSTEM
-##AC_PREFIX_DEFAULT(`pwd`/install) 
 
-AM_INIT_AUTOMAKE([1.8])
+AM_INIT_AUTOMAKE([1.9])
 
-# Checks for programs.
 AC_PROG_CXX
 AC_PROG_CXXCPP
 AC_PROG_INSTALL
@@ -23,136 +23,94 @@ AC_PROG_MAKE_SET
 AC_PROG_RANLIB
 AM_PROG_LIBTOOL
 
-# Use C++ compilers only for tests
-AC_LANG(C++)
+# Default language to use for tests (some tests may switch to C++)
+AC_LANG([C])
 
 if test "$enable_shared" = "yes"; then
-       AC_DEFINE([HAVE_DL_SUPPORT],[1],
-                [Define to 1 if you have shared module support])
+    AC_DEFINE([HAVE_DL_SUPPORT],[1],
+       [Define to 1 if you have shared module support])
 fi
 
 # Checks for libraries.
-AC_CHECK_LIB(dl,dlopen)
+AC_CHECK_LIB([dl],[dlopen])
+AC_CHECK_LIB([m],[main])
 
-AC_CHECK_LIB(boost_thread, main, [],[
-       AC_MSG_NOTICE([boost thread library not found.])
-       AC_MSG_ERROR([Install libboost-thread-dev (or similar)])
-])
-
-AC_CHECK_LIB(boost_date_time, main, [],[
-       AC_MSG_NOTICE([boost date_time library not found.])
-       AC_MSG_ERROR([Install libboost-date-time-dev (or similar)])
-])
-
-AC_CHECK_LIB(boost_program_options, main, [],[
-       AC_MSG_NOTICE([boost program options library not found.])
-       AC_MSG_ERROR([Install libboost-program-options-dev (or similar)])
-])
-
-AC_CHECK_HEADER(boost/test/auto_unit_test.hpp,,[
-       AC_MSG_NOTICE([boost test unit header not found.])
-       AC_MSG_ERROR([Install libboost-test-dev (or similar)])
-])
+AC_CHECK_FUNCS([localtime_r getrlimit])
 
-AC_MSG_CHECKING([whether boost_unit_test_framework works])
-OLIBS=$LIBS
-LIBS="$LIBS -lboost_unit_test_framework"
-AC_TRY_LINK([
-#define BOOST_AUTO_TEST_MAIN
-#include <boost/test/auto_unit_test.hpp> 
-BOOST_AUTO_UNIT_TEST( test )
-{
- BOOST_CHECK(true);
-}
-],[],
-[
-       AC_MSG_RESULT([yes])
-       LIBS=$OLIBS
-],
-[
-       AC_MSG_RESULT([no])
-       AC_MSG_NOTICE([Boost unit test framework does not appear to work])
-       AC_MSG_ERROR([Consult config.log for details])
-])
+USEMARCON_INIT
 
 ## YAZPP checks
-YAZPP_INIT(threads,1.0)
+YAZPP_INIT([threads],[1.6.0])
 if test -z "$YAZPPLIB"; then
-       AC_MSG_ERROR([YAZ++ development libraries missing])
+    AC_MSG_ERROR([YAZ++ development libraries missing])
 fi
+CPPFLAGS="$YAZPPINC $CPPFLAGS"
+AC_MSG_CHECKING([if YAZ is version 5.13.0 or later])
+AC_COMPILE_IFELSE(
+        [AC_LANG_PROGRAM([[#include <yaz/yaz-version.h>]],
+                         [[
+#if YAZ_VERSIONL < 0x50D00
+#error too old
+#endif
+]])],
+        [AC_MSG_RESULT([yes])],
+        [AC_MSG_RESULT([no])
+        AC_MSG_ERROR([newer version of YAZ required])]
+)
 YAZ_DOC
 
-## libxslt checks
-AC_SUBST(XSLT_LIBS)
-AC_SUBST(XSLT_CFLAGS)
-xsltdir=default
-AC_ARG_WITH(xslt,[[  --with-xslt[=PREFIX]    use libxslt in PREFIX]],xsltdir=$withval)
-if test "$xsltdir" = "yes" -o "$xsltdir" = "default"; then
-       for d in /usr /usr/local; do
-               if test -x $d/bin/xslt-config; then
-                       xsltdir=$d
-               fi
-       done
+ID_BOOST([system thread test regex],[1.33])
+if test -z "${BOOST_THREAD_LIB}"; then
+    AC_MSG_ERROR([Boost thread development libraries required])
 fi
-if test "$xsltdir" != "no"; then
-       AC_MSG_CHECKING(for libXSLT)
-       if test -x $xsltdir/bin/xslt-config; then
-               XSLT_LIBS=`$xsltdir/bin/xslt-config --libs`
-               XSLT_CFLAGS=`$xsltdir/bin/xslt-config --cflags`
-               XSLT_VER=`$xsltdir/bin/xslt-config --version`
-               AC_MSG_RESULT($XSLT_VER)
-               AC_DEFINE([HAVE_XSLT],[1],
-                [Define to 1 if you have libxslt installed])
-       else
-               AC_MSG_RESULT(Not found)
-               AC_MSG_ERROR([libxslt required.])
-       fi
+if test -z "${BOOST_TEST_LIB}"; then
+    AC_MSG_ERROR([Boost unit test framework libraries required])
+fi
+if test -z "${BOOST_REGEX_LIB}"; then
+    AC_MSG_ERROR([Boost regex development libraries required])
 fi
 
+case $YAZPPINC in
+  *YAZ_HAVE_XSLT=1*) ;;
+  *) AC_MSG_ERROR([YAZ not compiled with Libxslt support]) ;;
+esac
 
-# Checks for header files.
-##AC_HEADER_STDC
-##AC_HEADER_SYS_WAIT
-##AC_HEADER_TIME 
-AC_CHECK_HEADERS(sys/select.h sys/socket.h iostream list vector stdexcept)
-AC_CHECK_HEADERS(boost/thread/mutex.hpp \ 
-                 boost/date_time/posix_time/posix_time.hpp \
-                 boost/regex.hpp \
-                 boost/test/auto_unit_test.hpp)
-
-# Checks for typedefs, structures, and compiler characteristics.
-##AC_TYPE_SIZE_T 
-##AC_CHECK_SIZEOF(int)
-##AC_CHECK_SIZEOF(long int)
-
+AC_CHECK_HEADERS([sys/select.h sys/socket.h])
 
-# Checks for library functions.
+if test -d ${srcdir}/.git; then
+    SHA1=`git show --pretty=format:%H|head -1`
+else
+    SHA1=`head -1 ${srcdir}/ChangeLog|awk '{print $2}'`
+fi
+AC_DEFINE_UNQUOTED([VERSION_SHA1], "$SHA1", [SHA-1 from Git])
 
-AC_CONFIG_FILES([
+AC_OUTPUT([
+       metaproxy-config
         Doxyfile
        Makefile
+       include/Makefile include/metaproxy/Makefile
        src/Makefile
-       src/Jamfile
+       xml/Makefile
+       xml/schema/Makefile
+       xml/xslt/Makefile
        doc/Makefile
-       doc/main.xml
-        doc/common/Makefile
-        doc/common/html.dsl
-        doc/common/html.xsl
-        doc/common/print.dsl
-        doc/common/tkl.xsl
+       doc/local0.ent
+       doc/common/Makefile
+       doc/common/print.dsl
        etc/Makefile
+],[
+        sed s%echo_source=yes%echo_source=no%g < metaproxy-config > src/metaproxy-config && chmod +x metaproxy-config src/metaproxy-config
+       diff doc/local.ent doc/local0.ent >/dev/null 2>/dev/null \
+               || cp doc/local0.ent doc/local.ent
 ])
 
-AC_OUTPUT
-
-
-# postamble
-
 echo \
 "------------------------------------------------------------------------
-Configuration:
 
+  Package:                    ${PACKAGE}
+  Version:                    ${VERSION}
   Source code location:       ${srcdir}
+  CPP Preprocessor:           ${CPP}
   CPP Preprocessor flags:     ${CPPFLAGS}
   CXX Compiler:               ${CXX}
   CXX Compiler flags:         ${CXXFLAGS}
@@ -161,5 +119,21 @@ Configuration:
   Host System Type:           ${host}
   Install path:               ${prefix}
   Automake:                   ${AUTOMAKE}
+  Archiver:                   ${AR}
+  Ranlib:                     ${RANLIB}
+  Boost Version:              ${BOOST_VERSION}               
+  Boost Include:              ${BOOST_CPPFLAGS}               
+  Boost linker flags:         ${BOOST_LDFLAGS}               
+  Boost Libs:                 ${BOOST_DATE_TIME_LIB} ${BOOST_THREAD_LIB}               
+  YAZPP Version:              ${YAZPPVERSION}
+  YAZPP Include:              ${YAZPPINC}
+  YAZPP La Lib:               ${YAZPPLALIB}
+  YAZPP Lib:                  ${YAZPPLIB}
+  Bugreport:                  ${PACKAGE_BUGREPORT}
 
 ------------------------------------------------------------------------"
+dnl Local Variables:
+dnl mode:shell-script
+dnl sh-indentation: 2
+dnl sh-basic-offset: 4
+dnl End: