xmlsec1/xmlsec1-config

282 lines
5.6 KiB
Bash
Executable File

#! /bin/sh
prefix="/usr"
package="xmlsec1"
exec_prefix="${prefix}"
exec_prefix_set=no
libdir="${exec_prefix}/lib"
usage()
{
cat <<EOF
Usage: $package-config [OPTION]...
Known values for OPTION are:
--cflags print pre-processor and compiler flags
--libs print library linking information
--prefix print the default XMLSEC prefix folder
--exec-prefix print the default XMLSEC executable prefix folder
--libdir print the default XMLSEC libraries folder
--crypto print the default crypto library name
--prefix=DIR change XMLSEC prefix folder
--exec-prefix=DIR change XMLSEC executable prefix folder
--libdir=DIR change XMLSEC libraries folder
--crypto=LIB configure with XMLSEC crypto library (one of the
following: none default openssl nss gnutls gcrypt)
--help display this help and exit
--version output version information
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
;;
--libdir=*)
libdir=$optarg
;;
--libdir)
echo $libdir
;;
--version)
echo 1.2.33
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"
fi
;;
default)
the_crypto_flags=" -DXMLSEC_CRYPTO_OPENSSL=1"
the_crypto_libs="-lssl -lcrypto"
the_xmlsec_crypto_lib="-lxmlsec1-openssl"
;;
openssl)
if test "0" = "0" ;
then
the_crypto_flags=" -DXMLSEC_CRYPTO_OPENSSL=1"
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="-I/usr/include/p11-kit-1 -DXMLSEC_CRYPTO_GNUTLS=1"
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="-I/home/aleksey/local/include -DXMLSEC_CRYPTO_GCRYPT=1L"
the_crypto_libs="-L/home/aleksey/local/lib -lgcrypt -L/usr/lib/i386-linux-gnu -lgpg-error"
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/nss -I/usr/include/nspr -I/usr/include/nspr -DXMLSEC_CRYPTO_NSS=1"
the_crypto_libs="-lnss3 -lnssutil3 -lsmime3 -lssl3 -lplds4 -lplc4 -lnspr4 -lplds4 -lplc4 -lnspr4"
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__=__func__ -DXMLSEC_NO_GOST=1 -DXMLSEC_NO_GOST2012=1 -DXMLSEC_DL_LIBLTDL=1 -I${prefix}/include/xmlsec1 $the_xml_flags $the_xslt_flags $the_crypto_flags"
the_libs="$the_libs -L${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
;;
*)
# add it to output
other_flags="$other_flags $i"
;;
esac
;;
esac
done
ord_libs=
for i in $rev_libs; do
case " $ord_libs " in
*\ $i\ *)
# already there
;;
*)
# add it to output in reverse order
ord_libs="$i $ord_libs"
;;
esac
done
echo $other_flags $ord_libs
exit 0