1 dnl Process this file with autoconf to produce a configure script.
3 dnl $Id: configure.in,v 1.60 2002/04/09 16:38:49 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.60 2002/04/09 16:38:49 oes
32 dnl Added detection of missing config.h.in
34 dnl Revision 1.59 2002/04/06 20:23:55 jongfoster
35 dnl Removing unnessacery tests (C++, ranlib)
37 dnl Revision 1.58 2002/04/04 20:49:20 swa
38 dnl attempt to consolidate the
39 dnl different dokbook versions.
41 dnl Revision 1.57 2002/04/04 00:36:36 gliptak
42 dnl always use pcre for matching
44 dnl Revision 1.56 2002/04/03 22:28:03 gliptak
45 dnl Removed references to gnu_regex
47 dnl Revision 1.55 2002/04/03 03:54:38 gliptak
48 dnl Checking pcre version
50 dnl Revision 1.54 2002/04/01 00:54:24 gliptak
51 dnl More changes needed around regex support.
53 dnl Revision 1.53 2002/03/29 20:09:01 swa
56 dnl Revision 1.52 2002/03/29 19:51:40 gliptak
57 dnl Correcting compile problem with Debian
59 dnl Revision 1.51 2002/03/28 20:43:00 swa
60 dnl set make correctly
62 dnl Revision 1.50 2002/03/27 03:03:45 hal9
63 dnl Add test for man2html
65 dnl Revision 1.49 2002/03/27 02:19:52 david__schmidt
66 dnl More Mac OSX support:
67 dnl - Get rid of extraneous, noisy -pthread warnings
68 dnl - Define unix so we get oes' unix-tagged changes
70 dnl Revision 1.48 2002/03/26 22:29:54 swa
71 dnl we have a new homepage!
73 dnl Revision 1.47 2002/03/26 16:41:00 hal9
74 dnl Upped RPM Release to 3 (need to build new RH packages)
76 dnl Revision 1.46 2002/03/24 18:55:06 jongfoster
77 dnl Making Docbook work under Windows
79 dnl Revision 1.45 2002/03/24 14:19:55 swa
80 dnl set rpm package release in configure.in. nowhere else.
82 dnl Revision 1.44 2002/03/24 13:25:43 swa
83 dnl name change related issues
85 dnl Revision 1.43 2002/03/24 12:56:21 swa
86 dnl name change related issues.
88 dnl Revision 1.42 2002/03/22 18:11:37 jongfoster
89 dnl Bumping version number to 2.9.12
91 dnl Revision 1.41 2002/03/19 19:30:04 morcego
92 dnl - Fixing stylesheet checking on configure. If it is found, no further checks
95 dnl - configure will now check for db2html or docbook2html (should work now
96 dnl on SuSe without the docbktls package)
98 dnl Revision 1.40 2002/03/09 14:33:30 oes
99 dnl Fixing the (harmless) AC_CHECK_FILE warnings
101 dnl Revision 1.39 2002/03/08 16:46:13 oes
102 dnl Added --enable-no-gifs
104 dnl Revision 1.38 2002/03/08 14:13:50 morcego
105 dnl Fixing configure, to remove a command not found error.
107 dnl Revision 1.37 2002/03/08 12:58:21 oes
108 dnl Tiny bugfix in AC_ARG_WITH(debug)
110 dnl Revision 1.36 2002/03/06 23:50:36 morcego
111 dnl Will not test for a text browser if we are not using docbook.
113 dnl Revision 1.35 2002/03/06 21:55:52 morcego
114 dnl New configure option: --with-docbook=(yes|no|directory)
115 dnl Preliminary new platform detection code included. Will work with the
116 dnl old one for now. No use just trowing it away
118 dnl Revision 1.34 2002/03/06 20:57:00 morcego
119 dnl Fixing detection of stylesheets on SuSe.
121 dnl Revision 1.33 2002/03/05 17:31:11 morcego
122 dnl Search for docbook.dsl. Should solve portability problems for SuSe.
124 dnl Revision 1.32 2002/03/05 14:07:43 morcego
125 dnl configure now detects rpm topdir, and change GNUmakefile acordingly
126 dnl (based on sugestion by Sarantis Paskalis)
128 dnl Revision 1.31 2002/03/05 13:43:28 morcego
129 dnl Checking for text browser, so redhat-dok can work.
131 dnl Revision 1.30 2002/03/04 17:58:01 oes
132 dnl Deleted _DEBUG and PID_FILE_PATH
134 dnl Revision 1.29 2002/02/28 14:20:53 oes
135 dnl Fixed detection of gethost*_r functions on Solaris
137 dnl Revision 1.28 2002/02/27 15:02:38 oes
138 dnl Incremented version number
140 dnl Revision 1.27 2002/01/10 12:35:18 oes
141 dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros
142 dnl to silence autoconf warnings. Numbers are for Intel/Linux.
143 dnl Is there a better way?
145 dnl Revision 1.26 2002/01/09 14:29:49 oes
146 dnl - Added AC_CHECK_FUNC tests for the availability of
147 dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and
148 dnl localtime_r, as well as AC_TRY_COMPILE tests to
149 dnl determine their signatures.
151 dnl - Fixed a bug with the init of CFLAGS that was
152 dnl reported by barsnick
154 dnl Revision 1.25 2002/01/04 15:27:18 oes
155 dnl Changed quoting of CODE_STATUS for use in make
157 dnl Revision 1.24 2001/12/30 14:07:31 steudten
158 dnl - Add signal handling (unix)
159 dnl - Add SIGHUP handler (unix)
160 dnl - Add creation of pidfile (unix)
161 dnl - Add action 'top' in rc file (RH)
162 dnl - Add entry 'SIGNALS' to manpage
163 dnl - Add exit message to logfile (unix)
165 dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt
166 dnl Change from "alpha" to "beta" in configure.in
168 dnl Revision 1.22 2001/12/01 11:24:01 jongfoster
169 dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
170 dnl make break in a more obvious way.
172 dnl Revision 1.21 2001/11/30 21:35:54 jongfoster
173 dnl Bumping version number to 2.9.10
175 dnl Revision 1.20 2001/10/23 21:24:09 jongfoster
176 dnl Support for FEATURE_CGI_EDIT_ACTIONS
178 dnl Revision 1.19 2001/10/07 15:33:14 oes
179 dnl Removed FEATURE_DENY_GZIP
180 dnl Bumped up version number
182 dnl Revision 1.18 2001/09/13 13:10:24 steudten
184 dnl PreWork for Debug Interface.
185 dnl Add new option "--with-debug" to enable debugging (flags aso.)
187 dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt
188 dnl Mac OSX (Darwin) support added.
190 dnl Revision 1.16 2001/09/12 22:55:45 joergs
191 dnl AmigaOS support added.
193 dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt
195 dnl OS/2 port: update autoconf'd support for the platform.
197 dnl Revision 1.14 2001/07/30 22:12:11 jongfoster
198 dnl Fixing Solaris build (I hope) and tidying up #defines:
199 dnl - All feature #defines are now of the form FEATURE_xxx
200 dnl - Permanently turned off WIN_GUI_EDIT
201 dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
203 dnl Revision 1.13 2001/07/29 17:09:17 jongfoster
204 dnl Major changes to build system in order to fix these bugs:
205 dnl - pthreads under Linux was broken - changed -lpthread to -pthread
206 dnl - Compiling in MinGW32 mode under CygWin now correctly detects
207 dnl which shared libraries are available
208 dnl - Solaris support (?) (Not tested under Solaris yet)
210 dnl Revision 1.12 2001/07/25 19:16:27 oes
211 dnl Bumping version number to 2.9.8
213 dnl Revision 1.11 2001/07/21 18:00:07 jongfoster
214 dnl Bumping version number to 2.9.7
216 dnl Revision 1.10 2001/07/18 17:25:04 oes
219 dnl Revision 1.9 2001/07/15 19:45:13 jongfoster
220 dnl Added support for linking with POSIX threads library
222 dnl Revision 1.8 2001/07/15 17:54:29 jongfoster
223 dnl Renaming #define STATIC to STATIC_PCRE
224 dnl Adding new #define FEATURE_PTHREAD that will be used to enable
225 dnl POSIX threads support.
227 dnl Revision 1.7 2001/07/13 13:58:05 oes
228 dnl Completely reorganized the selection scheme for
229 dnl pcre, pcreposix, pcrs and gnu_regex:
231 dnl The presence of shared pcre, pcreposix or pcrs
232 dnl libraried is now autodetected. Additionally, the
233 dnl user can enforce using the built-in static variants
234 dnl by specifying --disable-dynamic-(pcre|pcrs).
235 dnl Care is taken to avoid that pcre is dyn, while pcreposix
236 dnl is static, if both are used and that pcrs is static if
239 dnl The choice between pcre, gnu or no regex for actionsfile
240 dnl URL matching is now via
241 dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the
242 dnl default being pcre.
244 dnl Revision 1.6 2001/06/29 21:56:40 oes
247 dnl Revision 1.5 2001/06/29 13:26:27 oes
248 dnl Introduced #define CODE_STATUS
250 dnl Revision 1.4 2001/05/29 09:50:24 jongfoster
251 dnl Unified blocklist/imagelist/permissionslist.
252 dnl File format is still under discussion, but the internal changes
253 dnl are (mostly) done.
255 dnl Also modified interceptor behaviour:
256 dnl - We now intercept all URLs beginning with one of the following
257 dnl prefixes (and *only* these prefixes):
259 dnl * http://ijbswa.sf.net/config/
260 dnl * http://ijbswa.sourceforge.net/config/
261 dnl - New interceptors "home page" - go to http://i.j.b/ to see it.
262 dnl - Internal changes so that intercepted and fast redirect pages
263 dnl are not replaced with an image.
264 dnl - Interceptors now have the option to send a binary page direct
265 dnl to the client. (i.e. ijb-send-banner uses this)
266 dnl - Implemented show-url-info interceptor. (Which is why I needed
267 dnl the above interceptors changes - a typical URL is
268 dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
269 dnl The previous mechanism would not have intercepted that, and
270 dnl if it had been intercepted then it then it would have replaced
271 dnl it with an image.)
273 dnl Revision 1.3 2001/05/22 18:46:04 oes
275 dnl - Enabled filtering banners by size rather than URL
276 dnl by adding patterns that replace all standard banner
277 dnl sizes with the "Junkbuster" gif to the re_filterfile
279 dnl - Enabled filtering WebBugs by providing a pattern
280 dnl which kills all 1x1 images
282 dnl - Added support for PCRE_UNGREEDY behaviour to pcrs,
283 dnl which is selected by the (nonstandard and therefore
284 dnl capital) letter 'U' in the option string.
285 dnl It causes the quantifiers to be ungreedy by default.
286 dnl Appending a ? turns back to greedy (!).
288 dnl - Added a new interceptor ijb-send-banner, which
289 dnl sends back the "Junkbuster" gif. Without imagelist or
290 dnl MSIE detection support, or if tinygif = 1, or the
291 dnl URL isn't recognized as an imageurl, a lame HTML
292 dnl explanation is sent instead.
294 dnl - Added new feature, which permits blocking remote
295 dnl script redirects and firing back a local redirect
297 dnl The feature is conditionally compiled, i.e. it
298 dnl can be disabled with --disable-fast-redirects,
299 dnl plus it must be activated by a "fast-redirects"
300 dnl line in the config file, has its own log level
301 dnl and of course wants to be displayed by show-proxy-args
302 dnl Note: Boy, all the #ifdefs in 1001 locations and
303 dnl all the fumbling with configure.in and acconfig.h
304 dnl were *way* more work than the feature itself :-(
306 dnl - Because a generic redirect template was needed for
307 dnl this, tinygif = 3 now uses the same.
309 dnl - Moved GIFs, and other static HTTP response templates
312 dnl - Some minor fixes
314 dnl - Removed some >400 CRs again (Jon, you really worked
317 dnl Revision 1.2 2001/05/20 01:21:20 jongfoster
318 dnl Version 2.9.4 checkin.
319 dnl - Merged popupfile and cookiefile, and added control over PCRS
320 dnl filtering, in new "permissionsfile".
321 dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
322 dnl file error you now get a message box (in the Win32 GUI) rather
323 dnl than the program exiting with no explanation.
324 dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header
326 dnl - Removed tabs from "config"
327 dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition.
328 dnl - Bumped up version number.
330 dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes
331 dnl Initial import of version 2.9.3 source tree
336 dnl =================================================================
337 dnl AutoConf Initialization
338 dnl =================================================================
340 AC_REVISION($Revision: 1.60 $)
343 if test ! -f config.h.in; then
344 echo "You need to run autoheader first. "
345 echo -n "Shall I do this for you now? (y/n) "
347 if test $answer != "y"; then
354 AC_CONFIG_HEADER([config.h])
359 AC_ARG_WITH(docbook, dnl
360 --with-docbook=[[yes|no|directory]]
361 Enable docbook documentation creation
362 (default = yes, for gnu and linux),[dnl
363 case "$with_docbook" in
373 AC_ARG_WITH(db2html, dnl
374 --with-db2html=<path/executable>
375 Set the location of the docbook to html converter
376 (default = search),[dnl
380 dnl =================================================================
381 dnl Application version number
382 dnl =================================================================
387 VERSION_RPM_PACKAGE=5
390 dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
391 dnl used for CGI output
393 dnl =================================================================
394 dnl Substitute the version numbers
395 dnl =================================================================
397 AC_SUBST(VERSION_MAJOR)
398 AC_SUBST(VERSION_MINOR)
399 AC_SUBST(VERSION_POINT)
400 AC_SUBST(VERSION_RPM_PACKAGE)
401 AC_SUBST(CODE_STATUS)
404 AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
405 AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR})
406 AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT})
407 AC_DEFINE_UNQUOTED(VERSION_RPM_PACKAGE,${VERSION_RPM_PACKAGE})
408 AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
409 AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
411 dnl =================================================================
412 dnl Checks for programs needed to build.
413 dnl =================================================================
420 AC_CHECK_PROG(GDB,gdb,yes,no)
422 dnl =================================================================
423 dnl debug, gcc and gdb support
424 dnl =================================================================
427 [ --with-debug Enable debug mode],
429 if test "x$withval" != "xno" ; then
430 if test $ac_cv_prog_cc_g = yes; then
431 if test "$GCC" = yes; then
437 CFLAGS="$CFLAGS -Wshadow -Wconversion"
445 if test "X$CFLAGS" = "X"; then # if CFLAGS are unset
446 if test "$GCC" = yes; then
456 [ --with-user=privoxy Set user under which privoxy run],
458 if test "x$withval" != "xyes"; then
461 AC_MSG_ERROR(We need a user if you give me this parameter)
471 [ --with-group=privoxy Set group for privoxy],
473 if test "x$withval" != "xyes"; then
476 AC_MSG_ERROR(We need a group if you give me this parameter)
484 dnl =================================================================
485 dnl additional gcc flags
486 dnl =================================================================
489 CFLAGS="-pipe $CFLAGS"
493 dnl =================================================================
495 dnl =================================================================
497 dnl Must do this first.
499 dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler
500 dnl into Cygwin or MinGW32 modes. Depending on the mode selected,
501 dnl the compiler will use completely different sets of library
502 dnl and include files.
504 dnl =================================================================
509 if test "$MINGW32" = "yes"; then
512 if test "$CYGWIN" = "yes"; then
519 if test $dodk = auto; then
521 if test $target_type = unix; then
530 dnl Decide what to do based on target_type
531 dnl Note: PTHREAD_LIB is always set, even if pthread is disabled.
532 dnl This is because we don't know yet whether pthread is enabled.
534 AC_ARG_ENABLE(mingw32,
535 [ --enable-mingw32 Use mingw32 for a Windows GUI],
536 [if test $enableval = yes; then
540 if test $target_type = mingw; then
542 SPECIAL_CFLAGS="-mwindows -mno-cygwin"
543 PTHREAD_LIB=-lpthreadGC
544 echo "Using mingw32 (Win32 GUI)"
547 if test $target_type = cygwin; then
548 SPECIAL_CFLAGS="-mno-win32"
550 echo "Using Cygnus (Win32 command line)"
553 PTHREAD_LIB=-lpthread
558 dnl Checking which text html browser we have avaliable
559 if test $dodk != no; then
560 AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
561 if test "$WDUMP" = false; then
562 AC_MSG_ERROR(You need some kind of text browser to continue \(w3m, lynx and links are supported\))
564 if test $DB2HTML = false; then
565 dnl We need to clean the variable, otherwise AC_CHECK_PROGS
568 AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false)
574 dnl If we use rpm, we need to check where %_topdir is
575 AC_CHECK_PROGS(RPMBIN,rpm,false)
576 if test $RPMBIN != false; then
577 RPM_BASE=`rpm --eval "%{_topdir}"`
578 if test "$RPM_BASE" = ""; then
579 RPM_BASE=/usr/src/redhat
584 dnl Check for jade, so we can build the documentation
585 AC_CHECK_PROGS(JADEBIN,jade openjade,false)
588 dnl Check for man2html for docs.
589 AC_CHECK_PROGS(MAN2HTML,man2html,false)
592 dnl Checking for the docbook.dsl stylesheet file
593 dnl It is still not portable (directory slash)
595 if test $dodk = yes; then
596 if test $DKPREFIX = none; then
597 for i in /usr/share/sgml/docbook/dsssl-stylesheets /usr/share/sgml/docbkdsl /usr/share/sgml/docbook-dsssl; do
598 echo -n "checking for $i/html/docbook.dsl..."
599 if test -f $i/html/docbook.dsl; then
607 # where are the catalogs?
608 for i in /usr/share/sgml/CATALOG.docbk30 /usr/share/sgml/CATALOG.docbk31; do
609 echo -n "checking for $i..."
612 JADECAT="$JADECAT -c $i"
622 dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
623 old_CFLAGS_nospecial=$CFLAGS
624 CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
626 # Hack to force AutoConf to use the CFLAGS we just set
627 dnl Warning: This may break with a future version of Autoconf
628 dnl Tested with autoconf 2.13
629 ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS'
630 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
631 ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
634 dnl =================================================================
636 dnl =================================================================
638 AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no])
640 AC_ARG_ENABLE(pthread,
641 [ --disable-pthread Don't use POSIX threads (pthreads)],
642 [if test $enableval = no; then
647 if test $have_pthread = yes; then
649 AC_DEFINE(FEATURE_PTHREAD)
650 echo Using POSIX threads
651 if test "$GCC" = "yes"; then
652 # Set a GCC specific switch:
653 if test "$target_type" = "unix"; then
654 # This compiler switch makes Linux thread-safe
655 # Don't know about other OS's? Is this switch
658 SPECIAL_CFLAGS="-pthread"
663 echo Using native threads
666 AC_SUBST(PTHREAD_ONLY)
668 dnl =================================================================
669 dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
670 dnl gmtime and localtime
671 dnl =================================================================
673 dnl Next line needed to find the gethost*_r functions on Solaris
674 AC_CHECK_LIB(nsl, gethostbyname)
676 AC_CHECK_FUNC(gethostbyaddr_r, [
677 AC_MSG_CHECKING([signature of gethostbyaddr_r])
681 struct hostent *h, *hp;
684 (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e)
686 AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS)
687 AC_MSG_RESULT([8 args])
695 (void) gethostbyaddr_r(a, l, t, h, b, bl, &e)
697 AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS)
698 AC_MSG_RESULT([7 args])
703 struct hostent_data *d;
707 (void) gethostbyaddr_r(a, l, t, h, d)
709 AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS)
710 AC_MSG_RESULT([5 args])
712 AC_MSG_RESULT(unrecognised)
720 AC_CHECK_FUNC(gethostbyname_r, [
721 AC_MSG_CHECKING([signature of gethostbyname_r])
725 struct hostent *h, *r;
728 (void) gethostbyname_r(n, h, b, bl, &r, &e)
730 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS)
731 AC_MSG_RESULT([6 args])
739 (void) gethostbyname_r(n, h, b, bl, &e)
741 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS)
742 AC_MSG_RESULT([5 args])
747 struct hostent_data *d;
750 (void) gethostbyname_r(n, h, d)
752 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS)
753 AC_MSG_RESULT([3 args])
755 AC_MSG_RESULT(unrecognised)
763 AC_CHECK_FUNC(gmtime_r, [
764 AC_MSG_CHECKING([signature of gmtime_r])
770 (void) gmtime_r(t, tm)
773 AC_DEFINE(HAVE_GMTIME_R)
775 AC_MSG_RESULT(unrecognised)
781 AC_CHECK_FUNC(localtime_r, [
782 AC_MSG_CHECKING([signature of localtime_r])
788 (void) localtime_r(t, tm)
791 AC_DEFINE(HAVE_LOCALTIME_R)
793 AC_MSG_RESULT(unrecognised)
799 dnl =================================================================
801 dnl FIXME: Not tested on Solaris yet...
802 dnl =================================================================
808 *-solaris*) SOCKET_LIB="-lsocket -lnsl"
809 AC_DEFINE(__EXTENSIONS__)
810 if test "$GCC" = "yes"; then
811 # Set a GCC specific switch:
812 # This compiler switch makes Solaris thread-safe
814 SPECIAL_CFLAGS="-pthreads"
816 # What do we do without GCC? Guess this:
817 SPECIAL_CFLAGS="-D_REENTRANT"
824 dnl =================================================================
826 dnl =================================================================
829 *-os2-emx*) SOCKET_LIB=-lsocket
835 dnl =================================================================
837 dnl =================================================================
840 *-apple-darwin*) SPECIAL_CFLAGS="-Dunix"
844 dnl =================================================================
846 dnl =================================================================
851 *-amigaos) AMIGAOS_ONLY=
855 AC_SUBST(AMIGAOS_ONLY)
857 dnl =================================================================
858 dnl Check for standard compiler stuff
859 dnl =================================================================
870 AC_CHECK_SIZEOF(int, 4)
871 AC_CHECK_SIZEOF(char *, 4)
872 AC_CHECK_SIZEOF(long, 4)
873 AC_CHECK_SIZEOF(long long, 8)
874 AC_CHECK_SIZEOF(size_t, 4)
876 dnl Checks for header files.
877 dnl AC_HEADER_SYS_WAIT
878 dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
879 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])
881 dnl Checks for library functions.
883 dnl AC_CHECK_FUNC(strstr)
884 dnl bcopy and memmove are for PCRE
885 AC_CHECK_FUNCS([strerror bcopy memmove])
886 AC_PROG_GCC_TRADITIONAL
887 dnl uncommenting does not work for swa. suse linux
891 dnl uncommenting does not work for swa. suse linux
893 AC_CHECK_FUNCS([atexit getcwd gethostbyaddr gethostbyname inet_ntoa localtime_r memchr memmove memset regcomp select setlocale socket strchr strdup strerror strftime strstr strtoul])
896 dnl =================================================================
897 dnl Checks for libraries.
898 dnl =================================================================
899 dnl Note: Some systems may have the library but not the system header
900 dnl file, so we must check for both.
901 dnl Also check for correct version
902 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])
903 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)
904 AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no])
907 dnl =================================================================
909 dnl =================================================================
913 dnl =================================================================
915 dnl =================================================================
917 AC_ARG_ENABLE(toggle,
918 [ --disable-toggle Don't support temporary disable],
919 [if test $enableval = yes; then
920 AC_DEFINE(FEATURE_TOGGLE)
921 fi],AC_DEFINE(FEATURE_TOGGLE))
924 [ --disable-force Don't allow single-page disable],
925 [if test $enableval = yes; then
926 AC_DEFINE(FEATURE_FORCE_LOAD)
927 fi],AC_DEFINE(FEATURE_FORCE_LOAD))
929 AC_ARG_ENABLE(fast-redirects,
930 [ --disable-fast-redirects Don't support fast redirects],
931 [if test $enableval = yes; then
932 AC_DEFINE(FEATURE_FAST_REDIRECTS)
933 fi], AC_DEFINE(FEATURE_FAST_REDIRECTS))
935 AC_ARG_ENABLE(killpopup,
936 [ --disable-killpopup Never block popups],
937 [if test $enableval = yes; then
938 AC_DEFINE(FEATURE_KILL_POPUPS)
939 fi],AC_DEFINE(FEATURE_KILL_POPUPS))
942 [ --disable-stats Don't keep statistics],
943 [if test $enableval = yes; then
944 AC_DEFINE(FEATURE_STATISTICS)
945 fi],AC_DEFINE(FEATURE_STATISTICS))
947 AC_ARG_ENABLE(ie-images,
948 [ --disable-ie-images Don't auto-detect whether a request from MS Internet
949 Explorer is for an image or HTML.],
950 [if test $enableval = yes; then
951 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
953 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE))
955 AC_ARG_ENABLE(image-blocking,
956 [ --disable-image-blocking Don't try to figure out whether a request is
957 for an image or HTML - assume HTML.],
958 [if test $enableval = yes; then
959 AC_DEFINE(FEATURE_IMAGE_BLOCKING)
961 AC_DEFINE(FEATURE_IMAGE_BLOCKING))
963 AC_ARG_ENABLE(acl-files,
964 [ --disable-acl-files Prevents the use of ACL files to control access to
965 the proxy by IP address.],
966 [if test $enableval = yes; then
967 AC_DEFINE(FEATURE_ACL)
969 AC_DEFINE(FEATURE_ACL))
971 AC_ARG_ENABLE(trust-files,
972 [ --disable-trust-files Prevents the use of trust files.],
973 [if test $enableval = yes; then
974 AC_DEFINE(FEATURE_TRUST)
976 AC_DEFINE(FEATURE_TRUST))
978 AC_ARG_ENABLE(jar-files,
979 [ --disable-jar-files Prevents the use of jar files to capture cookies.],
980 [if test $enableval = yes; then
981 AC_DEFINE(FEATURE_COOKIE_JAR)
983 AC_DEFINE(FEATURE_COOKIE_JAR))
985 AC_ARG_ENABLE(editor,
986 [ --disable-editor Prevents the use of the web-based actions file
987 editor and web-based temporary disable setting.],
988 [if test $enableval = yes; then
989 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)
991 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS))
993 AC_ARG_ENABLE(no-gifs,
994 [ --enable-no-gifs Use politically correct PNG format instead of GIF
995 for built-in images. May not work with all browsers.],
996 [if test $enableval = yes; then
997 AC_DEFINE(FEATURE_NO_GIFS)
1001 dnl pcre/pcrs is needed for CGI anyway, so
1002 dnl the choice is only between static and
1005 AC_ARG_ENABLE(dynamic-pcre,
1006 [ --disable-dynamic-pcre Use the built-in, static pcre, even if
1007 libpcre is available],
1008 [ if test $enableval = "no"; then have_pcre=no; fi ])
1010 AC_ARG_ENABLE(dynamic-pcrs,
1011 [ --disable-dynamic-pcrs Use the built-in, static pcrs, even if
1012 libpcrs is available],
1013 [ if test $enableval = "no"; then have_pcrs=no; fi ])
1016 # If we have libpcre and either we also have pcreposix or
1017 # we don't need pcreposix, then link pcre dynamically; else
1018 # build it and link statically
1020 if test $have_pcre = "yes"; then
1021 echo "using libpcre"
1024 LIBS="$LIBS -lpcre -lpcreposix"
1026 echo "using built-in static pcre"
1028 AC_DEFINE(STATIC_PCRE)
1032 # If we have libpcrs and pcre is linked dynamically
1033 # then also link pcrs dynamically, else build and link
1036 if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then
1037 echo "using libpcrs"
1041 echo "using built-in static pcrs"
1042 AC_DEFINE(STATIC_PCRS)
1046 AC_SUBST(STATIC_PCRE_ONLY)
1047 AC_SUBST(STATIC_PCRS_ONLY)
1049 dnl =================================================================
1050 dnl Final cleanup and output
1051 dnl =================================================================
1053 dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately
1055 CFLAGS=$old_CFLAGS_nospecial
1056 AC_SUBST(SPECIAL_CFLAGS)
1058 AC_SUBST(PTHREAD_LIB)
1060 AC_OUTPUT(GNUmakefile)