~ubuntu-branches/ubuntu/lucid/wget/lucid-security

« back to all changes in this revision

Viewing changes to configure.in

  • Committer: Bazaar Package Importer
  • Author(s): Marc Deslauriers
  • Date: 2009-12-12 08:15:59 UTC
  • mfrom: (2.1.5 squeeze)
  • Revision ID: james.westby@ubuntu.com-20091212081559-mvccl4kzdqb138y3
Tags: 1.12-1.1ubuntu1
* Merge from debian testing, remaining changes:
  - Add wget-udeb to ship wget.gnu as alternative to busybox wget
    implementation.
* Keep build dependencies in main:
  - debian/control: remove info2man build-dep
  - debian/patches/00list: disable wget-infopod_generated_manpage.dpatch

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
dnl Template file for GNU Autoconf
2
 
dnl Copyright (C) 1995, 1996, 1997, 2001, 2007,
3
 
dnl 2008 Free Software Foundation, Inc.
4
 
 
5
 
dnl This program is free software; you can redistribute it and/or modify
6
 
dnl it under the terms of the GNU General Public License as published by
7
 
dnl the Free Software Foundation; either version 3 of the License, or
8
 
dnl (at your option) any later version.
9
 
 
10
 
dnl This program is distributed in the hope that it will be useful,
11
 
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 
dnl GNU General Public License for more details.
14
 
 
15
 
dnl You should have received a copy of the GNU General Public License
16
 
dnl along with this program.  If not, see <http://www.gnu.org/licenses/>.
17
 
 
18
 
dnl Additional permission under GNU GPL version 3 section 7
19
 
 
20
 
dnl If you modify this program, or any covered work, by linking or
21
 
dnl combining it with the OpenSSL project's OpenSSL library (or a
22
 
dnl modified version of that library), containing parts covered by the
23
 
dnl terms of the OpenSSL or SSLeay licenses, the Free Software Foundation
24
 
dnl grants you additional permission to convey the resulting work.
25
 
dnl Corresponding Source for a non-source form of such a combination
26
 
dnl shall include the source code for the parts of OpenSSL used as well
27
 
dnl as that of the covered work.
28
 
 
29
 
dnl
30
 
dnl Process this file with autoconf to produce a configure script.
31
 
dnl
32
 
 
33
 
AC_INIT([src/version.c])
34
 
AC_PREREQ(2.61)
35
 
 
36
 
dnl Include the M4 macros we use.
37
 
builtin(include, [m4/wget.m4])dnl
38
 
builtin(include, [m4/lib-ld.m4])dnl
39
 
builtin(include, [m4/lib-link.m4])dnl
40
 
builtin(include, [m4/lib-prefix.m4])dnl
41
 
 
42
 
dnl
43
 
dnl What version of Wget are we building?
44
 
dnl
45
 
VERSION=`sed -e 's/^.*"\(.*\)";$/\1/' ${srcdir}/src/version.c`
46
 
AC_MSG_NOTICE([configuring for GNU Wget $VERSION])
47
 
AC_SUBST(VERSION)
48
 
PACKAGE=wget
49
 
AC_SUBST(PACKAGE)
50
 
 
51
 
dnl
52
 
dnl Get cannonical host
53
 
dnl
54
 
AC_CANONICAL_HOST
55
 
AC_DEFINE_UNQUOTED([OS_TYPE], "$host_os",
56
 
                   [Define to be the name of the operating system.])
57
 
 
58
 
dnl
59
 
dnl Process features.
60
 
dnl
61
 
 
62
 
AC_ARG_WITH(ssl,
63
 
[[  --without-ssl           disable SSL autodetection]])
64
 
 
65
 
AC_ARG_ENABLE(opie,
66
 
[  --disable-opie          disable support for opie or s/key FTP login],
67
 
ENABLE_OPIE=$enableval, ENABLE_OPIE=yes)
68
 
test x"${ENABLE_OPIE}" = xyes && AC_DEFINE([ENABLE_OPIE], 1,
69
 
   [Define if you want the Opie support for FTP compiled in.])
