source: vendor/wget/current/configure.in@ 3754

Last change on this file since 3754 was 3440, checked in by bird, 18 years ago

wget 1.10.2

File size: 13.2 KB
Line 
1dnl Template file for GNU Autoconf
2dnl Copyright (C) 1995, 1996, 1997, 2001 Free Software Foundation, Inc.
3
4dnl This program is free software; you can redistribute it and/or modify
5dnl it under the terms of the GNU General Public License as published by
6dnl the Free Software Foundation; either version 2 of the License, or
7dnl (at your option) any later version.
8
9dnl This program is distributed in the hope that it will be useful,
10dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
11dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12dnl GNU General Public License for more details.
13
14dnl You should have received a copy of the GNU General Public License
15dnl along with this program; if not, write to the Free Software
16dnl Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17
18dnl In addition, as a special exception, the Free Software Foundation
19dnl gives permission to link the code of its release of Wget with the
20dnl OpenSSL project's "OpenSSL" library (or with modified versions of it
21dnl that use the same license as the "OpenSSL" library), and distribute
22dnl the linked executables. You must obey the GNU General Public License
23dnl in all respects for all of the code used other than "OpenSSL". If you
24dnl modify this file, you may extend this exception to your version of the
25dnl file, but you are not obligated to do so. If you do not wish to do
26dnl so, delete this exception statement from your version.
27
28dnl
29dnl Process this file with autoconf to produce a configure script.
30dnl
31
32AC_INIT([src/version.c])
33AC_PREREQ(2.59)
34
35dnl Include the M4 macros we use.
36builtin(include, [m4/wget.m4])dnl
37builtin(include, [m4/lib-ld.m4])dnl
38builtin(include, [m4/lib-link.m4])dnl
39builtin(include, [m4/lib-prefix.m4])dnl
40
41dnl
42dnl What version of Wget are we building?
43dnl
44VERSION=`sed -e 's/^.*"\(.*\)";$/\1/' ${srcdir}/src/version.c`
45AC_MSG_NOTICE([configuring for GNU Wget $VERSION])
46AC_SUBST(VERSION)
47PACKAGE=wget
48AC_SUBST(PACKAGE)
49
50dnl
51dnl Get cannonical host
52dnl
53AC_CANONICAL_HOST
54AC_DEFINE_UNQUOTED([OS_TYPE], "$host_os",
55 [Define to be the name of the operating system.])
56
57dnl
58dnl Process features.
59dnl
60
61AC_ARG_WITH(ssl,
62[[ --without-ssl disable SSL autodetection]])
63
64AC_ARG_ENABLE(opie,
65[ --disable-opie disable support for opie or s/key FTP login],
66ENABLE_OPIE=$enableval, ENABLE_OPIE=yes)
67test x"${ENABLE_OPIE}" = xyes && AC_DEFINE([ENABLE_OPIE], 1,
68 [Define if you want the Opie support for FTP compiled in.])
69
70AC_ARG_ENABLE(digest,
71[ --disable-digest disable support for HTTP digest authorization],
72ENABLE_DIGEST=$enableval, ENABLE_DIGEST=yes)
73test x"${ENABLE_DIGEST}" = xyes && AC_DEFINE([ENABLE_DIGEST], 1,
74 [Define if you want the HTTP Digest Authorization compiled in.])
75
76AC_ARG_ENABLE(ntlm,
77[ --disable-ntlm disable support for NTLM authorization],
78[ENABLE_NTLM=$enableval], [ENABLE_NTLM=auto])
79
80AC_ARG_ENABLE(debug,
81[ --disable-debug disable support for debugging output],
82ENABLE_DEBUG=$enableval, ENABLE_DEBUG=yes)
83test x"${ENABLE_DEBUG}" = xyes && AC_DEFINE([ENABLE_DEBUG], 1,
84 [Define if you want the debug output support compiled in.])
85
86wget_need_md5=no
87
88case "${ENABLE_OPIE}${ENABLE_DIGEST}" in
89*yes*)
90 wget_need_md5=yes
91esac
92if test x"$ENABLE_OPIE" = xyes; then
93 OPIE_OBJ='ftp-opie$o'
94fi
95AC_SUBST(OPIE_OBJ)
96
97dnl
98dnl Whether make sets $(MAKE)...
99dnl
100AC_PROG_MAKE_SET
101
102dnl
103dnl Find a good install
104dnl
105AC_PROG_INSTALL
106
107dnl
108dnl Find the compiler
109dnl
110
111dnl We want these before the checks, so the checks can modify their values.
112test -z "$CFLAGS" && CFLAGS= auto_cflags=1
113test -z "$CC" && cc_specified=yes
114
115AC_PROG_CC
116AC_AIX
117AM_PROG_CC_STDC
118
119dnl Turn on optimization by default. Specifically:
120dnl
121dnl if the user hasn't specified CFLAGS, then
122dnl if compiler is gcc, then
123dnl use -O2 and some warning flags
124dnl else
125dnl use os-specific flags or -O
126if test -n "$auto_cflags"; then
127 if test -n "$GCC"; then
128 CFLAGS="$CFLAGS -O2 -Wall -Wno-implicit"
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
136fi
137
138dnl
139dnl In case of {cyg,gnu}win32. Should be a _target_ test.
140dnl Might also be erelevant for DJGPP.
141dnl
142case "$host_os" in
143 *win32) exeext='.exe';;
144 *) exeext='';;
145esac
146AC_SUBST(exeext)
147
148dnl
149dnl Checks for basic compiler characteristics.
150dnl
151AC_C_CONST
152AC_C_INLINE
153AC_C_VOLATILE
154AC_C_BIGENDIAN
155AC_C_PROTOTYPES
156
157if test x"$am_cv_prog_cc_stdc" != xno; then :
158 AC_SUBST(U, [])
159 AC_SUBST(ANSI2KNR, [])
160else
161 AC_SUBST(U, [_])
162 AC_SUBST(ANSI2KNR, [./ansi2knr])
163fi
164
165dnl
166dnl Checks for header files that might be missing.
167dnl
168
169dnl Check for basic headers, even those we assume the presence of.
170dnl This is because Autoconf default includes check for STDC_HEADERS,
171dnl HAVE_SYS_TYPES_H, etc. before including them.
172AC_HEADER_STDC
173AC_CHECK_HEADERS(sys/types.h sys/stat.h)
174dnl Now check for the others.
175AC_CHECK_HEADERS(string.h strings.h stdarg.h limits.h unistd.h sys/time.h)
176AC_CHECK_HEADERS(termios.h sys/ioctl.h sys/select.h utime.h sys/utime.h)
177AC_CHECK_HEADERS(stdint.h inttypes.h signal.h setjmp.h pwd.h)
178AC_HEADER_TIME
179
180dnl
181dnl Check integral type sizes.
182dnl
183AC_CHECK_SIZEOF(short)
184AC_CHECK_SIZEOF(int)
185AC_CHECK_SIZEOF(long)
186AC_CHECK_SIZEOF(long long)
187
188dnl
189dnl Check for large file support. This check needs to come fairly
190dnl early because it could (in principle) affect whether functions and
191dnl headers are available, whether they work, etc.
192dnl
193AC_SYS_LARGEFILE
194AC_CHECK_SIZEOF(off_t)
195
196dnl
197dnl Checks for non-universal or system-specific types.
198dnl
199AC_TYPE_SIZE_T
200AC_TYPE_PID_T
201AC_CHECK_TYPES(uint32_t)
202AC_TYPE_SIGNAL
203AC_CHECK_TYPES(sig_atomic_t, [], [], [
204#include <stdio.h>
205#include <sys/types.h>
206#if HAVE_INTTYPES_H
207# include <inttypes.h>
208#endif
209#ifdef HAVE_SIGNAL_H
210# include <signal.h>
211#endif
212])
213
214dnl
215dnl Checks for library functions.
216dnl
217AC_FUNC_ALLOCA
218AC_FUNC_MMAP
219AC_FUNC_FSEEKO
220AC_CHECK_FUNCS(strdup strstr strcasecmp strncasecmp strpbrk memmove)
221AC_CHECK_FUNCS(gettimeofday mktime strptime timegm strerror snprintf vsnprintf)
222AC_CHECK_FUNCS(usleep select ftello sigblock sigsetjmp signal)
223AC_CHECK_FUNCS(symlink access isatty strtoll strtoimax)
224
225dnl
226dnl Call Wget's local macros defined in aclocal.
227dnl
228WGET_STRUCT_UTIMBUF
229WGET_SOCKLEN_T
230WGET_FNMATCH
231WGET_NANOSLEEP
232WGET_POSIX_CLOCK
233WGET_NSL_SOCKET
234
235dnl
236dnl Check if we need to compile in getopt.c.
237dnl
238AC_CHECK_FUNC(getopt_long, [], [
239 GETOPT_OBJ='getopt$o'
240])
241AC_SUBST(GETOPT_OBJ)
242
243dnl
244dnl Checks for libraries.
245dnl
246
247dnl Check for OpenSSL
248if test x"$with_ssl" != x"no"
249then
250 dnl As of this writing (OpenSSL 0.9.6), the libcrypto shared library
251 dnl doesn't record its dependency on libdl, so we need to make sure
252 dnl -ldl ends up in LIBS on systems that have it. Most OSes use
253 dnl dlopen(), but HP-UX uses shl_load().
254 AC_CHECK_LIB(dl, dlopen, [], [
255 AC_CHECK_LIB(dl, shl_load)
256 ])
257
258 dnl Now actually check for -lssl
259 AC_LIB_HAVE_LINKFLAGS([ssl], [crypto], [
260#include <openssl/ssl.h>
261#include <openssl/x509.h>
262#include <openssl/err.h>
263#include <openssl/rand.h>
264#include <openssl/des.h>
265#include <openssl/md4.h>
266#include <openssl/md5.h>
267 ], [SSL_library_init ()])
268 if test x"$LIBSSL" != x
269 then
270 AC_MSG_NOTICE([compiling in support for SSL])
271 AC_DEFINE([HAVE_SSL], 1,
272 [Define if SSL support is being compiled in.])
273 SSL_OBJ='openssl$o'
274 elif test x"$with_ssl" != x
275 then
276 AC_MSG_ERROR([--with-ssl was given, but OpenSSL is not available.])
277 fi
278fi
279AC_SUBST(SSL_OBJ)
280
281dnl Enable NTLM if requested and if SSL is available.
282NTLM_OBJ=''
283if test x"$LIBSSL" != x
284then
285 if test x"$ENABLE_NTLM" != xno
286 then
287 AC_DEFINE([ENABLE_NTLM], 1,
288 [Define if you want the NTLM authorization support compiled in.])
289 NTLM_OBJ='http-ntlm$o'
290 fi
291else
292 dnl If SSL is unavailable and the user explicitly requested NTLM,
293 dnl abort.
294 if test x"$ENABLE_NTLM" = xyes
295 then
296 AC_MSG_ERROR([NTLM authorization requested and OpenSSL not found; aborting])
297 fi
298fi
299AC_SUBST(NTLM_OBJ)
300
301dnl
302dnl Find an MD5 implementation. Since Wget rarely needs MD5, we try
303dnl to use an existing library implementation to save on code size.
304dnl
305
306if test x"$wget_need_md5" = xyes
307then
308 dnl This should be moved to an AC_DEFUN, but I'm not sure how to
309 dnl manipulate MD5_OBJ from the defun.
310
311 MD5_OBJ='gen-md5$o'
312 found_md5=no
313
314 dnl Check for the system MD5 library on Solaris. We don't check for
315 dnl something simple like "MD5Update" because there are a number of
316 dnl MD5 implementations that use that name, but have an otherwise
317 dnl incompatible interface. md5_calc is, hopefully, specific to the
318 dnl Solaris MD5 library.
319 if test x"$found_md5" = xno; then
320 AC_CHECK_LIB(md5, md5_calc, [
321 dnl Some installations have bogus <md5.h> in the compiler's
322 dnl include path, making the system md5 library useless.
323 AC_MSG_CHECKING([for working md5.h])
324 AC_COMPILE_IFELSE([#include <md5.h>
325 ], [
326 AC_MSG_RESULT(yes)
327 AC_DEFINE([HAVE_SOLARIS_MD5], 1, [Define to use Solaris MD5.])
328 LIBS="-lmd5 $LIBS"
329 found_md5=yes
330 AC_MSG_NOTICE([using the Solaris MD5 implementation])
331 ], [AC_MSG_RESULT(no)])
332 ])
333 fi
334
335 dnl Then see if we're linking OpenSSL anyway; if yes, use its md5
336 dnl implementation.
337 if test x"$found_md5" = xno; then
338 if test x"$LIBSSL" != x; then
339 AC_DEFINE([HAVE_OPENSSL_MD5], 1, [Define to use OpenSSL MD5.])
340 found_md5=yes
341 AC_MSG_NOTICE([using the OpenSSL MD5 implementation])
342 fi
343 fi
344
345 dnl If none of the above worked, use the one we ship with Wget.
346 if test x"$found_md5" = xno; then
347 AC_DEFINE([HAVE_BUILTIN_MD5], 1, [Define to use built-in MD5.])
348 MD5_OBJ="$MD5_OBJ gnu-md5\$o"
349 found_md5=yes
350 AC_MSG_NOTICE([using the GNU MD5 implementation])
351 fi
352fi
353AC_DEFINE([HAVE_MD5], 1, [Define if we're compiling support for MD5.])
354AC_SUBST(MD5_OBJ)
355
356dnl **********************************************************************
357dnl Checks for IPv6
358dnl **********************************************************************
359
360dnl
361dnl We test for IPv6 by checking, in turn, for availability of
362dnl getaddrinfo, presence of the INET6 address/protocol family, and
363dnl the existence of struct sockaddr_in6. If any of them is missing,
364dnl IPv6 is disabled, and the code reverts to old-style gethostbyname.
365dnl
366dnl If --enable-ipv6 is explicitly specified on the configure command
367dnl line, we check for IPv6 and abort if not found. If --disable-ipv6
368dnl is specified, we disable IPv6 and don't check for it. The default
369dnl is to autodetect IPv6 and use it where available.
370dnl
371
372AC_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
399if 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 ])
404fi
405
406if 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 ])
411fi
412
413if 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
422fi
423
424if 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.])
427elif test "x$force_ipv6" = "xyes"; then
428 AC_MSG_ERROR([IPv6 support requested but not found; aborting])
429fi
430
431
432dnl
433dnl Set of available languages.
434dnl
435dnl Originally this used to be static, looking like this:
436dnl ALL_LINGUAS="cs de hr it ..."
437dnl The downside was that configure needed to be rebuilt whenever a
438dnl new language was added.
439dnl
440ALL_LINGUAS=`(cd ${srcdir}/po && ls *.po | sed -e 's/\.po$//' | tr '\012' ' ')`
441
442dnl internationalization macros
443WGET_WITH_NLS
444
445dnl
446dnl Find makeinfo. We used to provide support for Emacs processing
447dnl Texinfo using `emacs -batch -eval ...' where makeinfo is
448dnl unavailable, but that broke with the addition of makeinfo-specific
449dnl command-line options, such as `-I'. Now we depend on makeinfo to
450dnl build the Info documentation.
451dnl
452
453AC_CHECK_PROGS(MAKEINFO, [makeinfo], [true])
454
455dnl
456dnl Find perl and pod2man
457dnl
458
459AC_PATH_PROGS(PERL, [perl5 perl], no)
460AC_PATH_PROG(POD2MAN, pod2man, no)
461
462if test "x${POD2MAN}" = xno; then
463 COMMENT_IF_NO_POD2MAN="# "
464else
465 COMMENT_IF_NO_POD2MAN=
466fi
467AC_SUBST(COMMENT_IF_NO_POD2MAN)
468
469dnl
470dnl Create output
471dnl
472AC_CONFIG_FILES([Makefile src/Makefile doc/Makefile util/Makefile
473 po/Makefile.in windows/Makefile])
474AC_CONFIG_HEADERS([src/config.h])
475AH_BOTTOM([
476#include "config-post.h"
477])
478AC_CONFIG_FILES([stamp-h], [echo timestamp > stamp-h])
479AC_CONFIG_COMMANDS([default], [WGET_PROCESS_PO])
480AC_OUTPUT
Note: See TracBrowser for help on using the repository browser.