forked from openkylin/xmlsec1
282 lines
5.6 KiB
Bash
Executable File
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
|