70
 
 
71
 
AC_ARG_ENABLE(digest,
72
 
[  --disable-digest        disable support for HTTP digest authorization],
73
 
ENABLE_DIGEST=$enableval, ENABLE_DIGEST=yes)
74
 
test x"${ENABLE_DIGEST}" = xyes && AC_DEFINE([ENABLE_DIGEST], 1,
75
 
   [Define if you want the HTTP Digest Authorization compiled in.])
76
 
 
77
 
AC_ARG_ENABLE(ntlm,
78
 
[  --disable-ntlm          disable support for NTLM authorization],
79
 
[ENABLE_NTLM=$enableval], [ENABLE_NTLM=auto])
80
 
 
81
 
AC_ARG_ENABLE(debug,
82
 
[  --disable-debug         disable support for debugging output],
83
 
ENABLE_DEBUG=$enableval, ENABLE_DEBUG=yes)
84
 
test x"${ENABLE_DEBUG}" = xyes && AC_DEFINE([ENABLE_DEBUG], 1,
85
 
   [Define if you want the debug output support compiled in.])
86
 
 
87
 
wget_need_md5=no
88
 
 
89
 
case "${ENABLE_OPIE}${ENABLE_DIGEST}" in
90
 
*yes*)
91
 
        wget_need_md5=yes
92
 
esac
93
 
if test x"$ENABLE_OPIE" = xyes; then
94
 
  OPIE_OBJ='ftp-opie.o'
95
 
fi
96
 
AC_SUBST(OPIE_OBJ)
97
 
 
98
 
dnl
99
 
dnl Whether make sets $(MAKE)...
100
 
dnl
101
 
AC_PROG_MAKE_SET
102
 
 
103
 
dnl
104
 
dnl Find a good install
105
 
dnl
106
 
AC_PROG_INSTALL
107
 
 
108
 
dnl
109
 
dnl Find the compiler
110
 
dnl
111
 
 
112
 
dnl We want these before the checks, so the checks can modify their values.
113
 
test -z "$CFLAGS"  && CFLAGS= auto_cflags=1
114
 
test -z "$CC" && cc_specified=yes
115
 
 
116
 
AC_PROG_CC
117
 
AC_AIX
118
 
 
119
 
dnl Turn on optimization by default.  Specifically:
120
 
dnl
121
 
dnl if the user hasn't specified CFLAGS, then
122
 
dnl   if compiler is gcc, then
123
 
dnl     use -O2 and some warning flags
124
 
dnl   else
125
 
dnl     use os-specific flags or -O
126
 
if test -n "$auto_cflags"; then
127
 
  if test -n "$GCC"; then
128
 
    CFLAGS="$CFLAGS -O2 -Wall"
129
 
  else
130
 
    case "$host_os" in
131
 
      *hpux*)  CFLAGS="$CFLAGS +O3"                      ;;
132
 
      *ultrix* | *osf*) CFLAGS="$CFLAGS -O -Olimit 2000" ;;
133
 
      *)       CFLAGS="$CFLAGS -O" ;;
134
 
    esac
135
 
  fi
136
 
fi
137
 
 
138
 
dnl
139
 
dnl Checks for basic compiler characteristics.
140
 
dnl
141
 
AC_C_CONST
142
 
AC_C_INLINE
143
 
AC_C_VOLATILE
144
 
 
145
 
dnl Check for basic headers, even though we expect them to exist and
146
 
dnl #include them unconditionally in the code.  Their detection is
147
 
dnl still needed because test programs used by Autoconf macros check
148
 
dnl for STDC_HEADERS, HAVE_SYS_TYPES_H, etc. before using them.
149
 
dnl Without the checks they will fail to be included in test programs,
150
 
dnl which will subsequently fail.
151
 
AC_HEADER_STDC
152
 
 
153
 
dnl Check for large file support.  This check needs to come fairly
154
 
dnl early because it could (in principle) affect whether functions and
155
 
dnl headers are available, whether they work, etc.
156
 
AC_SYS_LARGEFILE
157
 
