1 dnl Process this file with autoconf to produce a configure script.
3 dnl $Id: configure.in,v 1.68.2.14 2003/03/25 13:27:12 hal9 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.68.2.14 2003/03/25 13:27:12 hal9
32 dnl Manually apply Docbook/FreeBSD patch #708081 from a.go at tiscali.nl.
34 dnl Revision 1.68.2.13 2003/03/18 19:38:57 oes
35 dnl Set version info for 3.0.1 release
37 dnl Revision 1.68.2.12 2003/03/07 03:41:04 david__schmidt
38 dnl Wrapping all *_r functions (the non-_r versions of them) with mutex semaphores for OSX. Hopefully this will take care of all of those pesky crash reports.
40 dnl Revision 1.68.2.11 2003/03/06 15:22:37 oes
41 dnl Fixed minor shell syntax bug
43 dnl Revision 1.68.2.10 2003/01/08 16:39:41 oes
44 dnl Changing default to exclude FEATURE_IMAGE_DETECT_MSIE because of problem reports with recent IEs
46 dnl Revision 1.68.2.9 2002/12/13 23:47:45 hal9
47 dnl Add openbsd $specialflags per gunner at styx2002.no-ip.org
49 dnl Revision 1.68.2.8 2002/11/27 12:55:26 oes
50 dnl Fixed broken handling of pre-set CFLAGS
52 dnl Revision 1.68.2.7 2002/10/25 02:44:22 hal9
53 dnl Port of make install, etc from main trunk. Needs testing! Add Slackware
54 dnl support, and other related changes. Update related docs.
56 dnl Revision 1.68.2.6 2002/09/25 15:35:15 oes
57 dnl Marking as non-release
59 dnl Revision 1.68.2.5 2002/08/25 23:37:00 hal9
60 dnl Getting ready for 3.0 release.
62 dnl Revision 1.68.2.4 2002/08/10 11:21:57 oes
63 dnl - Set Version to 2.9.20 (beta)
64 dnl - Add two AC_DEFINEs that indicate if the pcre*.h headers
65 dnl are located in a pcre/ subdir to the include path.
67 dnl Revision 1.68.2.3 2002/08/06 11:29:36 oes
68 dnl Fixed detection/inclusion of pcre.h, which is in a pcre subdir on RH
70 dnl Revision 1.68.2.2 2002/07/30 19:36:09 hal9
71 dnl Bump version to 2.9.17.
73 dnl Revision 1.68.2.1 2002/07/26 15:21:12 oes
74 dnl Bumped version number for 2.9.16 freeze
76 dnl Revision 1.68 2002/05/25 16:54:54 jongfoster
77 dnl Detect if the compiler supports -pthread.
78 dnl Hopefully this will fix bug 560442. (I don't have a HP PA-RISC
79 dnl machine to test this!)
81 dnl Revision 1.67 2002/05/03 14:33:59 oes
82 dnl Generate doc/soucre/ldp.dsl
84 dnl Revision 1.66 2002/05/03 00:41:56 oes
85 dnl Set version to 2.9.15 to comply with new versioning scheme
87 dnl Revision 1.65 2002/04/25 19:13:57 morcego
88 dnl Removed RPM release number declaration on configure.in
89 dnl Changed makefile to use given value for RPM_PACKAGEV when on uploading
90 dnl targets (will produce an error, explaining who to do it, if no value
93 dnl Revision 1.64 2002/04/22 16:32:31 morcego
94 dnl configure.in, *.spec: Bumping release to 2 (2.9.14-2)
95 dnl -rh.spec: uid and gid are now macros
96 dnl -suse.spec: Changing the header Copyright to License (Copyright is
99 dnl Revision 1.63 2002/04/11 11:00:21 oes
100 dnl Applied Moritz' fix for socklen_t on Solaris
102 dnl Revision 1.62 2002/04/11 10:09:20 oes
105 dnl Revision 1.61 2002/04/10 18:14:45 morcego
106 dnl - (privoxy-rh.spec only) Relisting template files on the %%files section
107 dnl - (configure.in, privoxy-rh.spec) Bumped package release to 5
109 dnl Revision 1.60 2002/04/09 16:38:49 oes
110 dnl Added detection of missing config.h.in
112 dnl Revision 1.59 2002/04/06 20:23:55 jongfoster
113 dnl Removing unnessacery tests (C++, ranlib)
115 dnl Revision 1.58 2002/04/04 20:49:20 swa
116 dnl attempt to consolidate the
117 dnl different dokbook versions.
119 dnl Revision 1.57 2002/04/04 00:36:36 gliptak
120 dnl always use pcre for matching
122 dnl Revision 1.56 2002/04/03 22:28:03 gliptak
123 dnl Removed references to gnu_regex
125 dnl Revision 1.55 2002/04/03 03:54:38 gliptak
126 dnl Checking pcre version
128 dnl Revision 1.54 2002/04/01 00:54:24 gliptak
129 dnl More changes needed around regex support.
131 dnl Revision 1.53 2002/03/29 20:09:01 swa
134 dnl Revision 1.52 2002/03/29 19:51:40 gliptak
135 dnl Correcting compile problem with Debian
137 dnl Revision 1.51 2002/03/28 20:43:00 swa
138 dnl set make correctly
140 dnl Revision 1.50 2002/03/27 03:03:45 hal9
141 dnl Add test for man2html
143 dnl Revision 1.49 2002/03/27 02:19:52 david__schmidt
144 dnl More Mac OSX support:
145 dnl - Get rid of extraneous, noisy -pthread warnings
146 dnl - Define unix so we get oes' unix-tagged changes
148 dnl Revision 1.48 2002/03/26 22:29:54 swa
149 dnl we have a new homepage!
151 dnl Revision 1.47 2002/03/26 16:41:00 hal9
152 dnl Upped RPM Release to 3 (need to build new RH packages)
154 dnl Revision 1.46 2002/03/24 18:55:06 jongfoster
155 dnl Making Docbook work under Windows
157 dnl Revision 1.45 2002/03/24 14:19:55 swa
158 dnl set rpm package release in configure.in. nowhere else.
160 dnl Revision 1.44 2002/03/24 13:25:43 swa
161 dnl name change related issues
163 dnl Revision 1.43 2002/03/24 12:56:21 swa
164 dnl name change related issues.
166 dnl Revision 1.42 2002/03/22 18:11:37 jongfoster
167 dnl Bumping version number to 2.9.12
169 dnl Revision 1.41 2002/03/19 19:30:04 morcego
170 dnl - Fixing stylesheet checking on configure. If it is found, no further checks
173 dnl - configure will now check for db2html or docbook2html (should work now
174 dnl on SuSe without the docbktls package)
176 dnl Revision 1.40 2002/03/09 14:33:30 oes
177 dnl Fixing the (harmless) AC_CHECK_FILE warnings
179 dnl Revision 1.39 2002/03/08 16:46:13 oes
180 dnl Added --enable-no-gifs
182 dnl Revision 1.38 2002/03/08 14:13:50 morcego
183 dnl Fixing configure, to remove a command not found error.
185 dnl Revision 1.37 2002/03/08 12:58:21 oes
186 dnl Tiny bugfix in AC_ARG_WITH(debug)
188 dnl Revision 1.36 2002/03/06 23:50:36 morcego
189 dnl Will not test for a text browser if we are not using docbook.
191 dnl Revision 1.35 2002/03/06 21:55:52 morcego
192 dnl New configure option: --with-docbook=(yes|no|directory)
193 dnl Preliminary new platform detection code included. Will work with the
194 dnl old one for now. No use just trowing it away
196 dnl Revision 1.34 2002/03/06 20:57:00 morcego
197 dnl Fixing detection of stylesheets on SuSe.
199 dnl Revision 1.33 2002/03/05 17:31:11 morcego
200 dnl Search for docbook.dsl. Should solve portability problems for SuSe.
202 dnl Revision 1.32 2002/03/05 14:07:43 morcego
203 dnl configure now detects rpm topdir, and change GNUmakefile acordingly
204 dnl (based on sugestion by Sarantis Paskalis)
206 dnl Revision 1.31 2002/03/05 13:43:28 morcego
207 dnl Checking for text browser, so redhat-dok can work.
209 dnl Revision 1.30 2002/03/04 17:58:01 oes
210 dnl Deleted _DEBUG and PID_FILE_PATH
212 dnl Revision 1.29 2002/02/28 14:20:53 oes
213 dnl Fixed detection of gethost*_r functions on Solaris
215 dnl Revision 1.28 2002/02/27 15:02:38 oes
216 dnl Incremented version number
218 dnl Revision 1.27 2002/01/10 12:35:18 oes
219 dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros
220 dnl to silence autoconf warnings. Numbers are for Intel/Linux.
221 dnl Is there a better way?
223 dnl Revision 1.26 2002/01/09 14:29:49 oes
224 dnl - Added AC_CHECK_FUNC tests for the availability of
225 dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and
226 dnl localtime_r, as well as AC_TRY_COMPILE tests to
227 dnl determine their signatures.
229 dnl - Fixed a bug with the init of CFLAGS that was
230 dnl reported by barsnick
232 dnl Revision 1.25 2002/01/04 15:27:18 oes
233 dnl Changed quoting of CODE_STATUS for use in make
235 dnl Revision 1.24 2001/12/30 14:07:31 steudten
236 dnl - Add signal handling (unix)
237 dnl - Add SIGHUP handler (unix)
238 dnl - Add creation of pidfile (unix)
239 dnl - Add action 'top' in rc file (RH)
240 dnl - Add entry 'SIGNALS' to manpage
241 dnl - Add exit message to logfile (unix)
243 dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt
244 dnl Change from "alpha" to "beta" in configure.in
246 dnl Revision 1.22 2001/12/01 11:24:01 jongfoster
247 dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
248 dnl make break in a more obvious way.
250 dnl Revision 1.21 2001/11/30 21:35:54 jongfoster
251 dnl Bumping version number to 2.9.10
253 dnl Revision 1.20 2001/10/23 21:24:09 jongfoster
254 dnl Support for FEATURE_CGI_EDIT_ACTIONS
256 dnl Revision 1.19 2001/10/07 15:33:14 oes
257 dnl Removed FEATURE_DENY_GZIP
258 dnl Bumped up version number
260 dnl Revision 1.18 2001/09/13 13:10:24 steudten
262 dnl PreWork for Debug Interface.
263 dnl Add new option "--with-debug" to enable debugging (flags aso.)
265 dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt
266 dnl Mac OSX (Darwin) support added.
268 dnl Revision 1.16 2001/09/12 22:55:45 joergs
269 dnl AmigaOS support added.
271 dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt
273 dnl OS/2 port: update autoconf'd support for the platform.
275 dnl Revision 1.14 2001/07/30 22:12:11 jongfoster
276 dnl Fixing Solaris build (I hope) and tidying up #defines:
277 dnl - All feature #defines are now of the form FEATURE_xxx
278 dnl - Permanently turned off WIN_GUI_EDIT
279 dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
281 dnl Revision 1.13 2001/07/29 17:09:17 jongfoster
282 dnl Major changes to build system in order to fix these bugs:
283 dnl - pthreads under Linux was broken - changed -lpthread to -pthread
284 dnl - Compiling in MinGW32 mode under CygWin now correctly detects
285 dnl which shared libraries are available
286 dnl - Solaris support (?) (Not tested under Solaris yet)
288 dnl Revision 1.12 2001/07/25 19:16:27 oes
289 dnl Bumping version number to 2.9.8
291 dnl Revision 1.11 2001/07/21 18:00:07 jongfoster
292 dnl Bumping version number to 2.9.7
294 dnl Revision 1.10 2001/07/18 17:25:04 oes
297 dnl Revision 1.9 2001/07/15 19:45:13 jongfoster
298 dnl Added support for linking with POSIX threads library
300 dnl Revision 1.8 2001/07/15 17:54:29 jongfoster
301 dnl Renaming #define STATIC to STATIC_PCRE
302 dnl Adding new #define FEATURE_PTHREAD that will be used to enable
303 dnl POSIX threads support.
305 dnl Revision 1.7 2001/07/13 13:58:05 oes
306 dnl Completely reorganized the selection scheme for
307 dnl pcre, pcreposix, pcrs and gnu_regex:
309 dnl The presence of shared pcre, pcreposix or pcrs
310 dnl libraried is now autodetected. Additionally, the
311 dnl user can enforce using the built-in static variants
312 dnl by specifying --disable-dynamic-(pcre|pcrs).
313 dnl Care is taken to avoid that pcre is dyn, while pcreposix
314 dnl is static, if both are used and that pcrs is static if
317 dnl The choice between pcre, gnu or no regex for actionsfile
318 dnl URL matching is now via
319 dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the
320 dnl default being pcre.
322 dnl Revision 1.6 2001/06/29 21:56:40 oes
325 dnl Revision 1.5 2001/06/29 13:26:27 oes
326 dnl Introduced #define CODE_STATUS
328 dnl Revision 1.4 2001/05/29 09:50:24 jongfoster
329 dnl Unified blocklist/imagelist/permissionslist.
330 dnl File format is still under discussion, but the internal changes
331 dnl are (mostly) done.
333 dnl Also modified interceptor behaviour:
334 dnl - We now intercept all URLs beginning with one of the following
335 dnl prefixes (and *only* these prefixes):
337 dnl * http://ijbswa.sf.net/config/
338 dnl * http://ijbswa.sourceforge.net/config/
339 dnl - New interceptors "home page" - go to http://i.j.b/ to see it.
340 dnl - Internal changes so that intercepted and fast redirect pages
341 dnl are not replaced with an image.
342 dnl - Interceptors now have the option to send a binary page direct
343 dnl to the client. (i.e. ijb-send-banner uses this)
344 dnl - Implemented show-url-info interceptor. (Which is why I needed
345 dnl the above interceptors changes - a typical URL is
346 dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
347 dnl The previous mechanism would not have intercepted that, and
348 dnl if it had been intercepted then it then it would have replaced
349 dnl it with an image.)
351 dnl Revision 1.3 2001/05/22 18:46:04 oes
353 dnl - Enabled filtering banners by size rather than URL
354 dnl by adding patterns that replace all standard banner
355 dnl sizes with the "Junkbuster" gif to the re_filterfile
357 dnl - Enabled filtering WebBugs by providing a pattern
358 dnl which kills all 1x1 images
360 dnl - Added support for PCRE_UNGREEDY behaviour to pcrs,
361 dnl which is selected by the (nonstandard and therefore
362 dnl capital) letter 'U' in the option string.
363 dnl It causes the quantifiers to be ungreedy by default.
364 dnl Appending a ? turns back to greedy (!).
366 dnl - Added a new interceptor ijb-send-banner, which
367 dnl sends back the "Junkbuster" gif. Without imagelist or
368 dnl MSIE detection support, or if tinygif = 1, or the
369 dnl URL isn't recognized as an imageurl, a lame HTML
370 dnl explanation is sent instead.
372 dnl - Added new feature, which permits blocking remote
373 dnl script redirects and firing back a local redirect
375 dnl The feature is conditionally compiled, i.e. it
376 dnl can be disabled with --disable-fast-redirects,
377 dnl plus it must be activated by a "fast-redirects"
378 dnl line in the config file, has its own log level
379 dnl and of course wants to be displayed by show-proxy-args
380 dnl Note: Boy, all the #ifdefs in 1001 locations and
381 dnl all the fumbling with configure.in and acconfig.h
382 dnl were *way* more work than the feature itself :-(
384 dnl - Because a generic redirect template was needed for
385 dnl this, tinygif = 3 now uses the same.
387 dnl - Moved GIFs, and other static HTTP response templates
390 dnl - Some minor fixes
392 dnl - Removed some >400 CRs again (Jon, you really worked
395 dnl Revision 1.2 2001/05/20 01:21:20 jongfoster
396 dnl Version 2.9.4 checkin.
397 dnl - Merged popupfile and cookiefile, and added control over PCRS
398 dnl filtering, in new "permissionsfile".
399 dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
400 dnl file error you now get a message box (in the Win32 GUI) rather
401 dnl than the program exiting with no explanation.
402 dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header
404 dnl - Removed tabs from "config"
405 dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition.
406 dnl - Bumped up version number.
408 dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes
409 dnl Initial import of version 2.9.3 source tree
414 dnl =================================================================
415 dnl AutoConf Initialization
416 dnl =================================================================
418 AC_REVISION($Revision: 1.68.2.14 $)
421 if test ! -f config.h.in; then
422 echo "You need to run autoheader first. "
423 echo -n "Shall I do this for you now? (y/n) "
425 if test "$answer" != "y"; then
432 AC_CONFIG_HEADER([config.h])
437 AC_ARG_WITH(docbook, dnl
438 --with-docbook=[[yes|no|directory]]
439 Enable docbook documentation creation
440 (default = yes, for gnu and linux),[dnl
441 case "$with_docbook" in
451 AC_ARG_WITH(db2html, dnl
452 --with-db2html=<path/executable>
453 Set the location of the docbook to html converter
454 (default = search),[dnl
458 dnl =================================================================
459 dnl Application version number
460 dnl =================================================================
467 dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
468 dnl used for CGI output. Set version to 0.0.0 and status to "UNRELEASED"
469 dnl whenever CVS in a stable branch differs from the last release.
471 dnl =================================================================
472 dnl Substitute the version numbers
473 dnl =================================================================
475 AC_SUBST(VERSION_MAJOR)
476 AC_SUBST(VERSION_MINOR)
477 AC_SUBST(VERSION_POINT)
478 AC_SUBST(CODE_STATUS)
481 AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
482 AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR})
483 AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT})
484 AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
485 AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
487 dnl =================================================================
488 dnl Checks for programs needed to build.
489 dnl =================================================================
491 dnl Keep AC_PROG_CC from setting its own defaults:
492 if test "X$CFLAGS" = "X"; then
503 AC_CHECK_PROG(GDB,gdb,yes,no)
504 AC_PATH_PROG(BGROUPS,groups,no,/bin:/usr/bin:/usr/local/bin)
505 AC_PATH_PROG(ID,id,no,/bin:/usr/bin:/usr/local/bin)
509 dnl =================================================================
510 dnl debug, gcc and gdb support
511 dnl =================================================================
514 [ --with-debug Enable debug mode],
516 if test "x$withval" != "xno" ; then
517 if test $ac_cv_prog_cc_g = yes; then
518 if test "$GCC" = yes; then
520 CFLAGS="$CFLAGS -ggdb"
524 CFLAGS="$CFLAGS -Wshadow -Wconversion"
532 if test "X$CFLAGS" = "X "; then # if CFLAGS were unset (see above)
533 if test "$GCC" = yes; then
540 dnl =================================================================
541 dnl Check for user and group validity
542 dnl =================================================================
544 $ID privoxy >/dev/null 2>/dev/null
545 if test $? -ne 0 ; then
546 AC_MSG_WARN(There is no user 'privoxy' on this system)
548 AC_MSG_CHECKING([for user])
550 [ --with-user=privoxy Set user under which privoxy will run],
552 if test "x$withval" != "xyes"; then
553 if test $ID = no ; then
554 AC_MSG_ERROR(There is no 'id' program on this system)
556 AC_MSG_RESULT($with_user)
557 $ID $with_user 2>/dev/null >/dev/null
558 if test $? -eq 0 ; then
561 AC_MSG_ERROR(There is no user '$with_user' on this system)
565 AC_MSG_ERROR(We need a user if you give me this parameter)
569 if test $ID = no ; then
570 AC_MSG_ERROR(There is no 'id' programm on this system)
572 AC_MSG_RESULT(none specified)
579 AC_MSG_CHECKING([for group])
581 [ --with-group=privoxy Set group for privoxy],
583 if test "x$withval" != "xyes"; then
584 if test $BGROUPS = no ; then
585 AC_MSG_ERROR(There is no 'groups' program on this system)
587 AC_MSG_RESULT($with_group)
588 $BGROUPS $USER >/dev/null
589 if test $? -eq 0 ; then
590 # FIXME: this fails if valid group, but not first group
592 if test "$with_group" != "`$BGROUPS $USER | sed 's/.*: //' 2>/dev/null |$AWK '{print $1}'`" ; then
593 AC_MSG_ERROR(The given value '$withval' does not match group entry)
598 AC_MSG_ERROR(There is no group entry for user '$USER')
602 AC_MSG_ERROR(We need a group if you give me this parameter)
606 if test $BGROUPS = no ; then
607 AC_MSG_ERROR(There is no 'groups' programm on this system)
609 AC_MSG_RESULT(none specified)
616 dnl =================================================================
617 dnl additional gcc flags
618 dnl =================================================================
621 CFLAGS="-pipe $CFLAGS"
625 dnl =================================================================
627 dnl =================================================================
629 dnl Must do this first.
631 dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler
632 dnl into Cygwin or MinGW32 modes. Depending on the mode selected,
633 dnl the compiler will use completely different sets of library
634 dnl and include files.
636 dnl =================================================================
641 if test "$MINGW32" = "yes"; then
644 if test "$CYGWIN" = "yes"; then
651 if test $dodk = auto; then
653 if test $target_type = unix; then
662 dnl Decide what to do based on target_type
663 dnl Note: PTHREAD_LIB is always set, even if pthread is disabled.
664 dnl This is because we don't know yet whether pthread is enabled.
666 AC_ARG_ENABLE(mingw32,
667 [ --enable-mingw32 Use mingw32 for a Windows GUI],
668 [if test $enableval = yes; then
672 if test $target_type = mingw; then
674 SPECIAL_CFLAGS="-mwindows -mno-cygwin"
675 PTHREAD_LIB=-lpthreadGC
676 echo "Using mingw32 (Win32 GUI)"
679 if test $target_type = cygwin; then
680 SPECIAL_CFLAGS="-mno-win32"
682 echo "Using Cygnus (Win32 command line)"
685 PTHREAD_LIB=-lpthread
690 dnl Checking which text html browser we have avaliable
691 if test $dodk != no; then
692 AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
693 if test "$WDUMP" = false; then
694 AC_MSG_WARN(You need some kind of text browser to build documentation \(w3m, lynx and links are supported\))
696 if test $DB2HTML = false; then
697 dnl We need to clean the variable, otherwise AC_CHECK_PROGS
700 AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false)
706 dnl If we use rpm, we need to check where %_topdir is
707 AC_CHECK_PROGS(RPMBIN,rpm,false)
708 if test $RPMBIN != false; then
709 RPM_BASE=`rpm --eval "%{_topdir}"`
710 if test "$RPM_BASE" = ""; then
711 RPM_BASE=/usr/src/redhat
716 dnl Check for jade, so we can build the documentation
717 AC_CHECK_PROGS(JADEBIN,jade openjade,false)
720 dnl Check for man2html for docs.
721 AC_CHECK_PROGS(MAN2HTML,man2html,false)
724 dnl Set doc status flag for conditional content inclusions
725 DOC_STATUS=p-not-stable
726 if test $CODE_STATUS = stable; then
727 DOC_STATUS="p-stable"
731 dnl Checking for the docbook.dsl stylesheet file
732 dnl It is still not portable (directory slash)
734 if test $dodk = yes; then
735 if test $DKPREFIX = none; then
736 for i in /usr/share/sgml/docbook/dsssl-stylesheets /usr/share/sgml/docbkdsl /usr/share/sgml/docbook-dsssl usr/local/share/sgml/docbook/dsssl/modular; do
737 dnl echo -n does not fly with /bin/sh.
738 dnl echo -n "checking for $i/html/docbook.dsl..."
739 AC_MSG_CHECKING([for $i])
740 if test -f $i/html/docbook.dsl; then
748 # where are the catalogs?
749 for i in /usr/share/sgml/CATALOG.docbk30 \
750 /usr/share/sgml/CATALOG.docbk31 \
751 /usr/share/sgml/CATALOG.docbk31 \
752 /usr/local/share/sgml/docbook/3.0/docbook.cat \
753 /usr/local/share/sgml/docbook/3.1/docbook.cat \
755 dnl echo -n "checking for $i..."
756 AC_MSG_CHECKING([for $i])
759 JADECAT="$JADECAT -c $i"
769 dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
770 old_CFLAGS_nospecial=$CFLAGS
771 CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
773 # Hack to force AutoConf to use the CFLAGS we just set
774 dnl Warning: This may break with a future version of Autoconf
775 dnl Tested with autoconf 2.13
776 ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS'
777 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
778 ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
781 dnl =================================================================
783 dnl =================================================================
785 AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no])
787 AC_ARG_ENABLE(pthread,
788 [ --disable-pthread Don't use POSIX threads (pthreads)],
789 [if test $enableval = no; then
794 if test $have_pthread = yes; then
796 AC_DEFINE(FEATURE_PTHREAD)
797 echo Using POSIX threads
798 if test "$GCC" = "yes"; then
799 # Set a GCC specific switch:
800 if test "$target_type" = "unix"; then
801 ac_jgf_save_CFLAGS=$CFLAGS
802 CFLAGS="$CFLAGS -pthread"
803 AC_TRY_LINK([#include <pthread.h>],
804 [void *p = pthread_create;],
806 # This compiler switch makes GCC on Linux thread-safe
807 # However, it's not supported on most other OS.
809 SPECIAL_CFLAGS="-pthread"
811 CFLAGS=$ac_jgf_save_CFLAGS
816 echo Using native threads
819 AC_SUBST(PTHREAD_ONLY)
821 dnl =================================================================
822 dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
823 dnl gmtime and localtime
824 dnl =================================================================
826 dnl Next line needed to find the gethost*_r functions on Solaris
827 AC_CHECK_LIB(nsl, gethostbyname)
829 AC_CHECK_FUNC(gethostbyaddr_r, [
830 AC_MSG_CHECKING([signature of gethostbyaddr_r])
834 struct hostent *h, *hp;
837 (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e)
839 AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS)
840 AC_MSG_RESULT([8 args])
848 (void) gethostbyaddr_r(a, l, t, h, b, bl, &e)
850 AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS)
851 AC_MSG_RESULT([7 args])
856 struct hostent_data *d;
860 (void) gethostbyaddr_r(a, l, t, h, d)
862 AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS)
863 AC_MSG_RESULT([5 args])
865 AC_MSG_RESULT(unrecognised)
873 AC_CHECK_FUNC(gethostbyname_r, [
874 AC_MSG_CHECKING([signature of gethostbyname_r])
878 struct hostent *h, *r;
881 (void) gethostbyname_r(n, h, b, bl, &r, &e)
883 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS)
884 AC_MSG_RESULT([6 args])
892 (void) gethostbyname_r(n, h, b, bl, &e)
894 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS)
895 AC_MSG_RESULT([5 args])
900 struct hostent_data *d;
903 (void) gethostbyname_r(n, h, d)
905 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS)
906 AC_MSG_RESULT([3 args])
908 AC_MSG_RESULT(unrecognised)
916 AC_CHECK_FUNC(gmtime_r, [
917 AC_MSG_CHECKING([signature of gmtime_r])
923 (void) gmtime_r(t, tm)
926 AC_DEFINE(HAVE_GMTIME_R)
928 AC_MSG_RESULT(unrecognised)
934 AC_CHECK_FUNC(localtime_r, [
935 AC_MSG_CHECKING([signature of localtime_r])
941 (void) localtime_r(t, tm)
944 AC_DEFINE(HAVE_LOCALTIME_R)
946 AC_MSG_RESULT(unrecognised)
952 dnl =================================================================
954 dnl FIXME: Not tested on Solaris yet...
955 dnl ISFIXED: Have tested it on Solaris, but there are other ways to
956 dnl make these checks generic, e.g.:
957 dnl AC_CHECK_FUNC(getsockopt, , AC_CHECK_LIB(socket, getsockopt))
958 dnl (Moritz Barsnick <moritz@barsnick.net>)
959 dnl =================================================================
965 *-solaris*) SOCKET_LIB="-lsocket -lnsl"
966 AC_DEFINE(__EXTENSIONS__)
967 if test "$GCC" = "yes"; then
968 # Set a GCC specific switch:
969 # This compiler switch makes Solaris thread-safe
971 SPECIAL_CFLAGS="-pthreads"
973 # What do we do without GCC? Guess this:
974 SPECIAL_CFLAGS="-D_REENTRANT"
981 dnl =================================================================
982 dnl Solaris problem, and others perhaps (socklen_t is undefined)
983 dnl =================================================================
985 AC_MSG_CHECKING([for socklen_t])
986 AC_EGREP_HEADER(socklen_t, sys/socket.h, AC_MSG_RESULT([yes]),
988 AC_DEFINE(socklen_t,int,
989 [ Define to 'int' if <sys/socket.h> doesn't have it. ]))
992 dnl =================================================================
994 dnl =================================================================
997 *-os2-emx*) SOCKET_LIB=-lsocket
1001 AC_SUBST(SOCKET_LIB)
1003 dnl =================================================================
1004 dnl Mac OSX specific
1005 dnl =================================================================
1008 *-apple-darwin*) SPECIAL_CFLAGS="-Dunix -DOSX_DARWIN"
1012 dnl =================================================================
1013 dnl OpenBSD specific
1014 dnl =================================================================
1017 *-openbsd*) SPECIAL_CFLAGS="$SPECIAL_CFLAGS -Dunix"
1021 dnl =================================================================
1022 dnl AmigaOS specific
1023 dnl =================================================================
1028 *-amigaos) AMIGAOS_ONLY=
1032 AC_SUBST(AMIGAOS_ONLY)
1034 dnl =================================================================
1035 dnl Check for standard compiler stuff
1036 dnl =================================================================
1047 AC_CHECK_SIZEOF(int, 4)
1048 AC_CHECK_SIZEOF(char *, 4)
1049 AC_CHECK_SIZEOF(long, 4)
1050 AC_CHECK_SIZEOF(long long, 8)
1051 AC_CHECK_SIZEOF(size_t, 4)
1053 dnl Checks for header files.
1054 dnl AC_HEADER_SYS_WAIT
1055 dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
1056 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])
1058 dnl Checks for library functions.
1060 dnl AC_CHECK_FUNC(strstr)
1061 dnl bcopy and memmove are for PCRE
1062 AC_CHECK_FUNCS([strerror bcopy memmove])
1063 AC_PROG_GCC_TRADITIONAL
1064 dnl uncommenting does not work for swa. suse linux
1068 dnl uncommenting does not work for swa. suse linux
1070 AC_CHECK_FUNCS([atexit getcwd gethostbyaddr gethostbyname inet_ntoa localtime_r memchr memmove memset regcomp select setlocale socket strchr strdup strerror strftime strstr strtoul])
1073 dnl =================================================================
1074 dnl Checks for libraries.
1075 dnl =================================================================
1076 dnl Note: Some systems may have the library but not the system header
1077 dnl file, so we must check for both.
1078 dnl Also check for correct version
1079 AC_CHECK_LIB(pcre, pcre_compile, [
1080 AC_CHECK_HEADER(pcre.h, [
1081 AC_EGREP_HEADER(pcre_fullinfo, pcre.h, [have_pcre=yes], [AC_MSG_WARN([[pcre old version installed]]); have_pcre=no])
1083 AC_CHECK_HEADER(pcre/pcre.h, [
1084 AC_EGREP_HEADER(pcre_fullinfo, pcre/pcre.h, [have_pcre=yes]; [AC_DEFINE(PCRE_H_IN_SUBDIR)], [AC_MSG_WARN([[pcre old version installed]]); have_pcre=no])
1089 AC_CHECK_LIB(pcreposix, regcomp, [
1090 AC_CHECK_HEADER(pcreposix.h, [
1091 AC_EGREP_HEADER(pcreposix_regerror, pcreposix.h, [AC_MSG_WARN([[pcreposix old version installed]]); have_pcreposix=no], [have_pcreposix=yes])
1093 AC_CHECK_HEADER(pcre/pcreposix.h, [
1094 AC_EGREP_HEADER(pcreposix_regerror, pcre/pcreposix.h, [AC_MSG_WARN([[pcreposix old version installed]]); have_pcreposix=no], [have_pcreposix=yes]; [AC_DEFINE(PCREPOSIX_H_IN_SUBDIR)])
1095 ], [have_pcreposix=no])
1097 ], [have_pcreposix=no], -lpcre)
1099 AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no], -lpcre)
1101 dnl =================================================================
1103 dnl =================================================================
1107 dnl =================================================================
1109 dnl =================================================================
1111 AC_ARG_ENABLE(toggle,
1112 [ --disable-toggle Don't support temporary disable],
1113 [if test $enableval = yes; then
1114 AC_DEFINE(FEATURE_TOGGLE)
1115 fi],AC_DEFINE(FEATURE_TOGGLE))
1117 AC_ARG_ENABLE(force,
1118 [ --disable-force Don't allow single-page disable],
1119 [if test $enableval = yes; then
1120 AC_DEFINE(FEATURE_FORCE_LOAD)
1121 fi],AC_DEFINE(FEATURE_FORCE_LOAD))
1123 AC_ARG_ENABLE(fast-redirects,
1124 [ --disable-fast-redirects Don't support fast redirects],
1125 [if test $enableval = yes; then
1126 AC_DEFINE(FEATURE_FAST_REDIRECTS)
1127 fi], AC_DEFINE(FEATURE_FAST_REDIRECTS))
1129 AC_ARG_ENABLE(killpopup,
1130 [ --disable-killpopup Never block popups],
1131 [if test $enableval = yes; then
1132 AC_DEFINE(FEATURE_KILL_POPUPS)
1133 fi],AC_DEFINE(FEATURE_KILL_POPUPS))
1135 AC_ARG_ENABLE(stats,
1136 [ --disable-stats Don't keep statistics],
1137 [if test $enableval = yes; then
1138 AC_DEFINE(FEATURE_STATISTICS)
1139 fi],AC_DEFINE(FEATURE_STATISTICS))
1141 AC_ARG_ENABLE(ie-images,
1142 [ --enable-ie-images Enable a quick but not always reliable auto-detect whether requests from
1143 MS Internet Explorer are for an image or not.],
1144 [if test $enableval = yes; then
1145 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
1148 AC_ARG_ENABLE(image-blocking,
1149 [ --disable-image-blocking Don't try to figure out whether a request is
1150 for an image or HTML - assume HTML.],
1151 [if test $enableval = yes; then
1152 AC_DEFINE(FEATURE_IMAGE_BLOCKING)
1154 AC_DEFINE(FEATURE_IMAGE_BLOCKING))
1156 AC_ARG_ENABLE(acl-files,
1157 [ --disable-acl-files Prevents the use of ACL files to control access to
1158 the proxy by IP address.],
1159 [if test $enableval = yes; then
1160 AC_DEFINE(FEATURE_ACL)
1162 AC_DEFINE(FEATURE_ACL))
1164 AC_ARG_ENABLE(trust-files,
1165 [ --disable-trust-files Prevents the use of trust files.],
1166 [if test $enableval = yes; then
1167 AC_DEFINE(FEATURE_TRUST)
1169 AC_DEFINE(FEATURE_TRUST))
1171 AC_ARG_ENABLE(jar-files,
1172 [ --disable-jar-files Prevents the use of jar files to capture cookies.],
1173 [if test $enableval = yes; then
1174 AC_DEFINE(FEATURE_COOKIE_JAR)
1176 AC_DEFINE(FEATURE_COOKIE_JAR))
1178 AC_ARG_ENABLE(editor,
1179 [ --disable-editor Prevents the use of the web-based actions file
1180 editor and web-based temporary disable setting.],
1181 [if test $enableval = yes; then
1182 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)
1184 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS))
1186 AC_ARG_ENABLE(no-gifs,
1187 [ --enable-no-gifs Use politically correct PNG format instead of GIF
1188 for built-in images. May not work with all browsers.],
1189 [if test $enableval = yes; then
1190 AC_DEFINE(FEATURE_NO_GIFS)
1194 dnl pcre/pcrs is needed for CGI anyway, so
1195 dnl the choice is only between static and
1198 AC_ARG_ENABLE(dynamic-pcre,
1199 [ --disable-dynamic-pcre Use the built-in, static pcre, even if
1200 libpcre is available],
1201 [ if test $enableval = "no"; then have_pcre=no; fi ])
1203 AC_ARG_ENABLE(dynamic-pcrs,
1204 [ --disable-dynamic-pcrs Use the built-in, static pcrs, even if
1205 libpcrs is available],
1206 [ if test $enableval = "no"; then have_pcrs=no; fi ])
1209 # If we have libpcre and either we also have pcreposix or
1210 # we don't need pcreposix, then link pcre dynamically; else
1211 # build it and link statically
1213 if test $have_pcre = "yes"; then
1214 echo "using libpcre"
1217 LIBS="$LIBS -lpcre -lpcreposix"
1219 echo "using built-in static pcre"
1221 AC_DEFINE(STATIC_PCRE)
1225 # If we have libpcrs and pcre is linked dynamically
1226 # then also link pcrs dynamically, else build and link
1229 if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then
1230 echo "using libpcrs"
1234 echo "using built-in static pcrs"
1235 AC_DEFINE(STATIC_PCRS)
1239 AC_SUBST(STATIC_PCRE_ONLY)
1240 AC_SUBST(STATIC_PCRS_ONLY)
1242 dnl =================================================================
1243 dnl Final cleanup and output
1244 dnl =================================================================
1246 dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately
1248 CFLAGS=$old_CFLAGS_nospecial
1249 AC_SUBST(SPECIAL_CFLAGS)
1251 AC_SUBST(PTHREAD_LIB)
1253 AC_OUTPUT(GNUmakefile doc/source/ldp.dsl)