1 dnl Process this file with autoconf to produce a configure script.
3 dnl $Id: configure.in,v 1.66 2002/05/03 00:41:56 oes Exp $
5 dnl Written by and Copyright (C) 2001, 2002 the SourceForge
6 dnl Privoxy team. http://www.privoxy.org/
8 dnl Based on the Internet Junkbuster originally written
9 dnl by and Copyright (C) 1997 Anonymous Coders and
10 dnl Junkbusters Corporation. http://www.junkbusters.com
12 dnl This program is free software; you can redistribute it
13 dnl and/or modify it under the terms of the GNU General
14 dnl Public License as published by the Free Software
15 dnl Foundation; either version 2 of the License, or (at
16 dnl your option) any later version.
18 dnl This program is distributed in the hope that it will
19 dnl be useful, but WITHOUT ANY WARRANTY; without even the
20 dnl implied warranty of MERCHANTABILITY or FITNESS FOR A
21 dnl PARTICULAR PURPOSE. See the GNU General Public
22 dnl License for more details.
24 dnl The GNU General Public License should be included with
25 dnl this file. If not, you can view it at
26 dnl http://www.gnu.org/copyleft/gpl.html
27 dnl or write to the Free Software Foundation, Inc., 59
28 dnl Temple Place - Suite 330, Boston, MA 02111-1307, USA.
30 dnl $Log: configure.in,v $
31 dnl Revision 1.66 2002/05/03 00:41:56 oes
32 dnl Set version to 2.9.15 to comply with new versioning scheme
34 dnl Revision 1.65 2002/04/25 19:13:57 morcego
35 dnl Removed RPM release number declaration on configure.in
36 dnl Changed makefile to use given value for RPM_PACKAGEV when on uploading
37 dnl targets (will produce an error, explaining who to do it, if no value
40 dnl Revision 1.64 2002/04/22 16:32:31 morcego
41 dnl configure.in, *.spec: Bumping release to 2 (2.9.14-2)
42 dnl -rh.spec: uid and gid are now macros
43 dnl -suse.spec: Changing the header Copyright to License (Copyright is
46 dnl Revision 1.63 2002/04/11 11:00:21 oes
47 dnl Applied Moritz' fix for socklen_t on Solaris
49 dnl Revision 1.62 2002/04/11 10:09:20 oes
52 dnl Revision 1.61 2002/04/10 18:14:45 morcego
53 dnl - (privoxy-rh.spec only) Relisting template files on the %%files section
54 dnl - (configure.in, privoxy-rh.spec) Bumped package release to 5
56 dnl Revision 1.60 2002/04/09 16:38:49 oes
57 dnl Added detection of missing config.h.in
59 dnl Revision 1.59 2002/04/06 20:23:55 jongfoster
60 dnl Removing unnessacery tests (C++, ranlib)
62 dnl Revision 1.58 2002/04/04 20:49:20 swa
63 dnl attempt to consolidate the
64 dnl different dokbook versions.
66 dnl Revision 1.57 2002/04/04 00:36:36 gliptak
67 dnl always use pcre for matching
69 dnl Revision 1.56 2002/04/03 22:28:03 gliptak
70 dnl Removed references to gnu_regex
72 dnl Revision 1.55 2002/04/03 03:54:38 gliptak
73 dnl Checking pcre version
75 dnl Revision 1.54 2002/04/01 00:54:24 gliptak
76 dnl More changes needed around regex support.
78 dnl Revision 1.53 2002/03/29 20:09:01 swa
81 dnl Revision 1.52 2002/03/29 19:51:40 gliptak
82 dnl Correcting compile problem with Debian
84 dnl Revision 1.51 2002/03/28 20:43:00 swa
85 dnl set make correctly
87 dnl Revision 1.50 2002/03/27 03:03:45 hal9
88 dnl Add test for man2html
90 dnl Revision 1.49 2002/03/27 02:19:52 david__schmidt
91 dnl More Mac OSX support:
92 dnl - Get rid of extraneous, noisy -pthread warnings
93 dnl - Define unix so we get oes' unix-tagged changes
95 dnl Revision 1.48 2002/03/26 22:29:54 swa
96 dnl we have a new homepage!
98 dnl Revision 1.47 2002/03/26 16:41:00 hal9
99 dnl Upped RPM Release to 3 (need to build new RH packages)
101 dnl Revision 1.46 2002/03/24 18:55:06 jongfoster
102 dnl Making Docbook work under Windows
104 dnl Revision 1.45 2002/03/24 14:19:55 swa
105 dnl set rpm package release in configure.in. nowhere else.
107 dnl Revision 1.44 2002/03/24 13:25:43 swa
108 dnl name change related issues
110 dnl Revision 1.43 2002/03/24 12:56:21 swa
111 dnl name change related issues.
113 dnl Revision 1.42 2002/03/22 18:11:37 jongfoster
114 dnl Bumping version number to 2.9.12
116 dnl Revision 1.41 2002/03/19 19:30:04 morcego
117 dnl - Fixing stylesheet checking on configure. If it is found, no further checks
120 dnl - configure will now check for db2html or docbook2html (should work now
121 dnl on SuSe without the docbktls package)
123 dnl Revision 1.40 2002/03/09 14:33:30 oes
124 dnl Fixing the (harmless) AC_CHECK_FILE warnings
126 dnl Revision 1.39 2002/03/08 16:46:13 oes
127 dnl Added --enable-no-gifs
129 dnl Revision 1.38 2002/03/08 14:13:50 morcego
130 dnl Fixing configure, to remove a command not found error.
132 dnl Revision 1.37 2002/03/08 12:58:21 oes
133 dnl Tiny bugfix in AC_ARG_WITH(debug)
135 dnl Revision 1.36 2002/03/06 23:50:36 morcego
136 dnl Will not test for a text browser if we are not using docbook.
138 dnl Revision 1.35 2002/03/06 21:55:52 morcego
139 dnl New configure option: --with-docbook=(yes|no|directory)
140 dnl Preliminary new platform detection code included. Will work with the
141 dnl old one for now. No use just trowing it away
143 dnl Revision 1.34 2002/03/06 20:57:00 morcego
144 dnl Fixing detection of stylesheets on SuSe.
146 dnl Revision 1.33 2002/03/05 17:31:11 morcego
147 dnl Search for docbook.dsl. Should solve portability problems for SuSe.
149 dnl Revision 1.32 2002/03/05 14:07:43 morcego
150 dnl configure now detects rpm topdir, and change GNUmakefile acordingly
151 dnl (based on sugestion by Sarantis Paskalis)
153 dnl Revision 1.31 2002/03/05 13:43:28 morcego
154 dnl Checking for text browser, so redhat-dok can work.
156 dnl Revision 1.30 2002/03/04 17:58:01 oes
157 dnl Deleted _DEBUG and PID_FILE_PATH
159 dnl Revision 1.29 2002/02/28 14:20:53 oes
160 dnl Fixed detection of gethost*_r functions on Solaris
162 dnl Revision 1.28 2002/02/27 15:02:38 oes
163 dnl Incremented version number
165 dnl Revision 1.27 2002/01/10 12:35:18 oes
166 dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros
167 dnl to silence autoconf warnings. Numbers are for Intel/Linux.
168 dnl Is there a better way?
170 dnl Revision 1.26 2002/01/09 14:29:49 oes
171 dnl - Added AC_CHECK_FUNC tests for the availability of
172 dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and
173 dnl localtime_r, as well as AC_TRY_COMPILE tests to
174 dnl determine their signatures.
176 dnl - Fixed a bug with the init of CFLAGS that was
177 dnl reported by barsnick
179 dnl Revision 1.25 2002/01/04 15:27:18 oes
180 dnl Changed quoting of CODE_STATUS for use in make
182 dnl Revision 1.24 2001/12/30 14:07:31 steudten
183 dnl - Add signal handling (unix)
184 dnl - Add SIGHUP handler (unix)
185 dnl - Add creation of pidfile (unix)
186 dnl - Add action 'top' in rc file (RH)
187 dnl - Add entry 'SIGNALS' to manpage
188 dnl - Add exit message to logfile (unix)
190 dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt
191 dnl Change from "alpha" to "beta" in configure.in
193 dnl Revision 1.22 2001/12/01 11:24:01 jongfoster
194 dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
195 dnl make break in a more obvious way.
197 dnl Revision 1.21 2001/11/30 21:35:54 jongfoster
198 dnl Bumping version number to 2.9.10
200 dnl Revision 1.20 2001/10/23 21:24:09 jongfoster
201 dnl Support for FEATURE_CGI_EDIT_ACTIONS
203 dnl Revision 1.19 2001/10/07 15:33:14 oes
204 dnl Removed FEATURE_DENY_GZIP
205 dnl Bumped up version number
207 dnl Revision 1.18 2001/09/13 13:10:24 steudten
209 dnl PreWork for Debug Interface.
210 dnl Add new option "--with-debug" to enable debugging (flags aso.)
212 dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt
213 dnl Mac OSX (Darwin) support added.
215 dnl Revision 1.16 2001/09/12 22:55:45 joergs
216 dnl AmigaOS support added.
218 dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt
220 dnl OS/2 port: update autoconf'd support for the platform.
222 dnl Revision 1.14 2001/07/30 22:12:11 jongfoster
223 dnl Fixing Solaris build (I hope) and tidying up #defines:
224 dnl - All feature #defines are now of the form FEATURE_xxx
225 dnl - Permanently turned off WIN_GUI_EDIT
226 dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
228 dnl Revision 1.13 2001/07/29 17:09:17 jongfoster
229 dnl Major changes to build system in order to fix these bugs:
230 dnl - pthreads under Linux was broken - changed -lpthread to -pthread
231 dnl - Compiling in MinGW32 mode under CygWin now correctly detects
232 dnl which shared libraries are available
233 dnl - Solaris support (?) (Not tested under Solaris yet)
235 dnl Revision 1.12 2001/07/25 19:16:27 oes
236 dnl Bumping version number to 2.9.8
238 dnl Revision 1.11 2001/07/21 18:00:07 jongfoster
239 dnl Bumping version number to 2.9.7
241 dnl Revision 1.10 2001/07/18 17:25:04 oes
244 dnl Revision 1.9 2001/07/15 19:45:13 jongfoster
245 dnl Added support for linking with POSIX threads library
247 dnl Revision 1.8 2001/07/15 17:54:29 jongfoster
248 dnl Renaming #define STATIC to STATIC_PCRE
249 dnl Adding new #define FEATURE_PTHREAD that will be used to enable
250 dnl POSIX threads support.
252 dnl Revision 1.7 2001/07/13 13:58:05 oes
253 dnl Completely reorganized the selection scheme for
254 dnl pcre, pcreposix, pcrs and gnu_regex:
256 dnl The presence of shared pcre, pcreposix or pcrs
257 dnl libraried is now autodetected. Additionally, the
258 dnl user can enforce using the built-in static variants
259 dnl by specifying --disable-dynamic-(pcre|pcrs).
260 dnl Care is taken to avoid that pcre is dyn, while pcreposix
261 dnl is static, if both are used and that pcrs is static if
264 dnl The choice between pcre, gnu or no regex for actionsfile
265 dnl URL matching is now via
266 dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the
267 dnl default being pcre.
269 dnl Revision 1.6 2001/06/29 21:56:40 oes
272 dnl Revision 1.5 2001/06/29 13:26:27 oes
273 dnl Introduced #define CODE_STATUS
275 dnl Revision 1.4 2001/05/29 09:50:24 jongfoster
276 dnl Unified blocklist/imagelist/permissionslist.
277 dnl File format is still under discussion, but the internal changes
278 dnl are (mostly) done.
280 dnl Also modified interceptor behaviour:
281 dnl - We now intercept all URLs beginning with one of the following
282 dnl prefixes (and *only* these prefixes):
284 dnl * http://ijbswa.sf.net/config/
285 dnl * http://ijbswa.sourceforge.net/config/
286 dnl - New interceptors "home page" - go to http://i.j.b/ to see it.
287 dnl - Internal changes so that intercepted and fast redirect pages
288 dnl are not replaced with an image.
289 dnl - Interceptors now have the option to send a binary page direct
290 dnl to the client. (i.e. ijb-send-banner uses this)
291 dnl - Implemented show-url-info interceptor. (Which is why I needed
292 dnl the above interceptors changes - a typical URL is
293 dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
294 dnl The previous mechanism would not have intercepted that, and
295 dnl if it had been intercepted then it then it would have replaced
296 dnl it with an image.)
298 dnl Revision 1.3 2001/05/22 18:46:04 oes
300 dnl - Enabled filtering banners by size rather than URL
301 dnl by adding patterns that replace all standard banner
302 dnl sizes with the "Junkbuster" gif to the re_filterfile
304 dnl - Enabled filtering WebBugs by providing a pattern
305 dnl which kills all 1x1 images
307 dnl - Added support for PCRE_UNGREEDY behaviour to pcrs,
308 dnl which is selected by the (nonstandard and therefore
309 dnl capital) letter 'U' in the option string.
310 dnl It causes the quantifiers to be ungreedy by default.
311 dnl Appending a ? turns back to greedy (!).
313 dnl - Added a new interceptor ijb-send-banner, which
314 dnl sends back the "Junkbuster" gif. Without imagelist or
315 dnl MSIE detection support, or if tinygif = 1, or the
316 dnl URL isn't recognized as an imageurl, a lame HTML
317 dnl explanation is sent instead.
319 dnl - Added new feature, which permits blocking remote
320 dnl script redirects and firing back a local redirect
322 dnl The feature is conditionally compiled, i.e. it
323 dnl can be disabled with --disable-fast-redirects,
324 dnl plus it must be activated by a "fast-redirects"
325 dnl line in the config file, has its own log level
326 dnl and of course wants to be displayed by show-proxy-args
327 dnl Note: Boy, all the #ifdefs in 1001 locations and
328 dnl all the fumbling with configure.in and acconfig.h
329 dnl were *way* more work than the feature itself :-(
331 dnl - Because a generic redirect template was needed for
332 dnl this, tinygif = 3 now uses the same.
334 dnl - Moved GIFs, and other static HTTP response templates
337 dnl - Some minor fixes
339 dnl - Removed some >400 CRs again (Jon, you really worked
342 dnl Revision 1.2 2001/05/20 01:21:20 jongfoster
343 dnl Version 2.9.4 checkin.
344 dnl - Merged popupfile and cookiefile, and added control over PCRS
345 dnl filtering, in new "permissionsfile".
346 dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
347 dnl file error you now get a message box (in the Win32 GUI) rather
348 dnl than the program exiting with no explanation.
349 dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header
351 dnl - Removed tabs from "config"
352 dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition.
353 dnl - Bumped up version number.
355 dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes
356 dnl Initial import of version 2.9.3 source tree
361 dnl =================================================================
362 dnl AutoConf Initialization
363 dnl =================================================================
365 AC_REVISION($Revision: 1.66 $)
368 if test ! -f config.h.in; then
369 echo "You need to run autoheader first. "
370 echo -n "Shall I do this for you now? (y/n) "
372 if test $answer != "y"; then
379 AC_CONFIG_HEADER([config.h])
384 AC_ARG_WITH(docbook, dnl
385 --with-docbook=[[yes|no|directory]]
386 Enable docbook documentation creation
387 (default = yes, for gnu and linux),[dnl
388 case "$with_docbook" in
398 AC_ARG_WITH(db2html, dnl
399 --with-db2html=<path/executable>
400 Set the location of the docbook to html converter
401 (default = search),[dnl
405 dnl =================================================================
406 dnl Application version number
407 dnl =================================================================
414 dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
415 dnl used for CGI output
417 dnl =================================================================
418 dnl Substitute the version numbers
419 dnl =================================================================
421 AC_SUBST(VERSION_MAJOR)
422 AC_SUBST(VERSION_MINOR)
423 AC_SUBST(VERSION_POINT)
424 AC_SUBST(CODE_STATUS)
427 AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
428 AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR})
429 AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT})
430 AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
431 AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
433 dnl =================================================================
434 dnl Checks for programs needed to build.
435 dnl =================================================================
442 AC_CHECK_PROG(GDB,gdb,yes,no)
444 dnl =================================================================
445 dnl debug, gcc and gdb support
446 dnl =================================================================
449 [ --with-debug Enable debug mode],
451 if test "x$withval" != "xno" ; then
452 if test $ac_cv_prog_cc_g = yes; then
453 if test "$GCC" = yes; then
459 CFLAGS="$CFLAGS -Wshadow -Wconversion"
467 if test "X$CFLAGS" = "X"; then # if CFLAGS are unset
468 if test "$GCC" = yes; then
478 [ --with-user=privoxy Set user under which privoxy run],
480 if test "x$withval" != "xyes"; then
483 AC_MSG_ERROR(We need a user if you give me this parameter)
493 [ --with-group=privoxy Set group for privoxy],
495 if test "x$withval" != "xyes"; then
498 AC_MSG_ERROR(We need a group if you give me this parameter)
506 dnl =================================================================
507 dnl additional gcc flags
508 dnl =================================================================
511 CFLAGS="-pipe $CFLAGS"
515 dnl =================================================================
517 dnl =================================================================
519 dnl Must do this first.
521 dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler
522 dnl into Cygwin or MinGW32 modes. Depending on the mode selected,
523 dnl the compiler will use completely different sets of library
524 dnl and include files.
526 dnl =================================================================
531 if test "$MINGW32" = "yes"; then
534 if test "$CYGWIN" = "yes"; then
541 if test $dodk = auto; then
543 if test $target_type = unix; then
552 dnl Decide what to do based on target_type
553 dnl Note: PTHREAD_LIB is always set, even if pthread is disabled.
554 dnl This is because we don't know yet whether pthread is enabled.
556 AC_ARG_ENABLE(mingw32,
557 [ --enable-mingw32 Use mingw32 for a Windows GUI],
558 [if test $enableval = yes; then
562 if test $target_type = mingw; then
564 SPECIAL_CFLAGS="-mwindows -mno-cygwin"
565 PTHREAD_LIB=-lpthreadGC
566 echo "Using mingw32 (Win32 GUI)"
569 if test $target_type = cygwin; then
570 SPECIAL_CFLAGS="-mno-win32"
572 echo "Using Cygnus (Win32 command line)"
575 PTHREAD_LIB=-lpthread
580 dnl Checking which text html browser we have avaliable
581 if test $dodk != no; then
582 AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
583 if test "$WDUMP" = false; then
584 AC_MSG_ERROR(You need some kind of text browser to continue \(w3m, lynx and links are supported\))
586 if test $DB2HTML = false; then
587 dnl We need to clean the variable, otherwise AC_CHECK_PROGS
590 AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false)
596 dnl If we use rpm, we need to check where %_topdir is
597 AC_CHECK_PROGS(RPMBIN,rpm,false)
598 if test $RPMBIN != false; then
599 RPM_BASE=`rpm --eval "%{_topdir}"`
600 if test "$RPM_BASE" = ""; then
601 RPM_BASE=/usr/src/redhat
606 dnl Check for jade, so we can build the documentation
607 AC_CHECK_PROGS(JADEBIN,jade openjade,false)
610 dnl Check for man2html for docs.
611 AC_CHECK_PROGS(MAN2HTML,man2html,false)
614 dnl Checking for the docbook.dsl stylesheet file
615 dnl It is still not portable (directory slash)
617 if test $dodk = yes; then
618 if test $DKPREFIX = none; then
619 for i in /usr/share/sgml/docbook/dsssl-stylesheets /usr/share/sgml/docbkdsl /usr/share/sgml/docbook-dsssl; do
620 echo -n "checking for $i/html/docbook.dsl..."
621 if test -f $i/html/docbook.dsl; then
629 # where are the catalogs?
630 for i in /usr/share/sgml/CATALOG.docbk30 /usr/share/sgml/CATALOG.docbk31; do
631 echo -n "checking for $i..."
634 JADECAT="$JADECAT -c $i"
644 dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
645 old_CFLAGS_nospecial=$CFLAGS
646 CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
648 # Hack to force AutoConf to use the CFLAGS we just set
649 dnl Warning: This may break with a future version of Autoconf
650 dnl Tested with autoconf 2.13
651 ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS'
652 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
653 ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
656 dnl =================================================================
658 dnl =================================================================
660 AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no])
662 AC_ARG_ENABLE(pthread,
663 [ --disable-pthread Don't use POSIX threads (pthreads)],
664 [if test $enableval = no; then
669 if test $have_pthread = yes; then
671 AC_DEFINE(FEATURE_PTHREAD)
672 echo Using POSIX threads
673 if test "$GCC" = "yes"; then
674 # Set a GCC specific switch:
675 if test "$target_type" = "unix"; then
676 # This compiler switch makes Linux thread-safe
677 # Don't know about other OS's? Is this switch
680 SPECIAL_CFLAGS="-pthread"
685 echo Using native threads
688 AC_SUBST(PTHREAD_ONLY)
690 dnl =================================================================
691 dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
692 dnl gmtime and localtime
693 dnl =================================================================
695 dnl Next line needed to find the gethost*_r functions on Solaris
696 AC_CHECK_LIB(nsl, gethostbyname)
698 AC_CHECK_FUNC(gethostbyaddr_r, [
699 AC_MSG_CHECKING([signature of gethostbyaddr_r])
703 struct hostent *h, *hp;
706 (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e)
708 AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS)
709 AC_MSG_RESULT([8 args])
717 (void) gethostbyaddr_r(a, l, t, h, b, bl, &e)
719 AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS)
720 AC_MSG_RESULT([7 args])
725 struct hostent_data *d;
729 (void) gethostbyaddr_r(a, l, t, h, d)
731 AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS)
732 AC_MSG_RESULT([5 args])
734 AC_MSG_RESULT(unrecognised)
742 AC_CHECK_FUNC(gethostbyname_r, [
743 AC_MSG_CHECKING([signature of gethostbyname_r])
747 struct hostent *h, *r;
750 (void) gethostbyname_r(n, h, b, bl, &r, &e)
752 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS)
753 AC_MSG_RESULT([6 args])
761 (void) gethostbyname_r(n, h, b, bl, &e)
763 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS)
764 AC_MSG_RESULT([5 args])
769 struct hostent_data *d;
772 (void) gethostbyname_r(n, h, d)
774 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS)
775 AC_MSG_RESULT([3 args])
777 AC_MSG_RESULT(unrecognised)
785 AC_CHECK_FUNC(gmtime_r, [
786 AC_MSG_CHECKING([signature of gmtime_r])
792 (void) gmtime_r(t, tm)
795 AC_DEFINE(HAVE_GMTIME_R)
797 AC_MSG_RESULT(unrecognised)
803 AC_CHECK_FUNC(localtime_r, [
804 AC_MSG_CHECKING([signature of localtime_r])
810 (void) localtime_r(t, tm)
813 AC_DEFINE(HAVE_LOCALTIME_R)
815 AC_MSG_RESULT(unrecognised)
821 dnl =================================================================
823 dnl FIXME: Not tested on Solaris yet...
824 dnl ISFIXED: Have tested it on Solaris, but there are other ways to
825 dnl make these checks generic, e.g.:
826 dnl AC_CHECK_FUNC(getsockopt, , AC_CHECK_LIB(socket, getsockopt))
827 dnl (Moritz Barsnick <moritz@barsnick.net>)
828 dnl =================================================================
834 *-solaris*) SOCKET_LIB="-lsocket -lnsl"
835 AC_DEFINE(__EXTENSIONS__)
836 if test "$GCC" = "yes"; then
837 # Set a GCC specific switch:
838 # This compiler switch makes Solaris thread-safe
840 SPECIAL_CFLAGS="-pthreads"
842 # What do we do without GCC? Guess this:
843 SPECIAL_CFLAGS="-D_REENTRANT"
850 dnl =================================================================
851 dnl Solaris problem, and others perhaps (socklen_t is undefined)
852 dnl =================================================================
854 AC_MSG_CHECKING([for socklen_t])
855 AC_EGREP_HEADER(socklen_t, sys/socket.h, AC_MSG_RESULT([yes]),
857 AC_DEFINE(socklen_t,int,
858 [ Define to 'int' if <sys/socket.h> doesn't have it. ]))
861 dnl =================================================================
863 dnl =================================================================
866 *-os2-emx*) SOCKET_LIB=-lsocket
872 dnl =================================================================
874 dnl =================================================================
877 *-apple-darwin*) SPECIAL_CFLAGS="-Dunix"
881 dnl =================================================================
883 dnl =================================================================
888 *-amigaos) AMIGAOS_ONLY=
892 AC_SUBST(AMIGAOS_ONLY)
894 dnl =================================================================
895 dnl Check for standard compiler stuff
896 dnl =================================================================
907 AC_CHECK_SIZEOF(int, 4)
908 AC_CHECK_SIZEOF(char *, 4)
909 AC_CHECK_SIZEOF(long, 4)
910 AC_CHECK_SIZEOF(long long, 8)
911 AC_CHECK_SIZEOF(size_t, 4)
913 dnl Checks for header files.
914 dnl AC_HEADER_SYS_WAIT
915 dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
916 AC_CHECK_HEADERS([OS.h arpa/inet.h errno.h fcntl.h limits.h locale.h netdb.h netinet/in.h stddef.h stdlib.h string.h sys/ioctl.h sys/socket.h sys/time.h sys/timeb.h sys/wait.h unistd.h])
918 dnl Checks for library functions.
920 dnl AC_CHECK_FUNC(strstr)
921 dnl bcopy and memmove are for PCRE
922 AC_CHECK_FUNCS([strerror bcopy memmove])
923 AC_PROG_GCC_TRADITIONAL
924 dnl uncommenting does not work for swa. suse linux
928 dnl uncommenting does not work for swa. suse linux
930 AC_CHECK_FUNCS([atexit getcwd gethostbyaddr gethostbyname inet_ntoa localtime_r memchr memmove memset regcomp select setlocale socket strchr strdup strerror strftime strstr strtoul])
933 dnl =================================================================
934 dnl Checks for libraries.
935 dnl =================================================================
936 dnl Note: Some systems may have the library but not the system header
937 dnl file, so we must check for both.
938 dnl Also check for correct version
939 AC_CHECK_LIB(pcre, pcre_compile, [AC_CHECK_HEADER(pcre.h, [AC_EGREP_HEADER(pcre_fullinfo, pcre.h, [have_pcre=yes], [AC_MSG_WARN([[pcre old version installed]]); have_pcre=no])], [have_pcre=no])], [have_pcre=no])
940 AC_CHECK_LIB(pcreposix, regcomp, [AC_CHECK_HEADER(pcreposix.h, [AC_EGREP_HEADER(pcreposix_regerror, pcreposix.h, [AC_MSG_WARN([[pcreposix old version installed]]); have_pcreposix=no], [have_pcreposix=yes])], [have_pcreposix=no])], [have_pcreposix=no], -lpcre)
941 AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no])
944 dnl =================================================================
946 dnl =================================================================
950 dnl =================================================================
952 dnl =================================================================
954 AC_ARG_ENABLE(toggle,
955 [ --disable-toggle Don't support temporary disable],
956 [if test $enableval = yes; then
957 AC_DEFINE(FEATURE_TOGGLE)
958 fi],AC_DEFINE(FEATURE_TOGGLE))
961 [ --disable-force Don't allow single-page disable],
962 [if test $enableval = yes; then
963 AC_DEFINE(FEATURE_FORCE_LOAD)
964 fi],AC_DEFINE(FEATURE_FORCE_LOAD))
966 AC_ARG_ENABLE(fast-redirects,
967 [ --disable-fast-redirects Don't support fast redirects],
968 [if test $enableval = yes; then
969 AC_DEFINE(FEATURE_FAST_REDIRECTS)
970 fi], AC_DEFINE(FEATURE_FAST_REDIRECTS))
972 AC_ARG_ENABLE(killpopup,
973 [ --disable-killpopup Never block popups],
974 [if test $enableval = yes; then
975 AC_DEFINE(FEATURE_KILL_POPUPS)
976 fi],AC_DEFINE(FEATURE_KILL_POPUPS))
979 [ --disable-stats Don't keep statistics],
980 [if test $enableval = yes; then
981 AC_DEFINE(FEATURE_STATISTICS)
982 fi],AC_DEFINE(FEATURE_STATISTICS))
984 AC_ARG_ENABLE(ie-images,
985 [ --disable-ie-images Don't auto-detect whether a request from MS Internet
986 Explorer is for an image or HTML.],
987 [if test $enableval = yes; then
988 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
990 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE))
992 AC_ARG_ENABLE(image-blocking,
993 [ --disable-image-blocking Don't try to figure out whether a request is
994 for an image or HTML - assume HTML.],
995 [if test $enableval = yes; then
996 AC_DEFINE(FEATURE_IMAGE_BLOCKING)
998 AC_DEFINE(FEATURE_IMAGE_BLOCKING))
1000 AC_ARG_ENABLE(acl-files,
1001 [ --disable-acl-files Prevents the use of ACL files to control access to
1002 the proxy by IP address.],
1003 [if test $enableval = yes; then
1004 AC_DEFINE(FEATURE_ACL)
1006 AC_DEFINE(FEATURE_ACL))
1008 AC_ARG_ENABLE(trust-files,
1009 [ --disable-trust-files Prevents the use of trust files.],
1010 [if test $enableval = yes; then
1011 AC_DEFINE(FEATURE_TRUST)
1013 AC_DEFINE(FEATURE_TRUST))
1015 AC_ARG_ENABLE(jar-files,
1016 [ --disable-jar-files Prevents the use of jar files to capture cookies.],
1017 [if test $enableval = yes; then
1018 AC_DEFINE(FEATURE_COOKIE_JAR)
1020 AC_DEFINE(FEATURE_COOKIE_JAR))
1022 AC_ARG_ENABLE(editor,
1023 [ --disable-editor Prevents the use of the web-based actions file
1024 editor and web-based temporary disable setting.],
1025 [if test $enableval = yes; then
1026 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)
1028 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS))
1030 AC_ARG_ENABLE(no-gifs,
1031 [ --enable-no-gifs Use politically correct PNG format instead of GIF
1032 for built-in images. May not work with all browsers.],
1033 [if test $enableval = yes; then
1034 AC_DEFINE(FEATURE_NO_GIFS)
1038 dnl pcre/pcrs is needed for CGI anyway, so
1039 dnl the choice is only between static and
1042 AC_ARG_ENABLE(dynamic-pcre,
1043 [ --disable-dynamic-pcre Use the built-in, static pcre, even if
1044 libpcre is available],
1045 [ if test $enableval = "no"; then have_pcre=no; fi ])
1047 AC_ARG_ENABLE(dynamic-pcrs,
1048 [ --disable-dynamic-pcrs Use the built-in, static pcrs, even if
1049 libpcrs is available],
1050 [ if test $enableval = "no"; then have_pcrs=no; fi ])
1053 # If we have libpcre and either we also have pcreposix or
1054 # we don't need pcreposix, then link pcre dynamically; else
1055 # build it and link statically
1057 if test $have_pcre = "yes"; then
1058 echo "using libpcre"
1061 LIBS="$LIBS -lpcre -lpcreposix"
1063 echo "using built-in static pcre"
1065 AC_DEFINE(STATIC_PCRE)
1069 # If we have libpcrs and pcre is linked dynamically
1070 # then also link pcrs dynamically, else build and link
1073 if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then
1074 echo "using libpcrs"
1078 echo "using built-in static pcrs"
1079 AC_DEFINE(STATIC_PCRS)
1083 AC_SUBST(STATIC_PCRE_ONLY)
1084 AC_SUBST(STATIC_PCRS_ONLY)
1086 dnl =================================================================
1087 dnl Final cleanup and output
1088 dnl =================================================================
1090 dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately
1092 CFLAGS=$old_CFLAGS_nospecial
1093 AC_SUBST(SPECIAL_CFLAGS)
1095 AC_SUBST(PTHREAD_LIB)
1097 AC_OUTPUT(GNUmakefile doc/source/ldp.dsl)