AC_CHECK_SIZEOF(off_t)
158
 
 
159
 
dnl
160
 
dnl Checks for system header files that might be missing.
161
 
dnl
162
 
AC_HEADER_STDBOOL
163
 
AC_CHECK_HEADERS(unistd.h sys/time.h)
164
 
AC_CHECK_HEADERS(termios.h sys/ioctl.h sys/select.h utime.h sys/utime.h)
165
 
AC_CHECK_HEADERS(stdint.h inttypes.h pwd.h wchar.h)
166
 
 
167
 
dnl
168
 
dnl Check sizes of integer types.  These are used to find n-bit
169
 
dnl integral types on older systems that fail to provide intN_t and
170
 
dnl uintN_t typedefs.
171
 
dnl
172
 
AC_CHECK_SIZEOF(short)
173
 
AC_CHECK_SIZEOF(int)
174
 
AC_CHECK_SIZEOF(long)
175
 
AC_CHECK_SIZEOF(long long)
176
 
AC_CHECK_SIZEOF(void *)
177
 
 
178
 
dnl
179
 
dnl Checks for non-universal or system-specific types.
180
 
dnl
181
 
AC_TYPE_SIZE_T
182
 
AC_TYPE_PID_T
183
 
AC_CHECK_TYPES([uint32_t, uintptr_t, intptr_t, int64_t])
184
 
AC_CHECK_TYPES(sig_atomic_t, [], [], [
185
 
#include <stdio.h>
186
 
#include <sys/types.h>
187
 
#if HAVE_INTTYPES_H
188
 
# include <inttypes.h>
189
 
#endif
190
 
#include <signal.h>
191
 
])
192
 
 
193
 
dnl
194
 
dnl Checks for library functions.
195
 
dnl
196
 
AC_FUNC_ALLOCA
197
 
AC_FUNC_MMAP
198
 
AC_FUNC_FSEEKO
199
 
AC_CHECK_FUNCS(strptime timegm snprintf vsnprintf vasprintf drand48)
200
 
AC_CHECK_FUNCS(strtoll usleep ftello sigblock sigsetjmp memrchr wcwidth mbtowc)
201
 
 
202
 
dnl We expect to have these functions on Unix-like systems configure
203
 
dnl runs on.  The defines are provided to get them in config.h.in so
204
 
dnl Wget can still be ported to non-Unix systems (such as Windows)
205
 
dnl that lack some of these functions.
206
 
