]> git.ipfire.org Git - thirdparty/cups.git/blob - config-scripts/cups-ssl.m4
Merge changes from CUPS 1.5svn-r9198.
[thirdparty/cups.git] / config-scripts / cups-ssl.m4
1 dnl
2 dnl "$Id: cups-ssl.m4 7241 2008-01-22 22:34:52Z mike $"
3 dnl
4 dnl OpenSSL/GNUTLS stuff for CUPS.
5 dnl
6 dnl Copyright 2007-2010 by Apple Inc.
7 dnl Copyright 1997-2007 by Easy Software Products, all rights reserved.
8 dnl
9 dnl These coded instructions, statements, and computer programs are the
10 dnl property of Apple Inc. and are protected by Federal copyright
11 dnl law. Distribution and use rights are outlined in the file "LICENSE.txt"
12 dnl which should have been included with this file. If this file is
13 dnl file is missing or damaged, see the license at "http://www.cups.org/".
14 dnl
15
16 AC_ARG_ENABLE(ssl, [ --disable-ssl disable SSL/TLS support])
17 AC_ARG_ENABLE(cdsassl, [ --enable-cdsassl use CDSA for SSL/TLS support, default=first])
18 AC_ARG_ENABLE(gnutls, [ --enable-gnutls use GNU TLS for SSL/TLS support, default=second])
19 AC_ARG_ENABLE(openssl, [ --enable-openssl use OpenSSL for SSL/TLS support, default=third])
20 AC_ARG_WITH(openssl-libs, [ --with-openssl-libs set directory for OpenSSL library],
21 LDFLAGS="-L$withval $LDFLAGS"
22 DSOFLAGS="-L$withval $DSOFLAGS",)
23 AC_ARG_WITH(openssl-includes, [ --with-openssl-includes set directory for OpenSSL includes],
24 CFLAGS="-I$withval $CFLAGS"
25 CPPFLAGS="-I$withval $CPPFLAGS",)
26
27 SSLFLAGS=""
28 SSLLIBS=""
29 have_ssl=0
30
31 if test x$enable_ssl != xno; then
32 dnl Look for CDSA...
33 if test $have_ssl = 0 -a "x${enable_cdsassl}" != "xno"; then
34 if test $uname = Darwin; then
35 AC_CHECK_HEADER(Security/SecureTransport.h, [
36 have_ssl=1
37 AC_DEFINE(HAVE_SSL)
38 AC_DEFINE(HAVE_CDSASSL)
39
40 dnl Check for the various security headers...
41 AC_CHECK_HEADER(Security/SecItemPriv.h,
42 AC_DEFINE(HAVE_SECITEMPRIV_H))
43 AC_CHECK_HEADER(Security/SecPolicy.h,
44 AC_DEFINE(HAVE_SECPOLICY_H))
45 AC_CHECK_HEADER(Security/SecPolicyPriv.h,
46 AC_DEFINE(HAVE_SECPOLICYPRIV_H))
47 AC_CHECK_HEADER(Security/SecBasePriv.h,
48 AC_DEFINE(HAVE_SECBASEPRIV_H))
49 AC_CHECK_HEADER(Security/SecIdentitySearchPriv.h,
50 AC_DEFINE(HAVE_SECIDENTITYSEARCHPRIV_H))
51
52 dnl Check for SecIdentitySearchCreateWithPolicy...
53 AC_MSG_CHECKING(for SecIdentitySearchCreateWithPolicy)
54 if test $uversion -ge 80; then
55 AC_DEFINE(HAVE_SECIDENTITYSEARCHCREATEWITHPOLICY)
56 AC_MSG_RESULT(yes)
57 else
58 AC_MSG_RESULT(no)
59 fi
60
61 dnl Check for SecPolicyCreateSSL...
62 AC_MSG_CHECKING(for SecPolicyCreateSSL)
63 if test $uversion -ge 100; then
64 AC_DEFINE(HAVE_SECPOLICYCREATESSL)
65 AC_MSG_RESULT(yes)
66 else
67 AC_MSG_RESULT(no)
68 fi])
69 fi
70 fi
71
72 dnl Then look for GNU TLS...
73 if test $have_ssl = 0 -a "x${enable_gnutls}" != "xno" -a "x$PKGCONFIG" != x; then
74 AC_PATH_PROG(LIBGNUTLSCONFIG,libgnutls-config)
75 AC_PATH_PROG(LIBGCRYPTCONFIG,libgcrypt-config)
76 if $PKGCONFIG --exists gnutls; then
77 if test "x$have_pthread" = xyes; then
78 AC_MSG_WARN([The current version of GNU TLS cannot be made thread-safe.])
79 else
80 have_ssl=1
81 SSLLIBS=`$PKGCONFIG --libs gnutls`
82 SSLFLAGS=`$PKGCONFIG --cflags gnutls`
83 AC_DEFINE(HAVE_SSL)
84 AC_DEFINE(HAVE_GNUTLS)
85 fi
86 elif test "x$LIBGNUTLSCONFIG" != x; then
87 if test "x$have_pthread" = xyes; then
88 AC_MSG_WARN([The current version of GNU TLS cannot be made thread-safe.])
89 else
90 have_ssl=1
91 SSLLIBS=`$LIBGNUTLSCONFIG --libs`
92 SSLFLAGS=`$LIBGNUTLSCONFIG --cflags`
93 AC_DEFINE(HAVE_SSL)
94 AC_DEFINE(HAVE_GNUTLS)
95 fi
96 fi
97
98 if test $have_ssl = 1; then
99 if $PKGCONFIG --exists gcrypt; then
100 SSLLIBS="$SSLLIBS `$PKGCONFIG --libs gcrypt`"
101 SSLFLAGS="$SSLFLAGS `$PKGCONFIG --cflags gcrypt`"
102 elif test "x$LIBGCRYPTCONFIG" != x; then
103 SSLLIBS="$SSLLIBS `$LIBGCRYPTCONFIG --libs`"
104 SSLFLAGS="$SSLFLAGS `$LIBGCRYPTCONFIG --cflags`"
105 fi
106 fi
107 fi
108
109 dnl Check for the OpenSSL library last...
110 if test $have_ssl = 0 -a "x${enable_openssl}" != "xno"; then
111 AC_CHECK_HEADER(openssl/ssl.h,
112 dnl Save the current libraries so the crypto stuff isn't always
113 dnl included...
114 SAVELIBS="$LIBS"
115
116 dnl Some ELF systems can't resolve all the symbols in libcrypto
117 dnl if libcrypto was linked against RSAREF, and fail to link the
118 dnl test program correctly, even though a correct installation
119 dnl of OpenSSL exists. So we test the linking three times in
120 dnl case the RSAREF libraries are needed.
121
122 for libcrypto in \
123 "-lcrypto" \
124 "-lcrypto -lrsaref" \
125 "-lcrypto -lRSAglue -lrsaref"
126 do
127 AC_CHECK_LIB(ssl,SSL_new,
128 [have_ssl=1
129 SSLFLAGS="-DOPENSSL_DISABLE_OLD_DES_SUPPORT"
130 SSLLIBS="-lssl $libcrypto"
131 AC_DEFINE(HAVE_SSL)
132 AC_DEFINE(HAVE_LIBSSL)],,
133 $libcrypto)
134
135 if test "x${SSLLIBS}" != "x"; then
136 break
137 fi
138 done
139
140 LIBS="$SAVELIBS")
141 fi
142 fi
143
144 if test $have_ssl = 1; then
145 AC_MSG_RESULT([ Using SSLLIBS="$SSLLIBS"])
146 AC_MSG_RESULT([ Using SSLFLAGS="$SSLFLAGS"])
147 fi
148
149 AC_SUBST(SSLFLAGS)
150 AC_SUBST(SSLLIBS)
151
152 EXPORT_SSLLIBS="$SSLLIBS"
153 AC_SUBST(EXPORT_SSLLIBS)
154
155
156 dnl
157 dnl End of "$Id: cups-ssl.m4 7241 2008-01-22 22:34:52Z mike $".
158 dnl