Result of autoupdate
[shibboleth/cpp-xmltooling.git] / configure.ac
index 4c7fd07..bd6dbe0 100644 (file)
@@ -1,12 +1,11 @@
-AC_PREREQ([2.50])
-AC_INIT([xmltooling], [1.4], [mace-opensaml-users@internet2.edu], [xmltooling])
-AM_CONFIG_HEADER(config.h)
-AM_CONFIG_HEADER(xmltooling/config_pub.h)
-AM_INIT_AUTOMAKE([xmltooling], [1.4])
-
-sinclude(doxygen.m4)
-sinclude(acx_pthread.m4)
-sinclude(ax_create_pkgconfig_info.m4)
+# Process this file with autoreconf
+AC_PREREQ([2.67])
+AC_INIT([xmltooling],[1.4],[https://bugs.internet2.edu/],[xmltooling])
+AC_CONFIG_SRCDIR(xmltooling)
+AC_CONFIG_AUX_DIR(build-aux)
+AC_CONFIG_MACRO_DIR(m4)
+AM_INIT_AUTOMAKE
+LT_INIT
 
 # Docygen features
 DX_HTML_FEATURE(ON)
@@ -20,7 +19,7 @@ DX_PS_FEATURE(OFF)
 DX_INIT_DOXYGEN(xmltooling, doxygen.cfg, doc/api)
 
 AC_ARG_ENABLE(debug,
-    AC_HELP_STRING(--enable-debug, [Have GCC compile with symbols (Default = no)]),
+    AS_HELP_STRING([--enable-debug],[Have GCC compile with symbols (Default = no)]),
     enable_debug=$enableval, enable_debug=no)
 
 if test "$enable_debug" = "yes" ; then
@@ -31,8 +30,13 @@ else
     GCC_CXXFLAGS="$CXXFLAGS -O2 -DNDEBUG"
 fi
 
+AC_CONFIG_HEADERS([config.h xmltooling/config_pub.h])
+AC_CONFIG_FILES([xmltooling.spec pkginfo Portfile])
+AC_CONFIG_FILES([Makefile xmltooling/Makefile xmltoolingtest/Makefile schemas/Makefile doc/Makefile])
+
 AC_PROG_CC([gcc gcc3 cc])
 AC_PROG_CXX([g++ g++3 c++ CC])
+AC_DISABLE_STATIC
 AC_CANONICAL_HOST
 
 if test "$GCC" = "yes" ; then
@@ -56,9 +60,6 @@ else
        esac
 fi
 
-AC_DISABLE_STATIC
-AC_PROG_LIBTOOL
-
 # Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
 AC_TYPE_SIZE_T
@@ -74,7 +75,7 @@ ACX_PTHREAD([enable_threads="pthread"],[enable_threads="no"])
 if test $enable_threads != "pthread"; then
     AC_MSG_ERROR([unable to find pthreads, currently this is required])
 else
-    AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.])
+    AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])
        AM_CONDITIONAL(BUILD_PTHREAD,test "$enable_threads" = "pthread")
     LIBS="$PTHREAD_LIBS $LIBS"
     CFLAGS="$PTHREAD_CFLAGS $CFLAGS"
