1 # Process this file with autoconf to produce a configure script.
2 # Copyright (C) 2002, 2003 Simon Josefsson.
4 # This file is part of Shishi.
6 # Shishi is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 2, or (at your option)
11 # Shishi is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 # GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License
17 # along with Shishi; see the file COPYING. If not, write to
18 # the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 # Boston, MA 02111-1307, USA.
22 AC_INIT(shishi, 0.0.1, bug-shishi@josefsson.org)
24 # Interfaces removed: CURRENT++, AGE=0, REVISION=0
25 # Interfaces added: CURRENT++, AGE++, REVISION=0
26 # No interfaces changed: REVISION++
34 AM_INIT_AUTOMAKE(gnits)
35 AM_CONFIG_HEADER(config.h)
37 # Checks for header files.
41 AC_CHECK_HEADERS([sys/types.h])
42 AC_CHECK_HEADERS([stdlib.h memory.h string.h strings.h sys/socket.h unistd.h])
43 AC_CHECK_HEADERS(getopt.h unistd.h strings.h netdb.h time.h sys/poll.h \
44 sys/time.h sys/select.h sys/socket.h sys/stat.h stdint.h termios.h \
45 signal.h pwd.h errno.h syslog.h locale.h arpa/nameser.h \
46 netinet/in.h netinet/in6.h arpa/inet.h inttypes.h resolv.h fcntl.h)
48 # Checks for programs.
50 AM_GNU_GETTEXT(external)
51 AM_GNU_GETTEXT_VERSION(0.12.1)
52 AM_MISSING_PROG(PERL, perl, $missing_dir)
53 AM_MISSING_PROG(HELP2MAN, help2man, $missing_dir)
54 AM_MISSING_PROG(TEXI2PDF, texi2pdf, $missing_dir)
55 AM_MISSING_PROG(DOCBOOK2TXT, docbook2txt, $missing_dir)
56 AM_MISSING_PROG(DOCBOOK2HTML, docbook2html, $missing_dir)
57 AM_MISSING_PROG(DOCBOOK2PS, docbook2ps, $missing_dir)
58 AM_MISSING_PROG(DOCBOOK2PDF, docbook2pdf, $missing_dir)
59 AM_MISSING_PROG(ASN1PARSER, asn1Parser, $missing_dir)
62 # Checks for typedefs, structures, and compiler characteristics.
68 AX_CREATE_STDINT_H(lib/shishi-int.h)
69 AC_CHECK_DECLS(h_errno)
70 AC_CHECK_TYPE([socklen_t],, [AC_DEFINE([socklen_t], [size_t],
71 [Define to `size_t' if `socklen_t' is missing.])], [
72 #ifdef HAVE_SYS_TYPES_H
73 #include <sys/types.h>
75 #ifdef HAVE_SYS_SOCKET_H
76 #include <sys/socket.h>
83 AC_CHECK_SIZEOF(unsigned long long, 8)
84 AC_CHECK_SIZEOF(unsigned long int, 4)
85 AC_CHECK_SIZEOF(unsigned int, 4)
86 AC_CHECK_SIZEOF(unsigned short int, 2)
87 AC_CHECK_SIZEOF(unsigned char, 1)
91 AC_HELP_STRING([--disable-pam], [Don't use PAM even if available]))
92 if test "$enable_pam" != "no"; then
93 AC_CHECK_HEADERS(security/pam_appl.h)
94 AC_CHECK_HEADERS(security/pam_modules.h, [], [],
96 #if HAVE_SECURITY_PAM_APPL_H
97 #include <security/pam_appl.h>
100 AC_CHECK_HEADERS(security/_pam_macros.h)
101 enable_pam=$ac_cv_header_security_pam_modules_h
103 if test "$enable_pam" != "no"; then
104 PAM_SHISHI=pam_shishi
106 AC_MSG_WARN([[The Shishi PAM module will not be built.]])
109 AC_MSG_CHECKING([if PAM should be used])
110 AC_MSG_RESULT($enable_pam)
114 AC_HELP_STRING([--disable-ipv6], [Don't use IPv6 even if available]))
115 if test "$enable_ipv6" != "no"; then
117 AC_CHECK_DECLS([AF_INET6, IN6ADDR_ANY_INIT],,enable_ipv6=no,[
118 #ifdef HAVE_SYS_TYPES_H
119 #include <sys/types.h>
121 #ifdef HAVE_SYS_SOCKET_H
122 #include <sys/socket.h>
124 #ifdef HAVE_NETINET_IN_H
125 #include <netinet/in.h>
127 #ifdef HAVE_NETINET_IN6_H
128 #include <netinet/in6.h>
131 AC_CHECK_TYPE(struct sockaddr_in6,,enable_ipv6=no,[
132 #ifdef HAVE_SYS_TYPES_H
133 #include <sys/types.h>
135 #ifdef HAVE_SYS_SOCKET_H
136 #include <sys/socket.h>
138 #ifdef HAVE_NETINET_IN_H
139 #include <netinet/in.h>
141 #ifdef HAVE_NETINET_IN6_H
142 #include <netinet/in6.h>
146 if test "$enable_ipv6" != "no"; then
147 AC_DEFINE(WITH_IPV6, 1, [Define to 1 if you want IPv6.])
149 AC_MSG_WARN([[IPv6 support is disabled.]])
151 AC_MSG_CHECKING([if IPv6 should be used])
152 AC_MSG_RESULT($enable_ipv6)
155 #AC_ARG_WITH(system-gdbm,
156 # AC_HELP_STRING([--without-system-gdbm], [Don't use the system's gdbm]))
157 #if test "$with_system_gdbm" != "no" ; then
158 # AC_CHECK_LIB(gdbm, gdbm_open,,with_system_gdbm=no)
161 #if test "$with_system_gdbm" = "no" ; then
162 # LIBGDBM="\$(top_builddir)/gdbm/libgdbm.a"
163 # CFLAGS="$CFLAGS -I\$(top_srcdir)/gdbm"
170 AC_ARG_WITH(stringprep,
171 AC_HELP_STRING([--without-stringprep],
172 [don't use libidn even if available]))
173 if test "$with_stringprep" != "no" ; then
174 PKG_CHECK_MODULES(LIBIDN, libidn >= 0.1.0,, with_stringprep=no)
176 if test "$with_stringprep" != "no"; then
177 AC_DEFINE(WITH_STRINGPREP, 1, [Define to 1 if you want to use libidn.])
179 AC_MSG_WARN([[String processing disabled due to no libidn.]])
183 AC_ARG_WITH(system-asn1,
184 AC_HELP_STRING([--with-system-asn1], [Use the system's libtasn1]),
185 system_asn1=$withval, system_asn1=no)
186 if test "$system_asn1" = "yes"; then
187 AC_CHECK_LIB(tasn1, asn1_read_tag, :,
189 AC_MSG_WARN([Libtasn1 0.2.x not found. Using included one.]))
191 AC_MSG_CHECKING([whether to use the system's libtasn1])
192 AC_MSG_RESULT($system_asn1)
193 if test "$system_asn1" = "yes"; then
194 LIBTASN1_LIBS=-ltasn1
197 LIBTASN1_LIBS="-L../asn1 -lminitasn1"
200 AC_SUBST(LIBTASN1_LIBS)
202 # Check for libgcrypt
203 AC_ARG_WITH(libgcrypt,
204 AC_HELP_STRING([--with-libgcrypt], [use libgcrypt for low-level crypto]),
205 libgcrypt=$withval, libgcrypt=no)
206 if test "$libgcrypt" != "no" ; then
207 AM_PATH_LIBGCRYPT(1.1.42, :, [
209 AC_MSG_WARN([Libgcrypt >= 1.1.42 not found.])
212 AC_MSG_CHECKING([whether to use libgcrypt])
213 AC_MSG_RESULT($libgcrypt)
214 if test "$libgcrypt" != "no" ; then
215 AC_DEFINE(USE_GCRYPT, 1, [Define to 1 if you want to use libgcrypt.])
218 CRYPTO_CFLAGS="-I\$(top_srcdir)/crypto"
219 CRYPTO_LIBS="-L../crypto -lnettle"
222 AC_SUBST(CRYPTO_CFLAGS)
223 AC_SUBST(CRYPTO_LIBS)
225 # Check for resolver.
226 AC_CHECK_LIB(resolv, res_query,, AC_MSG_WARN([[no libresolv, SRV RRs not used]]))
228 # For gnulib stuff in gl/.
247 jm_FUNC_GLIBC_UNLOCKED_IO
252 # Checks for library functions.
254 AC_CHECK_FUNCS(signal select ngettext gethostbyname)
257 AC_ARG_WITH(html-dir, [ --with-html-dir=PATH path to installed docs ])
258 if test "x$with_html_dir" = "x" ; then
259 HTML_DIR='${datadir}/gtk-doc/html'
261 HTML_DIR=$with_html_dir
264 AC_CHECK_PROG(GTKDOC, gtkdoc-mkdb, true, false)
265 gtk_doc_min_version=0.6
267 gtk_doc_version=`gtkdoc-mkdb --version`
268 AC_MSG_CHECKING([gtk-doc version ($gtk_doc_version) >= $gtk_doc_min_version])
270 exit (("$gtk_doc_version" =~ /^[[0-9]]+\.[[0-9]]+$/) &&
271 ("$gtk_doc_version" >= "$gtk_doc_min_version") ? 0 : 1);
280 # Let people disable the gtk-doc stuff.
281 AC_ARG_ENABLE(gtk-doc, [ --enable-gtk-doc Use gtk-doc to build documentation [default=auto]], enable_gtk_doc="$enableval", enable_gtk_doc=auto)
282 if test x$enable_gtk_doc = xauto ; then
283 if test x$GTKDOC = xtrue ; then
289 AM_CONDITIONAL(ENABLE_GTK_DOC, test x$enable_gtk_doc = xyes)
291 AC_CONFIG_FILES(Makefile po/Makefile.in m4/Makefile \
292 asn1/Makefile crypto/Makefile \
293 lib/Makefile lib/shishi.h src/Makefile tests/Makefile doc/Makefile \
294 doc/reference/Makefile extra/Makefile extra/pam_shishi/Makefile \
295 gl/Makefile gl/m4/Makefile shishi.pc shishi.conf shishi.skel)