1 dnl Process this file with autoconf to produce a configure script.
3 dnl $Id: configure.in,v 1.55 2002/04/03 03:54:38 gliptak 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.55 2002/04/03 03:54:38 gliptak
32 dnl Checking pcre version
34 dnl Revision 1.54 2002/04/01 00:54:24 gliptak
35 dnl More changes needed around regex support.
37 dnl Revision 1.53 2002/03/29 20:09:01 swa
40 dnl Revision 1.52 2002/03/29 19:51:40 gliptak
41 dnl Correcting compile problem with Debian
43 dnl Revision 1.51 2002/03/28 20:43:00 swa
44 dnl set make correctly
46 dnl Revision 1.50 2002/03/27 03:03:45 hal9
47 dnl Add test for man2html
49 dnl Revision 1.49 2002/03/27 02:19:52 david__schmidt
50 dnl More Mac OSX support:
51 dnl - Get rid of extraneous, noisy -pthread warnings
52 dnl - Define unix so we get oes' unix-tagged changes
54 dnl Revision 1.48 2002/03/26 22:29:54 swa
55 dnl we have a new homepage!
57 dnl Revision 1.47 2002/03/26 16:41:00 hal9
58 dnl Upped RPM Release to 3 (need to build new RH packages)
60 dnl Revision 1.46 2002/03/24 18:55:06 jongfoster
61 dnl Making Docbook work under Windows
63 dnl Revision 1.45 2002/03/24 14:19:55 swa
64 dnl set rpm package release in configure.in. nowhere else.
66 dnl Revision 1.44 2002/03/24 13:25:43 swa
67 dnl name change related issues
69 dnl Revision 1.43 2002/03/24 12:56:21 swa
70 dnl name change related issues.
72 dnl Revision 1.42 2002/03/22 18:11:37 jongfoster
73 dnl Bumping version number to 2.9.12
75 dnl Revision 1.41 2002/03/19 19:30:04 morcego
76 dnl - Fixing stylesheet checking on configure. If it is found, no further checks
79 dnl - configure will now check for db2html or docbook2html (should work now
80 dnl on SuSe without the docbktls package)
82 dnl Revision 1.40 2002/03/09 14:33:30 oes
83 dnl Fixing the (harmless) AC_CHECK_FILE warnings
85 dnl Revision 1.39 2002/03/08 16:46:13 oes
86 dnl Added --enable-no-gifs
88 dnl Revision 1.38 2002/03/08 14:13:50 morcego
89 dnl Fixing configure, to remove a command not found error.
91 dnl Revision 1.37 2002/03/08 12:58:21 oes
92 dnl Tiny bugfix in AC_ARG_WITH(debug)
94 dnl Revision 1.36 2002/03/06 23:50:36 morcego
95 dnl Will not test for a text browser if we are not using docbook.
97 dnl Revision 1.35 2002/03/06 21:55:52 morcego
98 dnl New configure option: --with-docbook=(yes|no|directory)
99 dnl Preliminary new platform detection code included. Will work with the
100 dnl old one for now. No use just trowing it away
102 dnl Revision 1.34 2002/03/06 20:57:00 morcego
103 dnl Fixing detection of stylesheets on SuSe.
105 dnl Revision 1.33 2002/03/05 17:31:11 morcego
106 dnl Search for docbook.dsl. Should solve portability problems for SuSe.
108 dnl Revision 1.32 2002/03/05 14:07:43 morcego
109 dnl configure now detects rpm topdir, and change GNUmakefile acordingly
110 dnl (based on sugestion by Sarantis Paskalis)
112 dnl Revision 1.31 2002/03/05 13:43:28 morcego
113 dnl Checking for text browser, so redhat-dok can work.
115 dnl Revision 1.30 2002/03/04 17:58:01 oes
116 dnl Deleted _DEBUG and PID_FILE_PATH
118 dnl Revision 1.29 2002/02/28 14:20:53 oes
119 dnl Fixed detection of gethost*_r functions on Solaris
121 dnl Revision 1.28 2002/02/27 15:02:38 oes
122 dnl Incremented version number
124 dnl Revision 1.27 2002/01/10 12:35:18 oes
125 dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros
126 dnl to silence autoconf warnings. Numbers are for Intel/Linux.
127 dnl Is there a better way?
129 dnl Revision 1.26 2002/01/09 14:29:49 oes
130 dnl - Added AC_CHECK_FUNC tests for the availability of
131 dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and
132 dnl localtime_r, as well as AC_TRY_COMPILE tests to
133 dnl determine their signatures.
135 dnl - Fixed a bug with the init of CFLAGS that was
136 dnl reported by barsnick
138 dnl Revision 1.25 2002/01/04 15:27:18 oes
139 dnl Changed quoting of CODE_STATUS for use in make
141 dnl Revision 1.24 2001/12/30 14:07:31 steudten
142 dnl - Add signal handling (unix)
143 dnl - Add SIGHUP handler (unix)
144 dnl - Add creation of pidfile (unix)
145 dnl - Add action 'top' in rc file (RH)
146 dnl - Add entry 'SIGNALS' to manpage
147 dnl - Add exit message to logfile (unix)
149 dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt
150 dnl Change from "alpha" to "beta" in configure.in
152 dnl Revision 1.22 2001/12/01 11:24:01 jongfoster
153 dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
154 dnl make break in a more obvious way.
156 dnl Revision 1.21 2001/11/30 21:35:54 jongfoster
157 dnl Bumping version number to 2.9.10
159 dnl Revision 1.20 2001/10/23 21:24:09 jongfoster
160 dnl Support for FEATURE_CGI_EDIT_ACTIONS
162 dnl Revision 1.19 2001/10/07 15:33:14 oes
163 dnl Removed FEATURE_DENY_GZIP
164 dnl Bumped up version number
166 dnl Revision 1.18 2001/09/13 13:10:24 steudten
168 dnl PreWork for Debug Interface.
169 dnl Add new option "--with-debug" to enable debugging (flags aso.)
171 dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt
172 dnl Mac OSX (Darwin) support added.
174 dnl Revision 1.16 2001/09/12 22:55:45 joergs
175 dnl AmigaOS support added.
177 dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt
179 dnl OS/2 port: update autoconf'd support for the platform.
181 dnl Revision 1.14 2001/07/30 22:12:11 jongfoster
182 dnl Fixing Solaris build (I hope) and tidying up #defines:
183 dnl - All feature #defines are now of the form FEATURE_xxx
184 dnl - Permanently turned off WIN_GUI_EDIT
185 dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
187 dnl Revision 1.13 2001/07/29 17:09:17 jongfoster
188 dnl Major changes to build system in order to fix these bugs:
189 dnl - pthreads under Linux was broken - changed -lpthread to -pthread
190 dnl - Compiling in MinGW32 mode under CygWin now correctly detects
191 dnl which shared libraries are available
192 dnl - Solaris support (?) (Not tested under Solaris yet)
194 dnl Revision 1.12 2001/07/25 19:16:27 oes
195 dnl Bumping version number to 2.9.8
197 dnl Revision 1.11 2001/07/21 18:00:07 jongfoster
198 dnl Bumping version number to 2.9.7
200 dnl Revision 1.10 2001/07/18 17:25:04 oes
203 dnl Revision 1.9 2001/07/15 19:45:13 jongfoster
204 dnl Added support for linking with POSIX threads library
206 dnl Revision 1.8 2001/07/15 17:54:29 jongfoster
207 dnl Renaming #define STATIC to STATIC_PCRE
208 dnl Adding new #define FEATURE_PTHREAD that will be used to enable
209 dnl POSIX threads support.
211 dnl Revision 1.7 2001/07/13 13:58:05 oes
212 dnl Completely reorganized the selection scheme for
213 dnl pcre, pcreposix, pcrs and gnu_regex:
215 dnl The presence of shared pcre, pcreposix or pcrs
216 dnl libraried is now autodetected. Additionally, the
217 dnl user can enforce using the built-in static variants
218 dnl by specifying --disable-dynamic-(pcre|pcrs).
219 dnl Care is taken to avoid that pcre is dyn, while pcreposix
220 dnl is static, if both are used and that pcrs is static if
223 dnl The choice between pcre, gnu or no regex for actionsfile
224 dnl URL matching is now via
225 dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the
226 dnl default being pcre.
228 dnl Revision 1.6 2001/06/29 21:56:40 oes
231 dnl Revision 1.5 2001/06/29 13:26:27 oes
232 dnl Introduced #define CODE_STATUS
234 dnl Revision 1.4 2001/05/29 09:50:24 jongfoster
235 dnl Unified blocklist/imagelist/permissionslist.
236 dnl File format is still under discussion, but the internal changes
237 dnl are (mostly) done.
239 dnl Also modified interceptor behaviour:
240 dnl - We now intercept all URLs beginning with one of the following
241 dnl prefixes (and *only* these prefixes):
243 dnl * http://ijbswa.sf.net/config/
244 dnl * http://ijbswa.sourceforge.net/config/
245 dnl - New interceptors "home page" - go to http://i.j.b/ to see it.
246 dnl - Internal changes so that intercepted and fast redirect pages
247 dnl are not replaced with an image.
248 dnl - Interceptors now have the option to send a binary page direct
249 dnl to the client. (i.e. ijb-send-banner uses this)
250 dnl - Implemented show-url-info interceptor. (Which is why I needed
251 dnl the above interceptors changes - a typical URL is
252 dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
253 dnl The previous mechanism would not have intercepted that, and
254 dnl if it had been intercepted then it then it would have replaced
255 dnl it with an image.)
257 dnl Revision 1.3 2001/05/22 18:46:04 oes
259 dnl - Enabled filtering banners by size rather than URL
260 dnl by adding patterns that replace all standard banner
261 dnl sizes with the "Junkbuster" gif to the re_filterfile
263 dnl - Enabled filtering WebBugs by providing a pattern
264 dnl which kills all 1x1 images
266 dnl - Added support for PCRE_UNGREEDY behaviour to pcrs,
267 dnl which is selected by the (nonstandard and therefore
268 dnl capital) letter 'U' in the option string.
269 dnl It causes the quantifiers to be ungreedy by default.
270 dnl Appending a ? turns back to greedy (!).
272 dnl - Added a new interceptor ijb-send-banner, which
273 dnl sends back the "Junkbuster" gif. Without imagelist or
274 dnl MSIE detection support, or if tinygif = 1, or the
275 dnl URL isn't recognized as an imageurl, a lame HTML
276 dnl explanation is sent instead.
278 dnl - Added new feature, which permits blocking remote
279 dnl script redirects and firing back a local redirect
281 dnl The feature is conditionally compiled, i.e. it
282 dnl can be disabled with --disable-fast-redirects,
283 dnl plus it must be activated by a "fast-redirects"
284 dnl line in the config file, has its own log level
285 dnl and of course wants to be displayed by show-proxy-args
286 dnl Note: Boy, all the #ifdefs in 1001 locations and
287 dnl all the fumbling with configure.in and acconfig.h
288 dnl were *way* more work than the feature itself :-(
290 dnl - Because a generic redirect template was needed for
291 dnl this, tinygif = 3 now uses the same.
293 dnl - Moved GIFs, and other static HTTP response templates
296 dnl - Some minor fixes
298 dnl - Removed some >400 CRs again (Jon, you really worked
301 dnl Revision 1.2 2001/05/20 01:21:20 jongfoster
302 dnl Version 2.9.4 checkin.
303 dnl - Merged popupfile and cookiefile, and added control over PCRS
304 dnl filtering, in new "permissionsfile".
305 dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
306 dnl file error you now get a message box (in the Win32 GUI) rather
307 dnl than the program exiting with no explanation.
308 dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header
310 dnl - Removed tabs from "config"
311 dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition.
312 dnl - Bumped up version number.
314 dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes
315 dnl Initial import of version 2.9.3 source tree
320 dnl =================================================================
321 dnl AutoConf Initialization
322 dnl =================================================================
324 AC_REVISION($Revision: 1.55 $)
326 AC_CONFIG_HEADER([config.h])
331 AC_ARG_WITH(docbook, dnl
332 --with-docbook=[[yes|no|directory]]
333 Enable docbook documentation creation
334 (default = yes, for gnu and linux),[dnl
335 case "$with_docbook" in
345 AC_ARG_WITH(db2html, dnl
346 --with-db2html=<path/executable>
347 Set the location of the docbook to html converter
348 (default = search),[dnl
352 dnl =================================================================
353 dnl Application version number
354 dnl =================================================================
359 VERSION_RPM_PACKAGE=3
362 dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
363 dnl used for CGI output
365 dnl =================================================================
366 dnl Substitute the version numbers
367 dnl =================================================================
369 AC_SUBST(VERSION_MAJOR)
370 AC_SUBST(VERSION_MINOR)
371 AC_SUBST(VERSION_POINT)
372 AC_SUBST(VERSION_RPM_PACKAGE)
373 AC_SUBST(CODE_STATUS)
376 AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
377 AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR})
378 AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT})
379 AC_DEFINE_UNQUOTED(VERSION_RPM_PACKAGE,${VERSION_RPM_PACKAGE})
380 AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
381 AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
383 dnl =================================================================
384 dnl Checks for programs needed to build.
385 dnl =================================================================
392 dnl RANLIB is for PCRE:
395 AC_CHECK_PROG(GDB,gdb,yes,no)
397 dnl =================================================================
398 dnl debug, gcc and gdb support
399 dnl =================================================================
402 [ --with-debug Enable debug mode],
404 if test "x$withval" != "xno" ; then
405 if test $ac_cv_prog_cc_g = yes; then
406 if test "$GCC" = yes; then
412 CFLAGS="$CFLAGS -Wshadow -Wconversion"
420 if test "X$CFLAGS" = "X"; then # if CFLAGS are unset
421 if test "$GCC" = yes; then
431 [ --with-user=privoxy Set user under which privoxy run],
433 if test "x$withval" != "xyes"; then
436 AC_MSG_ERROR(We need a user if you give me this parameter)
446 [ --with-group=privoxy Set group for privoxy],
448 if test "x$withval" != "xyes"; then
451 AC_MSG_ERROR(We need a group if you give me this parameter)
459 dnl =================================================================
460 dnl additional gcc flags
461 dnl =================================================================
464 CFLAGS="-pipe $CFLAGS"
468 dnl =================================================================
470 dnl =================================================================
472 dnl Must do this first.
474 dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler
475 dnl into Cygwin or MinGW32 modes. Depending on the mode selected,
476 dnl the compiler will use completely different sets of library
477 dnl and include files.
479 dnl =================================================================
484 if test "$MINGW32" = "yes"; then
487 if test "$CYGWIN" = "yes"; then
494 if test $dodk = auto; then
496 if test $target_type = unix; then
505 dnl Decide what to do based on target_type
506 dnl Note: PTHREAD_LIB is always set, even if pthread is disabled.
507 dnl This is because we don't know yet whether pthread is enabled.
509 AC_ARG_ENABLE(mingw32,
510 [ --enable-mingw32 Use mingw32 for a Windows GUI],
511 [if test $enableval = yes; then
515 if test $target_type = mingw; then
517 SPECIAL_CFLAGS="-mwindows -mno-cygwin"
518 PTHREAD_LIB=-lpthreadGC
519 echo "Using mingw32 (Win32 GUI)"
522 if test $target_type = cygwin; then
523 SPECIAL_CFLAGS="-mno-win32"
525 echo "Using Cygnus (Win32 command line)"
528 PTHREAD_LIB=-lpthread
533 dnl Checking which text html browser we have avaliable
534 if test $dodk != no; then
535 AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
536 if test "$WDUMP" = false; then
537 AC_MSG_ERROR(You need some kind of text browser to continue \(w3m, lynx and links are supported\))
539 if test $DB2HTML = false; then
540 dnl We need to clean the variable, otherwise AC_CHECK_PROGS
543 AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false)
549 dnl If we use rpm, we need to check where %_topdir is
550 AC_CHECK_PROGS(RPMBIN,rpm,false)
551 if test $RPMBIN != false; then
552 RPM_BASE=`rpm --eval "%{_topdir}"`
553 if test "$RPM_BASE" = ""; then
554 RPM_BASE=/usr/src/redhat
559 dnl Check for jade, so we can build the documentation
560 AC_CHECK_PROGS(JADEBIN,jade openjade,false)
563 dnl Check for man2html for docs.
564 AC_CHECK_PROGS(MAN2HTML,man2html,false)
567 dnl Checking for the docbook.dsl stylesheet file
568 dnl It is still not portable (directory slash)
569 if test $dodk = yes; then
570 if test $DKPREFIX = none; then
571 for i in /usr/share/sgml/docbook/dsssl-stylesheets /usr/share/sgml/docbkdsl /usr/share/sgml/docbook-dsssl; do
572 echo -n "checking for $i/html/docbook.dsl..."
573 if test -f $i/html/docbook.dsl; then
585 dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
586 old_CFLAGS_nospecial=$CFLAGS
587 CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
589 # Hack to force AutoConf to use the CFLAGS we just set
590 dnl Warning: This may break with a future version of Autoconf
591 dnl Tested with autoconf 2.13
592 ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS'
593 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
594 ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
597 dnl =================================================================
599 dnl =================================================================
601 AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no])
603 AC_ARG_ENABLE(pthread,
604 [ --disable-pthread Don't use POSIX threads (pthreads)],
605 [if test $enableval = no; then
610 if test $have_pthread = yes; then
612 AC_DEFINE(FEATURE_PTHREAD)
613 echo Using POSIX threads
614 if test "$GCC" = "yes"; then
615 # Set a GCC specific switch:
616 if test "$target_type" = "unix"; then
617 # This compiler switch makes Linux thread-safe
618 # Don't know about other OS's? Is this switch
621 SPECIAL_CFLAGS="-pthread"
626 echo Using native threads
629 AC_SUBST(PTHREAD_ONLY)
631 dnl =================================================================
632 dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
633 dnl gmtime and localtime
634 dnl =================================================================
636 dnl Next line needed to find the gethost*_r functions on Solaris
637 AC_CHECK_LIB(nsl, gethostbyname)
639 AC_CHECK_FUNC(gethostbyaddr_r, [
640 AC_MSG_CHECKING([signature of gethostbyaddr_r])
644 struct hostent *h, *hp;
647 (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e)
649 AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS)
650 AC_MSG_RESULT([8 args])
658 (void) gethostbyaddr_r(a, l, t, h, b, bl, &e)
660 AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS)
661 AC_MSG_RESULT([7 args])
666 struct hostent_data *d;
670 (void) gethostbyaddr_r(a, l, t, h, d)
672 AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS)
673 AC_MSG_RESULT([5 args])
675 AC_MSG_RESULT(unrecognised)
683 AC_CHECK_FUNC(gethostbyname_r, [
684 AC_MSG_CHECKING([signature of gethostbyname_r])
688 struct hostent *h, *r;
691 (void) gethostbyname_r(n, h, b, bl, &r, &e)
693 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS)
694 AC_MSG_RESULT([6 args])
702 (void) gethostbyname_r(n, h, b, bl, &e)
704 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS)
705 AC_MSG_RESULT([5 args])
710 struct hostent_data *d;
713 (void) gethostbyname_r(n, h, d)
715 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS)
716 AC_MSG_RESULT([3 args])
718 AC_MSG_RESULT(unrecognised)
726 AC_CHECK_FUNC(gmtime_r, [
727 AC_MSG_CHECKING([signature of gmtime_r])
733 (void) gmtime_r(t, tm)
736 AC_DEFINE(HAVE_GMTIME_R)
738 AC_MSG_RESULT(unrecognised)
744 AC_CHECK_FUNC(localtime_r, [
745 AC_MSG_CHECKING([signature of localtime_r])
751 (void) localtime_r(t, tm)
754 AC_DEFINE(HAVE_LOCALTIME_R)
756 AC_MSG_RESULT(unrecognised)
762 dnl =================================================================
764 dnl FIXME: Not tested on Solaris yet...
765 dnl =================================================================
771 *-solaris*) SOCKET_LIB="-lsocket -lnsl"
772 AC_DEFINE(__EXTENSIONS__)
773 if test "$GCC" = "yes"; then
774 # Set a GCC specific switch:
775 # This compiler switch makes Solaris thread-safe
777 SPECIAL_CFLAGS="-pthreads"
779 # What do we do without GCC? Guess this:
780 SPECIAL_CFLAGS="-D_REENTRANT"
787 dnl =================================================================
789 dnl =================================================================
792 *-os2-emx*) SOCKET_LIB=-lsocket
798 dnl =================================================================
800 dnl =================================================================
803 *-apple-darwin*) SPECIAL_CFLAGS="-Dunix"
807 dnl =================================================================
809 dnl =================================================================
814 *-amigaos) AMIGAOS_ONLY=
818 AC_SUBST(AMIGAOS_ONLY)
820 dnl =================================================================
821 dnl Check for standard compiler stuff
822 dnl =================================================================
833 AC_CHECK_SIZEOF(int, 4)
834 AC_CHECK_SIZEOF(char *, 4)
835 AC_CHECK_SIZEOF(long, 4)
836 AC_CHECK_SIZEOF(long long, 8)
837 AC_CHECK_SIZEOF(size_t, 4)
839 dnl Checks for header files.
840 dnl AC_HEADER_SYS_WAIT
841 dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
842 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])
844 dnl Checks for library functions.
846 dnl AC_CHECK_FUNC(strstr)
847 dnl bcopy and memmove are for PCRE
848 AC_CHECK_FUNCS([strerror bcopy memmove])
849 AC_PROG_GCC_TRADITIONAL
850 dnl uncommenting does not work for swa. suse linux
854 dnl uncommenting does not work for swa. suse linux
856 AC_CHECK_FUNCS([atexit getcwd gethostbyaddr gethostbyname inet_ntoa localtime_r memchr memmove memset regcomp select setlocale socket strchr strdup strerror strftime strstr strtoul])
859 dnl =================================================================
860 dnl Checks for libraries.
861 dnl =================================================================
862 dnl Note: Some systems may have the library but not the system header
863 dnl file, so we must check for both.
864 dnl Also check for correct version
865 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])
866 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)
867 AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no])
870 dnl =================================================================
872 dnl =================================================================
876 dnl =================================================================
878 dnl =================================================================
880 AC_ARG_ENABLE(toggle,
881 [ --disable-toggle Don't support temporary disable],
882 [if test $enableval = yes; then
883 AC_DEFINE(FEATURE_TOGGLE)
884 fi],AC_DEFINE(FEATURE_TOGGLE))
887 [ --disable-force Don't allow single-page disable],
888 [if test $enableval = yes; then
889 AC_DEFINE(FEATURE_FORCE_LOAD)
890 fi],AC_DEFINE(FEATURE_FORCE_LOAD))
892 AC_ARG_ENABLE(fast-redirects,
893 [ --disable-fast-redirects Don't support fast redirects],
894 [if test $enableval = yes; then
895 AC_DEFINE(FEATURE_FAST_REDIRECTS)
896 fi], AC_DEFINE(FEATURE_FAST_REDIRECTS))
898 AC_ARG_ENABLE(killpopup,
899 [ --disable-killpopup Never block popups],
900 [if test $enableval = yes; then
901 AC_DEFINE(FEATURE_KILL_POPUPS)
902 fi],AC_DEFINE(FEATURE_KILL_POPUPS))
905 [ --disable-stats Don't keep statistics],
906 [if test $enableval = yes; then
907 AC_DEFINE(FEATURE_STATISTICS)
908 fi],AC_DEFINE(FEATURE_STATISTICS))
910 AC_ARG_ENABLE(ie-images,
911 [ --disable-ie-images Don't auto-detect whether a request from MS Internet
912 Explorer is for an image or HTML.],
913 [if test $enableval = yes; then
914 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
916 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE))
918 AC_ARG_ENABLE(image-blocking,
919 [ --disable-image-blocking Don't try to figure out whether a request is
920 for an image or HTML - assume HTML.],
921 [if test $enableval = yes; then
922 AC_DEFINE(FEATURE_IMAGE_BLOCKING)
924 AC_DEFINE(FEATURE_IMAGE_BLOCKING))
926 AC_ARG_ENABLE(acl-files,
927 [ --disable-acl-files Prevents the use of ACL files to control access to
928 the proxy by IP address.],
929 [if test $enableval = yes; then
930 AC_DEFINE(FEATURE_ACL)
932 AC_DEFINE(FEATURE_ACL))
934 AC_ARG_ENABLE(trust-files,
935 [ --disable-trust-files Prevents the use of trust files.],
936 [if test $enableval = yes; then
937 AC_DEFINE(FEATURE_TRUST)
939 AC_DEFINE(FEATURE_TRUST))
941 AC_ARG_ENABLE(jar-files,
942 [ --disable-jar-files Prevents the use of jar files to capture cookies.],
943 [if test $enableval = yes; then
944 AC_DEFINE(FEATURE_COOKIE_JAR)
946 AC_DEFINE(FEATURE_COOKIE_JAR))
948 AC_ARG_ENABLE(editor,
949 [ --disable-editor Prevents the use of the web-based actions file
950 editor and web-based temporary disable setting.],
951 [if test $enableval = yes; then
952 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)
954 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS))
956 AC_ARG_ENABLE(no-gifs,
957 [ --enable-no-gifs Use politically correct PNG format instead of GIF
958 for built-in images. May not work with all browsers.],
959 [if test $enableval = yes; then
960 AC_DEFINE(FEATURE_NO_GIFS)
964 dnl pcre/pcrs is needed for CGI anyway, so
965 dnl the choice is only between static and
968 AC_ARG_ENABLE(regex-matching,
969 [ --enable-regex-matching=pcre Use perl-compatible regex for actionsfile
970 pattern matching (default)
971 --disable-regex-matching Don't use regex matching, compare URL
972 prefix instead (won't shrink birary)],
973 [ regex_matching=$enableval ],
974 [ regex_matching=pcre ])
976 AC_ARG_ENABLE(dynamic-pcre,
977 [ --disable-dynamic-pcre Use the built-in, static pcre, even if
978 libpcre is available],
979 [ if test $enableval = "no"; then have_pcre=no; fi ])
981 AC_ARG_ENABLE(dynamic-pcrs,
982 [ --disable-dynamic-pcrs Use the built-in, static pcrs, even if
983 libpcrs is available],
984 [ if test $enableval = "no"; then have_pcrs=no; fi ])
987 # Is the regex URL matching based on libpcreposix, but we
988 # don't have that library?
990 if test $have_pcreposix = "yes" -o $regex_matching != "pcre"; then
991 dont_miss_pcreposix=yes
993 dont_miss_pcreposix=no
996 # If we have libpcre and either we also have pcreposix or
997 # we don't need pcreposix, then link pcre dynamically; else
998 # build it and link statically
1000 if test $have_pcre = "yes" -a $dont_miss_pcreposix = "yes"; then
1001 echo "using libpcre"
1006 echo "using built-in static pcre"
1008 AC_DEFINE(STATIC_PCRE)
1012 # If we have libpcrs and pcre is linked dynamically
1013 # then also link pcrs dynamically, else build and link
1016 if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then
1017 echo "using libpcrs"
1021 echo "using built-in static pcrs"
1022 AC_DEFINE(STATIC_PCRS)
1026 # Which method should be used for URL matching?
1027 # pcre or prefix matching?
1029 if test $regex_matching = "pcre"; then
1030 echo "using pcre regex for URL matching"
1031 AC_DEFINE(REGEX_PCRE)
1033 if test $pcre_dyn = "yes"; then
1034 LIBS="$LIBS -lpcreposix"
1037 echo -e "using prefix matching for URLs\nHint: This does NOT make the executable any smaller!"
1041 AC_SUBST(PCRE_REGEX_ONLY)
1042 AC_SUBST(STATIC_PCRE_ONLY)
1043 AC_SUBST(STATIC_PCRS_ONLY)
1045 dnl =================================================================
1046 dnl Final cleanup and output
1047 dnl =================================================================
1049 dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately
1051 CFLAGS=$old_CFLAGS_nospecial
1052 AC_SUBST(SPECIAL_CFLAGS)
1054 AC_SUBST(PTHREAD_LIB)
1056 AC_OUTPUT(GNUmakefile)