@@ -111,7 +112,7 @@ AC_COMPILE_IFELSE(
 # log4shib settings (favor this version over the log4cpp code)
 AC_PATH_PROG(LOG4SHIB_CONFIG,log4shib-config)
 AC_ARG_WITH(log4shib,
-    AC_HELP_STRING([--with-log4shib=PATH], [where log4shib-config is installed]),
+    AS_HELP_STRING([--with-log4shib=PATH], [where log4shib-config is installed]),
     [
     LOG4SHIB_CONFIG="${with_log4shib}"
     if ! test -f "${LOG4SHIB_CONFIG}" ; then
@@ -122,12 +123,8 @@ if test -f "${LOG4SHIB_CONFIG}"; then
     LIBS="`${LOG4SHIB_CONFIG} --libs` $LIBS"
     CPPFLAGS="`${LOG4SHIB_CONFIG} --cflags` $CPPFLAGS"
        AC_CHECK_HEADER([log4shib/CategoryStream.hh],,AC_MSG_ERROR([unable to find log4shib header files]))
-       AC_TRY_LINK(
-               [#include <log4shib/Category.hh>
-#include <log4shib/CategoryStream.hh>],
-               [log4shib::Category::getInstance("foo").errorStream() << log4shib::eol],
-               [AC_DEFINE([XMLTOOLING_LOG4SHIB], [1], [Define to 1 if log4shib library is used.])],
-               [AC_MSG_ERROR([unable to link with log4shib])])
+       AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <log4shib/Category.hh>
+#include <log4shib/CategoryStream.hh>]], [[log4shib::Category::getInstance("foo").errorStream() << log4shib::eol]])],[AC_DEFINE([XMLTOOLING_LOG4SHIB], [1], [Define to 1 if log4shib library is used.])],[AC_MSG_ERROR([unable to link with log4shib])])
 else
     AC_MSG_WARN([log4shib-config not found, may need to use --with-log4shib option])
     AC_MSG_WARN([will look for original log4cpp library])
@@ -135,7 +132,7 @@ else
        # log4cpp settings
        AC_PATH_PROG(LOG4CPP_CONFIG,log4cpp-config)
        AC_ARG_WITH(log4cpp,
-           AC_HELP_STRING([--with-log4cpp=PATH], [where log4cpp-config is installed]),
+           AS_HELP_STRING([--with-log4cpp=PATH], [where log4cpp-config is installed]),
            [
            LOG4CPP_CONFIG="${with_log4cpp}"
            if ! test -f "${LOG4CPP_CONFIG}" ; then
@@ -147,12 +144,8 @@ else
            LIBS="`${LOG4CPP_CONFIG} --libs` $LIBS"
            CPPFLAGS="`${LOG4CPP_CONFIG} --cflags` $CPPFLAGS"
                AC_CHECK_HEADER([log4cpp/CategoryStream.hh],,AC_MSG_ERROR([unable to find log4cpp header files]))
-               AC_TRY_LINK(
-                       [#include <log4cpp/Category.hh>
-#include <log4cpp/CategoryStream.hh>],
-                       [log4cpp::Category::getInstance("foo").errorStream() << log4cpp::eol],
-                       [AC_DEFINE([XMLTOOLING_LOG4CPP], [1], [Define to 1 if log4cpp library is used.])],
-                       [AC_MSG_ERROR([unable to link with log4cpp, need version 1.0 or later])])
+               AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <log4cpp/Category.hh>
+#include <log4cpp/CategoryStream.hh>]], [[log4cpp::Category::getInstance("foo").errorStream() << log4cpp::eol]])],[AC_DEFINE([XMLTOOLING_LOG4CPP], [1], [Define to 1 if log4cpp library is used.])],[AC_MSG_ERROR([unable to link with log4cpp, need version 1.0 or later])])
        else
            AC_MSG_ERROR([log4cpp-config not found, may need to use --with-log4cpp option])
        fi
@@ -160,7 +153,7 @@ fi
 
 # Xerces settings
 AC_ARG_WITH(xerces, 
-            AC_HELP_STRING([--with-xerces=PATH], [where xerces-c is installed]),
+            AS_HELP_STRING([--with-xerces=PATH], [where xerces-c is installed]),
             [if test x_$with_xerces != x_/usr; then
                 LDFLAGS="-L${with_xerces}/lib $LDFLAGS"
                 CPPFLAGS="-I${with_xerces}/include $CPPFLAGS"
@@ -177,72 +170,53 @@ int i = 0;
 #endif])],
     [AC_MSG_RESULT(OK)],
     [AC_MSG_FAILURE([Xerces-C v2.6.0 has bugs that inhibit use with signed XML, please use a newer version])])
-AC_TRY_LINK(
-        [#include <xercesc/util/PlatformUtils.hpp>],
-        [xercesc::XMLPlatformUtils::Initialize()],
-        [AC_DEFINE([HAVE_LIBXERCESC], [1], [Define to 1 if Xerces-C library was found])],
-        [AC_MSG_ERROR([unable to link with Xerces])])
+AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <xercesc/util/PlatformUtils.hpp>]], [[xercesc::XMLPlatformUtils::Initialize()]])],[AC_DEFINE([HAVE_LIBXERCESC], [1], [Define to 1 if Xerces-C library was found])],[AC_MSG_ERROR([unable to link with Xerces])])
 
 AC_MSG_CHECKING([whether Xerces is 64-bit clean])
-AC_TRY_COMPILE([#include <xercesc/framework/MemBufInputSource.hpp>],
-    [using namespace XERCES_CPP_NAMESPACE;
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <xercesc/framework/MemBufInputSource.hpp>]], [[using namespace XERCES_CPP_NAMESPACE;
       XMLFilePos testvar;
-    ],
-    [AC_MSG_RESULT([yes])]
-    [AC_DEFINE([XMLTOOLING_XERCESC_64BITSAFE], [1], [Define to 1 if Xerces has a 64-bit-safe API.])],
-    [AC_MSG_RESULT([no])])
+    ]])],[AC_MSG_RESULT([yes])
+    AC_DEFINE([XMLTOOLING_XERCESC_64BITSAFE], [1], [Define to 1 if Xerces has a 64-bit-safe API.])],[AC_MSG_RESULT([no])])
 
 AC_MSG_CHECKING([whether Xerces BinInputStream requires getContentType])
