]> git.ipfire.org Git - thirdparty/cups.git/blob - config-scripts/cups-ssl.m4
Make sure we don't use functions that are not available.
[thirdparty/cups.git] / config-scripts / cups-ssl.m4
1 dnl
2 dnl "$Id$"
3 dnl
4 dnl TLS stuff for CUPS.
5 dnl
6 dnl Copyright 2007-2013 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
20 SSLFLAGS=""
21 SSLLIBS=""
22 have_ssl=0
23 CUPS_SERVERCERT=""
24 CUPS_SERVERKEY=""
25
26 if test x$enable_ssl != xno; then
27 dnl Look for CDSA...
28 if test $have_ssl = 0 -a "x$enable_cdsassl" != "xno"; then
29 if test $uname = Darwin; then
30 AC_CHECK_HEADER(Security/SecureTransport.h, [
31 have_ssl=1
32 AC_DEFINE(HAVE_SSL)
33 AC_DEFINE(HAVE_CDSASSL)
34 CUPS_SERVERCERT="/Library/Keychains/System.keychain"
35
36 dnl Check for the various security headers...
37 AC_CHECK_HEADER(Security/SecureTransportPriv.h,
38 AC_DEFINE(HAVE_SECURETRANSPORTPRIV_H))
39 AC_CHECK_HEADER(Security/SecCertificate.h,
40 AC_DEFINE(HAVE_SECCERTIFICATE_H))
41 AC_CHECK_HEADER(Security/SecItem.h,
42 AC_DEFINE(HAVE_SECITEM_H))
43 AC_CHECK_HEADER(Security/SecItemPriv.h,
44 AC_DEFINE(HAVE_SECITEMPRIV_H),,
45 [#include <Security/SecItem.h>])
46 AC_CHECK_HEADER(Security/SecPolicy.h,
47 AC_DEFINE(HAVE_SECPOLICY_H))
48 AC_CHECK_HEADER(Security/SecPolicyPriv.h,
49 AC_DEFINE(HAVE_SECPOLICYPRIV_H))
50 AC_CHECK_HEADER(Security/SecBasePriv.h,
51 AC_DEFINE(HAVE_SECBASEPRIV_H))
52 AC_CHECK_HEADER(Security/SecIdentitySearchPriv.h,
53 AC_DEFINE(HAVE_SECIDENTITYSEARCHPRIV_H))
54
55 AC_DEFINE(HAVE_CSSMERRORSTRING)
56 AC_DEFINE(HAVE_SECKEYCHAINOPEN)])
57 fi
58 fi
59
60 dnl Then look for GNU TLS...
61 if test $have_ssl = 0 -a "x$enable_gnutls" != "xno" -a "x$PKGCONFIG" != x; then
62 AC_PATH_PROG(LIBGNUTLSCONFIG,libgnutls-config)
63 AC_PATH_PROG(LIBGCRYPTCONFIG,libgcrypt-config)
64 if $PKGCONFIG --exists gnutls; then
65 have_ssl=1
66 SSLLIBS=`$PKGCONFIG --libs gnutls`
67 SSLFLAGS=`$PKGCONFIG --cflags gnutls`
68 AC_DEFINE(HAVE_SSL)
69 AC_DEFINE(HAVE_GNUTLS)
70 elif test "x$LIBGNUTLSCONFIG" != x; then
71 have_ssl=1
72 SSLLIBS=`$LIBGNUTLSCONFIG --libs`
73 SSLFLAGS=`$LIBGNUTLSCONFIG --cflags`
74 AC_DEFINE(HAVE_SSL)
75 AC_DEFINE(HAVE_GNUTLS)
76 fi
77
78 if test $have_ssl = 1; then
79 CUPS_SERVERCERT="ssl/server.crt"
80 CUPS_SERVERKEY="ssl/server.key"
81
82 if $PKGCONFIG --exists gcrypt; then
83 SSLLIBS="$SSLLIBS `$PKGCONFIG --libs gcrypt`"
84 SSLFLAGS="$SSLFLAGS `$PKGCONFIG --cflags gcrypt`"
85 elif test "x$LIBGCRYPTCONFIG" != x; then
86 SSLLIBS="$SSLLIBS `$LIBGCRYPTCONFIG --libs`"
87 SSLFLAGS="$SSLFLAGS `$LIBGCRYPTCONFIG --cflags`"
88 fi
89 fi
90 fi
91 fi
92
93 IPPALIASES="http"
94 if test $have_ssl = 1; then
95 AC_MSG_RESULT([ Using SSLLIBS="$SSLLIBS"])
96 AC_MSG_RESULT([ Using SSLFLAGS="$SSLFLAGS"])
97 IPPALIASES="http https ipps"
98 elif test x$enable_cdsa = xyes -o x$enable_gnutls = xyes; then
99 AC_MSG_ERROR([Unable to enable SSL support.])
100 fi
101
102 AC_SUBST(CUPS_SERVERCERT)
103 AC_SUBST(CUPS_SERVERKEY)
104 AC_SUBST(IPPALIASES)
105 AC_SUBST(SSLFLAGS)
106 AC_SUBST(SSLLIBS)
107
108 EXPORT_SSLLIBS="$SSLLIBS"
109 AC_SUBST(EXPORT_SSLLIBS)
110
111 dnl
112 dnl End of "$Id$".
113 dnl