]> git.ipfire.org Git - thirdparty/cups.git/blob - config-scripts/cups-ssl.m4
d9d8581092ceaebed4930f1c432de8e6e4af79ca
[thirdparty/cups.git] / config-scripts / cups-ssl.m4
1 dnl
2 dnl TLS stuff for CUPS.
3 dnl
4 dnl Copyright 2007-2015 by Apple Inc.
5 dnl Copyright 1997-2007 by Easy Software Products, all rights reserved.
6 dnl
7 dnl These coded instructions, statements, and computer programs are the
8 dnl property of Apple Inc. and are protected by Federal copyright
9 dnl law. Distribution and use rights are outlined in the file "LICENSE.txt"
10 dnl which should have been included with this file. If this file is
11 dnl file is missing or damaged, see the license at "http://www.cups.org/".
12 dnl
13
14 AC_ARG_ENABLE(ssl, [ --disable-ssl disable SSL/TLS support])
15 AC_ARG_ENABLE(cdsassl, [ --enable-cdsassl use CDSA for SSL/TLS support, default=first])
16 AC_ARG_ENABLE(gnutls, [ --enable-gnutls use GNU TLS for SSL/TLS support, default=second])
17
18 SSLFLAGS=""
19 SSLLIBS=""
20 have_ssl=0
21 CUPS_SERVERKEYCHAIN=""
22
23 if test x$enable_ssl != xno; then
24 dnl Look for CDSA...
25 if test $have_ssl = 0 -a "x$enable_cdsassl" != "xno"; then
26 if test $uname = Darwin; then
27 AC_CHECK_HEADER(Security/SecureTransport.h, [
28 have_ssl=1
29 AC_DEFINE(HAVE_SSL)
30 AC_DEFINE(HAVE_CDSASSL)
31 CUPS_SERVERKEYCHAIN="/Library/Keychains/System.keychain"
32
33 dnl Check for the various security headers...
34 AC_CHECK_HEADER(Security/SecureTransportPriv.h,
35 AC_DEFINE(HAVE_SECURETRANSPORTPRIV_H))
36 AC_CHECK_HEADER(Security/SecCertificate.h,
37 AC_DEFINE(HAVE_SECCERTIFICATE_H))
38 AC_CHECK_HEADER(Security/SecItem.h,
39 AC_DEFINE(HAVE_SECITEM_H))
40 AC_CHECK_HEADER(Security/SecItemPriv.h,
41 AC_DEFINE(HAVE_SECITEMPRIV_H),,
42 [#include <Security/SecItem.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 AC_DEFINE(HAVE_CSSMERRORSTRING)
53 AC_DEFINE(HAVE_SECKEYCHAINOPEN)])
54
55 if test $uversion -ge 150; then
56 AC_DEFINE(HAVE_SSLSETENABLEDCIPHERS)
57 fi
58 fi
59 fi
60
61 dnl Then look for GNU TLS...
62 if test $have_ssl = 0 -a "x$enable_gnutls" != "xno" -a "x$PKGCONFIG" != x; then
63 AC_PATH_TOOL(LIBGNUTLSCONFIG,libgnutls-config)
64 AC_PATH_TOOL(LIBGCRYPTCONFIG,libgcrypt-config)
65 if $PKGCONFIG --exists gnutls; then
66 have_ssl=1
67 SSLLIBS=`$PKGCONFIG --libs gnutls`
68 SSLFLAGS=`$PKGCONFIG --cflags gnutls`
69 AC_DEFINE(HAVE_SSL)
70 AC_DEFINE(HAVE_GNUTLS)
71 elif test "x$LIBGNUTLSCONFIG" != x; then
72 have_ssl=1
73 SSLLIBS=`$LIBGNUTLSCONFIG --libs`
74 SSLFLAGS=`$LIBGNUTLSCONFIG --cflags`
75 AC_DEFINE(HAVE_SSL)
76 AC_DEFINE(HAVE_GNUTLS)
77 fi
78
79 if test $have_ssl = 1; then
80 CUPS_SERVERKEYCHAIN="ssl"
81
82 SAVELIBS="$LIBS"
83 LIBS="$LIBS $SSLLIBS"
84 AC_CHECK_FUNC(gnutls_transport_set_pull_timeout_function, AC_DEFINE(HAVE_GNUTLS_TRANSPORT_SET_PULL_TIMEOUT_FUNCTION))
85 AC_CHECK_FUNC(gnutls_priority_set_direct, AC_DEFINE(HAVE_GNUTLS_PRIORITY_SET_DIRECT))
86 LIBS="$SAVELIBS"
87 fi
88 fi
89 fi
90
91 IPPALIASES="http"
92 if test $have_ssl = 1; then
93 AC_MSG_RESULT([ Using SSLLIBS="$SSLLIBS"])
94 AC_MSG_RESULT([ Using SSLFLAGS="$SSLFLAGS"])
95 IPPALIASES="http https ipps"
96 elif test x$enable_cdsa = xyes -o x$enable_gnutls = xyes; then
97 AC_MSG_ERROR([Unable to enable SSL support.])
98 fi
99
100 AC_SUBST(CUPS_SERVERKEYCHAIN)
101 AC_SUBST(IPPALIASES)
102 AC_SUBST(SSLFLAGS)
103 AC_SUBST(SSLLIBS)
104
105 EXPORT_SSLLIBS="$SSLLIBS"
106 AC_SUBST(EXPORT_SSLLIBS)