diff options
Diffstat (limited to 'xmlsec-config.in')
-rw-r--r-- | xmlsec-config.in | 243 |
1 files changed, 243 insertions, 0 deletions
diff --git a/xmlsec-config.in b/xmlsec-config.in new file mode 100644 index 00000000..cb46909b --- /dev/null +++ b/xmlsec-config.in @@ -0,0 +1,243 @@ +#! /bin/sh + +prefix="@prefix@" +package="@PACKAGE@" +exec_prefix="@exec_prefix@" +exec_prefix_set=no +package_libdir="@libdir@" + +usage() +{ + cat <<EOF +Usage: $package-config [OPTION]... + +Known values for OPTION are: + + --prefix=DIR change XMLSEC prefix + --exec-prefix=DIR change XMLSEC executable prefix + --libs print library linking information + --cflags print pre-processor and compiler flags + --crypto print the default crypto library name + --help display this help and exit + --version output version information + --crypto=LIB configure with XMLSEC crypto library (one of the + following: none default openssl nss gnutls gcrypt) +EOF + + exit $1 +} + + +# +# first parse command line aruments +# +if [ $# -eq 0 ] +then + usage 1 1>&2 +fi + +cflags=false +libs=false +if [ "z@XMLSEC_NO_CRYPTO_DYNAMIC_LOADING@" = "z1" ] ; +then + crypto="default" +else + crypto="none" +fi + +while [ $# -gt 0 ] +do + case "$1" in + -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) optarg= ;; + esac + + case "$1" in + --crypto=*) + crypto=$optarg + ;; + + --prefix=*) + prefix=$optarg + if [ $exec_prefix_set = no ] + then + exec_prefix=$optarg + fi + ;; + + --prefix) + echo $prefix + ;; + + --exec-prefix=*) + exec_prefix=$optarg + exec_prefix_set=yes + ;; + + --exec-prefix) + echo $exec_prefix + ;; + + --version) + echo @VERSION@ + exit 0 + ;; + + --crypto) + echo @XMLSEC_CRYPTO@ + exit 0 + ;; + + --help) + usage 0 + ;; + + --cflags) + cflags=true + ;; + + --libs) + libs=true + ;; + + *) + usage 1 + ;; + esac + shift +done + +# +# Get LibXML2 settings +# +the_xml_flags="`@LIBXML_CONFIG@ --cflags`" +the_xml_libs="`@LIBXML_CONFIG@ --libs`" + +# +# Get LibXSLT settings +# +the_xslt_flags="" +the_xslt_libs="" +if test "@XMLSEC_NO_LIBXSLT@" = "0"; then + the_xslt_flags="`@LIBXSLT_CONFIG@ --cflags`" + the_xslt_libs="`@LIBXSLT_CONFIG@ --libs`" +fi + +# +# Get crypto library settings +# +the_crypto_flags="" +the_crypto_libs="" +the_xmlsec_crypto_lib="" +case "$crypto" in +none) + # no crypto, just the core xmlsec engine (useful when more + # than one crypto engine i sused by application) + if [ "z@XMLSEC_NO_CRYPTO_DYNAMIC_LOADING@" != "z1" ] ; + then + the_crypto_flags="-DXMLSEC_CRYPTO_DYNAMIC_LOADING=1 -DXMLSEC_CRYPTO=\\\"@XMLSEC_CRYPTO@\\\"" + fi + ;; + +default) + the_crypto_flags="@XMLSEC_CRYPTO_CFLAGS@ -DXMLSEC_CRYPTO=\\\"@XMLSEC_CRYPTO@\\\"" + the_crypto_libs="@XMLSEC_CRYPTO_LIBS@" + the_xmlsec_crypto_lib="-l@XMLSEC_CRYPTO_LIB@" + ;; + +openssl) + if test "@XMLSEC_NO_OPENSSL@" = "0"; then + the_crypto_flags="@OPENSSL_CFLAGS@ -DXMLSEC_CRYPTO=\\\"openssl\\\"" + the_crypto_libs="@OPENSSL_LIBS@" + the_xmlsec_crypto_lib="-l@OPENSSL_CRYPTO_LIB@" + else + echo "Error: the \"$crypto\" cryptographic library is not supported" + usage 1 + fi + ;; + +gnutls) + if test "@XMLSEC_NO_GNUTLS@" = "0"; then + the_crypto_flags="@GNUTLS_CFLAGS@ -DXMLSEC_CRYPTO=\\\"gnutls\\\"" + the_crypto_libs="@GNUTLS_LIBS@" + the_xmlsec_crypto_lib="-l@GNUTLS_CRYPTO_LIB@" + else + echo "Error: the \"$crypto\" cryptographic library is not supported" + usage 1 + fi + ;; + +gcrypt) + if test "@XMLSEC_NO_GCRYPT@" = "0"; then + the_crypto_flags="@GCRYPT_CFLAGS@ -DXMLSEC_CRYPTO=\\\"gcrypt\\\"" + the_crypto_libs="@GCRYPT_LIBS@" + the_xmlsec_crypto_lib="-l@GCRYPT_CRYPTO_LIB@" + else + echo "Error: the \"$crypto\" cryptographic library is not supported" + usage 1 + fi + ;; + +nss) + if test "@XMLSEC_NO_NSS@" = "0"; then + the_crypto_flags="@NSS_CFLAGS@ -DXMLSEC_CRYPTO=\\\"nss\\\"" + the_crypto_libs="@NSS_LIBS@" + the_xmlsec_crypto_lib="-l@NSS_CRYPTO_LIB@" + else + echo "Error: the \"$crypto\" cryptographic library is not supported" + usage 1 + fi + ;; + +*) + echo "Error: the \"$crypto\" cryptographic library is not supported" + usage 1 + ;; + +esac + +# +# Assemble all the settings together +# +the_flags="$the_flags @XMLSEC_CORE_CFLAGS@ $the_xml_flags $the_xslt_flags $the_crypto_flags" +the_libs="$the_libs -L${package_libdir} @XMLSEC_CORE_LIBS@ $the_xmlsec_crypto_lib -lxmlsec1 $the_xml_libs $the_xslt_libs $the_crypto_libs" + +if $cflags; then + all_flags="$the_flags" +fi + +if $libs; then + all_flags="$all_flags $services $the_libs" +fi + +if test -z "$all_flags" || test "x$all_flags" = "x "; then + exit 1 +fi + +# Straight out any possible duplicates, but be careful to +# get `-lfoo -lbar -lbaz' for `-lfoo -lbaz -lbar -lbaz' +other_flags= +rev_libs= +for i in $all_flags; do + case "$i" in + # a library, save it for later, in reverse order + -l*) rev_libs="$i $rev_libs" ;; + *) + case " $other_flags " in + *\ $i\ *) ;; # already there + *) other_flags="$other_flags $i" ;; # add it to output + esac ;; + esac +done + +ord_libs= +for i in $rev_libs; do + case " $ord_libs " in + *\ $i\ *) ;; # already there + *) ord_libs="$i $ord_libs" ;; # add it to output in reverse order + esac +done + +echo $other_flags $ord_libs + +exit 0 |