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