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)
292 if test x"$ssl_link_failure" = xno; then
293 dnl Now try to run the thing.
294 AC_MSG_CHECKING("whether runtime linking works")
299 ], AC_MSG_RESULT("yes"), AC_MSG_RESULT("no"); ssl_link_failure=yes)
302 if test x"$ssl_link_failure" = xno; then
303 dnl This echo doesn't look right, but I'm not sure what to use
305 AC_MSG_RESULT("Compiling in support for SSL in $ssl_root")
307 AC_SUBST(SSL_INCLUDES)
308 SSL_OBJ='gen_sslfunc$o'
315 if test x"$ssl_linked" = xno; then
316 LD_FLAGS=$OLD_LDFLAGS
318 dnl Perhaps we should abort here. Remember that the user
319 dnl explicitly requested linking with SSL.
321 echo "WARNING: Failed to link with OpenSSL libraries in $ssl_root/lib."
322 echo " Wget will be built without support for https://... URLs."
328 dnl Set of available languages.
330 ALL_LINGUAS=`(cd ${srcdir}/po && ls *.po | sed -e 's/\.po$//')`
332 dnl Originally this used to be static, looking like this:
333 dnl ALL_LINGUAS="cs de hr it ..."
334 dnl The downside was that configure needed to be rebuilt whenever a
335 dnl new language was added.
337 dnl internationalization macros
341 dnl Find makeinfo. If makeinfo is not found, look for Emacs. If
342 dnl Emacs cannot be found, look for XEmacs.
345 AC_CHECK_PROGS(MAKEINFO, makeinfo emacs xemacs)
347 case "${MAKEINFO}" in
348 *makeinfo) MAKEINFO="${MAKEINFO} \$(srcdir)/wget.texi" ;;
349 *emacs | *xemacs) MAKEINFO="${MAKEINFO} -batch -q -no-site-file -eval '(find-file \"\$(srcdir)/wget.texi\")' -l texinfmt -f texinfo-format-buffer -f save-buffer" ;;
350 *) MAKEINFO="makeinfo \$(srcdir)/wget.texi" ;;
354 dnl Find perl and pod2man
357 AC_PATH_PROGS(PERL, perl5 perl, no)
358 AC_PATH_PROG(POD2MAN, pod2man, no)
360 if test "x${POD2MAN}" = xno; then
361 COMMENT_IF_NO_POD2MAN="# "
363 COMMENT_IF_NO_POD2MAN=
365 AC_SUBST(COMMENT_IF_NO_POD2MAN)
370 AC_OUTPUT([Makefile src/Makefile doc/Makefile util/Makefile po/Makefile.in
373 test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h])