AC_INIT(src/xmlsec.c) PACKAGE=xmlsec XMLSEC_VERSION_MAJOR=0 XMLSEC_VERSION_MINOR=0 XMLSEC_VERSION_SUBMINOR=15 XMLSEC_VERSION=$XMLSEC_VERSION_MAJOR.$XMLSEC_VERSION_MINOR.$XMLSEC_VERSION_SUBMINOR VERSION=$XMLSEC_VERSION XMLSEC_VERSION_INFO=`echo $XMLSEC_VERSION | awk -F. '{ printf "%d:%d:%d", $1+$2, $3, $2 }'` AC_SUBST(XMLSEC_VERSION) AC_SUBST(XMLSEC_VERSION_MAJOR) AC_SUBST(XMLSEC_VERSION_MINOR) AC_SUBST(XMLSEC_VERSION_SUBMINOR) AC_SUBST(XMLSEC_VERSION_INFO) AM_CONFIG_HEADER(config.h) AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define) AM_MAINTAINER_MODE dnl dnl Check the environment dnl AC_ISC_POSIX AC_PROG_CC AC_PROG_INSTALL AC_ARG_PROGRAM AC_STDC_HEADERS AM_PROG_LIBTOOL AC_PATH_PROG(RM, rm, /bin/rm) AC_PATH_PROG(MV, mv, /bin/mv) AC_PATH_PROG(TAR, tar, /bin/tar) dnl Make sure we have an ANSI compiler AM_C_PROTOTYPES test "x$U" != "x" && AC_MSG_ERROR(Compiler not ANSI compliant) AC_HEADER_STDC dnl Checks for header files. AC_HEADER_DIRENT AC_HEADER_STDC AC_CHECK_HEADERS(stdio.h stdlib.h string.h ctype.h errno.h ansidecl.h time.h) XMLSEC_DEFINES="" dnl ========================================================================== dnl find libxml dnl ========================================================================== LIBXML_WITHOUT="no" LIBXML_MIN_VERSION=2.4.24 LIBXML_CONFIG="xml2-config" LIBXML_PREFIX="" LIBXML_CFLAG="" LIBXML_LIBS="" AC_MSG_CHECKING(for libxml2 libraries >= $LIBXML_MIN_VERSION) AC_ARG_WITH(libxml, [ --with-libxml=[PFX] libxml2 location]) if test "$with_libxml" = "no" ; then AC_MSG_ERROR(libxml2 is required for $PACKAGE) else if test "$with_libxml" != "" ; then LIBXML_PREFIX=$with_libxml LIBXML_CONFIG=$LIBXML_PREFIX/bin/$LIBXML_CONFIG fi if ! $LIBXML_CONFIG --version > /dev/null 2>&1 then AC_MSG_ERROR(Could not find libxml2 anywhere (see config.log for details).) fi vers=`$LIBXML_CONFIG --version | awk -F. '{ printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'` minvers=`echo $LIBXML_MIN_VERSION | awk -F. '{ printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'` if test "$vers" -ge "$minvers" then LIBXML_LIBS="`$LIBXML_CONFIG --libs`" LIBXML_CFLAGS="`$LIBXML_CONFIG --cflags`" LIBXML_VERSION="`$LIBXML_CONFIG --version`" AC_MSG_RESULT(yes ('$LIBXML_VERSION')) else AC_MSG_ERROR(You need at least libxml2 $LIBXML_MIN_VERSION for this version of $PACKAGE) fi fi AC_SUBST(LIBXML_WITHOUT) AC_SUBST(LIBXML_MIN_VERSION) AC_SUBST(LIBXML_CONFIG) AC_SUBST(LIBXML_PREFIX) AC_SUBST(LIBXML_CFLAGS) AC_SUBST(LIBXML_LIBS) dnl ========================================================================== dnl find libxslt dnl ========================================================================== LIBXSLT_WITHOUT="no" LIBXSLT_MIN_VERSION=1.0.20 LIBXSLT_CONFIG="xslt-config" LIBXSLT_PREFIX="" LIBXSLT_CFLAGS="" LIBXSLT_LIBS="" AC_MSG_CHECKING(for libxslt libraries >= $LIBXSLT_MIN_VERSION) AC_ARG_WITH(libxslt, [ --with-libxslt=[PFX] libxslt location]) if test "$with_libxslt" = "no" ; then LIBXSLT_WITHOUT="yes" XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_XSLT=1" AC_MSG_RESULT(no) else if test "$with_libxslt" != "" ; then LIBXSLT_PREFIX=$with_libxslt LIBXSLT_CONFIG=$LIBXSLT_PREFIX/bin/$LIBXSLT_CONFIG fi if ! $LIBXSLT_CONFIG --version > /dev/null 2>&1 then if test "$with_libxslt" != "" ; then AC_MSG_ERROR(Unable to find libxslt at '$with_libxslt') else LIBXSLT_WITHOUT="yes" XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_XSLT=1" AC_MSG_RESULT(no) fi else vers=`$LIBXSLT_CONFIG --version | awk -F. '{ printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'` minvers=`echo $LIBXSLT_MIN_VERSION | awk -F. '{ printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'` if test "$vers" -ge "$minvers" then LIBXSLT_LIBS="`$LIBXSLT_CONFIG --libs`" LIBXSLT_CFLAGS="`$LIBXSLT_CONFIG --cflags`" LIBXSLT_VERSION="`$LIBXSLT_CONFIG --version`" AC_MSG_RESULT(yes ('$LIBXSLT_VERSION')) else AC_MSG_ERROR(You need at least libxslt $LIBXSLT_MIN_VERSION for this version of $PACKAGE) fi fi fi AC_SUBST(LIBXSLT_WITHOUT) AC_SUBST(LIBXSLT_MIN_VERSION) AC_SUBST(LIBXSLT_PREFIX) AC_SUBST(LIBXSLT_CONFIG) AC_SUBST(LIBXSLT_CFLAGS) AC_SUBST(LIBXSLT_LIBS) dnl ========================================================================== dnl See if we can find OpenSSL dnl ========================================================================== ac_openssl_lib_dir="/usr/lib /usr/local/lib /usr/local /usr/local/ssl /usr/local/ssl/lib /usr/pkg" ac_openssl_inc_dir="/usr/include /usr/local/include /usr/local /usr/local/ssl /usr/pkg /usr/local/ssl/include" OPENSSL_WITHOUT="no" OPENSSL_MIN_VERSION="0.9.6" OPENSSL_VERSION="" OPENSSL_PREFIX="" OPENSSL_CFLAGS="" OPENSSL_LIBS="" OPENSSL_LDADDS="" AC_MSG_CHECKING(for openssl libraries >= $OPENSSL_MIN_VERSION) AC_ARG_WITH(openssl, [ --with-openssl=[PFX] openssl location]) if test "$with_openssl" = "no" ; then AC_MSG_ERROR(openssl is required for $PACKAGE) else if test "$with_openssl" != "" ; then OPENSSL_PREFIX=$with_openssl OPENSSL_CFLAGS="-I$OPENSSL_PREFIX/include" OPENSSL_LIBS="-L$OPENSSL_PREFIX/lib -lcrypto" OPENSSL_LDADDS="$OPENSSL_PREFIX/lib/libcrypto.a" else OPENSSL_INCLUDES_FOUND="no" OPENSSL_LIBS_FOUND="no" for dir in $ac_openssl_inc_dir; do if test -f $dir/openssl/ssl.h; then dnl do not add -I/usr/include because compiler does it anyway if test "$dir" = "/usr/include" ; then OPENSSL_CFLAGS="" else OPENSSL_CFLAGS="-I$dir" fi OPENSSL_INCLUDES_FOUND="yes" break fi done for dir in $ac_openssl_lib_dir; do if test -f $dir/libcrypto.a; then dnl do not add -L/usr/lib because compiler does it anyway if test "$dir" = "/usr/lib" ; then OPENSSL_LIBS="-lcrypto" else OPENSSL_LIBS="-L$dir -lcrypto" fi OPENSSL_LIBS_FOUND="yes" OPENSSL_LDADDS="$dir/libcrypto.a" ac_found_openssl_lib_dir=$dir break; fi done if test "$OPENSSL_INCLUDES_FOUND" = "no" -o "$OPENSSL_LIBS_FOUND" = "no" ; then AC_MSG_ERROR(openssl is required for $PACKAGE) fi fi dnl Check the OpenSSL version OLD_CPPFLAGS=$CPPFLAGS CPPFLAGS="$OPENSSL_CFLAGS" AC_EGREP_CPP(yes,[ #include #if OPENSSL_VERSION_NUMBER >= 0x00906000L yes #endif ],[ OPENSSL_VERSION="0.9.6" ],[ AC_MSG_ERROR(You need at least OpenSSL 0.9.6 for this version of $PACKAGE) ]) AC_EGREP_CPP(yes,[ #include #if OPENSSL_VERSION_NUMBER >= 0x00907000L yes #endif ],[ OPENSSL_VERSION="0.9.7" ],[ OPENSSL_VERSION="0.9.6" XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_OPENSSL096=1" ]) CPPFLAGS=$OLD_CPPFLAGS AC_MSG_RESULT(yes ('$OPENSSL_VERSION' )) fi AC_SUBST(OPENSSL_WITHOUT) AC_SUBST(OPENSSL_MIN_VERSION) AC_SUBST(OPENSSL_VERSION) AC_SUBST(OPENSSL_CONFIG) AC_SUBST(OPENSSL_PREFIX) AC_SUBST(OPENSSL_CFLAGS) AC_SUBST(OPENSSL_LIBS) AC_SUBST(OPENSSL_LDADDS) dnl ========================================================================== dnl See do we need SHA1 suport dnl ========================================================================== AC_MSG_CHECKING(for SHA1 support) AC_ARG_ENABLE(sha1, [ --enable-sha1 enable SHA1 support (yes)]) if test "$enable_sha1" = "no" ; then XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_SHA1=1" XMLSEC_NO_SHA1="1" AC_MSG_RESULT(no) else XMLSEC_NO_SHA1="0" AC_MSG_RESULT(yes) fi AC_SUBST(XMLSEC_NO_SHA1) dnl ========================================================================== dnl See do we need RIPEMD-160 suport dnl ========================================================================== AC_MSG_CHECKING(for RIPEMD-160 support) AC_ARG_ENABLE(ripemd160, [ --enable-ripemd160 enable RIPEMD-160 support (yes)]) if test "$enable_ripemd160" = "no" ; then XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_RIPEMD160=1" XMLSEC_NO_RIPEMD160="1" AC_MSG_RESULT(no) else XMLSEC_NO_RIPEMD160="0" AC_MSG_RESULT(yes) fi AC_SUBST(XMLSEC_NO_RIPEMD160) dnl ========================================================================== dnl See do we need HMAC suport dnl ========================================================================== AC_MSG_CHECKING(for HMAC support) AC_ARG_ENABLE(hmac, [ --enable-hmac enable HMAC support (yes)]) if test "$enable_hmac" = "no" ; then XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_HMAC=1" XMLSEC_NO_HMAC="1" AC_MSG_RESULT(no) else XMLSEC_NO_HMAC="0" AC_MSG_RESULT(yes) fi AC_SUBST(XMLSEC_NO_HMAC) dnl ========================================================================== dnl See do we need DSA suport dnl ========================================================================== AC_MSG_CHECKING(for DSA support) AC_ARG_ENABLE(dsa, [ --enable-dsa enable DSA support (yes)]) if test "$enable_dsa" = "no" ; then XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_DSA=1" XMLSEC_NO_DSA="1" AC_MSG_RESULT(no) else XMLSEC_NO_DSA="0" AC_MSG_RESULT(yes) fi AC_SUBST(XMLSEC_NO_DSA) dnl ========================================================================== dnl See do we need RSA suport dnl ========================================================================== AC_MSG_CHECKING(for RSA support) AC_ARG_ENABLE(rsa, [ --enable-rsa enable RSA support (yes)]) if test "$enable_rsa" = "no" ; then XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_RSA=1" XMLSEC_NO_RSA="1" AC_MSG_RESULT(no) else XMLSEC_NO_RSA="0" AC_MSG_RESULT(yes) fi AC_SUBST(XMLSEC_NO_RSA) dnl ========================================================================== dnl See do we need x509 suport dnl ========================================================================== AC_MSG_CHECKING(for x509 support) AC_ARG_ENABLE(x509, [ --enable-x509 enable x509 support (yes)]) if test "$enable_x509" = "no" ; then XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_X509=1" XMLSEC_NO_X509="1" AC_MSG_RESULT(no) else XMLSEC_NO_X509="0" AC_MSG_RESULT(yes) fi AC_SUBST(XMLSEC_NO_X509) dnl ========================================================================== dnl See do we need DES suport dnl ========================================================================== AC_MSG_CHECKING(for DES support) AC_ARG_ENABLE(des, [ --enable-des enable DES support (yes)]) if test "$enable_des" = "no" ; then XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_DES=1" XMLSEC_NO_DES="1" AC_MSG_RESULT(no) else XMLSEC_NO_DES="0" AC_MSG_RESULT(yes) fi AC_SUBST(XMLSEC_NO_DES) dnl ========================================================================== dnl See do we need AES suport dnl ========================================================================== AC_MSG_CHECKING(for AES support (OpenSSL >= 0.9.7 is required)) AC_ARG_ENABLE(aes, [ --enable-aes enable AES support (OpenSSL >= 0.9.7 is required)]) if test "$enable_aes" = "no" ; then XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_AES=1" XMLSEC_NO_AES="1" AC_MSG_RESULT(no) else if test "$OPENSSL_VERSION" = "0.9.7" ; then XMLSEC_NO_AES="0" AC_MSG_RESULT(yes) else if test "$enable_aes" = "yes" ; then AC_MSG_ERROR(OpenSSL >= 0.9.7 is required for AES support) else XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_AES=1" XMLSEC_NO_AES="1" AC_MSG_RESULT(no) fi fi fi AC_SUBST(XMLSEC_NO_AES) dnl ========================================================================== dnl See do we need XMLDSig suport dnl ========================================================================== AC_MSG_CHECKING(for XMLDSig support) AC_ARG_ENABLE(xmldsig, [ --enable-xmldsig enable XMLDSig support (yes)]) if test "$enable_xmldsig" = "no" ; then XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_XMLDSIG=1" AM_CONDITIONAL(XMLSEC_WITH_XMLDSIG_TEST, test "1" = "0" ) XMLSEC_NO_XMLDSIG="1" AC_MSG_RESULT(no) else AM_CONDITIONAL(XMLSEC_WITH_XMLDSIG_TEST, test "1" = "1" ) XMLSEC_NO_XMLDSIG="0" AC_MSG_RESULT(yes) fi AC_SUBST(XMLSEC_NO_XMLDSIG) dnl ========================================================================== dnl See do we need XMLEnc suport dnl ========================================================================== AC_MSG_CHECKING(for XMLEnc support) AC_ARG_ENABLE(xmlenc, [ --enable-xmlenc enable XMLEnc support (yes)]) if test "$enable_xmlenc" = "no" ; then XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_XMLENC=1" AM_CONDITIONAL(XMLSEC_WITH_XMLENC_TEST, test "1" = "0" ) XMLSEC_NO_XMLENC="1" AC_MSG_RESULT(no) else AM_CONDITIONAL(XMLSEC_WITH_XMLENC_TEST, test "1" = "1" ) XMLSEC_NO_XMLENC="0" AC_MSG_RESULT(yes) fi AC_SUBST(XMLSEC_NO_XMLENC) dnl ========================================================================== dnl See do we need Simple Keys Manager dnl ========================================================================== AC_MSG_CHECKING(for Simple Keys Manager testing) AC_ARG_ENABLE(skm, [ --enable-skm enable Simple Keys Manager testing(yes)]) if test "$enable_skm" = "no" ; then XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_SKM_TEST=1" AM_CONDITIONAL(XMLSEC_WITH_SKM_TEST, test "1" = "0" ) AC_MSG_RESULT(no) else AM_CONDITIONAL(XMLSEC_WITH_SKM_TEST, test "1" = "1" ) AC_MSG_RESULT(yes) fi dnl ========================================================================== dnl Pedantic compile dnl ========================================================================== AC_MSG_CHECKING(for pedantic compilation) AC_ARG_ENABLE(pedantic, [ --enable-pedantic enable pedantic compilation flags (no)]) if test "$enable_pedantic" = "yes" ; then dnl XMLSEC_PEDANTIC="-pedantic -Wall -ansi -W -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls" XMLSEC_PEDANTIC="-pedantic -Wall -ansi -W -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls" CFLAGS="$CFLAGS $XMLSEC_PEDANTIC" AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi dnl ========================================================================== dnl Profiling dnl ========================================================================== AC_MSG_CHECKING(for profiling) AC_ARG_ENABLE(profiling, [ --enable-profiling enable profiling compilation flags (no)]) if test "$enable_profiling" = "yes" ; then CFLAGS="$CFLAGS -pg" AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi dnl ========================================================================== dnl Dynamic linking dnl ========================================================================== AC_ARG_ENABLE(dynamic, [ --enable-dynamic enable dynamic linking of the xmlsec utility (no)]) AM_CONDITIONAL(XMLSEC_DYNAMIC_LINKING, test "$enable_dynamic" = "yes") dnl ========================================================================== dnl Final steps: xmlsec config dnl ========================================================================== XMLSEC_LIBDIR='-L${libdir}' XMLSEC_INCLUDEDIR="-I${includedir} $LIBXML_CFLAGS" XMLSEC_LIBS="-lxmlsec $LIBXML_LIBS" AC_SUBST(XMLSEC_LIBDIR) AC_SUBST(XMLSEC_INCLUDEDIR) AC_SUBST(XMLSEC_LIBS) CFLAGS="$CFLAGS $XMLSEC_DEFINES" AC_SUBST(CFLAGS) AC_SUBST(CPPFLAGS) AC_SUBST(LDFLAGS) AC_SUBST(XMLSEC_DEFINES) dnl ========================================================================== dnl Which files to process dnl ========================================================================== rm -f rm COPYING.LIB COPYING ln -s $srcdir/Copyright COPYING AC_OUTPUT([ Makefile xmlsecConf.sh xmlsec-config xmlsec.spec xmlsec.pc include/Makefile include/xmlsec/Makefile include/xmlsec/version.h src/Makefile apps/Makefile tests/Makefile man/Makefile docs/api/Makefile ])