-AC_TRY_COMPILE([#include <xercesc/util/BinMemInputStream.hpp>],
-    [using namespace XERCES_CPP_NAMESPACE;
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <xercesc/util/BinMemInputStream.hpp>]], [[using namespace XERCES_CPP_NAMESPACE;
       XMLByte buf[1024];
       BinMemInputStream in(buf,1024);
       in.getContentType();
-    ],
-    [AC_MSG_RESULT([yes])]
-    [AC_DEFINE([XMLTOOLING_XERCESC_INPUTSTREAM_HAS_CONTENTTYPE], [1], [Define to 1 if Xerces InputStream class requires getContentType.])],
-    [AC_MSG_RESULT([no])])
+    ]])],[AC_MSG_RESULT([yes])
+    AC_DEFINE([XMLTOOLING_XERCESC_INPUTSTREAM_HAS_CONTENTTYPE], [1], [Define to 1 if Xerces InputStream class requires getContentType.])],[AC_MSG_RESULT([no])])
 
 AC_MSG_CHECKING([whether Xerces DOMLS API is compliant])
-AC_TRY_COMPILE([#include <xercesc/dom/DOM.hpp>],
-    [using namespace XERCES_CPP_NAMESPACE;
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <xercesc/dom/DOM.hpp>]], [[using namespace XERCES_CPP_NAMESPACE;
         DOMImplementation *impl = DOMImplementationRegistry::getDOMImplementation(NULL);
         DOMLSSerializer *ls = ((DOMImplementationLS*)impl)->createLSSerializer();
-    ],
-    [AC_MSG_RESULT([yes])]
-    [AC_DEFINE([XMLTOOLING_XERCESC_COMPLIANT_DOMLS], [1], [Define to 1 if Xerces supports a compliant DOMLS API.])],
-    [AC_MSG_RESULT([no])])
+    ]])],[AC_MSG_RESULT([yes])
+    AC_DEFINE([XMLTOOLING_XERCESC_COMPLIANT_DOMLS], [1], [Define to 1 if Xerces supports a compliant DOMLS API.])],[AC_MSG_RESULT([no])])
 
 AC_MSG_CHECKING([whether Xerces has setIdAttribute(XMLCh*, bool)])
-AC_TRY_COMPILE([#include <xercesc/dom/DOM.hpp>],
-      [using namespace XERCES_CPP_NAMESPACE;
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <xercesc/dom/DOM.hpp>]], [[using namespace XERCES_CPP_NAMESPACE;
           DOMElement * elt;
           elt->setIdAttribute(NULL, false);
-      ],
-      [AC_MSG_RESULT([yes])]
-      [AC_DEFINE([XMLTOOLING_XERCESC_BOOLSETIDATTRIBUTE], [1], [Define to 1 if Xerces DOM ID methods take extra parameter.])],
-      [AC_MSG_RESULT([no])])
+      ]])],[AC_MSG_RESULT([yes])
+      AC_DEFINE([XMLTOOLING_XERCESC_BOOLSETIDATTRIBUTE], [1], [Define to 1 if Xerces DOM ID methods take extra parameter.])],[AC_MSG_RESULT([no])])
 
 AC_MSG_CHECKING([whether Xerces XMLString::release(XMLByte**) exists])
