1dnl Process this file with autoconf to produce a configure script. 2AC_INIT([xmlsec1],[1.2.29],[http://www.aleksey.com/xmlsec]) 3 4XMLSEC_PACKAGE=xmlsec1 5XMLSEC_VERSION_MAJOR=1 6XMLSEC_VERSION_MINOR=2 7XMLSEC_VERSION_SUBMINOR=29 8XMLSEC_VERSION="$XMLSEC_VERSION_MAJOR.$XMLSEC_VERSION_MINOR.$XMLSEC_VERSION_SUBMINOR" 9XMLSEC_VERSION_INFO=`echo $XMLSEC_VERSION | awk -F. '{ printf "%d:%d:%d", $1+$2, $3, $2 }'` 10XMLSEC_VERSION_SAFE=`echo $XMLSEC_VERSION | sed 's/\./_/g'` 11 12AC_PREREQ([2.52g]) 13AC_LANG(C) 14AC_CANONICAL_HOST 15 16AC_SUBST(XMLSEC_VERSION) 17AC_SUBST(XMLSEC_PACKAGE) 18AC_SUBST(XMLSEC_VERSION_SAFE) 19AC_SUBST(XMLSEC_VERSION_MAJOR) 20AC_SUBST(XMLSEC_VERSION_MINOR) 21AC_SUBST(XMLSEC_VERSION_SUBMINOR) 22AC_SUBST(XMLSEC_VERSION_INFO) 23 24AC_CONFIG_MACRO_DIR(m4) 25AM_INIT_AUTOMAKE([1.7 tar-ustar subdir-objects -Wno-portability foreign]) 26AC_CONFIG_HEADERS([config.h]) 27AM_MAINTAINER_MODE 28 29# Support silent build rules, requires at least automake-1.11. Disable 30# by either passing --disable-silent-rules to configure or passing V=1 31# to make 32m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) 33 34dnl 35dnl Check the environment 36dnl 37AC_PROG_CC 38AC_PROG_INSTALL 39AC_HEADER_STDC 40AC_PROG_LIBTOOL 41 42LT_INIT 43 44dnl 45dnl Find programs 46dnl 47if test "z$RM" = "z" ; then 48 AC_PATH_PROG(RM, rm, /bin/rm) 49fi 50AC_PATH_PROG(CP, cp, /bin/cp) 51AC_PATH_PROG(MV, mv, /bin/mv) 52AC_PATH_PROG(TAR, tar, /bin/tar) 53AC_PATH_PROG(PERL, perl) 54 55dnl Programs for man pahes and html docs 56AC_PATH_PROG(HELP2MAN, help2man) 57AC_PATH_PROG(XSLTPROC, xsltproc) 58AC_PATH_PROG(MAN2HTML, man2html) 59AC_PATH_PROG(GTKDOC_MKHTML, gtkdoc-mkhtml) 60AC_PATH_PROG(GTKDOC_MKDB, gtkdoc-mkdb) 61AC_PATH_PROG(GTKDOC_SCAN, gtkdoc-scan) 62AM_CONDITIONAL(HAS_HELP2MAN, [test x"$HELP2MAN" != x]) 63AM_CONDITIONAL(HAS_MAN2HTML, [test x"$MAN2HTML" != x]) 64AM_CONDITIONAL(HAS_XSLTPROC, [test x"$XSLTPROC" != x]) 65 66dnl Checks for header files. 67AC_HEADER_DIRENT 68AC_HEADER_STDC 69AC_CHECK_HEADERS([stdio.h]) 70AC_CHECK_HEADERS([stdlib.h]) 71AC_CHECK_HEADERS([string.h]) 72AC_CHECK_HEADERS([ctype.h]) 73AC_CHECK_HEADERS([errno.h]) 74AC_CHECK_HEADERS([ansidecl.h]) 75AC_CHECK_HEADERS([time.h]) 76AC_CHECK_FUNCS(strchr strrchr printf sprintf fprintf snprintf vfprintf vsprintf vsnprintf sscanf timegm) 77 78XMLSEC_DEFINES="" 79 80dnl ========================================================================== 81dnl Detect windows 82dnl ========================================================================== 83build_windows=no 84case "${host_os}" in 85 cygwin*|mingw*) 86 build_windows=yes 87 ;; 88esac 89 90dnl ========================================================================== 91dnl Specific setup for Aleksey's development environment: 92dnl - with debug 93dnl - with pedantic compiler flags 94dnl - with docs build 95dnl - with static binaries 96dnl - without dynamic xmlsec-crypto loading 97dnl ========================================================================== 98AC_MSG_CHECKING(for development environment) 99AC_ARG_ENABLE([development], [AC_HELP_STRING([--enable-development], [enable development environment (no)])]) 100if test "z$enable_development" = "zyes" ; then 101 enable_debugging="yes" 102 enable_pedantic="yes" 103 enable_static_linking="yes" 104 enable_manpages_build="no" 105 enable_docs_build="no" 106 enable_crypto_dl="no" 107 AC_MSG_RESULT([yes]) 108else 109 AC_MSG_RESULT([disabled]) 110fi 111 112dnl ========================================================================== 113dnl Do we want to build manpages? 114dnl ========================================================================== 115AC_MSG_CHECKING(for man pages build) 116AC_ARG_ENABLE([manpages_build], [AC_HELP_STRING([--enable-manpages-build], [man pages build (no)])]) 117if test "z$enable_manpages_build" = "zyes" ; then 118 AM_CONDITIONAL(BUILD_MANPAGES, [test x"$HELP2MAN" != x]) 119 AC_MSG_RESULT([yes]) 120else 121 AM_CONDITIONAL(BUILD_MANPAGES, [test "x" = "y"]) 122 AC_MSG_RESULT([disabled]) 123fi 124 125dnl ========================================================================== 126dnl Do we want to build docs? 127dnl ========================================================================== 128AC_MSG_CHECKING(for docs build) 129AC_ARG_ENABLE([docs_build], [AC_HELP_STRING([--enable-docs-build], [docs build (no)])]) 130if test "z$enable_docs_build" = "zyes" ; then 131 AM_CONDITIONAL(BUILD_MAN_DOCS, [test x"$PERL" != x && test x"$XSLTPROC" != x && test x"$MAN2HTML" != x]) 132 AM_CONDITIONAL(BUILD_API_DOCS, [test x"$PERL" != x && test x"$XSLTPROC" != x && test x"$GTKDOC_MKHTML" != x && test x"$GTKDOC_MKDB" != x && test x"$GTKDOC_SCAN" != x]) 133 AC_MSG_RESULT([yes]) 134else 135 AM_CONDITIONAL(BUILD_MAN_DOCS, [test "x" = "y"]) 136 AM_CONDITIONAL(BUILD_API_DOCS, [test "x" = "y"]) 137 AC_MSG_RESULT([disabled]) 138fi 139 140dnl ========================================================================== 141dnl Perform host specific configuration 142dnl ========================================================================== 143XMLSEC_EXTRA_LDFLAGS= 144XMLSEC_CRYPTO_EXTRA_LDFLAGS= 145dnl should separate extra LDFLAGS for xmlsec and crypto libs ? 146dnl should --enable-runtime-pseudo-reloc for mingw and cygwin ? 147if test -n "$shrext"; then 148 XMLSEC_SHLIBSFX="$shrext" 149else 150 dnl changed in libtool (between 1.5.2 and 1.5.14) 151 XMLSEC_SHLIBSFX="$shrext_cmds" 152fi 153case "${host}" in 154 *aix* ) 155 CFLAGS="${CFLAGS} -D_ALL_SOURCE" 156 ;; 157 *-*-mingw*) 158 dnl use libtool flags "-avoid-version" to create shared 159 dnl libraries without version suffix, i.e. libxmlsec1.dll 160 dnl instead libxmlsec1-NN.dll, where NN is a number. 161 XMLSEC_EXTRA_LDFLAGS="-no-undefined -avoid-version" 162 XMLSEC_CRYPTO_EXTRA_LDFLAGS="-no-undefined -avoid-version" 163 XMLSEC_SHLIBSFX=".dll.a" 164 ;; 165 *-*-cygwin*) 166 XMLSEC_EXTRA_LDFLAGS="-no-undefined" 167 XMLSEC_CRYPTO_EXTRA_LDFLAGS="-no-undefined" 168 ;; 169 *-*-darwin*) 170 XMLSEC_SHLIBSFX=".dylib" 171 ;; 172esac 173 174dnl ========================================================================== 175dnl Hack for autoconf version mismatch 176dnl ========================================================================== 177if test "z$shrext" = "z" ; then 178 AC_MSG_CHECKING(for shared library suffix) 179 module=no 180 eval shrext=$shrext_cmds 181 AC_MSG_RESULT($shrext) 182fi 183 184dnl ========================================================================== 185dnl Check for __FUNCTION__ or __func__ 186dnl ========================================================================== 187AC_MSG_CHECKING(for __FUNCTION__ or __func__) 188AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], 189 [[char *foo = __FUNCTION__;]])], 190 [ac_function_exists=yes], 191 [ac_function_exists=no]) 192AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], 193 [[char *foo = __func__;]])], 194 [ac_func_exists=yes], 195 [ac_func_exists=no]) 196if test "z$ac_func_exists" = "zyes" ; then 197 AC_MSG_RESULT([__func__]) 198 XMLSEC_DEFINES="$XMLSEC_DEFINES -D__XMLSEC_FUNCTION__=__func__" 199elif test "z$ac_function_exists" = "zyes" ; then 200 AC_MSG_RESULT([__FUNCTION__]) 201 XMLSEC_DEFINES="$XMLSEC_DEFINES -D__XMLSEC_FUNCTION__=__FUNCTION__" 202else 203 AC_MSG_RESULT("no") 204fi 205 206dnl ========================================================================== 207dnl check do we have size_t and its size, 208dnl TODO: will need to replace this and the xmlSecSize define with 209dnl typedef on next ABI refresh 210dnl ========================================================================== 211AC_CHECK_SIZEOF(size_t) 212if test "$ac_cv_sizeof_size_t" -ne "4" ; then 213 XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_SIZE_T" 214fi 215 216dnl ========================================================================== 217dnl Check if pkg-config is enabled and installed 218dnl ========================================================================== 219PKGCONFIG_FOUND="no" 220AC_ARG_ENABLE([pkgconfig], [AC_HELP_STRING([--enable-pkgconfig], [enable pkgconfig for configuration (yes)])]) 221if test "z$enable_pkgconfig" != "zno" ; then 222 PKG_PROG_PKG_CONFIG 223 PKGCONFIG_FOUND="yes" 224else 225 PKGCONFIG_FOUND="no" 226fi 227 228dnl ========================================================================== 229dnl Check if packages custom config scripts are enabled 230dnl ========================================================================== 231ENABLE_CUSTOM_CONFIGS="no" 232AC_ARG_ENABLE([custom-configs], [AC_HELP_STRING([--enable-custom-configs], [enable package-specific custom scripts for configuration (yes)])]) 233if test "z$enable_custom_configs" != "zno" ; then 234 ENABLE_CUSTOM_CONFIGS="yes" 235else 236 ENABLE_CUSTOM_CONFIGS="no" 237fi 238 239dnl ========================================================================== 240dnl Check searching for typical packages folders is enabled 241dnl ========================================================================== 242ENABLE_FOLDERS_SEARCH="no" 243AC_ARG_ENABLE([folders-search], [AC_HELP_STRING([--enable-folders-search], [enable searching for package installation in typical folders (yes)])]) 244if test "z$enable_folders_search" != "zno" ; then 245 ENABLE_FOLDERS_SEARCH="yes" 246else 247 ENABLE_FOLDERS_SEARCH="no" 248fi 249 250dnl ========================================================================== 251dnl Common installation locations 252dnl ========================================================================== 253COMMON_INCLUDE_DIR="/usr/include /usr/local/include" 254COMMON_LIB_DIR="/usr/lib /usr/lib64 /usr/local/lib" 255case $host in 256 i*86-*-linux-gnu) COMMON_LIB_DIR="$COMMON_LIB_DIR /usr/lib/i386-linux-gnu" ;; 257 x86_64-*-linux-gnu) COMMON_LIB_DIR="$COMMON_LIB_DIR /usr/lib/x86_64-linux-gnu" ;; 258 *) COMMON_LIB_DIR="$COMMON_LIB_DIR /usr/lib/$host" ;; 259esac 260 261dnl Macro to help find the folder that contains marker file. 262dnl Usage: AX_FIND_FOLDER(RESULT_VARIABLE, MARKER_FILE, FOLDERS_LIST) 263AC_DEFUN([AX_FIND_FOLDER],[ 264 for dir in $3 ; do 265 if test -f "$dir/$2" ; then 266 $1="$dir" 267 break; 268 fi 269 done 270]) 271 272dnl ========================================================================== 273dnl find libxml 274dnl ========================================================================== 275LIBXML_MIN_VERSION="2.8.0" 276LIBXML_INCLUDE_DIR="$COMMON_INCLUDE_DIR /usr/include/libxml2 /usr/local/include/libxml2 /usr/local/libxml2/include" 277LIBXML_LIB_DIR="$COMMON_LIB_DIR /usr/local/libxml2/lib" 278LIBXML_INCLUDE_MARKER="libxml/xmlversion.h" 279LIBXML_SHARED_LIB_MARKER="libxml2$shrext" 280LIBXML_STATIC_LIB_MARKER="libxml2.$libext" 281LIBXML_LIBS_LIST="-lxml2" 282LIBXML_CONFIG="xml2-config" 283 284LIBXML_INCLUDE_PATH= 285LIBXML_LIB_PATH= 286LIBXML_CONFIG_PATH= 287LIBXML_FOUND="no" 288AC_ARG_WITH([libxml], [AC_HELP_STRING([--with-libxml@<:@=PFX@:>@], [libxml2 location])]) 289AC_ARG_WITH([libxml-src], [AC_HELP_STRING([--with-libxml-src@<:@=PFX@:>@], [libxml2 source tree location])]) 290 291dnl Priority 0: LibXML2 is disabled: hard error. 292if test "z$with_libxml" = "zno" -o "z$with_libxml_src" = "zno"; then 293 LIBXML_FOUND="disabled" 294fi 295 296dnl Priority 1: User specifies the path to source code 297if test "z$LIBXML_FOUND" = "zno" -a "z$with_libxml_src" != "z" -a "z$with_libxml_src" != "zyes" ; then 298 AC_MSG_CHECKING(for libxml2 library source tree in "$with_libxml_src" folder) 299 if test [ -f "$with_libxml_src/include/$LIBXML_INCLUDE_MARKER" ] -a [ -f "$with_libxml_src/.libs/$LIBXML_SHARED_LIB_MARKER" -o -f "$with_libxml_src/.libs/$LIBXML_STATIC_LIB_MARKER"] ; then 300 LIBXML_INCLUDE_PATH="$with_libxml_src/include" 301 LIBXML_LIB_PATH="$with_libxml_src/.libs" 302 LIBXML_FOUND="yes" 303 AC_MSG_RESULT([yes]) 304 else 305 AC_MSG_ERROR([not found: "$with_libxml_src/include/$LIBXML_INCLUDE_MARKER" or "$with_libxml_src/.libs/$LIBXML_SHARED_LIB_MARKER" or "$with_libxml_src/.libs/$LIBXML_STATIC_LIB_MARKER" files don't exist), typo?]) 306 fi 307fi 308 309dnl Priority 2: User specifies path to installation 310if test "z$LIBXML_FOUND" = "zno" -a "z$with_libxml" != "z" -a "z$with_libxml" != "zyes" ; then 311 AC_MSG_CHECKING(for libxml2 library installation in "$with_libxml" folder) 312 if test "z$ENABLE_CUSTOM_CONFIGS" = "zyes" -a -f "$with_libxml/bin/$LIBXML_CONFIG" ; then 313 LIBXML_CONFIG_PATH="$with_libxml/bin/$LIBXML_CONFIG" 314 LIBXML_FOUND="yes" 315 AC_MSG_RESULT([yes]) 316 elif test [ -f "$with_libxml/include/libxml2/$LIBXML_INCLUDE_MARKER" ] -a [ -f "$with_libxml/lib/$LIBXML_SHARED_LIB_MARKER" -o -f "$with_libxml/lib/$LIBXML_STATIC_LIB_MARKER" ] ; then 317 LIBXML_INCLUDE_PATH="$with_libxml/include/libxml2" 318 LIBXSLT_LIB_PATH="$with_libxml/lib" 319 LIBXML_FOUND="yes" 320 AC_MSG_RESULT([yes]) 321 else 322 AC_MSG_ERROR([not found: "$with_libxml/bin/$LIBXML_CONFIG" tool, or "$with_libxml/include/libxml2/$LIBXML_INCLUDE_MARKER" and/or "$with_libxml/lib/$LIBXML_SHARED_LIB_MARKER" or "$with_libxml/lib/$LIBXML_STATIC_LIB_MARKER" files don't exist), typo?]) 323 fi 324fi 325 326dnl Priority 3: User sets both CFLAGS and LIBS flags 327if test "z$LIBXML_FOUND" = "zno" -a "z$LIBXML_CFLAGS" != "z" -a "z$LIBXML_LIBS" != "z" ; then 328 LIBXML_FOUND="yes" 329fi 330 331dnl Priority 4: Guess with pkg_config 332if test "z$LIBXML_FOUND" = "zno" -a "z$PKGCONFIG_FOUND" = "zyes" ; then 333 PKG_CHECK_MODULES(LIBXML, libxml-2.0 >= $LIBXML_MIN_VERSION, 334 [LIBXML_FOUND=yes], 335 [LIBXML_FOUND=no]) 336fi 337 338dnl Priority 5: Guess the config tool location 339if test "z$LIBXML_FOUND" = "zno" -a "z$ENABLE_CUSTOM_CONFIGS" = "zyes" ; then 340 AC_PATH_PROG(LIBXML_CONFIG_PATH, [$LIBXML_CONFIG], [], [$PATH]) 341 if test "z$LIBXML_CONFIG_PATH" != "z" ; then 342 LIBXML_FOUND="yes" 343 fi 344fi 345 346dnl Priority 6: Guess using a list of folders. 347if test "z$LIBXML_FOUND" = "zno" -a "z$ENABLE_FOLDERS_SEARCH" = "zyes" ; then 348 AC_MSG_CHECKING(for libxml2 library installation in the typical folders) 349 if test "z$LIBXML_INCLUDE_PATH" = "z" ; then 350 AX_FIND_FOLDER(LIBXML_INCLUDE_PATH, $LIBXML_INCLUDE_MARKER, $LIBXML_INCLUDE_DIR) 351 fi 352 if test "z$LIBXML_LIB_PATH" = "z" ; then 353 AX_FIND_FOLDER(LIBXML_LIB_PATH, $LIBXML_SHARED_LIB_MARKER, $LIBXML_LIB_DIR) 354 fi 355 if test "z$LIBXML_LIB_PATH" = "z" ; then 356 AX_FIND_FOLDER(LIBXML_LIB_PATH, $LIBXML_STATIC_LIB_MARKER, $LIBXML_LIB_DIR) 357 fi 358 if test "z$LIBXML_INCLUDE_PATH" != "z" -a "z$LIBXML_LIB_PATH" != "z" ; then 359 LIBXML_FOUND="yes" 360 AC_MSG_RESULT([yes ("-I$LIBXML_INCLUDE_PATH -L$LIBXML_LIB_PATH")]) 361 else 362 AC_MSG_RESULT([not found]) 363 fi 364fi 365 366dnl Priority 7: Just try to compile/link and hope for the best 367if test "z$LIBXML_FOUND" = "zno" ; then 368 AC_MSG_CHECKING(for libxml2 library installation) 369 OLD_CPPFLAGS=$CPPFLAGS 370 CPPFLAGS="$CPPFLAGS $LIBXML_CFLAGS" 371 OLD_LIBS=$LIBS 372 LIBS="$LIBS $LIBXML_LIBS $LIBXML_LIBS_LIST" 373 AC_LINK_IFELSE([ 374 AC_LANG_PROGRAM([[ 375 #include <libxml/xmlversion.h> 376 ]],[[ 377 int main () { xmlCheckVersion(0);; return(0); } 378 ]]) 379 ],[ 380 LIBXML_FOUND=yes 381 LIBXML_LIBS="$LIBXML_LIBS $LIBXML_LIBS_LIST" 382 AC_MSG_RESULT([yes]) 383 ],[ 384 LIBXML_FOUND=no 385 AC_MSG_RESULT([not found]) 386 ]) 387 CPPFLAGS=$OLD_CPPFLAGS 388 LIBS=$OLD_LIBS 389fi 390 391dnl Set CFLAGS/LIBS flags 392if test "z$LIBXML_FOUND" = "zyes" ; then 393 if test "z$LIBXML_CONFIG_PATH" != "z" -a "z$ENABLE_CUSTOM_CONFIGS" = "zyes" ; then 394 dnl Get the values using config tool (overwrite CFLAGS/LIBS!) 395 if test "z$LIBXML_CFLAGS" = "z" ; then 396 LIBXML_CFLAGS="`$LIBXML_CONFIG_PATH --cflags`" 397 fi 398 if test "z$LIBXML_LIBS" = "z"; then 399 LIBXML_LIBS="`$LIBXML_CONFIG_PATH --libs`" 400 fi 401 LIBXML_CONFIG=$LIBXML_CONFIG_PATH 402 LIBXML_FOUND="yes" 403 else 404 dnl Set flags if INCLUDE_PATH or LIB_PATH are set (do NOT overwrite CFLAGS/LIBS!) 405 if test "z$LIBXML_INCLUDE_PATH" != "z" ; then 406 LIBXML_CFLAGS="$LIBXML_CFLAGS -I$LIBXML_INCLUDE_PATH" 407 fi 408 if test "z$LIBXML_LIB_PATH" != "z" ; then 409 if test "z$with_gnu_ld" = "zyes" ; then 410 LIBXML_LIBS="$LIBXML_LIBS -Wl,-rpath-link -Wl,$LIBXML_LIB_PATH" 411 fi 412 LIBXML_LIBS="$LIBXML_LIBS -L$LIBXML_LIB_PATH $LIBXML_LIBS_LIST" 413 fi 414 fi 415fi 416 417dnl Verify the version. 418AC_MSG_CHECKING(for libxml2 library >= $LIBXML_MIN_VERSION) 419if test "z$LIBXML_FOUND" = "zyes" ; then 420 OLD_CPPFLAGS=$CPPFLAGS 421 CPPFLAGS="$CPPFLAGS $LIBXML_CFLAGS" 422 minvers=`echo $LIBXML_MIN_VERSION | awk -F. '{ printf "%d", ($1 * 100 + $2) * 100 + $3;}'` 423 AC_EGREP_CPP(greater-than-minvers, [ 424 #include <libxml/xmlversion.h> 425 #if LIBXML_VERSION >= $minvers 426 greater-than-minvers 427 #endif 428 ],[ 429 LIBXML_FOUND=yes 430 ],[ 431 LIBXML_FOUND=no 432 ]) 433 CPPFLAGS=$OLD_CPPFLAGS 434fi 435AC_MSG_RESULT([$LIBXML_FOUND]) 436 437dnl LibXML2 is required so if we didn't find it then it is a fatal error. 438if test "z$LIBXML_FOUND" != "zyes" ; then 439 AC_MSG_ERROR([libxml2 library >= $LIBXML_MIN_VERSION is required for this version of $XMLSEC_PACKAGE]) 440fi 441 442dnl Finally set variables 443AC_SUBST(LIBXML_CFLAGS) 444AC_SUBST(LIBXML_LIBS) 445AC_SUBST(LIBXML_CONFIG) 446AC_SUBST(LIBXML_MIN_VERSION) 447 448dnl ========================================================================== 449dnl find libxslt 450dnl ========================================================================== 451LIBXSLT_MIN_VERSION=1.0.20 452LIBXSLT_INCLUDE_DIR="$COMMON_INCLUDE_DIR /usr/local/libxslt/include" 453LIBXSLT_LIB_DIR="$COMMON_LIB_DIR /usr/local/libxslt/lib" 454LIBXSLT_CONFIG="xslt-config" 455LIBXSLT_INCLUDE_MARKER="libxslt/xsltconfig.h" 456LIBXSLT_SHARED_LIB_MARKER="libxslt$shrext" 457LIBXSLT_STATIC_LIB_MARKER="libxslt.$libext" 458LIBXSLT_LIBS_LIST="-lxslt" 459 460XMLSEC_NO_LIBXSLT="1" 461LIBXSLT_INCLUDE_PATH= 462LIBXSLT_LIB_PATH= 463LIBXSLT_CONFIG_PATH= 464LIBXSLT_FOUND="no" 465AC_ARG_WITH([libxslt], [AC_HELP_STRING([--with-libxslt@<:@=PFX@:>@], [libxslt location])]) 466AC_ARG_WITH([libxslt-src], [AC_HELP_STRING([--with-libxslt-src@<:@=PFX@:>@],[libxslt source tree location])]) 467 468dnl Priority 0: Check if library is not needed 469if test "z$with_libxslt" = "zno" -o "z$with_libxslt_src" = "zno" ; then 470 LIBXSLT_FOUND="disabled" 471fi 472 473dnl Priority 1: User specifies the path to source code 474if test "z$LIBXSLT_FOUND" = "zno" -a "z$with_libxslt_src" != "z" -a "z$with_libxslt_src" != "zyes" ; then 475 AC_MSG_CHECKING(for libxslt library source tree in "$with_libxslt_src" folder) 476 if test [ -f "$with_libxslt_src/$LIBXSLT_INCLUDE_MARKER" ] -a [ -f "$with_libxslt_src/libxslt/.libs/$LIBXSLT_SHARED_LIB_MARKER" -o -f "$with_libxslt_src/libxslt/.libs/$LIBXSLT_STATIC_LIB_MARKER" ] ; then 477 LIBXSLT_INCLUDE_PATH="$with_libxslt_src" 478 LIBXSLT_LIB_PATH="$with_libxslt_src/libxslt/.libs" 479 LIBXSLT_FOUND="yes" 480 AC_MSG_RESULT([yes]) 481 else 482 AC_MSG_ERROR([not found: "$with_libxslt_src/$LIBXSLT_INCLUDE_MARKER" and/or "$with_libxslt_src/libxslt/.libs/$LIBXSLT_SHARED_LIB_MARKER" or "$with_libxslt_src/libxslt/.libs/$LIBXSLT_STATIC_LIB_MARKER" files don't exist), typo?]) 483 fi 484fi 485 486dnl Priority 2: User specifies path to installation 487if test "z$LIBXSLT_FOUND" = "zno" -a "z$with_libxslt" != "z" -a "z$with_libxslt" != "zyes" ; then 488 AC_MSG_CHECKING(for libxslt library installation in "$with_libxslt" folder) 489 if test "z$ENABLE_CUSTOM_CONFIGS" = "zyes" -a -f "$with_libxslt/bin/$LIBXSLT_CONFIG" ; then 490 LIBXSLT_CONFIG_PATH="$with_libxslt/bin/$LIBXSLT_CONFIG" 491 LIBXSLT_FOUND="yes" 492 AC_MSG_RESULT([yes]) 493 elif test [ -f "$with_libxslt/include/$LIBXSLT_INCLUDE_MARKER" ] -a [ -f "$with_libxslt/lib/$LIBXSLT_SHARED_LIB_MARKER" -o -f "$with_libxslt/lib/$LIBXSLT_STATIC_LIB_MARKER" ] ; then 494 LIBXSLT_INCLUDE_PATH="$with_libxslt/include" 495 LIBXSLT_LIB_PATH="$with_libxslt/lib" 496 LIBXSLT_FOUND="yes" 497 AC_MSG_RESULT([yes]) 498 else 499 AC_MSG_ERROR([not found: "$with_libxslt/bin/$LIBXSLT_CONFIG" tool, or "$with_libxslt/include/$LIBXSLT_INCLUDE_MARKER" and/or "$with_libxslt/lib/$LIBXSLT_SHARED_LIB_MARKER" or "$with_libxslt/lib/$LIBXSLT_STATIC_LIB_MARKER" files don't exist), typo?]) 500 fi 501fi 502 503dnl Priority 3: User sets both CFLAGS and LIBS flags 504if test "z$LIBXSLT_FOUND" = "zno" -a "z$LIBXSLT_CFLAGS" != "z" -a "z$LIBXSLT_LIBS" != "z" ; then 505 LIBXSLT_FOUND="yes" 506fi 507 508dnl Priority 4: Guess with pkg_config 509if test "z$LIBXSLT_FOUND" = "zno" -a "z$PKGCONFIG_FOUND" = "zyes" ; then 510 PKG_CHECK_MODULES(LIBXSLT, libxslt >= $LIBXSLT_MIN_VERSION, 511 [LIBXSLT_FOUND=yes], 512 [LIBXSLT_FOUND=no]) 513fi 514 515dnl Priority 5: Guess the config tool location 516if test "z$LIBXSLT_FOUND" = "zno" -a "z$ENABLE_CUSTOM_CONFIGS" = "zyes" ; then 517 AC_PATH_PROG(LIBXSLT_CONFIG_PATH, [$LIBXSLT_CONFIG], [], [$PATH]) 518 if test "z$LIBXSLT_CONFIG_PATH" != "z" ; then 519 LIBXSLT_FOUND="yes" 520 fi 521fi 522 523dnl Priority 6: Guess using a list of folders. 524if test "z$LIBXSLT_FOUND" = "zno" -a "z$ENABLE_FOLDERS_SEARCH" = "zyes" ; then 525 AC_MSG_CHECKING(for libxslt library installation in the typical folders) 526 if test "z$LIBXSLT_INCLUDE_PATH" = "z" ; then 527 AX_FIND_FOLDER(LIBXSLT_INCLUDE_PATH, $LIBXSLT_INCLUDE_MARKER, $LIBXSLT_INCLUDE_DIR) 528 fi 529 if test "z$LIBXSLT_LIB_PATH" = "z" ; then 530 AX_FIND_FOLDER(LIBXSLT_LIB_PATH, $LIBXSLT_SHARED_LIB_MARKER, $LIBXSLT_LIB_DIR) 531 fi 532 if test "z$LIBXSLT_LIB_PATH" = "z" ; then 533 AX_FIND_FOLDER(LIBXSLT_LIB_PATH, $LIBXSLT_STATIC_LIB_MARKER, $LIBXSLT_LIB_DIR) 534 fi 535 if test "z$LIBXSLT_INCLUDE_PATH" != "z" -a "z$LIBXSLT_LIB_PATH" != "z" ; then 536 LIBXSLT_FOUND="yes" 537 AC_MSG_RESULT([yes ("-I$LIBXSLT_INCLUDE_PATH -L$LIBXSLT_LIB_PATH")]) 538 else 539 AC_MSG_RESULT([not found]) 540 fi 541fi 542 543dnl Priority 7: Just try to compile/link and hope for the best 544if test "z$LIBXSLT_FOUND" = "zno" ; then 545 AC_MSG_CHECKING(for libxslt library installation) 546 OLD_CPPFLAGS=$CPPFLAGS 547 CPPFLAGS="$CPPFLAGS $LIBXML_CFLAGS $LIBXSLT_CFLAGS" 548 OLD_LIBS=$LIBS 549 LIBS="$LIBS $LIBXML_LIBS $LIBXSLT_LIBS $LIBXSLT_LIBS_LIST" 550 AC_LINK_IFELSE([ 551 AC_LANG_PROGRAM([[ 552 #include <libxslt/xslt.h> 553 ]],[[ 554 int main () { xsltInit(); return(0); } 555 ]]) 556 ],[ 557 LIBXSLT_FOUND=yes 558 LIBXSLT_LIBS="$LIBXSLT_LIBS $LIBXSLT_LIBS_LIST" 559 AC_MSG_RESULT([yes]) 560 ],[ 561 LIBXSLT_FOUND=no 562 AC_MSG_RESULT([not found]) 563 ]) 564 CPPFLAGS=$OLD_CPPFLAGS 565 LIBS=$OLD_LIBS 566fi 567 568dnl Set CFLAGS/LIBS flags 569if test "z$LIBXSLT_FOUND" = "zyes" ; then 570 if test "z$LIBXSLT_CONFIG_PATH" != "z" -a "z$ENABLE_CUSTOM_CONFIGS" = "zyes" ; then 571 dnl Get the values using config tool (overwrite CFLAGS/LIBS!) 572 if test "z$LIBXSLT_CFLAGS" = "z" ; then 573 LIBXSLT_CFLAGS="`$LIBXSLT_CONFIG_PATH --cflags`" 574 fi 575 if test "z$LIBXSLT_LIBS" = "z"; then 576 LIBXSLT_LIBS="`$LIBXSLT_CONFIG_PATH --libs`" 577 fi 578 LIBXSLT_CONFIG=$LIBXSLT_CONFIG_PATH 579 LIBXSLT_FOUND="yes" 580 else 581 dnl Set flags if INCLUDE_PATH or LIB_PATH are set (do NOT overwrite CFLAGS/LIBS!) 582 if test "z$LIBXSLT_INCLUDE_PATH" != "z" ; then 583 LIBXSLT_CFLAGS="$LIBXSLT_CFLAGS -I$LIBXSLT_INCLUDE_PATH" 584 fi 585 if test "z$LIBXSLT_LIB_PATH" != "z" ; then 586 if test "z$with_gnu_ld" = "zyes" ; then 587 LIBXSLT_LIBS="$LIBXSLT_LIBS -Wl,-rpath-link -Wl,$LIBXSLT_LIB_PATH" 588 fi 589 LIBXSLT_LIBS="$LIBXSLT_LIBS -L$LIBXSLT_LIB_PATH $LIBXSLT_LIBS_LIST" 590 fi 591 fi 592fi 593 594dnl Verify the version 595AC_MSG_CHECKING(for libxslt library >= $LIBXSLT_MIN_VERSION) 596if test "z$LIBXSLT_FOUND" = "zyes" ; then 597 OLD_CPPFLAGS=$CPPFLAGS 598 CPPFLAGS="$CPPFLAGS $LIBXSLT_CFLAGS" 599 minvers=`echo $LIBXSLT_MIN_VERSION | awk -F. '{ printf "%d", ($1 * 100 + $2) * 100 + $3;}'` 600 AC_EGREP_CPP(greater-than-minvers, [ 601 #include <libxslt/xsltconfig.h> 602 #if LIBXSLT_VERSION >= $minvers 603 greater-than-minvers 604 #endif 605 ],[ 606 LIBXSLT_FOUND=yes 607 ],[ 608 LIBXSLT_FOUND=no 609 ]) 610 CPPFLAGS=$OLD_CPPFLAGS 611fi 612AC_MSG_RESULT([$LIBXSLT_FOUND]) 613 614dnl Finally set variables 615if test "z$LIBXSLT_FOUND" = "zyes" ; then 616 XMLSEC_NO_LIBXSLT="0" 617 LIBXSLT_PC_FILE_COND="libxslt >= $LIBXSLT_MIN_VERSION" 618else 619 XMLSEC_NO_LIBXSLT="1" 620 LIBXSLT_PC_FILE_COND="" 621 XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_XSLT=1" 622fi 623AC_SUBST(XMLSEC_NO_LIBXSLT) 624AC_SUBST(LIBXSLT_CFLAGS) 625AC_SUBST(LIBXSLT_LIBS) 626AC_SUBST(LIBXSLT_CONFIG) 627AC_SUBST(LIBXSLT_MIN_VERSION) 628AC_SUBST(LIBXSLT_PC_FILE_COND) 629 630dnl ========================================================================== 631dnl See if we can find a crypto library 632dnl ========================================================================== 633XMLSEC_CRYPTO_LIST="" 634XMLSEC_CRYPTO_DISABLED_LIST="" 635 636dnl ========================================================================== 637dnl OpenSSL 638dnl ========================================================================== 639OPENSSL_MIN_VERSION="1.0.0" 640OPENSSL_INCLUDE_DIR="$COMMON_INCLUDE_DIR /usr/local/ssl/include" 641OPENSSL_LIB_DIR="$COMMON_LIB_DIR /usr/local/ssl/lib" 642OPENSSL_CRYPTO_LIB="$XMLSEC_PACKAGE-openssl" 643OPENSSL_INCLUDE_MARKER="openssl/opensslv.h" 644OPENSSL_LIB_SHARED_MARKER="libcrypto$shrext" 645OPENSSL_LIB_STATIC_MARKER="libcrypto.a" 646OPENSSL_LIBS_LIST="-lcrypto" 647case $host in 648 *-*-mingw*) OPENSSL_EXTRA_LIBS=;; 649 *-*-osf5*) OPENSSL_EXTRA_LIBS=;; 650 *-*-openbsd*) OPENSSL_EXTRA_LIBS=;; 651 *-*-netbsd*) OPENSSL_EXTRA_LIBS=;; 652 *-*-freebsd*|*-*-dragonfly*) OPENSSL_EXTRA_LIBS=;; 653 *-*-darwin*) OPENSSL_EXTRA_LIBS=;; 654 #FIXME: check if lib "dl" is required 655 *) OPENSSL_EXTRA_LIBS=-ldl;; 656esac 657 658XMLSEC_NO_OPENSSL="1" 659OPENSSL_VERSION="" 660OPENSSL_INCLUDE_PATH= 661OPENSSL_LIB_PATH= 662OPENSSL_FOUND=no 663AC_ARG_WITH([openssl], [AC_HELP_STRING([--with-openssl@<:@=PFX@:>@], [openssl location])]) 664 665dnl Priority 0: Check if library is disabled 666if test "z$with_openssl" = "zno" ; then 667 OPENSSL_FOUND=disabled 668fi 669 670dnl Priority 1: User specifies the path to installation 671if test "z$OPENSSL_FOUND" = "zno" -a "z$with_openssl" != "z" -a "z$with_openssl" != "zyes" ; then 672 AC_MSG_CHECKING(for openssl library installation in "$with_openssl" folder) 673 if test -f "$with_openssl/include/$OPENSSL_INCLUDE_MARKER" -a -f "$with_openssl/lib/$OPENSSL_LIB_SHARED_MARKER" ; then 674 OPENSSL_INCLUDE_PATH="$with_openssl/include" 675 OPENSSL_LIB_PATH="$with_openssl/lib" 676 OPENSSL_FOUND="yes" 677 AC_MSG_RESULT([yes]) 678 elif test -f "$with_openssl/include/$OPENSSL_INCLUDE_MARKER" -a -f "$with_openssl/lib/$OPENSSL_LIB_STATIC_MARKER" ; then 679 OPENSSL_INCLUDE_PATH="$with_openssl/include" 680 OPENSSL_LIB_PATH="$with_openssl/lib" 681 OPENSSL_FOUND="yes" 682 AC_MSG_RESULT([yes]) 683 else 684 AC_MSG_ERROR([not found: "$with_openssl/include/$OPENSSL_INCLUDE_MARKER" or "$with_openssl/lib/$OPENSSL_LIB_SHARED_MARKER" or "$with_openssl/lib/$OPENSSL_LIB_STATIC_MARKER" files don't exist), typo?]) 685 fi 686fi 687 688dnl Priority 2: User sets both CFLAGS and LIBS flags 689if test "z$OPENSSL_FOUND" = "zno" -a "z$OPENSSL_CFLAGS" != "z" -a "z$OPENSSL_LIBS" != "z" ; then 690 OPENSSL_FOUND="yes" 691fi 692 693dnl Priority 3: Guess with pkg_config 694if test "z$OPENSSL_FOUND" = "zno" -a "z$PKGCONFIG_FOUND" = "zyes" ; then 695 PKG_CHECK_MODULES(OPENSSL, openssl >= $OPENSSL_MIN_VERSION, 696 [OPENSSL_FOUND=yes], 697 [OPENSSL_FOUND=no]) 698fi 699 700dnl Priority 4: Guess using a list of folders (do not overwrite CFLAGS/LIBS flags). 701if test "z$OPENSSL_FOUND" = "zno" -a "z$ENABLE_FOLDERS_SEARCH" = "zyes" ; then 702 AC_MSG_CHECKING(for openssl library installation in the typical folders) 703 if test "z$OPENSSL_INCLUDE_PATH" = "z" ; then 704 AX_FIND_FOLDER(OPENSSL_INCLUDE_PATH, $OPENSSL_INCLUDE_MARKER, $OPENSSL_INCLUDE_DIR) 705 fi 706 if test "z$OPENSSL_LIB_PATH" = "z" ; then 707 AX_FIND_FOLDER(OPENSSL_LIB_PATH, $OPENSSL_LIB_SHARED_MARKER, $OPENSSL_LIB_DIR) 708 fi 709 if test "z$OPENSSL_LIB_PATH" = "z" ; then 710 AX_FIND_FOLDER(OPENSSL_LIB_PATH, $OPENSSL_LIB_STATIC_MARKER, $OPENSSL_LIB_DIR) 711 fi 712 if test "z$OPENSSL_INCLUDE_PATH" != "z" -a "z$OPENSSL_LIB_PATH" != "z" ; then 713 OPENSSL_FOUND="yes" 714 AC_MSG_RESULT([yes ("-I$OPENSSL_INCLUDE_PATH -L$OPENSSL_LIB_PATH")]) 715 else 716 AC_MSG_RESULT([not found]) 717 fi 718fi 719 720dnl Priority 5: Just try to compile/link and hope for the best 721if test "z$OPENSSL_FOUND" = "zno" ; then 722 AC_MSG_CHECKING(for openssl library installation) 723 OLD_CPPFLAGS=$CPPFLAGS 724 CPPFLAGS="$CPPFLAGS $OPENSSL_CFLAGS" 725 OLD_LIBS=$LIBS 726 LIBS="$LIBS $OPENSSL_LIBS $OPENSSL_LIBS_LIST" 727 AC_LINK_IFELSE([ 728 AC_LANG_PROGRAM([[ 729 #include <openssl/opensslv.h> 730 ]],[[ 731 int main () { 732 #if OPENSSL_VERSION_NUMBER < 0x10100000L 733 SSL_library_init(); 734 #else 735 OPENSSL_init_ssl(0, NULL); 736 #endif 737 return(0); 738 } 739 ]]) 740 ],[ 741 OPENSSL_FOUND=yes 742 OPENSSL_LIBS="$OPENSSL_LIBS $OPENSSL_LIBS_LIST" 743 AC_MSG_RESULT([yes]) 744 ],[ 745 OPENSSL_FOUND=no 746 AC_MSG_RESULT([not found]) 747 ]) 748 CPPFLAGS=$OLD_CPPFLAGS 749 LIBS=$OLD_LIBS 750fi 751 752dnl Set flags if INCLUDE_PATH or LIB_PATH are set 753if test "z$OPENSSL_FOUND" = "zyes" -a "z$OPENSSL_INCLUDE_PATH" != "z" ; then 754 OPENSSL_CFLAGS="$OPENSSL_CFLAGS -I$OPENSSL_INCLUDE_PATH -I$OPENSSL_INCLUDE_PATH/openssl" 755fi 756if test "z$OPENSSL_FOUND" = "zyes" -a "z$OPENSSL_LIB_PATH" != "z" ; then 757 if test -f "$OPENSSL_LIB_PATH/$OPENSSL_LIB_SHARED_MARKER" ; then 758 if test "z$with_gnu_ld" = "zyes" ; then 759 OPENSSL_LIBS="$OPENSSL_LIBS -Wl,-rpath-link -Wl,$OPENSSL_LIB_PATH" 760 fi 761 fi 762 OPENSSL_LIBS="$OPENSSL_LIBS -L$OPENSSL_LIB_PATH $OPENSSL_LIBS_LIST $OPENSSL_EXTRA_LIBS" 763fi 764 765dnl Check the OpenSSL version; if you change this code then you probably want to 766dnl change include/xmlsec/openssl/crypto.h as well. 767AC_MSG_CHECKING(for openssl library >= $OPENSSL_MIN_VERSION) 768if test "z$OPENSSL_FOUND" = "zyes" ; then 769 OLD_CPPFLAGS=$CPPFLAGS 770 CPPFLAGS="$CPPFLAGS $OPENSSL_CFLAGS" 771 if test "z$OPENSSL_VERSION" = "z" ; then 772 AC_EGREP_CPP(greater-than-minvers, [ 773 #include <openssl/opensslv.h> 774 #if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L 775 greater-than-minvers 776 #endif 777 ],[ 778 OPENSSL_VERSION="1.0.0 (LibreSSL < 2.7)" 779 ],[ 780 OPENSSL_VERSION="" 781 ]) 782 fi 783 784 if test "z$OPENSSL_VERSION" = "z" ; then 785 AC_EGREP_CPP(greater-than-minvers, [ 786 #include <openssl/opensslv.h> 787 #if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x20700000L 788 greater-than-minvers 789 #endif 790 ],[ 791 OPENSSL_VERSION="1.1.0 (LibreSSL >= 2.7)" 792 ],[ 793 OPENSSL_VERSION="" 794 ]) 795 fi 796 797 if test "z$OPENSSL_VERSION" = "z" ; then 798 AC_EGREP_CPP(greater-than-minvers, [ 799 #include <openssl/opensslv.h> 800 #include <openssl/crypto.h> 801 #if OPENSSL_VERSION_NUMBER >= 0x10100000L 802 #ifdef OPENSSL_IS_BORINGSSL 803 greater-than-minvers 804 #endif 805 #endif 806 ],[ 807 OPENSSL_VERSION="1.1.0 (BoringSSL)" 808 enable_ripemd160=no 809 enable_dsa=no 810 ],[ 811 OPENSSL_VERSION="" 812 ]) 813 fi 814 815 if test "z$OPENSSL_VERSION" = "z" ; then 816 AC_EGREP_CPP(greater-than-minvers, [ 817 #include <openssl/opensslv.h> 818 #if OPENSSL_VERSION_NUMBER >= 0x10100000L 819 greater-than-minvers 820 #endif 821 ],[ 822 OPENSSL_VERSION="1.1.0" 823 ],[ 824 OPENSSL_VERSION="" 825 ]) 826 fi 827 828 if test "z$OPENSSL_VERSION" = "z" ; then 829 AC_EGREP_CPP(greater-than-minvers, [ 830 #include <openssl/opensslv.h> 831 #if OPENSSL_VERSION_NUMBER >= 0x10000000L 832 greater-than-minvers 833 #endif 834 ],[ 835 OPENSSL_VERSION="1.0.0" 836 ],[ 837 OPENSSL_VERSION="" 838 ]) 839 fi 840 CPPFLAGS=$OLD_CPPFLAGS 841 842 if test "z$OPENSSL_VERSION" != "z" ; then 843 OPENSSL_FOUND=yes 844 else 845 OPENSSL_FOUND=no 846 fi 847fi 848if test "z$OPENSSL_FOUND" = "zyes" ; then 849 AC_MSG_RESULT([yes (openssl version '$OPENSSL_VERSION')]) 850else 851 AC_MSG_RESULT([$OPENSSL_FOUND]) 852fi 853 854dnl Finally set all the flags 855if test "z$OPENSSL_FOUND" = "zyes" ; then 856 XMLSEC_NO_OPENSSL="0" 857 OPENSSL_CFLAGS="$OPENSSL_CFLAGS -DXMLSEC_CRYPTO_OPENSSL=1" 858 XMLSEC_CRYPTO_LIST="$XMLSEC_CRYPTO_LIST openssl" 859else 860 XMLSEC_CRYPTO_DISABLED_LIST="$XMLSEC_CRYPTO_DISABLED_LIST openssl" 861fi 862 863AM_CONDITIONAL(XMLSEC_NO_OPENSSL, test "z$XMLSEC_NO_OPENSSL" = "z1") 864AC_SUBST(XMLSEC_NO_OPENSSL) 865AC_SUBST(OPENSSL_CFLAGS) 866AC_SUBST(OPENSSL_LIBS) 867AC_SUBST(OPENSSL_CRYPTO_LIB) 868AC_SUBST(OPENSSL_MIN_VERSION) 869 870dnl ========================================================================== 871dnl See if we can find NSS and NSPR 872dnl Allow the use of: 873dnl 1. Mozilla style distribution where all mozilla components (NSS, NSPR 874dnl are just 2 of over 100 components) are under one directory. 875dnl options: [--with-mozilla-ver=<VERSION>] 876dnl 877dnl Using the version number, various directories are searched 878dnl for NSS & NSPR 879dnl 880dnl AND / OR 881dnl 882dnl 2. separate NSS & NSPR distributions 883dnl options: [--with-nss=<PFX>] [--with-nspr=<PFX>] 884dnl 885dnl 2 overrides 1 886dnl 887dnl ========================================================================== 888NSS_MIN_VERSION="3.11.1" 889NSPR_MIN_VERSION="4.4.1" 890SEAMONKEY_MIN_VERSION="1.0" 891MOZILLA_MIN_VERSION="1.4" 892NSS_CRYPTO_LIB="$XMLSEC_PACKAGE-nss" 893NSPR_PACKAGE=mozilla-nspr 894NSS_PACKAGE=mozilla-nss 895NSPR_INCLUDE_MARKER="nspr/nspr.h" 896NSPR_LIB_MARKER="libnspr4$shrext" 897NSPR_LIBS_LIST="-lnspr4 -lplds4 -lplc4" 898NSS_INCLUDE_MARKER="nss/nss.h" 899NSS_LIB_MARKER="libnss3$shrext" 900NSS_LIBS_LIST="-lnss3 -lsmime3" 901 902XMLSEC_NO_NSS="1" 903NSPR_INCLUDE_PATH= 904NSPR_LIB_PATH= 905NSS_INCLUDE_PATH= 906NSS_LIB_PATH= 907NSS_FOUND="no" 908NSPR_FOUND="no" 909AC_ARG_WITH([nss], [AC_HELP_STRING([--with-nss@<:@=PFX@:>@], [nss location])]) 910AC_ARG_WITH([nspr], [AC_HELP_STRING([--with-nspr@<:@=PFX@:>@], [nspr location (needed for NSS)])]) 911AC_ARG_WITH([seamonkey_ver], [AC_HELP_STRING([--with-seamonkey-ver@<:@=VER@:>@], [mozilla version (alt to --with-nss, --with-nspr)])]) 912AC_ARG_WITH([mozilla_ver], [AC_HELP_STRING([--with-mozilla-ver@<:@=VER@:>@], [mozilla version (alt to --with-nss, --with-nspr)])]) 913 914dnl Priority 0: Check if library is disabled 915if test "z$with_nss" = "zno" -o "z$with_nspr" = "zno" ; then 916 NSS_FOUND="disabled" 917 NSPR_FOUND="disabled" 918fi 919 920dnl Priority 1: User specifies the path to installation 921if test "z$NSPR_FOUND" = "zno" -a "z$with_nspr" != "z" -a "z$with_nspr" != "zyes" ; then 922 AC_MSG_CHECKING(for nspr library installation in "$with_nspr" folder) 923 if test -f "$with_nspr/include/$NSPR_INCLUDE_MARKER" -a -f "$with_nspr/lib/$NSPR_LIB_MARKER" ; then 924 NSPR_INCLUDE_PATH="$with_nspr/include" 925 NSPR_LIB_PATH="$with_nspr/lib" 926 NSPR_FOUND="yes" 927 AC_MSG_RESULT([yes]) 928 else 929 AC_MSG_ERROR([not found: "$with_nspr/include/$NSPR_INCLUDE_MARKER" and/or "$with_nspr/lib/$NSPR_LIB_MARKER" files don't exist), typo?]) 930 fi 931fi 932if test "z$NSS_FOUND" = "zno" -a "z$with_nss" != "z" -a "z$with_nss" != "zyes" ; then 933 AC_MSG_CHECKING(for nss library installation in "$with_nss" folder) 934 if test -f "$with_nss/include/$NSS_INCLUDE_MARKER" -a -f "$with_nss/lib/$NSS_LIB_MARKER" ; then 935 NSS_INCLUDE_PATH="$with_nss/include" 936 NSS_LIB_PATH="$with_nss/lib" 937 NSS_FOUND="yes" 938 AC_MSG_RESULT([yes]) 939 else 940 AC_MSG_ERROR([not found: "$with_nss/include/$NSS_INCLUDE_MARKER" and/or "$with_nss/lib/$NSS_LIB_MARKER" files don't exist), typo?]) 941 fi 942fi 943 944dnl Priority 2: User sets both CFLAGS and LIBS flags 945if test "z$NSPR_FOUND" = "zno" -a "z$NSPR_CFLAGS" != "z" -a "z$NSPR_LIBS" != "z" ; then 946 NSPR_FOUND="yes" 947fi 948if test "z$NSS_FOUND" = "zno" -a "z$NSS_CFLAGS" != "z" -a "z$NSS_LIBS" != "z" ; then 949 NSS_FOUND="yes" 950fi 951 952dnl Priority 3: Guess with pkg_config 953dnl 954dnl Mozilla's NSS/NSPR are distributed under different names in different distribution, 955dnl we are going to try all options: 956dnl seamonkey-nspr and seamonkey-nss 957dnl mozilla-nspr and mozilla-nss 958dnl xulrunner-nspr and xulrunner-nss 959dnl nspr and nss 960if test "z$NSPR_FOUND" = "zno" -a "z$PKGCONFIG_FOUND" = "zyes" -a "z$with_mozilla_ver" = "z" -a "z$with_seamonkey_ver" ; then 961 if test "z$NSPR_FOUND" = "zno" ; then 962 PKG_CHECK_MODULES(NSPR, seamonkey-nspr >= $NSPR_MIN_VERSION, 963 [NSPR_FOUND=yes NSPR_PACKAGE=seamonkey-nspr], 964 [NSPR_FOUND=no]) 965 fi 966 if test "z$NSPR_FOUND" = "zno" ; then 967 PKG_CHECK_MODULES(NSPR, mozilla-nspr >= $MOZILLA_MIN_VERSION, 968 [NSPR_FOUND=yes NSPR_PACKAGE=mozilla-nspr], 969 [NSPR_FOUND=no]) 970 fi 971 if test "z$NSPR_FOUND" = "zno" ; then 972 PKG_CHECK_MODULES(NSPR, xulrunner-nspr >= $NSPR_MIN_VERSION, 973 [NSPR_FOUND=yes NSPR_PACKAGE=xulrunner-nspr], 974 [NSPR_FOUND=no]) 975 fi 976 if test "z$NSPR_FOUND" = "zno" ; then 977 PKG_CHECK_MODULES(NSPR, nspr >= $NSPR_MIN_VERSION, 978 [NSPR_FOUND=yes NSPR_PACKAGE=nspr], 979 [NSPR_FOUND=no]) 980 fi 981fi 982if test "z$NSS_FOUND" = "zno" -a "z$PKGCONFIG_FOUND" = "zyes" -a "z$with_mozilla_ver" = "z" -a "z$with_seamonkey_ver" ; then 983 if test "z$NSS_FOUND" = "zno" ; then 984 PKG_CHECK_MODULES(NSS, seamonkey-nss >= $SEAMONKEY_MIN_VERSION, 985 [NSS_FOUND=yes NSS_PACKAGE=seamonkey-nss], 986 [NSS_FOUND=no]) 987 fi 988 if test "z$NSS_FOUND" = "zno" ; then 989 PKG_CHECK_MODULES(NSS, mozilla-nss >= $MOZILLA_MIN_VERSION, 990 [NSS_FOUND=yes NSS_PACKAGE=mozilla-nss], 991 [NSS_FOUND=no]) 992 fi 993 if test "z$NSS_FOUND" = "zno" ; then 994 PKG_CHECK_MODULES(NSS, xulrunner-nss >= $NSS_MIN_VERSION, 995 [NSS_FOUND=yes NSS_PACKAGE=xulrunner-nss], 996 [NSS_FOUND=no]) 997 fi 998 if test "z$NSS_FOUND" = "zno" ; then 999 PKG_CHECK_MODULES(NSS, nss >= $NSS_MIN_VERSION, 1000 [NSS_FOUND=yes NSS_PACKAGE=nss], 1001 [NSS_FOUND=no]) 1002 fi 1003fi 1004 1005dnl Priority 4: Guess using a list of folders using mozilla/seamonkey version hints (if any) 1006if test "z$with_seamonkey_ver" != "z" ; then 1007 NSS_MOZILLA_NAME=seamonkey-$with_seamonkey_ver 1008elif test "z$with_mozilla_ver" != "z" ; then 1009 NSS_MOZILLA_NAME=mozilla-$with_mozilla_ver 1010else 1011 NSS_MOZILLA_NAME=mozilla-$MOZILLA_MIN_VERSION 1012fi 1013NSS_INCLUDE_DIR="$COMMON_INCLUDE_DIR /usr/include/mozilla /usr/local/include/mozilla /usr/include/$NSS_MOZILLA_NAME /usr/local/include/$NSS_MOZILLA_NAME" 1014NSS_LIB_DIR="$COMMON_LIB_DIR /usr/lib/$NSS_MOZILLA_NAME /usr/local/lib/$NSS_MOZILLA_NAME" 1015if test "z$NSPR_FOUND" = "zno" -a "z$ENABLE_FOLDERS_SEARCH" = "zyes" ; then 1016 AC_MSG_CHECKING(for nspr library installation in the typical folders) 1017 if test "z$NSPR_INCLUDE_PATH" = "z" ; then 1018 AX_FIND_FOLDER(NSPR_INCLUDE_PATH, $NSPR_INCLUDE_MARKER, $NSS_INCLUDE_DIR) 1019 fi 1020 if test "z$NSPR_LIB_PATH" = "z" ; then 1021 AX_FIND_FOLDER(NSPR_LIB_PATH, $NSPR_LIB_MARKER, $NSS_LIB_DIR) 1022 fi 1023 if test "z$NSPR_INCLUDE_PATH" != "z" -a "z$NSPR_LIB_PATH" != "z" ; then 1024 NSPR_FOUND=yes 1025 AC_MSG_RESULT([yes ("-I$NSPR_INCLUDE_PATH -L$NSPR_LIB_PATH")]) 1026 else 1027 AC_MSG_RESULT([not found]) 1028 fi 1029fi 1030if test "z$NSS_FOUND" = "zno" -a "z$ENABLE_FOLDERS_SEARCH" = "zyes" ; then 1031 AC_MSG_CHECKING(for nss library installation in the typical folders) 1032 if test "z$NSS_INCLUDE_PATH" = "z" ; then 1033 AX_FIND_FOLDER(NSS_INCLUDE_PATH, $NSS_INCLUDE_MARKER, $NSS_INCLUDE_DIR) 1034 fi 1035 if test "z$NSS_LIB_PATH" = "z" ; then 1036 AX_FIND_FOLDER(NSS_LIB_PATH, $NSS_LIB_MARKER, $NSS_LIB_DIR) 1037 fi 1038 if test "z$NSS_INCLUDE_PATH" != "z" -a "z$NSS_LIB_PATH" != "z" ; then 1039 NSS_FOUND=yes 1040 AC_MSG_RESULT([yes ("-I$NSS_INCLUDE_PATH -L$NSS_LIB_PATH")]) 1041 else 1042 AC_MSG_RESULT([not found]) 1043 fi 1044fi 1045 1046dnl Priority 5 (NSPR): Just try to compile/link and hope for the best 1047if test "z$NSPR_FOUND" = "zno" ; then 1048 AC_MSG_CHECKING(for nspr library installation) 1049 OLD_CPPFLAGS=$CPPFLAGS 1050 CPPFLAGS="$CPPFLAGS $NSPR_CFLAGS" 1051 OLD_LIBS=$LIBS 1052 LIBS="$LIBS $NSPR_LIBS $NSPR_LIBS_LIST" 1053 AC_LINK_IFELSE([ 1054 AC_LANG_PROGRAM([[ 1055 #include <stdio.h> 1056 #include <nspr/nspr.h> 1057 ]],[[ 1058 int main () { printf("v=%s\n", PR_GetVersion()); return(0); } 1059 ]]) 1060 ],[ 1061 NSPR_FOUND=yes 1062 NSPR_LIBS="$NSPR_LIBS $NSPR_LIBS_LIST" 1063 AC_MSG_RESULT([yes]) 1064 ],[ 1065 NSPR_FOUND=no 1066 AC_MSG_RESULT([not found]) 1067 ]) 1068 CPPFLAGS=$OLD_CPPFLAGS 1069 LIBS=$OLD_LIBS 1070fi 1071 1072dnl NSRP: Set flags if INCLUDE_PATH or LIB_PATH are set (need to do it before we try to find NSS) 1073if test "z$NSPR_FOUND" = "zyes" -a "z$NSPR_INCLUDE_PATH" != "z" ; then 1074 NSPR_CFLAGS="$NSPR_CFLAGS -I$NSPR_INCLUDE_PATH -I$NSPR_INCLUDE_PATH/nspr" 1075fi 1076if test "z$NSPR_FOUND" = "zyes" -a "z$NSPR_LIB_PATH" != "z" ; then 1077 if test "z$with_gnu_ld" = "zyes" ; then 1078 NSPR_LIBS="$NSPR_LIBS -Wl,-rpath-link -Wl,$NSPR_LIB_PATH" 1079 fi 1080 NSPR_LIBS="$NSPR_LIBS -L$NSPR_LIB_PATH/lib $NSPR_LIBS_LIST" 1081fi 1082 1083dnl Priority 5 (NSS): Just try to compile/link and hope for the best 1084if test "z$NSS_FOUND" = "zno" ; then 1085 AC_MSG_CHECKING(for nss library installation) 1086 OLD_CPPFLAGS=$CPPFLAGS 1087 CPPFLAGS="$CPPFLAGS $NSPR_CFLAGS $NSS_CFLAGS" 1088 OLD_LIBS=$LIBS 1089 LIBS="$LIBS $NSS_LIBS $NSPR_LIBS $NSS_LIBS_LIST" 1090 AC_LINK_IFELSE([ 1091 AC_LANG_PROGRAM([[ 1092 #include <stdio.h> 1093 #include <nss/nss.h> 1094 ]],[[ 1095 int main () { printf("v=%s\n", NSS_GetVersion()); return(0); } 1096 ]]) 1097 ],[ 1098 NSS_FOUND=yes 1099 NSS_LIBS="$NSS_LIBS $NSS_LIBS_LIST" 1100 AC_MSG_RESULT([yes]) 1101 ],[ 1102 NSS_FOUND=no 1103 AC_MSG_RESULT([not found]) 1104 ]) 1105 CPPFLAGS=$OLD_CPPFLAGS 1106 LIBS=$OLD_LIBS 1107fi 1108 1109dnl NSS: Set flags if INCLUDE_PATH or LIB_PATH are set 1110if test "z$NSS_FOUND" = "zyes" -a "z$NSS_INCLUDE_PATH" != "z" ; then 1111 NSS_CFLAGS="$NSS_CFLAGS -I$NSS_INCLUDE_PATH -I$NSS_INCLUDE_PATH/nss" 1112fi 1113if test "z$NSS_FOUND" = "zyes" -a "z$NSS_LIB_PATH" != "z" ; then 1114 if test "z$with_gnu_ld" = "zyes" ; then 1115 NSS_LIBS="$NSS_LIBS -Wl,-rpath-link -Wl,$NSS_LIB_PATH" 1116 fi 1117 NSS_LIBS="$NSS_LIBS -L$NSS_LIB_PATH/lib $NSS_LIBS_LIST" 1118fi 1119 1120dnl Check NSS and NSPR versions 1121AC_MSG_CHECKING(for nspr library >= $NSPR_MIN_VERSION) 1122if test "z$NSPR_FOUND" = "zyes" ; then 1123 minvers=`echo $NSPR_MIN_VERSION | awk -F. '{ printf "%d", ($1 * 100 + $2) * 100 + $3;}'` 1124 OLD_CPPFLAGS=$CPPFLAGS 1125 CPPFLAGS="$CPPFLAGS $NSPR_CFLAGS" 1126 AC_EGREP_CPP(greater-than-minvers, [ 1127 #include <prinit.h> 1128 #if ((PR_VMAJOR * 100 + PR_VMINOR) * 100 + PR_VPATCH) >= $minvers 1129 greater-than-minvers 1130 #endif 1131 ],[ 1132 NSPR_FOUND=yes 1133 ],[ 1134 NSPR_FOUND=no 1135 ]) 1136 CPPFLAGS="$OLD_CPPFLAGS" 1137fi 1138AC_MSG_RESULT([$NSPR_FOUND]) 1139 1140AC_MSG_CHECKING(for nss library >= $NSS_MIN_VERSION) 1141if test "z$NSS_FOUND" = "zyes" ; then 1142 minvers=`echo $NSS_MIN_VERSION | awk -F. '{ printf "%d", ($1 * 100 + $2) * 100 + $3;}'` 1143 OLD_CPPFLAGS=$CPPFLAGS 1144 CPPFLAGS="$CPPFLAGS $NSPR_CFLAGS $NSS_CFLAGS" 1145 AC_EGREP_CPP(greater-than-minvers, [ 1146 #include <nss.h> 1147 #if ((NSS_VMAJOR * 100 + NSS_VMINOR) * 100 + NSS_VPATCH) >= $minvers 1148 greater-than-minvers 1149 #endif 1150 ],[ 1151 NSS_FOUND=yes 1152 ],[ 1153 NSS_FOUND=no 1154 ]) 1155 CPPFLAGS="$OLD_CPPFLAGS" 1156fi 1157AC_MSG_RESULT([$NSS_FOUND]) 1158 1159dnl Check that we have found both NSS and NSPR 1160if test "z$NSPR_FOUND" = "zyes" -a "z$NSS_FOUND" = "zyes" ; then 1161 NSS_CFLAGS="$NSS_CFLAGS $NSPR_CFLAGS" 1162 NSS_LIBS="$NSS_LIBS $NSPR_LIBS" 1163elif test "z$NSPR_FOUND" != "zyes" -a "z$NSS_FOUND" = "zyes" ; then 1164 NSS_FOUND="no" 1165 AC_MSG_RESULT([NSPR library is required for NSS, ignoring NSS library we have found]) 1166fi 1167 1168dnl Finally set all the flags 1169if test "z$NSS_FOUND" = "zyes" ; then 1170 XMLSEC_NO_NSS="0" 1171 NSS_CFLAGS="$NSS_CFLAGS -DXMLSEC_CRYPTO_NSS=1" 1172 XMLSEC_CRYPTO_LIST="$XMLSEC_CRYPTO_LIST nss" 1173else 1174 XMLSEC_CRYPTO_DISABLED_LIST="$XMLSEC_CRYPTO_DISABLED_LIST nss" 1175fi 1176 1177AM_CONDITIONAL(XMLSEC_NO_NSS, test "z$XMLSEC_NO_NSS" = "z1") 1178AC_SUBST(XMLSEC_NO_NSS) 1179AC_SUBST(NSPR_PACKAGE) 1180AC_SUBST(NSS_PACKAGE) 1181AC_SUBST(NSS_CFLAGS) 1182AC_SUBST(NSS_LIBS) 1183AC_SUBST(NSS_CRYPTO_LIB) 1184AC_SUBST(NSS_MIN_VERSION) 1185AC_SUBST(NSPR_MIN_VERSION) 1186AC_SUBST(MOZILLA_MIN_VERSION) 1187 1188dnl ========================================================================== 1189dnl See if we can find GCrypt 1190dnl ========================================================================== 1191GCRYPT_MIN_VERSION="1.4.0" 1192GCRYPT_INCLUDE_DIR="$COMMON_INCLUDE_DIR /usr/local/gcrypt/include" 1193GCRYPT_LIB_DIR="$COMMON_LIB_DIR /usr/local/gcrypt/lib" 1194GCRYPT_CONFIG="libgcrypt-config" 1195GCRYPT_INCLUDE_MARKER="gcrypt.h" 1196GCRYPT_LIB_MARKER="libgcrypt$shrext" 1197GCRYPT_CRYPTO_LIB="$XMLSEC_PACKAGE-gcrypt" 1198GCRYPT_LIBS_LIST="-lgcrypt" 1199 1200XMLSEC_NO_GCRYPT="1" 1201GCRYPT_VERSION= 1202GCRYPT_INCLUDE_PATH= 1203GCRYPT_LIB_PATH= 1204GCRYPT_FOUND="no" 1205AC_ARG_WITH([gcrypt], [AC_HELP_STRING([--with-gcrypt@<:@=PFX@:>@], [gcrypt location])]) 1206 1207dnl Priority 0: Check if library is not needed 1208if test "z$with_gcrypt" = "zno" ; then 1209 GCRYPT_FOUND="disabled" 1210fi 1211 1212dnl Priority 1: User specifies the path to installation 1213if test "z$GCRYPT_FOUND" = "zno" -a "z$with_gcrypt" != "z" -a "z$with_gcrypt" != "zyes" ; then 1214 AC_MSG_CHECKING(for libgcrypt library installation in "$with_gcrypt" folder) 1215 if test "z$ENABLE_CUSTOM_CONFIGS" = "zyes" -a -f "$with_gcrypt/bin/$GCRYPT_CONFIG" ; then 1216 GCRYPT_CONFIG_PATH="$with_gcrypt/bin/$GCRYPT_CONFIG" 1217 GCRYPT_FOUND="yes" 1218 AC_MSG_RESULT([yes]) 1219 elif test -f "$with_gcrypt/include/$GCRYPT_INCLUDE_MARKER" -a -f "$with_gcrypt/lib/$GCRYPT_LIB_MARKER" ; then 1220 GCRYPT_INCLUDE_PATH="$with_gcrypt/include" 1221 GCRYPT_LIB_PATH="$with_gcrypt/lib" 1222 GCRYPT_FOUND="yes" 1223 AC_MSG_RESULT([yes]) 1224 else 1225 AC_MSG_ERROR([not found: "$with_gcrypt/bin/$GCRYPT_CONFIG" tool, or "$with_gcrypt/include/$GCRYPT_INCLUDE_MARKER" and/or "$with_gcrypt/lib/$GCRYPT_LIB_MARKER" files don't exist), typo?]) 1226 fi 1227fi 1228 1229dnl Priority 2: User sets both CFLAGS and LIBS flags 1230if test "z$GCRYPT_FOUND" = "zno" -a "z$GCRYPT_CFLAGS" != "z" -a "z$GCRYPT_LIBS" != "z" ; then 1231 GCRYPT_FOUND="yes" 1232fi 1233 1234dnl Priority 3: Guess with pkg_config 1235if test "z$GCRYPT_FOUND" = "zno" -a "z$PKGCONFIG_FOUND" = "zyes" ; then 1236 if test "z$GCRYPT_FOUND" = "zno" ; then 1237 PKG_CHECK_MODULES(GCRYPT, gcrypt >= $GCRYPT_MIN_VERSION, 1238 [GCRYPT_FOUND=yes], 1239 [GCRYPT_FOUND=no]) 1240 fi 1241 if test "z$GCRYPT_FOUND" = "zno" ; then 1242 PKG_CHECK_MODULES(GCRYPT, libgcrypt20 >= $GCRYPT_MIN_VERSION, 1243 [GCRYPT_FOUND=yes], 1244 [GCRYPT_FOUND=no]) 1245 fi 1246 if test "z$GCRYPT_FOUND" = "zno" ; then 1247 PKG_CHECK_MODULES(GCRYPT, libgcrypt11 >= $GCRYPT_MIN_VERSION, 1248 [GCRYPT_FOUND=yes], 1249 [GCRYPT_FOUND=no]) 1250 fi 1251 if test "z$GCRYPT_FOUND" = "zno" ; then 1252 PKG_CHECK_MODULES(GCRYPT, libgcrypt >= $GCRYPT_MIN_VERSION, 1253 [GCRYPT_FOUND=yes], 1254 [GCRYPT_FOUND=no]) 1255 fi 1256fi 1257 1258dnl Priority 4: Guess the config tool location 1259if test "z$GCRYPT_FOUND" = "zno" -a "z$ENABLE_CUSTOM_CONFIGS" = "zyes" ; then 1260 AC_PATH_PROG(GCRYPT_CONFIG_PATH, [$GCRYPT_CONFIG], [], [$PATH]) 1261 if test "z$GCRYPT_CONFIG_PATH" != "z" ; then 1262 GCRYPT_FOUND="yes" 1263 fi 1264fi 1265 1266dnl Priority 5: Guess using a list of folders. 1267if test "z$GCRYPT_FOUND" = "zno" -a "z$ENABLE_FOLDERS_SEARCH" = "zyes" ; then 1268 AC_MSG_CHECKING(for libgcrypt library installation in the typical folders) 1269 if test "z$GCRYPT_INCLUDE_PATH" = "z" ; then 1270 AX_FIND_FOLDER(GCRYPT_INCLUDE_PATH, $GCRYPT_INCLUDE_MARKER, $GCRYPT_INCLUDE_DIR) 1271 fi 1272 if test "z$GCRYPT_LIB_PATH" = "z" ; then 1273 AX_FIND_FOLDER(GCRYPT_LIB_PATH, $GCRYPT_LIB_MARKER, $GCRYPT_LIB_DIR) 1274 fi 1275 if test "z$GCRYPT_INCLUDE_PATH" != "z" -a "z$GCRYPT_LIB_PATH" != "z" ; then 1276 GCRYPT_FOUND="yes" 1277 AC_MSG_RESULT([yes ("-I$GCRYPT_INCLUDE_PATH -L$GCRYPT_LIB_PATH")]) 1278 else 1279 AC_MSG_RESULT([not found]) 1280 fi 1281fi 1282 1283dnl Priority 6: Just try to compile/link and hope for the best 1284if test "z$GCRYPT_FOUND" = "zno" ; then 1285 AC_MSG_CHECKING(for gcrypt library installation) 1286 OLD_CPPFLAGS=$CPPFLAGS 1287 CPPFLAGS="$CPPFLAGS $GCRYPT_CFLAGS" 1288 OLD_LIBS=$LIBS 1289 LIBS="$LIBS $GCRYPT_LIBS $GCRYPT_LIBS_LIST" 1290 AC_LINK_IFELSE([ 1291 AC_LANG_PROGRAM([[ 1292 #include <gcrypt.h> 1293 ]],[[ 1294 int main () { printf("v=%s\n", gcry_check_version("0")); return(0); } 1295 ]]) 1296 ],[ 1297 GCRYPT_FOUND=yes 1298 GCRYPT_LIBS="$GCRYPT_LIBS $GCRYPT_LIBS_LIST" 1299 AC_MSG_RESULT([yes]) 1300 ],[ 1301 GCRYPT_FOUND=no 1302 AC_MSG_RESULT([not found]) 1303 ]) 1304 CPPFLAGS=$OLD_CPPFLAGS 1305 LIBS=$OLD_LIBS 1306fi 1307 1308dnl Set CFLAGS/LIBS flags 1309if test "z$GCRYPT_FOUND" = "zyes" ; then 1310 if test "z$GCRYPT_CONFIG_PATH" != "z" -a "z$ENABLE_CUSTOM_CONFIGS" = "zyes" ; then 1311 dnl Get the values using config tool (overwrite CFLAGS/LIBS!) 1312 if test "z$GCRYPT_CFLAGS" = "z" ; then 1313 GCRYPT_CFLAGS="`$GCRYPT_CONFIG_PATH --cflags`" 1314 fi 1315 if test "z$GCRYPT_LIBS" = "z"; then 1316 GCRYPT_LIBS="`$GCRYPT_CONFIG_PATH --libs`" 1317 fi 1318 GCRYPT_CONFIG=$GCRYPT_CONFIG_PATH 1319 GCRYPT_FOUND="yes" 1320 else 1321 dnl Set flags if INCLUDE_PATH or LIB_PATH are set (do NOT overwrite CFLAGS/LIBS!) 1322 if test "z$GCRYPT_INCLUDE_PATH" != "z" ; then 1323 GCRYPT_CFLAGS="$GCRYPT_CFLAGS -I$GCRYPT_INCLUDE_PATH" 1324 fi 1325 if test "z$GCRYPT_LIB_PATH" != "z" ; then 1326 if test "z$with_gnu_ld" = "zyes" ; then 1327 GCRYPT_LIBS="$GCRYPT_LIBS -Wl,-rpath-link -Wl,$GCRYPT_LIB_PATH" 1328 fi 1329 GCRYPT_LIBS="$GCRYPT_LIBS -L$GCRYPT_LIB_PATH $GCRYPT_LIBS_LIST" 1330 fi 1331 fi 1332fi 1333 1334dnl Verify the version 1335AC_MSG_CHECKING(for libgcrypt library >= $GCRYPT_MIN_VERSION) 1336if test "z$GCRYPT_FOUND" = "zyes" ; then 1337 OLD_CPPFLAGS=$CPPFLAGS 1338 CPPFLAGS="$CPPFLAGS $GCRYPT_CFLAGS" 1339 dnl gcrypt uses hex digits for version number 1340 minvers=`echo $GCRYPT_MIN_VERSION | awk -F. '{ printf "%d", ($1 * 256 + $2) * 256 + $3;}'` 1341 AC_EGREP_CPP(greater-than-minvers, [ 1342 #include <gcrypt.h> 1343 #if GCRYPT_VERSION_NUMBER >= $minvers 1344 greater-than-minvers 1345 #endif 1346 ],[ 1347 GCRYPT_FOUND=yes 1348 ], [ 1349 GCRYPT_FOUND=no 1350 ]) 1351 CPPFLAGS=$OLD_CPPFLAGS 1352fi 1353AC_MSG_RESULT([$GCRYPT_FOUND]) 1354 1355dnl Finally set variables 1356if test "z$GCRYPT_FOUND" = "zyes" ; then 1357 XMLSEC_NO_GCRYPT="0" 1358 GCRYPT_CFLAGS="$GCRYPT_CFLAGS -DXMLSEC_CRYPTO_GCRYPT=1" 1359 XMLSEC_CRYPTO_LIST="$XMLSEC_CRYPTO_LIST gcrypt" 1360else 1361 XMLSEC_CRYPTO_DISABLED_LIST="$XMLSEC_CRYPTO_DISABLED_LIST gcrypt" 1362fi 1363 1364AM_CONDITIONAL(XMLSEC_NO_GCRYPT, test "z$XMLSEC_NO_GCRYPT" = "z1") 1365AC_SUBST(XMLSEC_NO_GCRYPT) 1366AC_SUBST(GCRYPT_CFLAGS) 1367AC_SUBST(GCRYPT_LIBS) 1368AC_SUBST(GCRYPT_CRYPTO_LIB) 1369AC_SUBST(GCRYPT_MIN_VERSION) 1370 1371dnl ========================================================================== 1372dnl See if we can find GnuTLS 1373dnl ========================================================================== 1374GNUTLS_MIN_VERSION="2.8.0" 1375GNUTLS_INCLUDE_DIR="$COMMON_INCLUDE_DIR /usr/local/gnutls/include" 1376GNUTLS_LIB_DIR="$COMMON_LIB_DIR /usr/local/gnutls/lib" 1377GNUTLS_INCLUDE_MARKER="gnutls/gnutls.h" 1378GNUTLS_LIB_MARKER="libgnutls$shrext" 1379GNUTLS_CRYPTO_LIB="$XMLSEC_PACKAGE-gnutls" 1380GNUTLS_LIBS_LIST="-lgnutls" 1381 1382XMLSEC_NO_GNUTLS="1" 1383GNUTLS_INCLUDE_PATH= 1384GNUTLS_LIB_PATH= 1385GNUTLS_FOUND="no" 1386AC_ARG_WITH([gnutls], [AC_HELP_STRING([--with-gnutls@<:@=PFX@:>@], [gnutls location])]) 1387 1388dnl Priority 0: Check if library is not needed 1389if test "z$with_gnutls" = "zno" ; then 1390 GNUTLS_FOUND="disabled" 1391fi 1392 1393dnl Priority 1: User specifies the path to installation 1394if test "z$GNUTLS_FOUND" = "zno" -a "z$with_gnutls" != "z" -a "z$with_gnutls" != "zyes" ; then 1395 AC_MSG_CHECKING(for libgnutls library installation in "$with_gnutls" folder) 1396 if test -f "$with_gnutls/include/$GNUTLS_INCLUDE_MARKER" -a -f "$with_gnutls/lib/$GNUTLS_LIB_MARKER" ; then 1397 GNUTLS_INCLUDE_PATH="$with_gnutls/include" 1398 GNUTLS_LIB_PATH="$with_gnutls/lib" 1399 GNUTLS_FOUND="yes" 1400 AC_MSG_RESULT([yes]) 1401 else 1402 AC_MSG_ERROR([not found: "$with_gnutls/bin/$GNUTLS_CONFIG" tool, or "$with_gnutls/include/$GNUTLS_INCLUDE_MARKER" and/or "$with_gnutls/lib/$GNUTLS_LIB_MARKER" files don't exist), typo?]) 1403 fi 1404fi 1405 1406dnl Priority 2: User sets both CFLAGS and LIBS flags 1407if test "z$GNUTLS_FOUND" = "zno" -a "z$GNUTLS_CFLAGS" != "z" -a "z$GNUTLS_LIBS" != "z" ; then 1408 GNUTLS_FOUND="yes" 1409fi 1410 1411dnl Priority 3: Guess with pkg_config 1412if test "z$GNUTLS_FOUND" = "zno" -a "z$PKGCONFIG_FOUND" = "zyes" ; then 1413 if test "z$GNUTLS_FOUND" = "zno" ; then 1414 PKG_CHECK_MODULES(GNUTLS, gnutls >= $GNUTLS_MIN_VERSION, 1415 [GNUTLS_FOUND=yes], 1416 [GNUTLS_FOUND=no]) 1417 fi 1418 if test "z$GNUTLS_FOUND" = "zno" ; then 1419 PKG_CHECK_MODULES(GNUTLS, libgnutls >= $GNUTLS_MIN_VERSION, 1420 [GNUTLS_FOUND=yes], 1421 [GNUTLS_FOUND=no]) 1422 fi 1423fi 1424 1425dnl Priority 4: Guess using a list of folders. 1426if test "z$GNUTLS_FOUND" = "zno" -a "z$ENABLE_FOLDERS_SEARCH" = "zyes" ; then 1427 AC_MSG_CHECKING(for libgnutls library installation in the typical folders) 1428 if test "z$GNUTLS_INCLUDE_PATH" = "z" ; then 1429 AX_FIND_FOLDER(GNUTLS_INCLUDE_PATH, $GNUTLS_INCLUDE_MARKER, $GNUTLS_INCLUDE_DIR) 1430 fi 1431 if test "z$GNUTLS_LIB_PATH" = "z" ; then 1432 AX_FIND_FOLDER(GNUTLS_LIB_PATH, $GNUTLS_LIB_MARKER, $GNUTLS_LIB_DIR) 1433 fi 1434 if test "z$GNUTLS_INCLUDE_PATH" != "z" -a "z$GNUTLS_LIB_PATH" != "z" ; then 1435 GNUTLS_FOUND="yes" 1436 AC_MSG_RESULT([yes ("-I$GNUTLS_INCLUDE_PATH -L$GNUTLS_LIB_PATH")]) 1437 else 1438 AC_MSG_RESULT([not found]) 1439 fi 1440fi 1441 1442dnl Priority 5: Just try to compile/link and hope for the best 1443if test "z$GNUTLS_FOUND" = "zno" ; then 1444 AC_MSG_CHECKING(for gnutls library installation) 1445 OLD_CPPFLAGS=$CPPFLAGS 1446 CPPFLAGS="$CPPFLAGS $GCRYPT_CFLAGS $GNUTLS_CFLAGS" 1447 OLD_LIBS=$LIBS 1448 LIBS="$LIBS $GNUTLS_LIBS $GCRYPT_LIBS $GNUTLS_LIBS_LIST" 1449 AC_LINK_IFELSE([ 1450 AC_LANG_PROGRAM([[ 1451 #include <gnutls/gnutls.h> 1452 ]],[[ 1453 int main () { gnutls_global_init(); return(0); } 1454 ]]) 1455 ],[ 1456 GNUTLS_FOUND=yes 1457 GNUTLS_LIBS="$GNUTLS_LIBS $GNUTLS_LIBS_LIST" 1458 AC_MSG_RESULT([yes]) 1459 ],[ 1460 GNUTLS_FOUND=no 1461 AC_MSG_RESULT([not found]) 1462 ]) 1463 CPPFLAGS=$OLD_CPPFLAGS 1464 LIBS=$OLD_LIBS 1465fi 1466 1467dnl Set CFLAGS/LIBS flags 1468if test "z$GNUTLS_FOUND" = "zyes" ; then 1469 dnl Set flags if INCLUDE_PATH or LIB_PATH are set (do NOT overwrite CFLAGS/LIBS!) 1470 if test "z$GNUTLS_INCLUDE_PATH" != "z" ; then 1471 GNUTLS_CFLAGS="$GNUTLS_CFLAGS -I$GNUTLS_INCLUDE_PATH" 1472 fi 1473 if test "z$GNUTLS_LIB_PATH" != "z" ; then 1474 if test "z$with_gnu_ld" = "zyes" ; then 1475 GNUTLS_LIBS="$GNUTLS_LIBS -Wl,-rpath-link -Wl,$GNUTLS_LIB_PATH" 1476 fi 1477 GNUTLS_LIBS="$GNUTLS_LIBS -L$GNUTLS_LIB_PATH $GNUTLS_LIBS_LIST" 1478 fi 1479fi 1480 1481dnl Verify the version 1482AC_MSG_CHECKING(for libgnutls library >= $GNUTLS_MIN_VERSION) 1483if test "z$GNUTLS_FOUND" = "zyes" ; then 1484 OLD_CPPFLAGS=$CPPFLAGS 1485 CPPFLAGS="$CPPFLAGS $GNUTLS_CFLAGS" 1486 dnl gnutls uses hex digits for version number 1487 minvers=`echo $GNUTLS_MIN_VERSION | awk -F. '{ printf "%d", ($1 * 256 + $2) * 256 + $3;}'` 1488 AC_EGREP_CPP(greater-than-minvers, [ 1489 #include <gnutls/gnutls.h> 1490 #if GNUTLS_VERSION_NUMBER >= $minvers 1491 greater-than-minvers 1492 #endif 1493 ],[ 1494 GNUTLS_FOUND=yes 1495 ],[ 1496 GNUTLS_FOUND=no 1497 ]) 1498 CPPFLAGS=$OLD_CPPFLAGS 1499fi 1500AC_MSG_RESULT([$GNUTLS_FOUND]) 1501 1502dnl Check that we have found gcrypt 1503if test "z$GNUTLS_FOUND" = "zyes" -a "z$GCRYPT_FOUND" != "zyes" ; then 1504 GNUTLS_FOUND="no" 1505 AC_MSG_RESULT([xmlsec-gnutls library requires xmlsec-gcrypt library which is disabled or missing, ignoring libgnutls library we have found]) 1506fi 1507 1508dnl Finally set all the flags 1509if test "z$GNUTLS_FOUND" = "zyes" ; then 1510 XMLSEC_NO_GNUTLS="0" 1511 GNUTLS_CFLAGS="$GNUTLS_CFLAGS -DXMLSEC_CRYPTO_GNUTLS=1" 1512 XMLSEC_CRYPTO_LIST="$XMLSEC_CRYPTO_LIST gnutls" 1513else 1514 XMLSEC_CRYPTO_DISABLED_LIST="$XMLSEC_CRYPTO_DISABLED_LIST gnutls" 1515fi 1516 1517AM_CONDITIONAL(XMLSEC_NO_GNUTLS, test "z$XMLSEC_NO_GNUTLS" = "z1") 1518AC_SUBST(XMLSEC_NO_GNUTLS) 1519AC_SUBST(GNUTLS_CFLAGS) 1520AC_SUBST(GNUTLS_LIBS) 1521AC_SUBST(GNUTLS_CRYPTO_LIB) 1522AC_SUBST(GNUTLS_MIN_VERSION) 1523 1524 1525dnl ========================================================================== 1526dnl See if we can find MSCrypto 1527dnl ========================================================================== 1528MSCRYPTO_CRYPTO_LIB="$XMLSEC_PACKAGE-mscrypto" 1529case $host in 1530*-w64-mingw*) 1531 MSCRYPTO_XMLSEC_DEFINES= 1532 MSCRYPTO_LIBS_LIST="-lcrypt32" 1533 ;; 1534*-*-mingw*) 1535 dnl use own def-file and header as mingw.org crypt32 1536 dnl is limited (library and header) 1537 MSCRYPTO_XMLSEC_DEFINES="-DXMLSEC_CUSTOM_CRYPT32=1" 1538 MSCRYPTO_LIBS_LIST="-Wl,$(srcdir)/mingw-crypt32.def" 1539 ;; 1540*) 1541 MSCRYPTO_XMLSEC_DEFINES= 1542 MSCRYPTO_LIBS_LIST="-lcrypt32" 1543 ;; 1544esac 1545 1546XMLSEC_NO_MSCRYPTO="1" 1547MSCRYPTO_FOUND="no" 1548AC_ARG_ENABLE([mscrypto], [AC_HELP_STRING([--enable-mscrypto], [enable mscrypto (no)])]) 1549 1550dnl Priority 0: Check if library is not needed 1551if test "z$enable_mscrypto" = "zno" ; then 1552 MSCRYPTO_FOUND="disabled" 1553fi 1554 1555dnl Priority 1: User sets both CFLAGS and LIBS flags 1556if test "z$MSCRYPTO_FOUND" = "zno" -a "z$MSCRYPTO_CFLAGS" != "z" -a "z$MSCRYPTO_LIBS" != "z" ; then 1557 MSCRYPTO_FOUND=yes 1558fi 1559 1560dnl Priority 2: Just try to compile/link and hope for the best 1561if test "z$MSCRYPTO_FOUND" = "zno" ; then 1562 AC_MSG_CHECKING(for mscrypto) 1563 OLD_CPPFLAGS=$CPPFLAGS 1564 CPPFLAGS="$CPPFLAGS $MSCRYPTO_CFLAGS" 1565 OLD_LIBS=$LIBS 1566 LIBS="$LIBS $MSCRYPTO_LIBS $MSCRYPTO_LIBS_LIST" 1567 AC_LINK_IFELSE([ 1568 AC_LANG_PROGRAM([[ 1569 #include <windows.h> 1570 #include <wincrypt.h> 1571 ]],[[ 1572 int main () { CertOpenStore(0,0,0,0,0);; return(0); } 1573 ]]) 1574 ],[ 1575 MSCRYPTO_FOUND=yes 1576 AC_MSG_RESULT([yes]) 1577 ],[ 1578 MSCRYPTO_FOUND=no 1579 AC_MSG_RESULT([not found]) 1580 ]) 1581 CPPFLAGS=$OLD_CPPFLAGS 1582 LIBS=$OLD_LIBS 1583fi 1584 1585dnl Set CFLAGS/LIBS flags, do not change CFLAGS/LIBS if both are set 1586if test "z$MSCRYPTO_FOUND" = "zyes" ; then 1587 if test "z$MSCRYPTO_CFLAGS" = "z" -o "z$MSCRYPTO_LIBS" = "z" ; then 1588 XMLSEC_DEFINES="$XMLSEC_DEFINES $MSCRYPTO_XMLSEC_DEFINES" 1589 MSCRYPTO_LIBS="$MSCRYPTO_LIBS $MSCRYPTO_LIBS_LIST" 1590 fi 1591fi 1592 1593dnl Finally set all the flags 1594if test "z$MSCRYPTO_FOUND" = "zyes" ; then 1595 XMLSEC_NO_MSCRYPTO="0" 1596 MSCRYPTO_CFLAGS="$MSCRYPTO_CFLAGS -DXMLSEC_CRYPTO_MSCRYPTO=1" 1597 XMLSEC_CRYPTO_LIST="$XMLSEC_CRYPTO_LIST mscrypto" 1598else 1599 XMLSEC_CRYPTO_DISABLED_LIST="$XMLSEC_CRYPTO_DISABLED_LIST mscrypto" 1600fi 1601 1602AM_CONDITIONAL(XMLSEC_NO_MSCRYPTO, [test "z$XMLSEC_NO_MSCRYPTO" = "z1"]) 1603AC_SUBST(XMLSEC_NO_MSCRYPTO) 1604AC_SUBST(MSCRYPTO_CFLAGS) 1605AC_SUBST(MSCRYPTO_LIBS) 1606AC_SUBST(MSCRYPTO_CRYPTO_LIB) 1607 1608 1609dnl ========================================================================== 1610dnl See if we can find MSCng 1611dnl ========================================================================== 1612MSCNG_CRYPTO_LIB="$XMLSEC_PACKAGE-mscng" 1613dnl This is tested on w64-mingw only so far. 1614MSCNG_XMLSEC_DEFINES= 1615MSCNG_LIBS_LIST="-lcrypt32 -lbcrypt -lncrypt" 1616 1617XMLSEC_NO_MSCNG="1" 1618MSCNG_FOUND="no" 1619AC_ARG_ENABLE([mscng], [AC_HELP_STRING([--enable-mscng], [enable mscng (no)])]) 1620 1621dnl Priority 0: Check if library is not needed 1622if test "z$enable_mscng" = "zno" ; then 1623 MSCNG_FOUND="disabled" 1624fi 1625 1626dnl Priority 1: User sets both CFLAGS and LIBS flags 1627if test "z$MSCNG_FOUND" = "zno" -a "z$MSCNG_CFLAGS" != "z" -a "z$MSCNG_LIBS" != "z" ; then 1628 MSCNG_FOUND=yes 1629fi 1630 1631dnl Priority 2: Just try to compile/link and hope for the best 1632if test "z$MSCNG_FOUND" = "zno" ; then 1633 AC_MSG_CHECKING(for mscng) 1634 OLD_CPPFLAGS=$CPPFLAGS 1635 CPPFLAGS="$CPPFLAGS $MSCNG_CFLAGS" 1636 OLD_LIBS=$LIBS 1637 LIBS="$LIBS $MSCNG_LIBS $MSCNG_LIBS_LIST" 1638 AC_LINK_IFELSE([ 1639 AC_LANG_PROGRAM([[ 1640 #include <windows.h> 1641 #include <wincrypt.h> 1642 ]],[[ 1643 int main () { 1644 BCRYPT_ALG_HANDLE hAlg; 1645 BCryptOpenAlgorithmProvider(&hAlg, BCRYPT_SHA256_ALGORITHM, NULL, 0); 1646 return(0); 1647 } 1648 ]]) 1649 ],[ 1650 MSCNG_FOUND=yes 1651 AC_MSG_RESULT([yes]) 1652 ],[ 1653 MSCNG_FOUND=no 1654 AC_MSG_RESULT([not found]) 1655 ]) 1656 CPPFLAGS=$OLD_CPPFLAGS 1657 LIBS=$OLD_LIBS 1658fi 1659 1660dnl Set CFLAGS/LIBS flags, do not change CFLAGS/LIBS if both are set 1661if test "z$MSCNG_FOUND" = "zyes" ; then 1662 if test "z$MSCNG_CFLAGS" = "z" -o "z$MSCNG_LIBS" = "z" ; then 1663 XMLSEC_DEFINES="$XMLSEC_DEFINES $MSCNG_XMLSEC_DEFINES" 1664 MSCNG_LIBS="$MSCNG_LIBS $MSCNG_LIBS_LIST" 1665 fi 1666fi 1667 1668dnl Finally set all the flags 1669if test "z$MSCNG_FOUND" = "zyes" ; then 1670 XMLSEC_NO_MSCNG="0" 1671 MSCNG_CFLAGS="$MSCNG_CFLAGS -DXMLSEC_CRYPTO_MSCNG=1" 1672 XMLSEC_CRYPTO_LIST="$XMLSEC_CRYPTO_LIST mscng" 1673else 1674 XMLSEC_CRYPTO_DISABLED_LIST="$XMLSEC_CRYPTO_DISABLED_LIST mscng" 1675fi 1676 1677AM_CONDITIONAL(XMLSEC_NO_MSCNG, [test "z$XMLSEC_NO_MSCNG" = "z1"]) 1678AC_SUBST(XMLSEC_NO_MSCNG) 1679AC_SUBST(MSCNG_CFLAGS) 1680AC_SUBST(MSCNG_LIBS) 1681AC_SUBST(MSCNG_CRYPTO_LIB) 1682 1683 1684dnl ========================================================================== 1685dnl Figure out the default crypt - the first crypto library wins 1686dnl ========================================================================== 1687XMLSEC_DEFAULT_CRYPTO="" 1688XMLSEC_CRYPTO_LIB="" 1689XMLSEC_CRYPTO_CFLAGS="" 1690XMLSEC_CRYPTO_LIBS="" 1691AC_MSG_CHECKING(for default crypto library) 1692AC_ARG_WITH([default_crypto], [AC_HELP_STRING([--with-default-crypto=name], [default crypto name])]) 1693 1694# check the argument 1695case "z$with_default_crypto" in 1696 'zmscrypto') 1697 if test "z$XMLSEC_NO_MSCRYPTO" != "z1" ; then 1698 XMLSEC_DEFAULT_CRYPTO="mscrypto" 1699 else 1700 AC_MSG_ERROR('$with_default_crypto' is specified as default crypto library but it is not configured or found) 1701 fi 1702 ;; 1703 'zmscng') 1704 if test "z$XMLSEC_NO_MSCNG" != "z1" ; then 1705 XMLSEC_DEFAULT_CRYPTO="mscng" 1706 else 1707 AC_MSG_ERROR('$with_default_crypto' is specified as default crypto library but it is not configured or found) 1708 fi 1709 ;; 1710 'zopenssl') 1711 if test "z$XMLSEC_NO_OPENSSL" != "z1" ; then 1712 XMLSEC_DEFAULT_CRYPTO="openssl" 1713 else 1714 AC_MSG_ERROR('$with_default_crypto' is specified as default crypto library but it is not configured or found) 1715 fi 1716 ;; 1717 'znss') 1718 if test "z$XMLSEC_NO_NSS" != "z1" ; then 1719 XMLSEC_DEFAULT_CRYPTO="nss" 1720 else 1721 AC_MSG_ERROR('$with_default_crypto' is specified as default crypto library but it is not configured or found) 1722 fi 1723 ;; 1724 'zgnutls') 1725 if test "z$XMLSEC_NO_GNUTLS" != "z1" ; then 1726 XMLSEC_DEFAULT_CRYPTO="gnutls" 1727 else 1728 AC_MSG_ERROR('$with_default_crypto' is specified as default crypto library but it is not configured or found) 1729 fi 1730 ;; 1731 'zgcrypt') 1732 if test "z$XMLSEC_NO_GCRYPT" != "z1" ; then 1733 XMLSEC_DEFAULT_CRYPTO="gcrypt" 1734 else 1735 AC_MSG_ERROR('$with_default_crypto' is specified as default crypto library but it is not configured or found) 1736 fi 1737 ;; 1738 'z') 1739 dnl The first crypto library wins 1740 if test "z$XMLSEC_NO_MSCRYPTO" != "z1" ; then 1741 XMLSEC_DEFAULT_CRYPTO="mscrypto" 1742 elif test "z$XMLSEC_NO_MSCNG" != "z1" ; then 1743 XMLSEC_DEFAULT_CRYPTO="mscng" 1744 elif test "z$XMLSEC_NO_OPENSSL" != "z1" ; then 1745 XMLSEC_DEFAULT_CRYPTO="openssl" 1746 elif test "z$XMLSEC_NO_NSS" != "z1" ; then 1747 XMLSEC_DEFAULT_CRYPTO="nss" 1748 elif test "z$XMLSEC_NO_GNUTLS" != "z1" ; then 1749 XMLSEC_DEFAULT_CRYPTO="gnutls" 1750 elif test "z$XMLSEC_NO_GCRYPT" != "z1" ; then 1751 XMLSEC_DEFAULT_CRYPTO="gcrypt" 1752 else 1753 AC_MSG_ERROR(At least one crypto library should exist for $XMLSEC_PACKAGE) 1754 fi 1755 ;; 1756 *) 1757 AC_MSG_ERROR(The value '$with_default_crypto' is not a recongnized crypto library name) 1758 ;; 1759esac 1760 1761dnl Set the flags for default crypto lib 1762case "$XMLSEC_DEFAULT_CRYPTO" in 1763 'mscrypto') 1764 XMLSEC_CRYPTO_LIB="$MSCRYPTO_CRYPTO_LIB" 1765 XMLSEC_CRYPTO_CFLAGS="$MSCRYPTO_CFLAGS" 1766 XMLSEC_CRYPTO_LIBS="$MSCRYPTO_LIBS" 1767 ;; 1768 'mscng') 1769 XMLSEC_CRYPTO_LIB="$MSCNG_CRYPTO_LIB" 1770 XMLSEC_CRYPTO_CFLAGS="$MSCNG_CFLAGS" 1771 XMLSEC_CRYPTO_LIBS="$MSCNG_LIBS" 1772 ;; 1773 'openssl') 1774 XMLSEC_CRYPTO_LIB="$OPENSSL_CRYPTO_LIB" 1775 XMLSEC_CRYPTO_CFLAGS="$OPENSSL_CFLAGS" 1776 XMLSEC_CRYPTO_LIBS="$OPENSSL_LIBS" 1777 ;; 1778 'nss') 1779 XMLSEC_CRYPTO_LIB="$NSS_CRYPTO_LIB" 1780 XMLSEC_CRYPTO_CFLAGS="$NSS_CFLAGS" 1781 XMLSEC_CRYPTO_LIBS="$NSS_LIBS" 1782 ;; 1783 'gnutls') 1784 XMLSEC_CRYPTO_LIB="$GNUTLS_CRYPTO_LIB" 1785 XMLSEC_CRYPTO_CFLAGS="$GNUTLS_CFLAGS" 1786 XMLSEC_CRYPTO_LIBS="$GNUTLS_LIBS" 1787 ;; 1788 'gcrypt') 1789 XMLSEC_CRYPTO_LIB="$GCRYPT_CRYPTO_LIB" 1790 XMLSEC_CRYPTO_CFLAGS="$GCRYPT_CFLAGS" 1791 XMLSEC_CRYPTO_LIBS="$GCRYPT_LIBS" 1792 ;; 1793 *) 1794 AC_MSG_ERROR(The value \"$XMLSEC_DEFAULT_CRYPTO\" is not a recongnized crypto library name) 1795 ;; 1796esac 1797AC_MSG_RESULT([yes ("$XMLSEC_DEFAULT_CRYPTO")]) 1798 1799dnl ========================================================================== 1800dnl Do we need to use Unicode (Windows build only) 1801dnl ========================================================================== 1802if test "z$build_windows" = "zyes" ; then 1803 AC_MSG_CHECKING(for Unicode support) 1804 AC_ARG_ENABLE([unicode], [AC_HELP_STRING([--enable-unicode], [enable Unicode support on Windows (yes)])]) 1805 if test "z$enable_unicode" = "zyes" ; then 1806 XMLSEC_DEFINES="$XMLSEC_DEFINES -DUNICODE=1" 1807 AC_MSG_RESULT([yes]) 1808 else 1809 AC_MSG_RESULT([no]) 1810 fi 1811fi 1812 1813dnl ========================================================================== 1814dnl See do we need MD5 support 1815dnl ========================================================================== 1816AC_MSG_CHECKING(for MD5 support) 1817AC_ARG_ENABLE([md5], [AC_HELP_STRING([--enable-md5], [enable MD5 support (yes)])]) 1818if test "z$enable_md5" = "zno" ; then 1819 XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_MD5=1" 1820 XMLSEC_NO_MD5="1" 1821 AC_MSG_RESULT([disabled]) 1822else 1823 XMLSEC_NO_MD5="0" 1824 AC_MSG_RESULT([yes]) 1825fi 1826AM_CONDITIONAL(XMLSEC_NO_MD5, test "z$XMLSEC_NO_MD5" = "z1") 1827AC_SUBST(XMLSEC_NO_MD5) 1828 1829dnl ========================================================================== 1830dnl See do we need RIPEMD-160 support 1831dnl ========================================================================== 1832AC_MSG_CHECKING(for RIPEMD-160 support) 1833AC_ARG_ENABLE([ripemd160], [AC_HELP_STRING([--enable-ripemd160], [enable RIPEMD-160 support (yes)])]) 1834if test "z$enable_ripemd160" = "zno" ; then 1835 XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_RIPEMD160=1" 1836 XMLSEC_NO_RIPEMD160="1" 1837 AC_MSG_RESULT([disabled]) 1838else 1839 XMLSEC_NO_RIPEMD160="0" 1840 AC_MSG_RESULT([yes]) 1841fi 1842AM_CONDITIONAL(XMLSEC_NO_RIPEMD160, test "z$XMLSEC_NO_RIPEMD160" = "z1") 1843AC_SUBST(XMLSEC_NO_RIPEMD160) 1844 1845dnl ========================================================================== 1846dnl See do we need SHA1 support 1847dnl ========================================================================== 1848AC_MSG_CHECKING(for SHA1 support) 1849AC_ARG_ENABLE([sha1], [AC_HELP_STRING([--enable-sha1], [enable SHA1 support (yes)])]) 1850if test "z$enable_sha1" = "zno" ; then 1851 XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_SHA1=1" 1852 XMLSEC_NO_SHA1="1" 1853 AC_MSG_RESULT([disabled]) 1854else 1855 XMLSEC_NO_SHA1="0" 1856 AC_MSG_RESULT([yes]) 1857fi 1858AM_CONDITIONAL(XMLSEC_NO_SHA1, test "z$XMLSEC_NO_SHA1" = "z1") 1859AC_SUBST(XMLSEC_NO_SHA1) 1860 1861dnl ========================================================================== 1862dnl See do we need SHA224 support 1863dnl ========================================================================== 1864AC_MSG_CHECKING(for SHA224 support) 1865AC_ARG_ENABLE([sha224], [AC_HELP_STRING([--enable-sha224], [enable SHA224 support (yes)])]) 1866if test "z$enable_sha224" = "zno" ; then 1867 XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_SHA224=1" 1868 XMLSEC_NO_SHA224="1" 1869 AC_MSG_RESULT([disabled]) 1870else 1871 XMLSEC_NO_SHA224="0" 1872 AC_MSG_RESULT([yes]) 1873fi 1874AM_CONDITIONAL(XMLSEC_NO_SHA224, test "z$XMLSEC_NO_SHA224" = "z1") 1875AC_SUBST(XMLSEC_NO_SHA224) 1876 1877dnl ========================================================================== 1878dnl See do we need SHA256 support 1879dnl ========================================================================== 1880AC_MSG_CHECKING(for SHA256 support) 1881AC_ARG_ENABLE([sha256], [AC_HELP_STRING([--enable-sha256], [enable SHA256 support (yes)])]) 1882if test "z$enable_sha256" = "zno" ; then 1883 XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_SHA256=1" 1884 XMLSEC_NO_SHA256="1" 1885 AC_MSG_RESULT([disabled]) 1886else 1887 XMLSEC_NO_SHA256="0" 1888 AC_MSG_RESULT([yes]) 1889fi 1890AM_CONDITIONAL(XMLSEC_NO_SHA256, test "z$XMLSEC_NO_SHA256" = "z1") 1891AC_SUBST(XMLSEC_NO_SHA256) 1892 1893dnl ========================================================================== 1894dnl See do we need SHA384 support 1895dnl ========================================================================== 1896AC_MSG_CHECKING(for SHA384 support) 1897AC_ARG_ENABLE([sha384], [AC_HELP_STRING([--enable-sha384], [enable SHA384 support (yes)])]) 1898if test "z$enable_sha384" = "zno" ; then 1899 XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_SHA384=1" 1900 XMLSEC_NO_SHA384="1" 1901 AC_MSG_RESULT([disabled]) 1902else 1903 XMLSEC_NO_SHA384="0" 1904 AC_MSG_RESULT([yes]) 1905fi 1906AM_CONDITIONAL(XMLSEC_NO_SHA384, test "z$XMLSEC_NO_SHA384" = "z1") 1907AC_SUBST(XMLSEC_NO_SHA384) 1908 1909dnl ========================================================================== 1910dnl See do we need SHA512 support 1911dnl ========================================================================== 1912AC_MSG_CHECKING(for SHA512 support) 1913AC_ARG_ENABLE([sha512], [AC_HELP_STRING([--enable-sha512], [enable SHA512 support (yes)])]) 1914if test "z$enable_sha512" = "zno" ; then 1915 XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_SHA512=1" 1916 XMLSEC_NO_SHA512="1" 1917 AC_MSG_RESULT([disabled]) 1918else 1919 XMLSEC_NO_SHA512="0" 1920 AC_MSG_RESULT([yes]) 1921fi 1922AM_CONDITIONAL(XMLSEC_NO_SHA512, test "z$XMLSEC_NO_SHA512" = "z1") 1923AC_SUBST(XMLSEC_NO_SHA512) 1924 1925 1926dnl ========================================================================== 1927dnl See do we need HMAC support 1928dnl ========================================================================== 1929AC_MSG_CHECKING(for HMAC support) 1930AC_ARG_ENABLE([hmac], [AC_HELP_STRING([--enable-hmac], [enable HMAC support (yes)])]) 1931if test "z$enable_hmac" = "zno" ; then 1932 XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_HMAC=1" 1933 XMLSEC_NO_HMAC="1" 1934 AC_MSG_RESULT([disabled]) 1935else 1936 XMLSEC_NO_HMAC="0" 1937 AC_MSG_RESULT([yes]) 1938fi 1939AM_CONDITIONAL(XMLSEC_NO_HMAC, test "z$XMLSEC_NO_HMAC" = "z1") 1940AC_SUBST(XMLSEC_NO_HMAC) 1941 1942dnl ========================================================================== 1943dnl See do we need DSA support 1944dnl ========================================================================== 1945AC_MSG_CHECKING(for DSA support) 1946AC_ARG_ENABLE([dsa], [AC_HELP_STRING([--enable-dsa], [enable DSA support (yes)])]) 1947if test "z$enable_dsa" = "zno" ; then 1948 XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_DSA=1" 1949 XMLSEC_NO_DSA="1" 1950 AC_MSG_RESULT([disabled]) 1951else 1952 XMLSEC_NO_DSA="0" 1953 AC_MSG_RESULT([yes]) 1954fi 1955AM_CONDITIONAL(XMLSEC_NO_DSA, test "z$XMLSEC_NO_DSA" = "z1") 1956AC_SUBST(XMLSEC_NO_DSA) 1957 1958dnl ========================================================================== 1959dnl See do we need RSA support 1960dnl ========================================================================== 1961AC_MSG_CHECKING(for RSA support) 1962AC_ARG_ENABLE([rsa], [AC_HELP_STRING([--enable-rsa], [enable RSA support (yes)])]) 1963if test "z$enable_rsa" = "zno" ; then 1964 XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_RSA=1" 1965 XMLSEC_NO_RSA="1" 1966 AC_MSG_RESULT([disabled]) 1967else 1968 XMLSEC_NO_RSA="0" 1969 AC_MSG_RESULT([yes]) 1970fi 1971AM_CONDITIONAL(XMLSEC_NO_RSA, test "z$XMLSEC_NO_RSA" = "z1") 1972AC_SUBST(XMLSEC_NO_RSA) 1973 1974dnl ========================================================================== 1975dnl See do we need x509 support 1976dnl ========================================================================== 1977AC_MSG_CHECKING(for x509 support) 1978AC_ARG_ENABLE([x509], [AC_HELP_STRING([--enable-x509], [enable x509 support (yes)])]) 1979if test "z$enable_x509" = "zno" ; then 1980 XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_X509=1" 1981 XMLSEC_NO_X509="1" 1982 AC_MSG_RESULT([disabled]) 1983else 1984 XMLSEC_NO_X509="0" 1985 AC_MSG_RESULT([yes]) 1986fi 1987AM_CONDITIONAL(XMLSEC_NO_X509, test "z$XMLSEC_NO_X509" = "z1") 1988AC_SUBST(XMLSEC_NO_X509) 1989 1990dnl ========================================================================== 1991dnl See do we need DES support 1992dnl ========================================================================== 1993AC_MSG_CHECKING(for DES support) 1994AC_ARG_ENABLE([des], [AC_HELP_STRING([--enable-des], [enable DES support (yes)])]) 1995if test "z$enable_des" = "zno" ; then 1996 XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_DES=1" 1997 XMLSEC_NO_DES="1" 1998 AC_MSG_RESULT([disabled]) 1999else 2000 XMLSEC_NO_DES="0" 2001 AC_MSG_RESULT([yes]) 2002fi 2003AM_CONDITIONAL(XMLSEC_NO_DES, test "z$XMLSEC_NO_DES" = "z1") 2004AC_SUBST(XMLSEC_NO_DES) 2005 2006dnl ========================================================================== 2007dnl See do we need AES support 2008dnl ========================================================================== 2009AC_MSG_CHECKING(for AES support) 2010AC_ARG_ENABLE([aes], [AC_HELP_STRING([--enable-aes], [enable AES support])]) 2011if test "z$enable_aes" = "zno" ; then 2012 XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_AES=1" 2013 XMLSEC_NO_AES="1" 2014 AC_MSG_RESULT([disabled]) 2015else 2016 XMLSEC_NO_AES="0" 2017 AC_MSG_RESULT([yes]) 2018fi 2019AM_CONDITIONAL(XMLSEC_NO_AES, test "z$XMLSEC_NO_AES" = "z1") 2020AC_SUBST(XMLSEC_NO_AES) 2021 2022dnl ========================================================================== 2023dnl See do we need GOST support 2024dnl ========================================================================== 2025AC_MSG_CHECKING(for GOST support) 2026AC_ARG_ENABLE([gost], [AC_HELP_STRING([--enable-gost], [enable GOST support (no)])]) 2027if test "z$enable_gost" != "zyes" ; then 2028 XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_GOST=1" 2029 XMLSEC_NO_GOST="1" 2030 AC_MSG_RESULT([disabled]) 2031else 2032 XMLSEC_NO_GOST="0" 2033 AC_MSG_RESULT([yes]) 2034fi 2035AM_CONDITIONAL(XMLSEC_NO_GOST, test "z$XMLSEC_NO_GOST" = "z1") 2036AC_SUBST(XMLSEC_NO_GOST) 2037 2038 2039dnl ========================================================================== 2040dnl See do we need GOST2012 support 2041dnl ========================================================================== 2042AC_MSG_CHECKING(for EXPERMIENTAL GOST2012 support) 2043AC_ARG_ENABLE([gost2012], [AC_HELP_STRING([--enable-gost2012], [enable EXPERMIENTAL GOST2012 support (no)])]) 2044if test "z$enable_gost2012" != "zyes" ; then 2045 XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_GOST2012=1" 2046 XMLSEC_NO_GOST2012="1" 2047 AC_MSG_RESULT([disabled]) 2048else 2049 XMLSEC_NO_GOST2012="0" 2050 AC_MSG_RESULT([yes]) 2051fi 2052AM_CONDITIONAL(XMLSEC_NO_GOST2012, test "z$XMLSEC_NO_GOST2012" = "z1") 2053AC_SUBST(XMLSEC_NO_GOST2012) 2054 2055 2056dnl ========================================================================== 2057dnl See do we need XMLDSig support 2058dnl ========================================================================== 2059AC_MSG_CHECKING(for XMLDSig support) 2060AC_ARG_ENABLE([xmldsig], [AC_HELP_STRING([--enable-xmldsig], [enable XMLDSig support (yes)])]) 2061if test "z$enable_xmldsig" = "zno" ; then 2062 XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_XMLDSIG=1" 2063 XMLSEC_NO_XMLDSIG="1" 2064 AC_MSG_RESULT([disabled]) 2065else 2066 XMLSEC_NO_XMLDSIG="0" 2067 AC_MSG_RESULT([yes]) 2068fi 2069AM_CONDITIONAL(XMLSEC_NO_XMLDSIG, test "z$XMLSEC_NO_XMLDSIG" = "z1") 2070AC_SUBST(XMLSEC_NO_XMLDSIG) 2071 2072dnl ========================================================================== 2073dnl See do we need XMLEnc support 2074dnl ========================================================================== 2075AC_MSG_CHECKING(for XMLEnc support) 2076AC_ARG_ENABLE([xmlenc], [AC_HELP_STRING([--enable-xmlenc], [enable XMLEnc support (yes)])]) 2077if test "z$enable_xmlenc" = "zno" ; then 2078 XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_XMLENC=1" 2079 XMLSEC_NO_XMLENC="1" 2080 AC_MSG_RESULT([disabled]) 2081else 2082 XMLSEC_NO_XMLENC="0" 2083 AC_MSG_RESULT([yes]) 2084fi 2085AM_CONDITIONAL(XMLSEC_NO_XMLENC, test "z$XMLSEC_NO_XMLENC" = "z1") 2086AC_SUBST(XMLSEC_NO_XMLENC) 2087 2088dnl ========================================================================== 2089dnl See do we need soap support (deprecated) 2090dnl ========================================================================== 2091AC_MSG_CHECKING(for soap support) 2092AC_ARG_ENABLE([soap], [AC_HELP_STRING([--enable-soap], [enable soap support (no)])]) 2093if test "z$enable_soap" = "zyes" ; then 2094 XMLSEC_ENABLE_SOAP="1" 2095 AC_MSG_RESULT([yes]) 2096else 2097 XMLSEC_ENABLE_SOAP="0" 2098 AC_MSG_RESULT([disabled]) 2099fi 2100AM_CONDITIONAL(XMLSEC_ENABLE_SOAP, test "z$XMLSEC_ENABLE_SOAP" = "z1") 2101 2102dnl ========================================================================== 2103dnl See do we need mans 2104dnl ========================================================================== 2105AC_MSG_CHECKING(for mans) 2106AC_ARG_ENABLE([mans], [AC_HELP_STRING([--enable-mans], [enable manual pages (yes)])]) 2107if test "z$enable_mans" = "zno" ; then 2108 XMLSEC_MANS="0" 2109 AC_MSG_RESULT([disabled]) 2110else 2111 XMLSEC_MANS="1" 2112 AC_MSG_RESULT([yes]) 2113fi 2114AM_CONDITIONAL(XMLSEC_MANS, test "z$XMLSEC_MANS" = "z1") 2115AC_SUBST(XMLSEC_MANS) 2116 2117dnl ========================================================================== 2118dnl See do we need docs 2119dnl ========================================================================== 2120AC_MSG_CHECKING(for docs) 2121AC_ARG_ENABLE([docs], [AC_HELP_STRING([--enable-docs], [enable documentation (yes)])]) 2122if test "z$enable_docs" = "zno" ; then 2123 XMLSEC_DOCS="0" 2124 AC_MSG_RESULT([disabled]) 2125else 2126 XMLSEC_DOCS="1" 2127 AC_MSG_RESULT([yes]) 2128fi 2129AM_CONDITIONAL(XMLSEC_DOCS, test "z$XMLSEC_DOCS" = "z1") 2130AC_SUBST(XMLSEC_DOCS) 2131 2132dnl ========================================================================== 2133dnl See if we need apps 2134dnl ========================================================================== 2135AC_MSG_CHECKING(for apps) 2136AC_ARG_ENABLE([apps], [AC_HELP_STRING([--enable-apps], [enable applications (yes)])]) 2137if test "z$enable_apps" = "zno" ; then 2138 XMLSEC_APPS="0" 2139 AC_MSG_RESULT([disabled]) 2140else 2141 XMLSEC_APPS="1" 2142 AC_MSG_RESULT([yes]) 2143fi 2144AM_CONDITIONAL(XMLSEC_APPS, test "z$XMLSEC_APPS" = "z1") 2145AC_SUBST(XMLSEC_APPS) 2146 2147dnl ========================================================================== 2148dnl Static linking (implies enable_crypto_dl="no") 2149dnl ========================================================================== 2150XMLSEC_STATIC_BINARIES="" 2151AC_MSG_CHECKING(for static linking) 2152AC_ARG_ENABLE([static_linking], [AC_HELP_STRING([--enable-static-linking], [enable static linking (no)])]) 2153if test "z$enable_static_linking" = "zyes" ; then 2154 XMLSEC_STATIC_BINARIES="-static" 2155 XMLSEC_APP_DEFINES="$XMLSEC_APP_DEFINES -DXMLSEC_STATIC=1" 2156 enable_crypto_dl="no" 2157 AC_MSG_RESULT([yes]) 2158else 2159 AC_MSG_RESULT([disabled]) 2160fi 2161AC_SUBST(XMLSEC_STATIC_BINARIES) 2162 2163dnl ========================================================================== 2164dnl check if we need dynamic loading support 2165dnl ========================================================================== 2166XMLSEC_DL_INCLUDES="" 2167XMLSEC_DL_LIBS="" 2168AC_ARG_ENABLE([crypto_dl], [AC_HELP_STRING([--enable-crypto-dl], [enable dynamic loading support for xmlsec-crypto libraries (yes)])]) 2169if test "z$enable_crypto_dl" = "zno" ; then 2170 AC_MSG_CHECKING(for xmlsec-crypto dynamic loading support) 2171 XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_CRYPTO_DYNAMIC_LOADING=1" 2172 XMLSEC_NO_CRYPTO_DYNAMIC_LOADING="1" 2173 AC_MSG_RESULT([disabled]) 2174else 2175 AC_CHECK_HEADER([ltdl.h], [ 2176 XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_DL_LIBLTDL=1" 2177 AC_CHECK_LIB( 2178 [ltdl], 2179 [lt_dlopenext], 2180 [LIBLTDL=-lltdl], 2181 [LIBLTDL=] 2182 ) 2183 ], [ 2184 LIBLTDL= 2185 ]) 2186 2187 AC_MSG_CHECKING(for xmlsec-crypto dynamic loading support) 2188 if test "z$LIBLTDL" != "z" ; then 2189 XMLSEC_DL_INCLUDES="$INCLTDL" 2190 XMLSEC_DL_LIBS="$LIBLTDL" 2191 XMLSEC_NO_CRYPTO_DYNAMIC_LOADING="0" 2192 AC_MSG_RESULT([yes]) 2193 else 2194 AC_MSG_ERROR([libltdl is required for xmlsec-crypto dynamic loading]) 2195 fi 2196fi 2197AM_CONDITIONAL(XMLSEC_NO_CRYPTO_DYNAMIC_LOADING, test "z$XMLSEC_NO_CRYPTO_DYNAMIC_LOADING" = "z1") 2198AC_SUBST(XMLSEC_NO_CRYPTO_DYNAMIC_LOADING) 2199AC_SUBST(XMLSEC_DL_INCLUDES) 2200AC_SUBST(XMLSEC_DL_LIBS) 2201 2202dnl ========================================================================== 2203dnl check if we need dynamic loading in the xmlsec apps 2204dnl ========================================================================== 2205AC_MSG_CHECKING(for xmlsec-crypto dynamic loading support in command line tool) 2206AC_ARG_ENABLE([apps_crypto_dl], [AC_HELP_STRING([--enable-apps-crypto-dl], [ enable dynamic loading support for xmlsec-crypto libraries in xmlsec command line tool (yes)])]) 2207if test "z$enable_apps_crypto_dl" = "z" ; then 2208 enable_apps_crypto_dl="$enable_crypto_dl" 2209fi 2210if test "z$enable_apps_crypto_dl" = "zno" ; then 2211 XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING="1" 2212 AC_MSG_RESULT([disabled]) 2213elif test "z$enable_crypto_dl" = "zno" ; then 2214 AC_MSG_RESULT([disabled]) 2215 AC_MSG_ERROR(xmlsec-crypto libraries dynamic loading support in xmlsec command line tool is requested but no dynamic loading in xmlsec itself is disabled) 2216else 2217 XMLSEC_APP_DEFINES="$XMLSEC_APP_DEFINES -DXMLSEC_CRYPTO_DYNAMIC_LOADING=1" 2218 XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING="0" 2219 AC_MSG_RESULT([yes]) 2220fi 2221AM_CONDITIONAL(XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING, 2222 test "z$XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING" = "z1") 2223AC_SUBST(XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING) 2224 2225dnl ========================================================================== 2226dnl Where do we want to install docs 2227dnl ========================================================================== 2228AC_MSG_CHECKING(for docs folder) 2229AC_ARG_WITH([html-dir], [AC_HELP_STRING([--with-html-dir=PATH], [path to installed docs])]) 2230if test "z$with_html_dir" != "z" ; then 2231 XMLSEC_DOCDIR="$with_html_dir" 2232elif test "z$htmldir" != "z" ; then 2233 XMLSEC_DOCDIR='$(htmldir)' 2234else 2235 XMLSEC_DOCDIR='$(datadir)/doc/xmlsec1' 2236fi 2237 2238AC_MSG_RESULT([$XMLSEC_DOCDIR]) 2239AC_SUBST(XMLSEC_DOCDIR) 2240 2241dnl ========================================================================== 2242dnl See do we need Simple Keys Manager 2243dnl ========================================================================== 2244AC_MSG_CHECKING(for Simple Keys Manager testing) 2245AC_ARG_ENABLE([skm], [AC_HELP_STRING([--enable-skm], [enable Simple Keys Manager testing (yes)])]) 2246if test "z$enable_skm" = "zno" ; then 2247 XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_SKM_TEST=1" 2248 AC_MSG_RESULT([disabled]) 2249else 2250 AC_MSG_RESULT([yes]) 2251fi 2252 2253dnl ========================================================================== 2254dnl See do we need templates tests 2255dnl ========================================================================== 2256AC_MSG_CHECKING(for templates testing) 2257AC_ARG_ENABLE([tmpl_tests], [AC_HELP_STRING([--enable-tmpl-tests], [enable templates testing in xmlsec utility (yes)])]) 2258if test "z$enable_tmpl_tests" = "zyes" ; then 2259 XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_TMPL_TEST=1" 2260 AC_MSG_RESULT([disabled]) 2261else 2262 AC_MSG_RESULT([yes]) 2263fi 2264 2265dnl ========================================================================== 2266dnl Debug 2267dnl ========================================================================== 2268AC_MSG_CHECKING(for debugging) 2269AC_ARG_ENABLE([debugging], [AC_HELP_STRING([--enable-debugging], [enable debugging compilation flags (no)])]) 2270if test "z$enable_debugging" = "zyes" ; then 2271 CFLAGS="$CFLAGS -g" 2272 AC_MSG_RESULT([yes]) 2273else 2274 AC_MSG_RESULT([disabled]) 2275fi 2276 2277dnl ========================================================================== 2278dnl Warnings as errors 2279dnl ========================================================================== 2280AC_MSG_CHECKING(for warnings as errors) 2281AC_ARG_ENABLE([werror], [AC_HELP_STRING([--enable-werror], [handle warnings as errors (no)])]) 2282if test "z$enable_werror" = "zyes" ; then 2283 CFLAGS="$CFLAGS -Werror" 2284 AC_MSG_RESULT([yes]) 2285else 2286 AC_MSG_RESULT([disabled]) 2287fi 2288 2289dnl ========================================================================== 2290dnl Profiling 2291dnl ========================================================================== 2292AC_MSG_CHECKING(for profiling) 2293AC_ARG_ENABLE([profiling], [AC_HELP_STRING([--enable-profiling], [enable profiling compilation flags (no)])]) 2294if test "z$enable_profiling" = "zyes" ; then 2295 CFLAGS="$CFLAGS -pg" 2296 AC_MSG_RESULT([yes]) 2297else 2298 AC_MSG_RESULT([disabled]) 2299fi 2300 2301dnl ========================================================================== 2302dnl Pedantic compilation 2303dnl ========================================================================== 2304AC_MSG_CHECKING(for pedantic) 2305AC_ARG_ENABLE([pedantic], [AC_HELP_STRING([--enable-pedantic], [enable pedantic compilation flags (no)])]) 2306if test "z$enable_pedantic" = "zyes" ; then 2307 dnl CFLAGS="$CFLAGS -pedantic -Wall -std=c99 -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 -Wredundant-decls" 2308 CFLAGS="$CFLAGS -O -pedantic -Wall -std=c99 -fno-inline -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 -Wredundant-decls" 2309 AC_MSG_RESULT([yes]) 2310else 2311 AC_MSG_RESULT([disabled]) 2312fi 2313 2314dnl ========================================================================== 2315dnl Final steps: xmlsec config 2316dnl ========================================================================== 2317XMLSEC_CORE_CFLAGS="$XMLSEC_DEFINES -I${includedir}/xmlsec1 $XMLSEC_DL_INCLUDES" 2318XMLSEC_CORE_LIBS="-lxmlsec1 $XMLSEC_DL_LIBS " 2319AC_SUBST(XMLSEC_CORE_CFLAGS) 2320AC_SUBST(XMLSEC_CORE_LIBS) 2321 2322dnl used in xmlsecConf.sh* 2323XMLSEC_LIBDIR="${libdir}" 2324AC_SUBST(XMLSEC_LIBDIR) 2325 2326XMLSEC_OPENSSL_CFLAGS="$XMLSEC_CORE_CFLAGS $OPENSSL_CFLAGS" 2327XMLSEC_OPENSSL_LIBS="-L${libdir} -l$OPENSSL_CRYPTO_LIB $XMLSEC_CORE_LIBS $OPENSSL_LIBS" 2328AC_SUBST(XMLSEC_OPENSSL_CFLAGS) 2329AC_SUBST(XMLSEC_OPENSSL_LIBS) 2330 2331XMLSEC_GCRYPT_CFLAGS="$XMLSEC_CORE_CFLAGS $GCRYPT_CFLAGS" 2332XMLSEC_GCRYPT_LIBS="-L${libdir} -l$GCRYPT_CRYPTO_LIB $XMLSEC_CORE_LIBS $GCRYPT_LIBS" 2333AC_SUBST(XMLSEC_GCRYPT_CFLAGS) 2334AC_SUBST(XMLSEC_GCRYPT_LIBS) 2335 2336# xmlsec-gnutls is using xmlsec-gcrypt 2337XMLSEC_GNUTLS_CFLAGS="$XMLSEC_CORE_CFLAGS $GNUTLS_CFLAGS" 2338XMLSEC_GNUTLS_LIBS="-L${libdir} -l$GNUTLS_CRYPTO_LIB -l$GCRYPT_CRYPTO_LIB $XMLSEC_CORE_LIBS $GNUTLS_LIBS" 2339AC_SUBST(XMLSEC_GNUTLS_CFLAGS) 2340AC_SUBST(XMLSEC_GNUTLS_LIBS) 2341 2342XMLSEC_NSS_CFLAGS="$XMLSEC_CORE_CFLAGS $NSS_CFLAGS" 2343XMLSEC_NSS_LIBS="-L${libdir} -l$NSS_CRYPTO_LIB $XMLSEC_CORE_LIBS $NSS_LIBS" 2344AC_SUBST(XMLSEC_NSS_CFLAGS) 2345AC_SUBST(XMLSEC_NSS_LIBS) 2346 2347dnl No we will not generate pkg-config file for mscrypto ! 2348dnl XMLSEC_MSCRYPTO_CFLAGS="$XMLSEC_CORE_CFLAGS $MSCRYPTO_CFLAGS" 2349dnl XMLSEC_MSCRYPTO_LIBS="-L${libdir} -l$MSCRYPTO_CRYPTO_LIB $XMLSEC_CORE_LIBS $MSCRYPTO_LIBS";; 2350dnl AC_SUBST(XMLSEC_MSCRYPTO_CFLAGS) 2351dnl AC_SUBST(XMLSEC_MSCRYPTO_LIBS) 2352 2353dnl No we will not generate pkg-config file for mscng. 2354dnl XMLSEC_MSCNG_CFLAGS="$XMLSEC_CORE_CFLAGS $MSCNG_CFLAGS" 2355dnl XMLSEC_MSCNG_LIBS="-L${libdir} -l$MSCNG_CRYPTO_LIB $XMLSEC_CORE_LIBS $MSCNG_LIBS";; 2356dnl AC_SUBST(XMLSEC_MSCNG_CFLAGS) 2357dnl AC_SUBST(XMLSEC_MSCNG_LIBS) 2358 2359XMLSEC_CFLAGS="$XMLSEC_CORE_CFLAGS $LIBXML_CFLAGS $LIBXSLT_CFLAGS $XMLSEC_CRYPTO_CFLAGS" 2360XMLSEC_LIBS="-L${libdir} -l$XMLSEC_CRYPTO_LIB $XMLSEC_CORE_LIBS $LIBXML_LIBS $LIBXSLT_LIBS $XMLSEC_CRYPTO_LIBS" 2361AC_SUBST(XMLSEC_CFLAGS) 2362AC_SUBST(XMLSEC_LIBS) 2363 2364AC_SUBST(XMLSEC_DEFINES) 2365AC_SUBST(XMLSEC_APP_DEFINES) 2366AC_SUBST(CFLAGS) 2367AC_SUBST(CPPFLAGS) 2368AC_SUBST(LDFLAGS) 2369AC_SUBST(XMLSEC_EXTRA_LDFLAGS) 2370AC_SUBST(XMLSEC_CRYPTO_EXTRA_LDFLAGS) 2371 2372AC_SUBST(XMLSEC_DEFAULT_CRYPTO) 2373AC_SUBST(XMLSEC_CRYPTO_LIST) 2374AC_SUBST(XMLSEC_CRYPTO_DISABLED_LIST) 2375AC_SUBST(XMLSEC_CRYPTO_LIB) 2376AC_SUBST(XMLSEC_CRYPTO_CFLAGS) 2377AC_SUBST(XMLSEC_CRYPTO_LIBS) 2378 2379XMLSEC_CRYPTO_PC_FILES_LIST="" 2380for i in $XMLSEC_CRYPTO_LIST ; do 2381 dnl skip pkg-config file for mscrypto/mscng 2382 test x$i = xmscrypto && continue 2383 test x$i = xmscng && continue 2384 XMLSEC_CRYPTO_PC_FILES_LIST="$XMLSEC_CRYPTO_PC_FILES_LIST $XMLSEC_PACKAGE-$i.pc" 2385done 2386AC_SUBST(XMLSEC_CRYPTO_PC_FILES_LIST) 2387 2388dnl ========================================================================== 2389dnl Writing result files 2390dnl ========================================================================== 2391if test "z$XMLSEC_NO_OPENSSL" != "z1" ; then 2392AC_CONFIG_FILES([include/xmlsec/openssl/Makefile src/openssl/Makefile]) 2393fi 2394 2395if test "z$XMLSEC_NO_GNUTLS" != "z1" ; then 2396AC_CONFIG_FILES([include/xmlsec/gnutls/Makefile src/gnutls/Makefile]) 2397fi 2398 2399if test "z$XMLSEC_NO_GCRYPT" != "z1" ; then 2400AC_CONFIG_FILES([include/xmlsec/gcrypt/Makefile src/gcrypt/Makefile]) 2401fi 2402 2403if test "z$XMLSEC_NO_NSS" != "z1" ; then 2404AC_CONFIG_FILES([include/xmlsec/nss/Makefile src/nss/Makefile]) 2405fi 2406 2407if test "z$XMLSEC_NO_MSCRYPTO" != "z1" ; then 2408AC_CONFIG_FILES([include/xmlsec/mscrypto/Makefile src/mscrypto/Makefile]) 2409fi 2410 2411if test "z$XMLSEC_NO_MSCNG" != "z1" ; then 2412AC_CONFIG_FILES([include/xmlsec/mscng/Makefile src/mscng/Makefile]) 2413fi 2414 2415if test "z$XMLSEC_NO_CRYPTO_DYNAMIC_LOADING" = "z1" ; then 2416(rm -f xmlsec1.pc && $LN_S xmlsec1-$XMLSEC_DEFAULT_CRYPTO.pc xmlsec1.pc) 2417else 2418AC_CONFIG_FILES([xmlsec1.pc:xmlsec.pc.in]) 2419fi 2420 2421AC_CONFIG_FILES([ 2422include/xmlsec/version.h 2423Makefile 2424include/Makefile 2425include/xmlsec/Makefile 2426src/Makefile 2427apps/Makefile 2428docs/Makefile 2429docs/api/Makefile 2430man/Makefile 2431 2432xmlsec1-openssl.pc:xmlsec-openssl.pc.in 2433xmlsec1-gnutls.pc:xmlsec-gnutls.pc.in 2434xmlsec1-gcrypt.pc:xmlsec-gcrypt.pc.in 2435xmlsec1-nss.pc:xmlsec-nss.pc.in 2436xmlsec1.spec:xmlsec.spec.in 2437]) 2438AC_CONFIG_FILES([xmlsec1Conf.sh:xmlsecConf.sh.in], [chmod +x xmlsec1Conf.sh]) 2439AC_CONFIG_FILES([xmlsec1-config:xmlsec-config.in], [chmod +x xmlsec1-config]) 2440AC_OUTPUT 2441 2442