]> git.ipfire.org Git - thirdparty/cups.git/blob - config-scripts/cups-ssl.m4
Merge changes from CUPS 1.5svn-r9491.
[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-2011 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/SecCertificate.h,
42 AC_DEFINE(HAVE_SECCERTIFICATE_H))
43 AC_CHECK_HEADER(Security/SecItem.h,
44 AC_DEFINE(HAVE_SECITEM_H))
45 AC_CHECK_HEADER(Security/SecItemPriv.h,
46 AC_DEFINE(HAVE_SECITEMPRIV_H))
47 AC_CHECK_HEADER(Security/SecPolicy.h,
48 AC_DEFINE(HAVE_SECPOLICY_H))
49 AC_CHECK_HEADER(Security/SecPolicyPriv.h,
50 AC_DEFINE(HAVE_SECPOLICYPRIV_H))
51 AC_CHECK_HEADER(Security/SecBasePriv.h,
52 AC_DEFINE(HAVE_SECBASEPRIV_H))
53 AC_CHECK_HEADER(Security/SecIdentitySearchPriv.h,
54 AC_DEFINE(HAVE_SECIDENTITYSEARCHPRIV_H))
55
56 dnl Check for SecIdentitySearchCreateWithPolicy...
57 AC_MSG_CHECKING(for SecIdentitySearchCreateWithPolicy)
58 if test $uversion -ge 80; then
59 AC_DEFINE(HAVE_SECIDENTITYSEARCHCREATEWITHPOLICY)
60 AC_MSG_RESULT(yes)
61 else
62 AC_MSG_RESULT(no)
63 fi
64
65 dnl Check for SecPolicyCreateSSL...
66 AC_MSG_CHECKING(for SecPolicyCreateSSL)
67 if test $uversion -ge 110; then
68 AC_DEFINE(HAVE_SECPOLICYCREATESSL)
69 AC_MSG_RESULT(yes)
70 else
71 AC_MSG_RESULT(no)
72 fi])
73
74 AC_DEFINE(HAVE_CSSMERRORSTRING)
75 fi
76 fi
77
78 dnl Then look for GNU TLS...
79 if test $have_ssl = 0 -a "x$enable_gnutls" != "xno" -a "x$PKGCONFIG" != x; then
80 AC_PATH_PROG(LIBGNUTLSCONFIG,libgnutls-config)
81 AC_PATH_PROG(LIBGCRYPTCONFIG,libgcrypt-config)
82 if $PKGCONFIG --exists gnutls; then
83 if test "x$have_pthread" = xyes; then
84 AC_MSG_WARN([The current version of GNU TLS cannot be made thread-safe.])
85 else
86 have_ssl=1
87 SSLLIBS=`$PKGCONFIG --libs gnutls`
88 SSLFLAGS=`$PKGCONFIG --cflags gnutls`
89 AC_DEFINE(HAVE_SSL)
90 AC_DEFINE(HAVE_GNUTLS)
91 fi
92 elif test "x$LIBGNUTLSCONFIG" != x; then
93 if test "x$have_pthread" = xyes; then
94 AC_MSG_WARN([The current version of GNU TLS cannot be made thread-safe.])
95 else
96 have_ssl=1
97 SSLLIBS=`$LIBGNUTLSCONFIG --libs`
98 SSLFLAGS=`$LIBGNUTLSCONFIG --cflags`
99 AC_DEFINE(HAVE_SSL)
100 AC_DEFINE(HAVE_GNUTLS)
101 fi
102 fi
103
104 if test $have_ssl = 1; then
105 if $PKGCONFIG --exists gcrypt; then
106 SSLLIBS="$SSLLIBS `$PKGCONFIG --libs gcrypt`"
107 SSLFLAGS="$SSLFLAGS `$PKGCONFIG --cflags gcrypt`"
108 elif test "x$LIBGCRYPTCONFIG" != x; then
109 SSLLIBS="$SSLLIBS `$LIBGCRYPTCONFIG --libs`"
110 SSLFLAGS="$SSLFLAGS `$LIBGCRYPTCONFIG --cflags`"
111 fi
112 fi
113 fi
114
115 dnl Check for the OpenSSL library last...
116 if test $have_ssl = 0 -a "x$enable_openssl" != "xno"; then
117 AC_CHECK_HEADER(openssl/ssl.h,
118 dnl Save the current libraries so the crypto stuff isn't always
119 dnl included...
120 SAVELIBS="$LIBS"
121
122 dnl Some ELF systems can't resolve all the symbols in libcrypto
123 dnl if libcrypto was linked against RSAREF, and fail to link the
124 dnl test program correctly, even though a correct installation
125 dnl of OpenSSL exists. So we test the linking three times in
126 dnl case the RSAREF libraries are needed.
127
128 for libcrypto in \
129 "-lcrypto" \
130 "-lcrypto -lrsaref" \
131 "-lcrypto -lRSAglue -lrsaref"
132 do
133 AC_CHECK_LIB(ssl,SSL_new,
134 [have_ssl=1
135 SSLFLAGS="-DOPENSSL_DISABLE_OLD_DES_SUPPORT"
136 SSLLIBS="-lssl $libcrypto"
137 AC_DEFINE(HAVE_SSL)
138 AC_DEFINE(HAVE_LIBSSL)],,
139 $libcrypto)
140
141 if test "x${SSLLIBS}" != "x"; then
142 break
143 fi
144 done
145
146 LIBS="$SAVELIBS")
147 fi
148 fi
149
150 if test $have_ssl = 1; then
151 AC_MSG_RESULT([ Using SSLLIBS="$SSLLIBS"])
152 AC_MSG_RESULT([ Using SSLFLAGS="$SSLFLAGS"])
153 elif test x$enable_cdsa = xyes -o x$enable_gnutls = xyes -o x$enable_openssl = xyes; then
154 AC_MSG_ERROR([Unable to enable SSL support.])
155 fi
156
157 AC_SUBST(SSLFLAGS)
158 AC_SUBST(SSLLIBS)
159
160 EXPORT_SSLLIBS="$SSLLIBS"
161 AC_SUBST(EXPORT_SSLLIBS)
162
163
164 dnl
165 dnl End of "$Id: cups-ssl.m4 7241 2008-01-22 22:34:52Z mike $".
166 dnl