AC_DEFINE([HAVE_STRCASECMP], 1, [Define to 1 if you have the `strcasecmp' function.])
207
 
AC_DEFINE([HAVE_STRNCASECMP], 1, [Define to 1 if you have the `strncasecmp' function.])
208
 
AC_DEFINE([HAVE_STRDUP], 1, [Define to 1 if you have the `strdup' function.])
209
 
AC_DEFINE([HAVE_ISATTY], 1, [Define to 1 if you have the `isatty' function.])
210
 
AC_DEFINE([HAVE_SYMLINK], 1, [Define to 1 if you have the `symlink' function.])
211
 
 
212
 
dnl
213
 
dnl Call Wget-specific macros defined in aclocal.
214
 
dnl
215
 
WGET_STRUCT_UTIMBUF
216
 
WGET_SOCKLEN_T
217
 
WGET_FNMATCH
218
 
WGET_NANOSLEEP
219
 
WGET_POSIX_CLOCK
220
 
WGET_NSL_SOCKET
221
 
 
222
 
dnl
223
 
dnl Check if we need to compile in getopt.c.
224
 
dnl
225
 
AC_CHECK_FUNC(getopt_long, [], [
226
 
  GETOPT_OBJ='getopt.o'
227
 
])
228
 
AC_SUBST(GETOPT_OBJ)
229
 
 
230
 
dnl
231
 
dnl Checks for libraries.
232
 
dnl
233
 
 
234
 
AS_IF([test x"$with_ssl" = xgnutls], [
235
 
  dnl Now actually check for -lssl
236
 
  AC_LIB_HAVE_LINKFLAGS([gnutls], [], [
237
 
#include <gnutls/gnutls.h>
238
 
  ], [gnutls_global_init()])
239
 
  if test x"$LIBGNUTLS" != x
240
 
  then
241
 
    AC_MSG_NOTICE([compiling in support for SSL via GnuTLS])
242
 
    SSL_OBJ='gnutls.o'
243
 
  else
244
 
    AC_MSG_ERROR([--with-ssl=gnutls was given, but GNUTLS is not available.])
245
 
  fi
246
 
], [
247
 
  # --with-ssl is not gnutls: check if it's no
248
 
  AS_IF([test x"$with_ssl" != xno], [
249
 
    dnl As of this writing (OpenSSL 0.9.6), the libcrypto shared library
250
 
    dnl doesn't record its dependency on libdl, so we need to make sure
251
 
    dnl -ldl ends up in LIBS on systems that have it.  Most OSes use
252
 
    dnl dlopen(), but HP-UX uses shl_load().
253
 
    AC_CHECK_LIB(dl, dlopen, [], [
254
 
      AC_CHECK_LIB(dl, shl_load)
255
 
    ])
256
 
 
257
 
    dnl Now actually check for -lssl
258
 
    AC_LIB_HAVE_LINKFLAGS([ssl], [crypto], [
259
 
  #include <openssl/ssl.h>
260
 
  #include <openssl/x509.h>
261
 
  #include <openssl/err.h>
262
 
  #include <openssl/rand.h>
263
 
  #include <openssl/des.h>
264
 
  #include <openssl/md4.h>
265
 
  #include <openssl/md5.h>
266
 
    ], [SSL_library_init ()])
267
 
    if test x"$LIBSSL" != x
268
 
    then
269
 
      AC_MSG_NOTICE([compiling in support for SSL via OpenSSL])
270
 
      SSL_OBJ='openssl.o'
271
 
    elif test x"$with_ssl" != x
272
 
    then
273
 
      AC_MSG_ERROR([--with-ssl was given, but SSL is not available.])
274
 
    fi
275
 
  ]) # endif: --with-ssl == no?
276
 
]) # endif: --with-ssl == gnutls?
277
 
 
278
 
AC_SUBST(SSL_OBJ)
279
 
 
280
 
dnl Enable NTLM if requested and if SSL is available.
281
 
NTLM_OBJ=''
282
 
if test x"$LIBSSL" != x
283
 
then
284
 
  if test x"$ENABLE_NTLM" != xno
285
 
  then
286
 
    AC_DEFINE([ENABLE_NTLM], 1,
287
 
     [Define if you want the NTLM authorization support compiled in.])
288
 
    NTLM_OBJ='http-ntlm.o'
289
 
  fi
290
 
else
291
 
  dnl If SSL is unavailable and the user explicitly requested NTLM,
292
 
  dnl abort.
293
 
  if test x"$ENABLE_NTLM" = xyes
294
 
  then
295
 
    AC_MSG_ERROR([NTLM authorization requested and OpenSSL not found; aborting])
296
 
  fi
297
 
fi
298
 
AC_SUBST(NTLM_OBJ)
299
 
 
300
 
dnl
301
 
dnl Find an MD5 implementation.  Since Wget rarely needs MD5, we try
302
 
dnl to use an existing library implementation to save on code size.
303
 
dnl
304
 
 
305
 
if test x"$wget_need_md5" = xyes
306
 
then
307
 
  dnl This should be moved to an AC_DEFUN, but I'm not sure how to
308
 
  dnl manipulate MD5_OBJ from the defun.
309
 
 
310
 
  MD5_OBJ='gen-md5.o'
311
 
  found_md5=no
312
 
 
313
 
  dnl Check for the system MD5 library on Solaris.  We don't check for
314
 
  dnl something simple like "MD5Update" because there are a number of
315
 
  dnl MD5 implementations that use that name, but have an otherwise
316
 
  dnl incompatible interface.  md5_calc is, hopefully, specific to the
317
 
  dnl Solaris MD5 library.
318
 
  if test x"$found_md5" = xno; then
319
 
    AC_CHECK_LIB(md5, md5_calc, [
320
 
      dnl Some installations have bogus <md5.h> in the compiler's
321
 
      dnl include path, making the system md5 library useless.
322
 
      AC_MSG_CHECKING([for working md5.h])
323
 
      AC_COMPILE_IFELSE([#include <md5.h>
324
 
                        ], [
325
 
        AC_MSG_RESULT(yes)
326
 
        AC_DEFINE([HAVE_SOLARIS_MD5], 1, [Define when using Solaris MD5.])
327
 
        LIBS="-lmd5 $LIBS"
328
 
        found_md5=yes
329
 
        AC_MSG_NOTICE([using the Solaris MD5 implementation])
330
 
      ], [AC_MSG_RESULT(no)])
331
 
    ])
332
 
  fi
333
 
 
334
 
  dnl Then see if we're linking OpenSSL anyway; if yes, use its md5
335
 
  dnl implementation.
336
 
  if test x"$found_md5" = xno; then
337
 
    if test x"$LIBSSL" != x; then
338
 
      AC_DEFINE([HAVE_OPENSSL_MD5], 1, [Define when using OpenSSL MD5.])
339
 
      found_md5=yes
340
 
      AC_MSG_NOTICE([using the OpenSSL MD5 implementation])
341
 
    fi
342
 
  fi
343
 
 
344
 
  dnl If none of the above worked, use the one we ship with Wget.
345
 
  if test x"$found_md5" = xno; then
346
 
    AC_DEFINE([HAVE_BUILTIN_MD5], 1, [Define when using built-in MD5.])
347
 
    MD5_OBJ="$MD5_OBJ gnu-md5.o"
348
 
    found_md5=yes
349
 
    AC_MSG_NOTICE([using the built-in (GNU) MD5 implementation])
350
 
    AC_C_BIGENDIAN
351
 
  fi
352
 
fi
353
 
AC_DEFINE([HAVE_MD5], 1, [Define if we're compiling support for MD5.])
354
 
AC_SUBST(MD5_OBJ)
355
 
 
356
 
dnl **********************************************************************
357
 
dnl Checks for IPv6
358
 
dnl **********************************************************************
359
 
 
360
 
dnl
361
 
dnl We test for IPv6 by checking, in turn, for availability of
362
 
dnl getaddrinfo, presence of the INET6 address/protocol family, and
363
 
dnl the existence of struct sockaddr_in6.  If any of them is missing,
364
 
dnl IPv6 is disabled, and the code reverts to old-style gethostbyname.
365
 
dnl
366
 
dnl If --enable-ipv6 is explicitly specified on the configure command
367
 
dnl line, we check for IPv6 and abort if not found.  If --disable-ipv6
368
 
dnl is specified, we disable IPv6 and don't check for it.  The default
369
 
dnl is to autodetect IPv6 and use it where available.
370
 
dnl
371
 
 
372
 
AC_ARG_ENABLE(ipv6,
373
 
  AC_HELP_STRING([--disable-ipv6],[disable IPv6 support]),
374
 
  [case "${enable_ipv6}" in
375
 
    no)
376
 
      AC_MSG_NOTICE([disabling IPv6 at user request])
377
 
      dnl Disable IPv6 checking
378
 
      ipv6=no
379
 
      ;;
380
 
    yes)
381
 
      dnl IPv6 explicitly enabled: force its use (abort if unavailable).
382
 
      ipv6=yes
383
 
      force_ipv6=yes
384
 
      ;;
385
 
    auto)
386
 
      dnl Auto-detect IPv6, i.e. check for IPv6, but don't force it.
387
 
      ipv6=yes
388
 
      ;;
389
 
    *)
390
 
      AC_MSG_ERROR([Invalid --enable-ipv6 argument \`$enable_ipv6'])
391
 
      ;;
392
 
    esac
393
 
  ], [
394
 
    dnl If nothing is specified, assume auto-detection.
395
 
    ipv6=yes
396
 
  ]
397
 
)
398
 
 
399
 
if test "X$ipv6" = "Xyes"; then
400
 
  AC_CHECK_FUNCS(getaddrinfo, [], [
401
 
    AC_MSG_NOTICE([Disabling IPv6 support: your system does not support getaddrinfo(3)])
402
 
    ipv6=no
403
 
  ])
404
 
fi
405
 
 
406
 
if test "X$ipv6" = "Xyes"; then
407
 
  PROTO_INET6([], [
408
 
    AC_MSG_NOTICE([Disabling IPv6 support: your system does not support the PF_INET6 protocol family])
409
 
    ipv6=no
410
 
  ])
411
 
fi
412
 
 
413
 
if test "X$ipv6" = "Xyes"; then
414
 
  TYPE_STRUCT_SOCKADDR_IN6([],[
415
 
    AC_MSG_NOTICE([Disabling IPv6 support: your system does not support \`struct sockaddr_in6'])
416
 
    ipv6=no
417
 
  ])
418
 
  if test "X$ipv6" = "Xyes"; then
419
 
    WGET_STRUCT_SOCKADDR_STORAGE
420
 
    MEMBER_SIN6_SCOPE_ID
421
 
  fi
422
 
fi
423
 
 
424
 
if test "X$ipv6" = "Xyes"; then
425
 
  AC_DEFINE([ENABLE_IPV6], 1, [Define if IPv6 support is enabled.])
426
 
  AC_MSG_NOTICE([Enabling support for IPv6.])
427
 
elif test "x$force_ipv6" = "xyes"; then
428
 
  AC_MSG_ERROR([IPv6 support requested but not found; aborting])
429
 
fi
430
 
 
431
 
 
432
 
dnl
433
 
dnl Set of available languages.
434
 
dnl
435
 
dnl Originally this used to be static, looking like this:
436
 
dnl     ALL_LINGUAS="cs de hr it ..."
437
 
dnl The downside was that configure needed to be rebuilt whenever a
438
 
dnl new language was added.
439
 
dnl
440
 
ALL_LINGUAS=`(cd ${srcdir}/po && ls *.po | sed -e 's/\.po$//' | tr '\012' ' ')`
441
 
 
442
 
dnl internationalization macros
443
 
WGET_WITH_NLS
444
 
 
445
 
dnl
446
 
dnl Find makeinfo.  We used to provide support for Emacs processing
447
 
dnl Texinfo using `emacs -batch -eval ...' where makeinfo is
448
 
dnl unavailable, but that broke with the addition of makeinfo-specific
449
 
dnl command-line options, such as `-I'.  Now we depend on makeinfo to
450
 
dnl build the Info documentation.
451
 
dnl
452
 
 
453
 
AC_CHECK_PROGS(MAKEINFO, [makeinfo], [true])
454
 
 
455
 
dnl
456
 
dnl Find perl and pod2man
457
 
dnl
458
 
 
459
 
AC_PATH_PROGS(PERL, [perl5 perl], no)
460
 
AC_PATH_PROG(POD2MAN, pod2man, no)
461
 
 
462
 
if test "x${POD2MAN}" = xno; then
463
 
  COMMENT_IF_NO_POD2MAN="# "
464
 
else
465
 
  COMMENT_IF_NO_POD2MAN=
466
 
fi
467
 
AC_SUBST(COMMENT_IF_NO_POD2MAN)
468
 
 
469
 
dnl
470
 
dnl Create output
471
 
dnl
472
 
AC_CONFIG_FILES([Makefile src/Makefile doc/Makefile util/Makefile
473
 
                 po/Makefile.in tests/Makefile tests/WgetTest.pm
474
 
                 windows/Makefile])
475
 
AC_CONFIG_HEADERS([src/config.h])
476
 
AH_BOTTOM([
477
 
#include "config-post.h"
478
 
])
479
 
AC_CONFIG_FILES([stamp-h], [echo timestamp > stamp-h])
480
 
AC_CONFIG_COMMANDS([default], [WGET_PROCESS_PO])
481
 
AC_OUTPUT