1 dnl Template file for GNU Autoconf
2 dnl Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
4 dnl This program is free software; you can redistribute it and/or modify
5 dnl it under the terms of the GNU General Public License as published by
6 dnl the Free Software Foundation; either version 2 of the License, or
7 dnl (at your option) any later version.
9 dnl This program is distributed in the hope that it will be useful,
10 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
11 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 dnl GNU General Public License for more details.
14 dnl You should have received a copy of the GNU General Public License
15 dnl along with this program; if not, write to the Free Software
16 dnl Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19 dnl Process this file with autoconf to produce a configure script.
22 AC_INIT(src/version.c)
24 AC_CONFIG_HEADER(src/config.h)
27 dnl What version of Wget are we building?
29 VERSION=`sed -e 's/^.*"\(.*\)";$/\1/' ${srcdir}/src/version.c`
30 echo "configuring for GNU Wget $VERSION"
36 dnl Get cannonical host
39 AC_DEFINE_UNQUOTED(OS_TYPE, "$host_os")
45 [ --with-socks use the socks library],
46 [AC_DEFINE(HAVE_SOCKS)])
49 [ --with-ssl[=SSL_ROOT] link with libssl [in SSL_ROOT/lib] for https: support])
52 [ --disable-opie disable support for opie or s/key FTP login],
53 USE_OPIE=$enableval, USE_OPIE=yes)
54 test x"${USE_OPIE}" = xyes && AC_DEFINE(USE_OPIE)
57 [ --disable-digest disable support for HTTP digest authorization],
58 USE_DIGEST=$enableval, USE_DIGEST=yes)
59 test x"${USE_DIGEST}" = xyes && AC_DEFINE(USE_DIGEST)
62 [ --disable-debug disable support for debugging output],
63 DEBUG=$enableval, DEBUG=yes)
64 test x"${DEBUG}" = xyes && AC_DEFINE(DEBUG)
66 case "${USE_OPIE}${USE_DIGEST}" in
70 if test x"$USE_OPIE" = xyes; then
77 dnl Whether make sets $(MAKE)...
82 dnl Find a good install
87 dnl Configure our included libtool and make sure it's regenerated when needed
90 AC_SUBST(LIBTOOL_DEPS)
96 dnl We want these before the checks, so the checks can modify their values.
97 test -z "$CFLAGS" && CFLAGS= auto_cflags=1
98 test -z "$CC" && cc_specified=yes
103 dnl if the user hasn't specified CFLAGS, then
104 dnl if compiler is gcc, then use -O2 and some warning flags
105 dnl else use os-specific flags or -O
107 if test -n "$auto_cflags"; then
108 if test -n "$GCC"; then
109 CFLAGS="$CFLAGS -O2 -Wall -Wno-implicit"
112 *hpux*) CFLAGS="$CFLAGS +O3" ;;
113 *ultrix* | *osf*) CFLAGS="$CFLAGS -O -Olimit 2000" ;;
114 *) CFLAGS="$CFLAGS -O" ;;
125 dnl In case of {cyg,gnu}win32. Should be a _target_ test.
126 dnl Might also be erelevant for DJGPP.
129 *win32) exeext='.exe';;
135 dnl Check if we can handle prototypes.
140 dnl Checks for typedefs, structures, and compiler characteristics.
146 dnl #### This generates a warning. What do I do to shut it up?
149 # Check size of long.
150 AC_CHECK_SIZEOF(long)
151 AC_CHECK_SIZEOF(long long)
154 dnl Checks for headers
156 AC_CHECK_HEADERS(string.h stdarg.h unistd.h sys/time.h utime.h sys/utime.h)
157 AC_CHECK_HEADERS(sys/select.h sys/utsname.h pwd.h signal.h)
161 dnl Return type of signal-handlers
166 dnl Check for struct utimbuf
170 dnl Checks for library functions.
174 AC_CHECK_FUNCS(strdup strstr strcasecmp strncasecmp)
175 AC_CHECK_FUNCS(gettimeofday mktime strptime)
176 AC_CHECK_FUNCS(strerror snprintf vsnprintf select signal symlink access isatty)
177 AC_CHECK_FUNCS(uname gethostname)
179 AC_CHECK_FUNCS(gethostbyname, [], [
180 AC_CHECK_LIB(nsl, gethostbyname)
184 dnl Checks for libraries.
187 AC_CHECK_LIB(socket, socket)
189 dnl #### This appears to be deficient with later versions of SOCKS.
190 if test "x${with_socks}" = xyes
192 AC_CHECK_LIB(resolv, main)
193 AC_CHECK_LIB(socks, Rconnect)
196 dnl OpenSSL is a third-party library, which makes checking for it a
197 dnl pain. Before proceeding, we need to figure out whether to use the
200 dnl Try to autodetect runtime library flag (usually -R), and whether
201 dnl it works (or at least does no harm). Note that this is used
202 dnl merely for the configure test below. The actual linking is
203 dnl performed by libtool. Wouldn't it be nice if libtool also
204 dnl provided "querying" that we need in configure?
205 AC_MSG_CHECKING("for runtime libraries flag")
207 sol2 ) dash_r="-R" ;;
208 decosf* | linux* | irix*) dash_r="-rpath " ;;
211 for try_dash_r in "-R" "-R " "-rpath "; do
213 LDFLAGS="${try_dash_r}/no/such/file-or-directory $LDFLAGS"
214 AC_TRY_LINK(, , dash_r="$try_dash_r")
216 test -n "$dash_r" && break
219 if test -n "$dash_r";
220 then AC_MSG_RESULT("\"${dash_r}\"")
221 else AC_MSG_RESULT(NONE)
224 dnl If --with-ssl was specified, make sure we can link with the
225 dnl OpenSSL libs. We should probably auto-detect this by default.
227 if test x"$with_ssl" != x -a x"$with_ssl" != x"no"; then
228 if test x"$with_ssl" = x"yes"; then
229 dnl OpenSSL's default install location is "/usr/local/ssl". We also
230 dnl allow /usr/local for regular-style install, and /usr for Linux
232 ssl_all_roots="default /usr/local/ssl /usr/local /opt"
234 dnl Root has been kindly provided by the user.
235 ssl_all_roots=$with_ssl
241 dnl Unfortunately, as of this writing (OpenSSL 0.9.6), the libcrypto
242 dnl shared library doesn't record its dependency on libdl, so we
243 dnl need to check for it ourselves so we won't fail to link due to a
244 dnl lack of -ldl. Most OSes use dlopen(), but HP-UX uses
246 AC_CHECK_LIB(dl,dlopen)
247 AC_CHECK_LIB(dl,shl_load)
251 dnl Now try to find SSL libraries in each of the likely SSL roots.
252 for ssl_root in $ssl_all_roots
256 if test x"$ssl_root" = xdefault; then
257 dnl Try the default library locations.
261 dnl Try this specific root.
262 SSL_INCLUDES=-I$ssl_root/include
263 SSL_DASH_L="-L$ssl_root/lib"
265 dnl Only use -R<foo> on systems which support a -R variant.
266 if test x"$dash_r" != x; then
267 SSL_DASH_R="${dash_r}$ssl_root/lib"
269 LDFLAGS="$SSL_DASH_L $SSL_DASH_R $OLD_LDFLAGS"
274 AC_MSG_RESULT(["Looking for SSL libraries in $ssl_root"])
276 dnl Make sure that the checks don't run afoul of the cache. It
277 dnl would be nicer to temporarily turn off the cache, but
278 dnl apparently Autoconf doesn't allow that.
280 unset ac_cv_lib_crypto_RSA_new
281 unset ac_cv_lib_ssl_SSL_new
283 dnl These checks need to be in this order, or you'll get a link
284 dnl failure if you use a static libcrypto.a and libssl.a rather
285 dnl than shared libraries.
287 AC_CHECK_LIB(crypto,RSA_new,,ssl_link_failure=yes)
288 AC_CHECK_LIB(ssl,SSL_new,,ssl_link_failure=yes)
290 dnl If ssl_link_failure is still no, the libraries link. But we
291 dnl still need to check if the program linked with those libraries
292 dnl under these settings with run. On some systems (Solaris), Gcc
293 dnl adds -L/usr/local/lib to the linking line, but fails to add
294 dnl -R/usr/local/lib, thus creating executables that link, but
297 dnl If we are cross-compiling, just assume that working linkage
298 dnl implies working executable.
300 if test x"$ssl_link_failure" = xno; then
301 dnl Now try to run the thing.
302 AC_MSG_CHECKING("whether runtime linking works")
307 ], AC_MSG_RESULT("yes"), AC_MSG_RESULT("no"); ssl_link_failure=yes, true)
310 if test x"$ssl_link_failure" = xno; then
311 dnl This echo doesn't look right, but I'm not sure what to use
313 AC_MSG_RESULT("Compiling in support for SSL in $ssl_root")
315 AC_SUBST(SSL_INCLUDES)
316 SSL_OBJ='gen_sslfunc$o'
323 if test x"$ssl_linked" = xno; then
324 LD_FLAGS=$OLD_LDFLAGS
326 dnl Perhaps we should abort here. Remember that the user
327 dnl explicitly requested linking with SSL.
329 echo "WARNING: Failed to link with OpenSSL libraries in $ssl_root/lib."
330 echo " Wget will be built without support for https://... URLs."
336 dnl Set of available languages.
338 ALL_LINGUAS=`(cd ${srcdir}/po && ls *.po | sed -e 's/\.po$//')`
340 dnl Originally this used to be static, looking like this:
341 dnl ALL_LINGUAS="cs de hr it ..."
342 dnl The downside was that configure needed to be rebuilt whenever a
343 dnl new language was added.
345 dnl internationalization macros
349 dnl Find makeinfo. If makeinfo is not found, look for Emacs. If
350 dnl Emacs cannot be found, look for XEmacs.
353 AC_CHECK_PROGS(MAKEINFO, makeinfo emacs xemacs)
355 case "${MAKEINFO}" in
356 *makeinfo) MAKEINFO="${MAKEINFO} \$(srcdir)/wget.texi" ;;
357 *emacs | *xemacs) MAKEINFO="${MAKEINFO} -batch -q -no-site-file -eval '(find-file \"\$(srcdir)/wget.texi\")' -l texinfmt -f texinfo-format-buffer -f save-buffer" ;;
358 *) MAKEINFO="makeinfo \$(srcdir)/wget.texi" ;;
362 dnl Find perl and pod2man
365 AC_PATH_PROGS(PERL, perl5 perl, no)
366 AC_PATH_PROG(POD2MAN, pod2man, no)
368 if test "x${POD2MAN}" = xno; then
369 COMMENT_IF_NO_POD2MAN="# "
371 COMMENT_IF_NO_POD2MAN=
373 AC_SUBST(COMMENT_IF_NO_POD2MAN)
378 AC_OUTPUT([Makefile src/Makefile doc/Makefile util/Makefile po/Makefile.in
381 test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h])