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