diff options
Diffstat (limited to 'xmlsec1-config')
-rw-r--r-- | xmlsec1-config | 243 |
1 files changed, 243 insertions, 0 deletions
diff --git a/xmlsec1-config b/xmlsec1-config new file mode 100644 index 00000000..ed59ce8c --- /dev/null +++ b/xmlsec1-config @@ -0,0 +1,243 @@ +#! /bin/sh + +prefix="/usr" +package="xmlsec1" +exec_prefix="${prefix}" +exec_prefix_set=no +package_libdir="${exec_prefix}/lib" + +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 [ "z0" = "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 1.2.18 + exit 0 + ;; + + --crypto) + echo openssl + exit 0 + ;; + + --help) + usage 0 + ;; + + --cflags) + cflags=true + ;; + + --libs) + libs=true + ;; + + *) + usage 1 + ;; + esac + shift +done + +# +# Get LibXML2 settings +# +the_xml_flags="`xml2-config --cflags`" +the_xml_libs="`xml2-config --libs`" + +# +# Get LibXSLT settings +# +the_xslt_flags="" +the_xslt_libs="" +if test "0" = "0"; then + the_xslt_flags="`xslt-config --cflags`" + the_xslt_libs="`xslt-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 [ "z0" != "z1" ] ; + then + the_crypto_flags="-DXMLSEC_CRYPTO_DYNAMIC_LOADING=1 -DXMLSEC_CRYPTO=\\\"openssl\\\"" + fi + ;; + +default) + the_crypto_flags=" -DXMLSEC_OPENSSL_098=1 -DXMLSEC_CRYPTO_OPENSSL=1 -DXMLSEC_CRYPTO=\\\"openssl\\\"" + the_crypto_libs="-lssl -lcrypto " + the_xmlsec_crypto_lib="-lxmlsec1-openssl" + ;; + +openssl) + if test "0" = "0"; then + the_crypto_flags=" -DXMLSEC_OPENSSL_098=1 -DXMLSEC_CRYPTO_OPENSSL=1 -DXMLSEC_CRYPTO=\\\"openssl\\\"" + the_crypto_libs="-lssl -lcrypto " + the_xmlsec_crypto_lib="-lxmlsec1-openssl" + else + echo "Error: the \"$crypto\" cryptographic library is not supported" + usage 1 + fi + ;; + +gnutls) + if test "0" = "0"; then + the_crypto_flags=" -DXMLSEC_CRYPTO_GNUTLS=1 -DXMLSEC_CRYPTO=\\\"gnutls\\\"" + the_crypto_libs="-lgnutls " + the_xmlsec_crypto_lib="-lxmlsec1-gnutls" + else + echo "Error: the \"$crypto\" cryptographic library is not supported" + usage 1 + fi + ;; + +gcrypt) + if test "0" = "0"; then + the_crypto_flags=" -DXMLSEC_CRYPTO_GCRYPT=1 -DXMLSEC_CRYPTO=\\\"gcrypt\\\"" + the_crypto_libs=" -lgcrypt" + the_xmlsec_crypto_lib="-lxmlsec1-gcrypt" + else + echo "Error: the \"$crypto\" cryptographic library is not supported" + usage 1 + fi + ;; + +nss) + if test "0" = "0"; then + the_crypto_flags="-I/usr/include/nspr -I/usr/include/nss -DXMLSEC_CRYPTO_NSS=1 -DXMLSEC_CRYPTO=\\\"nss\\\"" + the_crypto_libs="-lnss3 -lnssutil3 -lsmime3 -lssl3 -lplds4 -lplc4 -lnspr4 -lpthread -ldl " + the_xmlsec_crypto_lib="-lxmlsec1-nss" + 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 -D__XMLSEC_FUNCTION__=__FUNCTION__ -DXMLSEC_NO_GOST=1 -DXMLSEC_NO_XKMS=1 -DXMLSEC_DL_LIBLTDL=1, -I${prefix}/include/xmlsec1 $the_xml_flags $the_xslt_flags $the_crypto_flags" +the_libs="$the_libs -L${package_libdir} -lxmlsec1 -lltdl $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 |