-AC_TRY_COMPILE([#include <xercesc/util/XMLString.hpp>],
-    [using namespace XERCES_CPP_NAMESPACE;
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <xercesc/util/XMLString.hpp>]], [[using namespace XERCES_CPP_NAMESPACE;
       XMLByte* buf=NULL;
       XMLString::release(&buf);
-    ],
-    [AC_MSG_RESULT([yes])]
-    [AC_DEFINE([XMLTOOLING_XERCESC_HAS_XMLBYTE_RELEASE], [1], [Define to 1 if Xerces XMLString includes XMLByte release.])],
-    [AC_MSG_RESULT([no])])
+    ]])],[AC_MSG_RESULT([yes])
+    AC_DEFINE([XMLTOOLING_XERCESC_HAS_XMLBYTE_RELEASE], [1], [Define to 1 if Xerces XMLString includes XMLByte release.])],[AC_MSG_RESULT([no])])
 
 # XML-Security settings
 AC_ARG_WITH(xmlsec,
-            AC_HELP_STRING([--with-xmlsec=PATH], [where xmlsec is installed]),,
+            AS_HELP_STRING([--with-xmlsec=PATH], [where xmlsec is installed]),,
             [with_xmlsec=/usr])
 
 if test x_$with_xmlsec != x_no; then
 
     # OpenSSL settings (need to do this first in case it's in a different spot from xmlsec)
     AC_ARG_WITH(openssl,
-        AC_HELP_STRING([--with-openssl=PATH], [where openssl is installed]),
+        AS_HELP_STRING([--with-openssl=PATH], [where openssl is installed]),
         [if test x_$with_openssl != x_/usr; then
             SSLFLAGS="-I${with_openssl}/include"
             SSLLIBS="-L${with_openssl}/lib -lcrypto -lssl"
@@ -284,6 +258,10 @@ if test x_$with_xmlsec != x_no; then
                  AC_MSG_ERROR([unable to link with openssl libraries]))
     AC_MSG_RESULT(yes)
 
+       AC_CHECK_DECL(EVP_sha512,
+               [AC_DEFINE([XMLTOOLING_OPENSSL_HAVE_SHA2],[],[Define to 1 if OpenSSL supports the SHA-2 hash family.])],
+               ,[#include <openssl/evp.h>])
+
     # restore master libs
     LIBS="$save_LIBS"
 
@@ -308,32 +286,24 @@ int i = 0;
 #endif])],
         [AC_MSG_RESULT(OK)],
         [AC_MSG_FAILURE([XML-Security version 1.4.0 or greater is required.])])
-    AC_TRY_LINK(
-            [#include <xsec/utils/XSECPlatformUtils.hpp>],
-            [XSECPlatformUtils::Initialise()],,
-            [AC_MSG_ERROR([unable to link with XML-Security])])
+    AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <xsec/utils/XSECPlatformUtils.hpp>]], [[XSECPlatformUtils::Initialise()]])],[],[AC_MSG_ERROR([unable to link with XML-Security])])
     AC_CHECK_TYPE([xsecsize_t],[AC_DEFINE([HAVE_XSECSIZE_T], [1], [Define to 1 if you have the 'xsecsize_t' type.])])
 
     AC_MSG_CHECKING([whether XML-Security-C has multiple CRL support])
-    AC_TRY_COMPILE([#include <xsec/dsig/DSIGKeyInfoList.hpp>],
-          [DSIGKeyInfoList* klist; klist->getX509CRLListSize();],
-          [AC_MSG_RESULT([yes])]
-          [AC_DEFINE([XMLTOOLING_XMLSEC_MULTIPLECRL], [1], [Define to 1 if XML-Security-C handles multiple CRLs.])],
-          [AC_MSG_RESULT([no])])
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <xsec/dsig/DSIGKeyInfoList.hpp>]], [[DSIGKeyInfoList* klist; klist->getX509CRLListSize();]])],[AC_MSG_RESULT([yes])
+          AC_DEFINE([XMLTOOLING_XMLSEC_MULTIPLECRL], [1], [Define to 1 if XML-Security-C handles multiple CRLs.])],[AC_MSG_RESULT([no])])
 
     AC_MSG_CHECKING([whether XML-Security-C exposes the signature algorithm URI])
-    AC_TRY_COMPILE([#include <xsec/dsig/DSIGSignature.hpp>],
-          [DSIGSignature* sig; sig->getAlgorithmURI();],
-          [AC_MSG_RESULT([yes])]
-          [AC_DEFINE([XMLTOOLING_XMLSEC_SIGALGORITHM], [1], [Define to 1 if XML-Security-C exposes the signature algorithm URI.])],
-          [AC_MSG_RESULT([no])])
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <xsec/dsig/DSIGSignature.hpp>]], [[DSIGSignature* sig; sig->getAlgorithmURI();]])],[AC_MSG_RESULT([yes])
+          AC_DEFINE([XMLTOOLING_XMLSEC_SIGALGORITHM], [1], [Define to 1 if XML-Security-C exposes the signature algorithm URI.])],[AC_MSG_RESULT([no])])
 
     AC_MSG_CHECKING([whether XML-Security-C includes ECC support])
