-AC_CHECK_HEADER([openssl/ssl.h],,
- AC_MSG_ERROR([unable to find openssl header files]))
-AC_CHECK_LIB([crypto], [ERR_load_CRYPTO_strings],,
- AC_MSG_ERROR([unable to link with openssl libraries]))
-AC_CHECK_LIB([ssl], [SSL_library_init],,
- AC_MSG_ERROR([unable to link with openssl libraries]))
-
-AC_CHECK_HEADER([xsec/utils/XSECPlatformUtils.hpp],,
- AC_MSG_ERROR([unable to find xsec header files]))
-saved_LIBS="$LIBS"
-LIBS="-lxml-security-c $LIBS"
+
+#XML-Tooling settings
+AC_ARG_WITH(xmltooling,
+ AC_HELP_STRING([--with-xmltooling=PATH], [where xmltooling-c is installed]),
+ [if test x_$with_xmltooling != x_/usr; then
+ LDFLAGS="-L${with_xmltooling}/lib $LDFLAGS"
+ CPPFLAGS="-I${with_xmltooling}/include $CPPFLAGS"
+ fi])
+LITE_LIBS="-lxmltooling-lite"
+XMLSEC_LIBS="-lxmltooling"
+AC_CHECK_HEADER([xmltooling/base.h],,
+ AC_MSG_ERROR([unable to find xmltooling header files]))
+
+# Establish location of xmltooling catalog.
+XMLTOOLINGXMLDIR=""
+if test "x$with_xmltooling" = "x" ; then
+ with_xmltooling="/usr"
+fi
+if test -f $with_xmltooling/share/xml/xmltooling/catalog.xml ; then
+ XMLTOOLINGXMLDIR="$with_xmltooling"
+elif test -f $with_xerces/share/xml/xmltooling/catalog.xml ; then
+ XMLTOOLINGXMLDIR="$with_xerces"
+elif test -f $with_log4shib/share/xml/xmltooling/catalog.xml ; then
+ XMLTOOLINGXMLDIR="$with_log4shib"
+fi
+if test "x$XMLTOOLINGXMLDIR" = "x" ; then
+ AC_MSG_ERROR([xmltooling XML catalog not found, may need to use --with-xmltooling option])
+fi
+XMLTOOLINGXMLDIR="$XMLTOOLINGXMLDIR/share/xml/xmltooling"
+AC_SUBST(XMLTOOLINGXMLDIR)
+
+# XML-Security settings
+AC_ARG_WITH(xmlsec,
+ AC_HELP_STRING([--with-xmlsec=PATH], [where xmlsec is installed]),,
+ [with_xmlsec=/usr])
+
+if test x_$with_xmlsec != x_/usr; then
+ LDFLAGS="-L${with_xmlsec}/lib $LDFLAGS"
+ CPPFLAGS="-I${with_xmlsec}/include $CPPFLAGS"
+fi
+XMLSEC_LIBS="-lxml-security-c $XMLSEC_LIBS"
+
+# save and append master libs
+save_LIBS="$LIBS"
+LIBS="$XMLSEC_LIBS $LIBS"
+
+AC_CHECK_HEADER([xsec/utils/XSECPlatformUtils.hpp],,AC_MSG_ERROR([unable to find XML-Security header files]))
+AC_MSG_CHECKING([XML-Security version])
+AC_PREPROC_IFELSE(
+ [AC_LANG_PROGRAM([#include <xsec/utils/XSECPlatformUtils.hpp>],
+ [#if XSEC_VERSION_MAJOR > 1 || (XSEC_VERSION_MAJOR == 1 && XSEC_VERSION_MEDIUM > 3)
+int i = 0;
+#else
+#error need version 1.4.0 or later
+#endif])],
+ [AC_MSG_RESULT(OK)],
+ [AC_MSG_FAILURE([XML-Security version 1.4.0 or greater is required.])])