1 dnl Process this file with autoconf to produce a configure script.
3 dnl $Id: configure.in,v 1.53 2002/03/29 20:09:01 swa 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.53 2002/03/29 20:09:01 swa
34 dnl Revision 1.52 2002/03/29 19:51:40 gliptak
35 dnl Correcting compile problem with Debian
37 dnl Revision 1.51 2002/03/28 20:43:00 swa
38 dnl set make correctly
40 dnl Revision 1.50 2002/03/27 03:03:45 hal9
41 dnl Add test for man2html
43 dnl Revision 1.49 2002/03/27 02:19:52 david__schmidt
44 dnl More Mac OSX support:
45 dnl - Get rid of extraneous, noisy -pthread warnings
46 dnl - Define unix so we get oes' unix-tagged changes
48 dnl Revision 1.48 2002/03/26 22:29:54 swa
49 dnl we have a new homepage!
51 dnl Revision 1.47 2002/03/26 16:41:00 hal9
52 dnl Upped RPM Release to 3 (need to build new RH packages)
54 dnl Revision 1.46 2002/03/24 18:55:06 jongfoster
55 dnl Making Docbook work under Windows
57 dnl Revision 1.45 2002/03/24 14:19:55 swa
58 dnl set rpm package release in configure.in. nowhere else.
60 dnl Revision 1.44 2002/03/24 13:25:43 swa
61 dnl name change related issues
63 dnl Revision 1.43 2002/03/24 12:56:21 swa
64 dnl name change related issues.
66 dnl Revision 1.42 2002/03/22 18:11:37 jongfoster
67 dnl Bumping version number to 2.9.12
69 dnl Revision 1.41 2002/03/19 19:30:04 morcego
70 dnl - Fixing stylesheet checking on configure. If it is found, no further checks
73 dnl - configure will now check for db2html or docbook2html (should work now
74 dnl on SuSe without the docbktls package)
76 dnl Revision 1.40 2002/03/09 14:33:30 oes
77 dnl Fixing the (harmless) AC_CHECK_FILE warnings
79 dnl Revision 1.39 2002/03/08 16:46:13 oes
80 dnl Added --enable-no-gifs
82 dnl Revision 1.38 2002/03/08 14:13:50 morcego
83 dnl Fixing configure, to remove a command not found error.
85 dnl Revision 1.37 2002/03/08 12:58:21 oes
86 dnl Tiny bugfix in AC_ARG_WITH(debug)
88 dnl Revision 1.36 2002/03/06 23:50:36 morcego
89 dnl Will not test for a text browser if we are not using docbook.
91 dnl Revision 1.35 2002/03/06 21:55:52 morcego
92 dnl New configure option: --with-docbook=(yes|no|directory)
93 dnl Preliminary new platform detection code included. Will work with the
94 dnl old one for now. No use just trowing it away
96 dnl Revision 1.34 2002/03/06 20:57:00 morcego
97 dnl Fixing detection of stylesheets on SuSe.
99 dnl Revision 1.33 2002/03/05 17:31:11 morcego
100 dnl Search for docbook.dsl. Should solve portability problems for SuSe.
102 dnl Revision 1.32 2002/03/05 14:07:43 morcego
103 dnl configure now detects rpm topdir, and change GNUmakefile acordingly
104 dnl (based on sugestion by Sarantis Paskalis)
106 dnl Revision 1.31 2002/03/05 13:43:28 morcego
107 dnl Checking for text browser, so redhat-dok can work.
109 dnl Revision 1.30 2002/03/04 17:58:01 oes
110 dnl Deleted _DEBUG and PID_FILE_PATH
112 dnl Revision 1.29 2002/02/28 14:20:53 oes
113 dnl Fixed detection of gethost*_r functions on Solaris
115 dnl Revision 1.28 2002/02/27 15:02:38 oes
116 dnl Incremented version number
118 dnl Revision 1.27 2002/01/10 12:35:18 oes
119 dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros
120 dnl to silence autoconf warnings. Numbers are for Intel/Linux.
121 dnl Is there a better way?
123 dnl Revision 1.26 2002/01/09 14:29:49 oes
124 dnl - Added AC_CHECK_FUNC tests for the availability of
125 dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and
126 dnl localtime_r, as well as AC_TRY_COMPILE tests to
127 dnl determine their signatures.
129 dnl - Fixed a bug with the init of CFLAGS that was
130 dnl reported by barsnick
132 dnl Revision 1.25 2002/01/04 15:27:18 oes
133 dnl Changed quoting of CODE_STATUS for use in make
135 dnl Revision 1.24 2001/12/30 14:07:31 steudten
136 dnl - Add signal handling (unix)
137 dnl - Add SIGHUP handler (unix)
138 dnl - Add creation of pidfile (unix)
139 dnl - Add action 'top' in rc file (RH)
140 dnl - Add entry 'SIGNALS' to manpage
141 dnl - Add exit message to logfile (unix)
143 dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt
144 dnl Change from "alpha" to "beta" in configure.in
146 dnl Revision 1.22 2001/12/01 11:24:01 jongfoster
147 dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
148 dnl make break in a more obvious way.
150 dnl Revision 1.21 2001/11/30 21:35:54 jongfoster
151 dnl Bumping version number to 2.9.10
153 dnl Revision 1.20 2001/10/23 21:24:09 jongfoster
154 dnl Support for FEATURE_CGI_EDIT_ACTIONS
156 dnl Revision 1.19 2001/10/07 15:33:14 oes
157 dnl Removed FEATURE_DENY_GZIP
158 dnl Bumped up version number
160 dnl Revision 1.18 2001/09/13 13:10:24 steudten
162 dnl PreWork for Debug Interface.
163 dnl Add new option "--with-debug" to enable debugging (flags aso.)
165 dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt
166 dnl Mac OSX (Darwin) support added.
168 dnl Revision 1.16 2001/09/12 22:55:45 joergs
169 dnl AmigaOS support added.
171 dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt
173 dnl OS/2 port: update autoconf'd support for the platform.
175 dnl Revision 1.14 2001/07/30 22:12:11 jongfoster
176 dnl Fixing Solaris build (I hope) and tidying up #defines:
177 dnl - All feature #defines are now of the form FEATURE_xxx
178 dnl - Permanently turned off WIN_GUI_EDIT
179 dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
181 dnl Revision 1.13 2001/07/29 17:09:17 jongfoster
182 dnl Major changes to build system in order to fix these bugs:
183 dnl - pthreads under Linux was broken - changed -lpthread to -pthread
184 dnl - Compiling in MinGW32 mode under CygWin now correctly detects
185 dnl which shared libraries are available
186 dnl - Solaris support (?) (Not tested under Solaris yet)
188 dnl Revision 1.12 2001/07/25 19:16:27 oes
189 dnl Bumping version number to 2.9.8
191 dnl Revision 1.11 2001/07/21 18:00:07 jongfoster
192 dnl Bumping version number to 2.9.7
194 dnl Revision 1.10 2001/07/18 17:25:04 oes
197 dnl Revision 1.9 2001/07/15 19:45:13 jongfoster
198 dnl Added support for linking with POSIX threads library
200 dnl Revision 1.8 2001/07/15 17:54:29 jongfoster
201 dnl Renaming #define STATIC to STATIC_PCRE
202 dnl Adding new #define FEATURE_PTHREAD that will be used to enable
203 dnl POSIX threads support.
205 dnl Revision 1.7 2001/07/13 13:58:05 oes
206 dnl Completely reorganized the selection scheme for
207 dnl pcre, pcreposix, pcrs and gnu_regex:
209 dnl The presence of shared pcre, pcreposix or pcrs
210 dnl libraried is now autodetected. Additionally, the
211 dnl user can enforce using the built-in static variants
212 dnl by specifying --disable-dynamic-(pcre|pcrs).
213 dnl Care is taken to avoid that pcre is dyn, while pcreposix
214 dnl is static, if both are used and that pcrs is static if
217 dnl The choice between pcre, gnu or no regex for actionsfile
218 dnl URL matching is now via
219 dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the
220 dnl default being pcre.
222 dnl Revision 1.6 2001/06/29 21:56:40 oes
225 dnl Revision 1.5 2001/06/29 13:26:27 oes
226 dnl Introduced #define CODE_STATUS
228 dnl Revision 1.4 2001/05/29 09:50:24 jongfoster
229 dnl Unified blocklist/imagelist/permissionslist.
230 dnl File format is still under discussion, but the internal changes
231 dnl are (mostly) done.
233 dnl Also modified interceptor behaviour:
234 dnl - We now intercept all URLs beginning with one of the following
235 dnl prefixes (and *only* these prefixes):
237 dnl * http://ijbswa.sf.net/config/
238 dnl * http://ijbswa.sourceforge.net/config/
239 dnl - New interceptors "home page" - go to http://i.j.b/ to see it.
240 dnl - Internal changes so that intercepted and fast redirect pages
241 dnl are not replaced with an image.
242 dnl - Interceptors now have the option to send a binary page direct
243 dnl to the client. (i.e. ijb-send-banner uses this)
244 dnl - Implemented show-url-info interceptor. (Which is why I needed
245 dnl the above interceptors changes - a typical URL is
246 dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
247 dnl The previous mechanism would not have intercepted that, and
248 dnl if it had been intercepted then it then it would have replaced
249 dnl it with an image.)
251 dnl Revision 1.3 2001/05/22 18:46:04 oes
253 dnl - Enabled filtering banners by size rather than URL
254 dnl by adding patterns that replace all standard banner
255 dnl sizes with the "Junkbuster" gif to the re_filterfile
257 dnl - Enabled filtering WebBugs by providing a pattern
258 dnl which kills all 1x1 images
260 dnl - Added support for PCRE_UNGREEDY behaviour to pcrs,
261 dnl which is selected by the (nonstandard and therefore
262 dnl capital) letter 'U' in the option string.
263 dnl It causes the quantifiers to be ungreedy by default.
264 dnl Appending a ? turns back to greedy (!).
266 dnl - Added a new interceptor ijb-send-banner, which
267 dnl sends back the "Junkbuster" gif. Without imagelist or
268 dnl MSIE detection support, or if tinygif = 1, or the
269 dnl URL isn't recognized as an imageurl, a lame HTML
270 dnl explanation is sent instead.
272 dnl - Added new feature, which permits blocking remote
273 dnl script redirects and firing back a local redirect
275 dnl The feature is conditionally compiled, i.e. it
276 dnl can be disabled with --disable-fast-redirects,
277 dnl plus it must be activated by a "fast-redirects"
278 dnl line in the config file, has its own log level
279 dnl and of course wants to be displayed by show-proxy-args
280 dnl Note: Boy, all the #ifdefs in 1001 locations and
281 dnl all the fumbling with configure.in and acconfig.h
282 dnl were *way* more work than the feature itself :-(
284 dnl - Because a generic redirect template was needed for
285 dnl this, tinygif = 3 now uses the same.
287 dnl - Moved GIFs, and other static HTTP response templates
290 dnl - Some minor fixes
292 dnl - Removed some >400 CRs again (Jon, you really worked
295 dnl Revision 1.2 2001/05/20 01:21:20 jongfoster
296 dnl Version 2.9.4 checkin.
297 dnl - Merged popupfile and cookiefile, and added control over PCRS
298 dnl filtering, in new "permissionsfile".
299 dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
300 dnl file error you now get a message box (in the Win32 GUI) rather
301 dnl than the program exiting with no explanation.
302 dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header
304 dnl - Removed tabs from "config"
305 dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition.
306 dnl - Bumped up version number.
308 dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes
309 dnl Initial import of version 2.9.3 source tree
314 dnl =================================================================
315 dnl AutoConf Initialization
316 dnl =================================================================
318 AC_REVISION($Revision: 1.53 $)
320 AC_CONFIG_HEADER([config.h])
325 AC_ARG_WITH(docbook, dnl
326 --with-docbook=[[yes|no|directory]]
327 Enable docbook documentation creation
328 (default = yes, for gnu and linux),[dnl
329 case "$with_docbook" in
339 AC_ARG_WITH(db2html, dnl
340 --with-db2html=<path/executable>
341 Set the location of the docbook to html converter
342 (default = search),[dnl
346 dnl =================================================================
347 dnl Application version number
348 dnl =================================================================
353 VERSION_RPM_PACKAGE=3
356 dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
357 dnl used for CGI output
359 dnl =================================================================
360 dnl Substitute the version numbers
361 dnl =================================================================
363 AC_SUBST(VERSION_MAJOR)
364 AC_SUBST(VERSION_MINOR)
365 AC_SUBST(VERSION_POINT)
366 AC_SUBST(VERSION_RPM_PACKAGE)
367 AC_SUBST(CODE_STATUS)
370 AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
371 AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR})
372 AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT})
373 AC_DEFINE_UNQUOTED(VERSION_RPM_PACKAGE,${VERSION_RPM_PACKAGE})
374 AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
375 AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
377 dnl =================================================================
378 dnl Checks for programs needed to build.
379 dnl =================================================================
386 dnl RANLIB is for PCRE:
389 AC_CHECK_PROG(GDB,gdb,yes,no)
391 dnl =================================================================
392 dnl debug, gcc and gdb support
393 dnl =================================================================
396 [ --with-debug Enable debug mode],
398 if test "x$withval" != "xno" ; then
399 if test $ac_cv_prog_cc_g = yes; then
400 if test "$GCC" = yes; then
406 CFLAGS="$CFLAGS -Wshadow -Wconversion"
414 if test "X$CFLAGS" = "X"; then # if CFLAGS are unset
415 if test "$GCC" = yes; then
425 [ --with-user=privoxy Set user under which privoxy run],
427 if test "x$withval" != "xyes"; then
430 AC_MSG_ERROR(We need a user if you give me this parameter)
440 [ --with-group=privoxy Set group for privoxy],
442 if test "x$withval" != "xyes"; then
445 AC_MSG_ERROR(We need a group if you give me this parameter)
453 dnl =================================================================
454 dnl additional gcc flags
455 dnl =================================================================
458 CFLAGS="-pipe $CFLAGS"
462 dnl =================================================================
464 dnl =================================================================
466 dnl Must do this first.
468 dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler
469 dnl into Cygwin or MinGW32 modes. Depending on the mode selected,
470 dnl the compiler will use completely different sets of library
471 dnl and include files.
473 dnl =================================================================
478 if test "$MINGW32" = "yes"; then
481 if test "$CYGWIN" = "yes"; then
488 if test $dodk = auto; then
490 if test $target_type = unix; then
499 dnl Decide what to do based on target_type
500 dnl Note: PTHREAD_LIB is always set, even if pthread is disabled.
501 dnl This is because we don't know yet whether pthread is enabled.
503 AC_ARG_ENABLE(mingw32,
504 [ --enable-mingw32 Use mingw32 for a Windows GUI],
505 [if test $enableval = yes; then
509 if test $target_type = mingw; then
511 SPECIAL_CFLAGS="-mwindows -mno-cygwin"
512 PTHREAD_LIB=-lpthreadGC
513 echo "Using mingw32 (Win32 GUI)"
516 if test $target_type = cygwin; then
517 SPECIAL_CFLAGS="-mno-win32"
519 echo "Using Cygnus (Win32 command line)"
522 PTHREAD_LIB=-lpthread
527 dnl Checking which text html browser we have avaliable
528 if test $dodk != no; then
529 AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
530 if test "$WDUMP" = false; then
531 AC_MSG_ERROR(You need some kind of text browser to continue \(w3m, lynx and links are supported\))
533 if test $DB2HTML = false; then
534 dnl We need to clean the variable, otherwise AC_CHECK_PROGS
537 AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false)
543 dnl If we use rpm, we need to check where %_topdir is
544 AC_CHECK_PROGS(RPMBIN,rpm,false)
545 if test $RPMBIN != false; then
546 RPM_BASE=`rpm --eval "%{_topdir}"`
547 if test "$RPM_BASE" = ""; then
548 RPM_BASE=/usr/src/redhat
553 dnl Check for jade, so we can build the documentation
554 AC_CHECK_PROGS(JADEBIN,jade openjade,false)
557 dnl Check for man2html for docs.
558 AC_CHECK_PROGS(MAN2HTML,man2html,false)
561 dnl Checking for the docbook.dsl stylesheet file
562 dnl It is still not portable (directory slash)
563 if test $dodk = yes; then
564 if test $DKPREFIX = none; then
565 for i in /usr/share/sgml/docbook/dsssl-stylesheets /usr/share/sgml/docbkdsl /usr/share/sgml/docbook-dsssl; do
566 echo -n "checking for $i/html/docbook.dsl..."
567 if test -f $i/html/docbook.dsl; then
579 dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
580 old_CFLAGS_nospecial=$CFLAGS
581 CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
583 # Hack to force AutoConf to use the CFLAGS we just set
584 dnl Warning: This may break with a future version of Autoconf
585 dnl Tested with autoconf 2.13
586 ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS'
587 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
588 ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
591 dnl =================================================================
593 dnl =================================================================
595 AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no])
597 AC_ARG_ENABLE(pthread,
598 [ --disable-pthread Don't use POSIX threads (pthreads)],
599 [if test $enableval = no; then
604 if test $have_pthread = yes; then
606 AC_DEFINE(FEATURE_PTHREAD)
607 echo Using POSIX threads
608 if test "$GCC" = "yes"; then
609 # Set a GCC specific switch:
610 if test "$target_type" = "unix"; then
611 # This compiler switch makes Linux thread-safe
612 # Don't know about other OS's? Is this switch
615 SPECIAL_CFLAGS="-pthread"
620 echo Using native threads
623 AC_SUBST(PTHREAD_ONLY)
625 dnl =================================================================
626 dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
627 dnl gmtime and localtime
628 dnl =================================================================
630 dnl Next line needed to find the gethost*_r functions on Solaris
631 AC_CHECK_LIB(nsl, gethostbyname)
633 AC_CHECK_FUNC(gethostbyaddr_r, [
634 AC_MSG_CHECKING([signature of gethostbyaddr_r])
638 struct hostent *h, *hp;
641 (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e)
643 AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS)
644 AC_MSG_RESULT([8 args])
652 (void) gethostbyaddr_r(a, l, t, h, b, bl, &e)
654 AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS)
655 AC_MSG_RESULT([7 args])
660 struct hostent_data *d;
664 (void) gethostbyaddr_r(a, l, t, h, d)
666 AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS)
667 AC_MSG_RESULT([5 args])
669 AC_MSG_RESULT(unrecognised)
677 AC_CHECK_FUNC(gethostbyname_r, [
678 AC_MSG_CHECKING([signature of gethostbyname_r])
682 struct hostent *h, *r;
685 (void) gethostbyname_r(n, h, b, bl, &r, &e)
687 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS)
688 AC_MSG_RESULT([6 args])
696 (void) gethostbyname_r(n, h, b, bl, &e)
698 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS)
699 AC_MSG_RESULT([5 args])
704 struct hostent_data *d;
707 (void) gethostbyname_r(n, h, d)
709 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS)
710 AC_MSG_RESULT([3 args])
712 AC_MSG_RESULT(unrecognised)
720 AC_CHECK_FUNC(gmtime_r, [
721 AC_MSG_CHECKING([signature of gmtime_r])
727 (void) gmtime_r(t, tm)
730 AC_DEFINE(HAVE_GMTIME_R)
732 AC_MSG_RESULT(unrecognised)
738 AC_CHECK_FUNC(localtime_r, [
739 AC_MSG_CHECKING([signature of localtime_r])
745 (void) localtime_r(t, tm)
748 AC_DEFINE(HAVE_LOCALTIME_R)
750 AC_MSG_RESULT(unrecognised)
756 dnl =================================================================
758 dnl FIXME: Not tested on Solaris yet...
759 dnl =================================================================
765 *-solaris*) SOCKET_LIB="-lsocket -lnsl"
766 AC_DEFINE(__EXTENSIONS__)
767 if test "$GCC" = "yes"; then
768 # Set a GCC specific switch:
769 # This compiler switch makes Solaris thread-safe
771 SPECIAL_CFLAGS="-pthreads"
773 # What do we do without GCC? Guess this:
774 SPECIAL_CFLAGS="-D_REENTRANT"
781 dnl =================================================================
783 dnl =================================================================
786 *-os2-emx*) SOCKET_LIB=-lsocket
792 dnl =================================================================
794 dnl =================================================================
797 *-apple-darwin*) SPECIAL_CFLAGS="-Dunix"
801 dnl =================================================================
803 dnl =================================================================
808 *-amigaos) AMIGAOS_ONLY=
812 AC_SUBST(AMIGAOS_ONLY)
814 dnl =================================================================
815 dnl Check for standard compiler stuff
816 dnl =================================================================
827 AC_CHECK_SIZEOF(int, 4)
828 AC_CHECK_SIZEOF(char *, 4)
829 AC_CHECK_SIZEOF(long, 4)
830 AC_CHECK_SIZEOF(long long, 8)
831 AC_CHECK_SIZEOF(size_t, 4)
833 dnl Checks for header files.
834 dnl AC_HEADER_SYS_WAIT
835 dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
836 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])
838 dnl Checks for library functions.
840 dnl AC_CHECK_FUNC(strstr)
841 dnl bcopy and memmove are for PCRE
842 AC_CHECK_FUNCS([strerror bcopy memmove])
843 AC_PROG_GCC_TRADITIONAL
844 dnl uncommenting does not work for swa. suse linux
848 dnl uncommenting does not work for swa. suse linux
850 AC_CHECK_FUNCS([atexit getcwd gethostbyaddr gethostbyname inet_ntoa localtime_r memchr memmove memset regcomp select setlocale socket strchr strdup strerror strftime strstr strtoul])
853 dnl =================================================================
854 dnl Checks for libraries.
855 dnl =================================================================
856 dnl Note: Some systems may have the library but not the system header
857 dnl file, so we must check for both.
858 AC_CHECK_LIB(pcre, pcre_compile, [AC_CHECK_HEADER(pcre.h, [have_pcre=yes], [have_pcre=no])], [have_pcre=no])
859 AC_CHECK_LIB(pcreposix, regcomp, [AC_CHECK_HEADER(pcreposix.h, [have_pcreposix=yes], [have_pcreposix=no])], [have_pcreposix=no], -lpcre)
860 AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no])
863 dnl =================================================================
865 dnl =================================================================
869 dnl =================================================================
871 dnl =================================================================
873 AC_ARG_ENABLE(toggle,
874 [ --disable-toggle Don't support temporary disable],
875 [if test $enableval = yes; then
876 AC_DEFINE(FEATURE_TOGGLE)
877 fi],AC_DEFINE(FEATURE_TOGGLE))
880 [ --disable-force Don't allow single-page disable],
881 [if test $enableval = yes; then
882 AC_DEFINE(FEATURE_FORCE_LOAD)
883 fi],AC_DEFINE(FEATURE_FORCE_LOAD))
885 AC_ARG_ENABLE(fast-redirects,
886 [ --disable-fast-redirects Don't support fast redirects],
887 [if test $enableval = yes; then
888 AC_DEFINE(FEATURE_FAST_REDIRECTS)
889 fi], AC_DEFINE(FEATURE_FAST_REDIRECTS))
891 AC_ARG_ENABLE(killpopup,
892 [ --disable-killpopup Never block popups],
893 [if test $enableval = yes; then
894 AC_DEFINE(FEATURE_KILL_POPUPS)
895 fi],AC_DEFINE(FEATURE_KILL_POPUPS))
898 [ --disable-stats Don't keep statistics],
899 [if test $enableval = yes; then
900 AC_DEFINE(FEATURE_STATISTICS)
901 fi],AC_DEFINE(FEATURE_STATISTICS))
903 AC_ARG_ENABLE(ie-images,
904 [ --disable-ie-images Don't auto-detect whether a request from MS Internet
905 Explorer is for an image or HTML.],
906 [if test $enableval = yes; then
907 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
909 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE))
911 AC_ARG_ENABLE(image-blocking,
912 [ --disable-image-blocking Don't try to figure out whether a request is
913 for an image or HTML - assume HTML.],
914 [if test $enableval = yes; then
915 AC_DEFINE(FEATURE_IMAGE_BLOCKING)
917 AC_DEFINE(FEATURE_IMAGE_BLOCKING))
919 AC_ARG_ENABLE(acl-files,
920 [ --disable-acl-files Prevents the use of ACL files to control access to
921 the proxy by IP address.],
922 [if test $enableval = yes; then
923 AC_DEFINE(FEATURE_ACL)
925 AC_DEFINE(FEATURE_ACL))
927 AC_ARG_ENABLE(trust-files,
928 [ --disable-trust-files Prevents the use of trust files.],
929 [if test $enableval = yes; then
930 AC_DEFINE(FEATURE_TRUST)
932 AC_DEFINE(FEATURE_TRUST))
934 AC_ARG_ENABLE(jar-files,
935 [ --disable-jar-files Prevents the use of jar files to capture cookies.],
936 [if test $enableval = yes; then
937 AC_DEFINE(FEATURE_COOKIE_JAR)
939 AC_DEFINE(FEATURE_COOKIE_JAR))
941 AC_ARG_ENABLE(editor,
942 [ --disable-editor Prevents the use of the web-based actions file
943 editor and web-based temporary disable setting.],
944 [if test $enableval = yes; then
945 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)
947 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS))
949 AC_ARG_ENABLE(no-gifs,
950 [ --enable-no-gifs Use politically correct PNG format instead of GIF
951 for built-in images. May not work with all browsers.],
952 [if test $enableval = yes; then
953 AC_DEFINE(FEATURE_NO_GIFS)
957 dnl pcre/pcrs is needed for CGI anyway, so
958 dnl the choice is only between static and
961 AC_ARG_ENABLE(regex-matching,
962 [ --enable-regex-matching=pcre Use perl-compatible regex for actionsfile
963 pattern matching (default)
964 --enable-regex-matching=gnu Use gnu style regex for actionsfile pattern
965 matching (-> bigger binary)
966 --disable-regex-matching Don't use regex matching, compare URL
967 prefix instead (won't shrink birary)],
968 [ regex_matching=$enableval ],
969 [ regex_matching=pcre ])
971 AC_ARG_ENABLE(dynamic-pcre,
972 [ --disable-dynamic-pcre Use the built-in, static pcre, even if
973 libpcre is available],
974 [ if test $enableval = "no"; then have_pcre=no; fi ])
976 AC_ARG_ENABLE(dynamic-pcrs,
977 [ --disable-dynamic-pcrs Use the built-in, static pcrs, even if
978 libpcrs is available],
979 [ if test $enableval = "no"; then have_pcrs=no; fi ])
982 # Is the regex URL matching based on libpcreposix, but we
983 # don't have that library?
985 if test $have_pcreposix = "yes" -o $regex_matching != "pcre"; then
986 dont_miss_pcreposix=yes
988 dont_miss_pcreposix=no
991 # If we have libpcre and either we also have pcreposix or
992 # we don't need pcreposix, then link pcre dynamically; else
993 # build it and link statically
995 if test $have_pcre = "yes" -a $dont_miss_pcreposix = "yes"; then
1001 echo "using built-in static pcre"
1003 AC_DEFINE(STATIC_PCRE)
1007 # If we have libpcrs and pcre is linked dynamically
1008 # then also link pcrs dynamically, else build and link
1011 if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then
1012 echo "using libpcrs"
1016 echo "using built-in static pcrs"
1017 AC_DEFINE(STATIC_PCRS)
1021 # Which method should be used for URL matching?
1022 # pcre, gnu regex or prefix matching?
1024 if test $regex_matching = "gnu"; then
1025 echo "using gnu regex for URL matching"
1026 AC_DEFINE(REGEX_GNU)
1029 elif test $regex_matching = "pcre"; then
1030 echo "using pcre regex for URL matching"
1031 AC_DEFINE(REGEX_PCRE)
1034 if test $pcre_dyn = "yes"; then
1035 LIBS="$LIBS -lpcreposix"
1038 echo -e "using prefix matching for URLs\nHint: This does NOT make the executable any smaller!"
1043 AC_SUBST(GNU_REGEX_ONLY)
1044 AC_SUBST(PCRE_REGEX_ONLY)
1045 AC_SUBST(STATIC_PCRE_ONLY)
1046 AC_SUBST(STATIC_PCRS_ONLY)
1048 dnl =================================================================
1049 dnl Final cleanup and output
1050 dnl =================================================================
1052 dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately
1054 CFLAGS=$old_CFLAGS_nospecial
1055 AC_SUBST(SPECIAL_CFLAGS)
1057 AC_SUBST(PTHREAD_LIB)
1059 AC_OUTPUT(GNUmakefile)