-    AC_TRY_COMPILE([#include <xsec/dsig/DSIGKeyInfoValue.hpp>],
-          [DSIGKeyInfoValue* info; info->getECNamedCurve();],
-          [AC_MSG_RESULT([yes])]
-          [AC_DEFINE([XMLTOOLING_XMLSEC_ECC], [1], [Define to 1 if XML-Security-C includes ECC support.])],
-          [AC_MSG_RESULT([no])])
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <xsec/dsig/DSIGKeyInfoValue.hpp>]], [[DSIGKeyInfoValue* info; info->getECNamedCurve();]])],[AC_MSG_RESULT([yes])
+          AC_DEFINE([XMLTOOLING_XMLSEC_ECC], [1], [Define to 1 if XML-Security-C includes ECC support.])],[AC_MSG_RESULT([no])])
+
+    AC_MSG_CHECKING([whether XML-Security-C includes debug logging support])
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <xsec/utils/XSECPlatformUtils.hpp>]], [[XSECPlatformUtils::SetReferenceLoggingSink(NULL)]])],[AC_MSG_RESULT([yes])
+          AC_DEFINE([XMLTOOLING_XMLSEC_DEBUGLOGGING], [1], [Define to 1 if XML-Security-C includes debug logging support.])],[AC_MSG_RESULT([no])])
 
        # restore master libs
        LIBS="$save_LIBS"
@@ -341,7 +311,7 @@ int i = 0;
        # libcurl settings
        AC_PATH_PROG(CURL_CONFIG,curl-config)
        AC_ARG_WITH(curl,
-           AC_HELP_STRING([--with-curl=PATH], [where curl-config is installed]),
+           AS_HELP_STRING([--with-curl=PATH], [where curl-config is installed]),
            [
            CURL_CONFIG="${with_curl}"
            if ! test -f "${CURL_CONFIG}" ; then
@@ -378,24 +348,16 @@ fi
 AM_CONDITIONAL(BUILD_XMLSEC,test x_$with_xmlsec != x_no)
 
 # Does the STL in use help or screw us?
-AC_TRY_LINK(
-        [#include <string>],
-        [std::basic_string<unsigned short> foo; foo=foo+(unsigned short)65],
-        [AC_DEFINE([HAVE_GOOD_STL], [1],
-            [Define to 1 if you have an STL implementation that supports useful string specialization.])],
-        )
-AC_TRY_LINK(
-        [#include <vector>],
-        [std::iterator_traits<std::vector<int>::iterator>::value_type foo=0],
-        [AC_DEFINE([HAVE_ITERATOR_TRAITS], [1],
-            [Define to 1 if you have an STL implementation that supports std::iterator_traits.])],
-        )
+AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <string>]], [[std::basic_string<unsigned short> foo; foo=foo+(unsigned short)65]])],[AC_DEFINE([HAVE_GOOD_STL], [1],
+            [Define to 1 if you have an STL implementation that supports useful string specialization.])],[])
+AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <vector>]], [[std::iterator_traits<std::vector<int>::iterator>::value_type foo=0]])],[AC_DEFINE([HAVE_ITERATOR_TRAITS], [1],
+            [Define to 1 if you have an STL implementation that supports std::iterator_traits.])],[])
 
 # Check for unit test support
 CXXTEST="/usr/bin/cxxtestgen.pl"
 CXXTESTFLAGS=""
 AC_ARG_WITH(cxxtest,
-            AC_HELP_STRING([--with-cxxtest=PATH], [where cxxtest is installed]),
+            AS_HELP_STRING([--with-cxxtest=PATH], [where cxxtest is installed]),
             [if test x_$with_cxxtest != x_/usr; then
                 CXXTEST="${with_cxxtest}/cxxtestgen.pl"
                 CXXTESTFLAGS="-I${with_cxxtest}"
@@ -413,6 +375,4 @@ AX_CREATE_PKGCONFIG_INFO(,,[$XMLSEC_LIBS -lxmltooling],[OpenSAML XMLTooling-C li
 LIBTOOL="$LIBTOOL --silent"
 
 # output packaging and makefiles
-AC_CONFIG_FILES([xmltooling.spec pkginfo Portfile])
-AC_CONFIG_FILES([Makefile xmltooling/Makefile xmltoolingtest/Makefile schemas/Makefile doc/Makefile])
 AC_OUTPUT