1 dnl Process this file with autoconf to produce a configure script.
3 dnl $Id: configure.in,v 1.68.2.9 2002/12/13 23:47:45 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.9 2002/12/13 23:47:45 hal9
32 dnl Add openbsd $specialflags per gunner at styx2002.no-ip.org
34 dnl Revision 1.68.2.8 2002/11/27 12:55:26 oes
35 dnl Fixed broken handling of pre-set CFLAGS
37 dnl Revision 1.68.2.7 2002/10/25 02:44:22 hal9
38 dnl Port of make install, etc from main trunk. Needs testing! Add Slackware
39 dnl support, and other related changes. Update related docs.
41 dnl Revision 1.68.2.6 2002/09/25 15:35:15 oes
42 dnl Marking as non-release
44 dnl Revision 1.68.2.5 2002/08/25 23:37:00 hal9
45 dnl Getting ready for 3.0 release.
47 dnl Revision 1.68.2.4 2002/08/10 11:21:57 oes
48 dnl - Set Version to 2.9.20 (beta)
49 dnl - Add two AC_DEFINEs that indicate if the pcre*.h headers
50 dnl are located in a pcre/ subdir to the include path.
52 dnl Revision 1.68.2.3 2002/08/06 11:29:36 oes
53 dnl Fixed detection/inclusion of pcre.h, which is in a pcre subdir on RH
55 dnl Revision 1.68.2.2 2002/07/30 19:36:09 hal9
56 dnl Bump version to 2.9.17.
58 dnl Revision 1.68.2.1 2002/07/26 15:21:12 oes
59 dnl Bumped version number for 2.9.16 freeze
61 dnl Revision 1.68 2002/05/25 16:54:54 jongfoster
62 dnl Detect if the compiler supports -pthread.
63 dnl Hopefully this will fix bug 560442. (I don't have a HP PA-RISC
64 dnl machine to test this!)
66 dnl Revision 1.67 2002/05/03 14:33:59 oes
67 dnl Generate doc/soucre/ldp.dsl
69 dnl Revision 1.66 2002/05/03 00:41:56 oes
70 dnl Set version to 2.9.15 to comply with new versioning scheme
72 dnl Revision 1.65 2002/04/25 19:13:57 morcego
73 dnl Removed RPM release number declaration on configure.in
74 dnl Changed makefile to use given value for RPM_PACKAGEV when on uploading
75 dnl targets (will produce an error, explaining who to do it, if no value
78 dnl Revision 1.64 2002/04/22 16:32:31 morcego
79 dnl configure.in, *.spec: Bumping release to 2 (2.9.14-2)
80 dnl -rh.spec: uid and gid are now macros
81 dnl -suse.spec: Changing the header Copyright to License (Copyright is
84 dnl Revision 1.63 2002/04/11 11:00:21 oes
85 dnl Applied Moritz' fix for socklen_t on Solaris
87 dnl Revision 1.62 2002/04/11 10:09:20 oes
90 dnl Revision 1.61 2002/04/10 18:14:45 morcego
91 dnl - (privoxy-rh.spec only) Relisting template files on the %%files section
92 dnl - (configure.in, privoxy-rh.spec) Bumped package release to 5
94 dnl Revision 1.60 2002/04/09 16:38:49 oes
95 dnl Added detection of missing config.h.in
97 dnl Revision 1.59 2002/04/06 20:23:55 jongfoster
98 dnl Removing unnessacery tests (C++, ranlib)
100 dnl Revision 1.58 2002/04/04 20:49:20 swa
101 dnl attempt to consolidate the
102 dnl different dokbook versions.
104 dnl Revision 1.57 2002/04/04 00:36:36 gliptak
105 dnl always use pcre for matching
107 dnl Revision 1.56 2002/04/03 22:28:03 gliptak
108 dnl Removed references to gnu_regex
110 dnl Revision 1.55 2002/04/03 03:54:38 gliptak
111 dnl Checking pcre version
113 dnl Revision 1.54 2002/04/01 00:54:24 gliptak
114 dnl More changes needed around regex support.
116 dnl Revision 1.53 2002/03/29 20:09:01 swa
119 dnl Revision 1.52 2002/03/29 19:51:40 gliptak
120 dnl Correcting compile problem with Debian
122 dnl Revision 1.51 2002/03/28 20:43:00 swa
123 dnl set make correctly
125 dnl Revision 1.50 2002/03/27 03:03:45 hal9
126 dnl Add test for man2html
128 dnl Revision 1.49 2002/03/27 02:19:52 david__schmidt
129 dnl More Mac OSX support:
130 dnl - Get rid of extraneous, noisy -pthread warnings
131 dnl - Define unix so we get oes' unix-tagged changes
133 dnl Revision 1.48 2002/03/26 22:29:54 swa
134 dnl we have a new homepage!
136 dnl Revision 1.47 2002/03/26 16:41:00 hal9
137 dnl Upped RPM Release to 3 (need to build new RH packages)
139 dnl Revision 1.46 2002/03/24 18:55:06 jongfoster
140 dnl Making Docbook work under Windows
142 dnl Revision 1.45 2002/03/24 14:19:55 swa
143 dnl set rpm package release in configure.in. nowhere else.
145 dnl Revision 1.44 2002/03/24 13:25:43 swa
146 dnl name change related issues
148 dnl Revision 1.43 2002/03/24 12:56:21 swa
149 dnl name change related issues.
151 dnl Revision 1.42 2002/03/22 18:11:37 jongfoster
152 dnl Bumping version number to 2.9.12
154 dnl Revision 1.41 2002/03/19 19:30:04 morcego
155 dnl - Fixing stylesheet checking on configure. If it is found, no further checks
158 dnl - configure will now check for db2html or docbook2html (should work now
159 dnl on SuSe without the docbktls package)
161 dnl Revision 1.40 2002/03/09 14:33:30 oes
162 dnl Fixing the (harmless) AC_CHECK_FILE warnings
164 dnl Revision 1.39 2002/03/08 16:46:13 oes
165 dnl Added --enable-no-gifs
167 dnl Revision 1.38 2002/03/08 14:13:50 morcego
168 dnl Fixing configure, to remove a command not found error.
170 dnl Revision 1.37 2002/03/08 12:58:21 oes
171 dnl Tiny bugfix in AC_ARG_WITH(debug)
173 dnl Revision 1.36 2002/03/06 23:50:36 morcego
174 dnl Will not test for a text browser if we are not using docbook.
176 dnl Revision 1.35 2002/03/06 21:55:52 morcego
177 dnl New configure option: --with-docbook=(yes|no|directory)
178 dnl Preliminary new platform detection code included. Will work with the
179 dnl old one for now. No use just trowing it away
181 dnl Revision 1.34 2002/03/06 20:57:00 morcego
182 dnl Fixing detection of stylesheets on SuSe.
184 dnl Revision 1.33 2002/03/05 17:31:11 morcego
185 dnl Search for docbook.dsl. Should solve portability problems for SuSe.
187 dnl Revision 1.32 2002/03/05 14:07:43 morcego
188 dnl configure now detects rpm topdir, and change GNUmakefile acordingly
189 dnl (based on sugestion by Sarantis Paskalis)
191 dnl Revision 1.31 2002/03/05 13:43:28 morcego
192 dnl Checking for text browser, so redhat-dok can work.
194 dnl Revision 1.30 2002/03/04 17:58:01 oes
195 dnl Deleted _DEBUG and PID_FILE_PATH
197 dnl Revision 1.29 2002/02/28 14:20:53 oes
198 dnl Fixed detection of gethost*_r functions on Solaris
200 dnl Revision 1.28 2002/02/27 15:02:38 oes
201 dnl Incremented version number
203 dnl Revision 1.27 2002/01/10 12:35:18 oes
204 dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros
205 dnl to silence autoconf warnings. Numbers are for Intel/Linux.
206 dnl Is there a better way?
208 dnl Revision 1.26 2002/01/09 14:29:49 oes
209 dnl - Added AC_CHECK_FUNC tests for the availability of
210 dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and
211 dnl localtime_r, as well as AC_TRY_COMPILE tests to
212 dnl determine their signatures.
214 dnl - Fixed a bug with the init of CFLAGS that was
215 dnl reported by barsnick
217 dnl Revision 1.25 2002/01/04 15:27:18 oes
218 dnl Changed quoting of CODE_STATUS for use in make
220 dnl Revision 1.24 2001/12/30 14:07:31 steudten
221 dnl - Add signal handling (unix)
222 dnl - Add SIGHUP handler (unix)
223 dnl - Add creation of pidfile (unix)
224 dnl - Add action 'top' in rc file (RH)
225 dnl - Add entry 'SIGNALS' to manpage
226 dnl - Add exit message to logfile (unix)
228 dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt
229 dnl Change from "alpha" to "beta" in configure.in
231 dnl Revision 1.22 2001/12/01 11:24:01 jongfoster
232 dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
233 dnl make break in a more obvious way.
235 dnl Revision 1.21 2001/11/30 21:35:54 jongfoster
236 dnl Bumping version number to 2.9.10
238 dnl Revision 1.20 2001/10/23 21:24:09 jongfoster
239 dnl Support for FEATURE_CGI_EDIT_ACTIONS
241 dnl Revision 1.19 2001/10/07 15:33:14 oes
242 dnl Removed FEATURE_DENY_GZIP
243 dnl Bumped up version number
245 dnl Revision 1.18 2001/09/13 13:10:24 steudten
247 dnl PreWork for Debug Interface.
248 dnl Add new option "--with-debug" to enable debugging (flags aso.)
250 dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt
251 dnl Mac OSX (Darwin) support added.
253 dnl Revision 1.16 2001/09/12 22:55:45 joergs
254 dnl AmigaOS support added.
256 dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt
258 dnl OS/2 port: update autoconf'd support for the platform.
260 dnl Revision 1.14 2001/07/30 22:12:11 jongfoster
261 dnl Fixing Solaris build (I hope) and tidying up #defines:
262 dnl - All feature #defines are now of the form FEATURE_xxx
263 dnl - Permanently turned off WIN_GUI_EDIT
264 dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
266 dnl Revision 1.13 2001/07/29 17:09:17 jongfoster
267 dnl Major changes to build system in order to fix these bugs:
268 dnl - pthreads under Linux was broken - changed -lpthread to -pthread
269 dnl - Compiling in MinGW32 mode under CygWin now correctly detects
270 dnl which shared libraries are available
271 dnl - Solaris support (?) (Not tested under Solaris yet)
273 dnl Revision 1.12 2001/07/25 19:16:27 oes
274 dnl Bumping version number to 2.9.8
276 dnl Revision 1.11 2001/07/21 18:00:07 jongfoster
277 dnl Bumping version number to 2.9.7
279 dnl Revision 1.10 2001/07/18 17:25:04 oes
282 dnl Revision 1.9 2001/07/15 19:45:13 jongfoster
283 dnl Added support for linking with POSIX threads library
285 dnl Revision 1.8 2001/07/15 17:54:29 jongfoster
286 dnl Renaming #define STATIC to STATIC_PCRE
287 dnl Adding new #define FEATURE_PTHREAD that will be used to enable
288 dnl POSIX threads support.
290 dnl Revision 1.7 2001/07/13 13:58:05 oes
291 dnl Completely reorganized the selection scheme for
292 dnl pcre, pcreposix, pcrs and gnu_regex:
294 dnl The presence of shared pcre, pcreposix or pcrs
295 dnl libraried is now autodetected. Additionally, the
296 dnl user can enforce using the built-in static variants
297 dnl by specifying --disable-dynamic-(pcre|pcrs).
298 dnl Care is taken to avoid that pcre is dyn, while pcreposix
299 dnl is static, if both are used and that pcrs is static if
302 dnl The choice between pcre, gnu or no regex for actionsfile
303 dnl URL matching is now via
304 dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the
305 dnl default being pcre.
307 dnl Revision 1.6 2001/06/29 21:56:40 oes
310 dnl Revision 1.5 2001/06/29 13:26:27 oes
311 dnl Introduced #define CODE_STATUS
313 dnl Revision 1.4 2001/05/29 09:50:24 jongfoster
314 dnl Unified blocklist/imagelist/permissionslist.
315 dnl File format is still under discussion, but the internal changes
316 dnl are (mostly) done.
318 dnl Also modified interceptor behaviour:
319 dnl - We now intercept all URLs beginning with one of the following
320 dnl prefixes (and *only* these prefixes):
322 dnl * http://ijbswa.sf.net/config/
323 dnl * http://ijbswa.sourceforge.net/config/
324 dnl - New interceptors "home page" - go to http://i.j.b/ to see it.
325 dnl - Internal changes so that intercepted and fast redirect pages
326 dnl are not replaced with an image.
327 dnl - Interceptors now have the option to send a binary page direct
328 dnl to the client. (i.e. ijb-send-banner uses this)
329 dnl - Implemented show-url-info interceptor. (Which is why I needed
330 dnl the above interceptors changes - a typical URL is
331 dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
332 dnl The previous mechanism would not have intercepted that, and
333 dnl if it had been intercepted then it then it would have replaced
334 dnl it with an image.)
336 dnl Revision 1.3 2001/05/22 18:46:04 oes
338 dnl - Enabled filtering banners by size rather than URL
339 dnl by adding patterns that replace all standard banner
340 dnl sizes with the "Junkbuster" gif to the re_filterfile
342 dnl - Enabled filtering WebBugs by providing a pattern
343 dnl which kills all 1x1 images
345 dnl - Added support for PCRE_UNGREEDY behaviour to pcrs,
346 dnl which is selected by the (nonstandard and therefore
347 dnl capital) letter 'U' in the option string.
348 dnl It causes the quantifiers to be ungreedy by default.
349 dnl Appending a ? turns back to greedy (!).
351 dnl - Added a new interceptor ijb-send-banner, which
352 dnl sends back the "Junkbuster" gif. Without imagelist or
353 dnl MSIE detection support, or if tinygif = 1, or the
354 dnl URL isn't recognized as an imageurl, a lame HTML
355 dnl explanation is sent instead.
357 dnl - Added new feature, which permits blocking remote
358 dnl script redirects and firing back a local redirect
360 dnl The feature is conditionally compiled, i.e. it
361 dnl can be disabled with --disable-fast-redirects,
362 dnl plus it must be activated by a "fast-redirects"
363 dnl line in the config file, has its own log level
364 dnl and of course wants to be displayed by show-proxy-args
365 dnl Note: Boy, all the #ifdefs in 1001 locations and
366 dnl all the fumbling with configure.in and acconfig.h
367 dnl were *way* more work than the feature itself :-(
369 dnl - Because a generic redirect template was needed for
370 dnl this, tinygif = 3 now uses the same.
372 dnl - Moved GIFs, and other static HTTP response templates
375 dnl - Some minor fixes
377 dnl - Removed some >400 CRs again (Jon, you really worked
380 dnl Revision 1.2 2001/05/20 01:21:20 jongfoster
381 dnl Version 2.9.4 checkin.
382 dnl - Merged popupfile and cookiefile, and added control over PCRS
383 dnl filtering, in new "permissionsfile".
384 dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
385 dnl file error you now get a message box (in the Win32 GUI) rather
386 dnl than the program exiting with no explanation.
387 dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header
389 dnl - Removed tabs from "config"
390 dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition.
391 dnl - Bumped up version number.
393 dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes
394 dnl Initial import of version 2.9.3 source tree
399 dnl =================================================================
400 dnl AutoConf Initialization
401 dnl =================================================================
403 AC_REVISION($Revision: 1.68.2.9 $)
406 if test ! -f config.h.in; then
407 echo "You need to run autoheader first. "
408 echo -n "Shall I do this for you now? (y/n) "
410 if test "$answer" != "y"; then
417 AC_CONFIG_HEADER([config.h])
422 AC_ARG_WITH(docbook, dnl
423 --with-docbook=[[yes|no|directory]]
424 Enable docbook documentation creation
425 (default = yes, for gnu and linux),[dnl
426 case "$with_docbook" in
436 AC_ARG_WITH(db2html, dnl
437 --with-db2html=<path/executable>
438 Set the location of the docbook to html converter
439 (default = search),[dnl
443 dnl =================================================================
444 dnl Application version number
445 dnl =================================================================
450 CODE_STATUS="UNRELEASED"
452 dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
453 dnl used for CGI output. Set version to 0.0.0 and status to "UNRELEASED"
454 dnl whenever CVS in a stable branch differs from the last release.
456 dnl =================================================================
457 dnl Substitute the version numbers
458 dnl =================================================================
460 AC_SUBST(VERSION_MAJOR)
461 AC_SUBST(VERSION_MINOR)
462 AC_SUBST(VERSION_POINT)
463 AC_SUBST(CODE_STATUS)
466 AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
467 AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR})
468 AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT})
469 AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
470 AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
472 dnl =================================================================
473 dnl Checks for programs needed to build.
474 dnl =================================================================
476 dnl Keep AC_PROG_CC from setting its own defaults:
477 if test "X$CFLAGS" = "X"; then
488 AC_CHECK_PROG(GDB,gdb,yes,no)
489 AC_PATH_PROG(BGROUPS,groups,no,/bin:/usr/bin:/usr/local/bin)
490 AC_PATH_PROG(ID,id,no,/bin:/usr/bin:/usr/local/bin)
494 dnl =================================================================
495 dnl debug, gcc and gdb support
496 dnl =================================================================
499 [ --with-debug Enable debug mode],
501 if test "x$withval" != "xno" ; then
502 if test $ac_cv_prog_cc_g = yes; then
503 if test "$GCC" = yes; then
505 CFLAGS="$CFLAGS -ggdb"
509 CFLAGS="$CFLAGS -Wshadow -Wconversion"
517 if test "X$CFLAGS" = "X "; then # if CFLAGS were unset (see above)
518 if test "$GCC" = yes; then
525 dnl =================================================================
526 dnl Check for user and group validity
527 dnl =================================================================
529 $ID privoxy >/dev/null 2>/dev/null
530 if test $? -ne 0 ; then
531 AC_MSG_WARN(There is no user 'privoxy' on this system)
533 AC_MSG_CHECKING([for user])
535 [ --with-user=privoxy Set user under which privoxy will run],
537 if test "x$withval" != "xyes"; then
538 if test $ID = no ; then
539 AC_MSG_ERROR(There is no 'id' program on this system)
541 AC_MSG_RESULT($with_user)
542 $ID $with_user 2>/dev/null >/dev/null
543 if test $? -eq 0 ; then
546 AC_MSG_ERROR(There is no user '$with_user' on this system)
550 AC_MSG_ERROR(We need a user if you give me this parameter)
554 if test $ID = no ; then
555 AC_MSG_ERROR(There is no 'id' programm on this system)
557 AC_MSG_RESULT(none specified)
564 AC_MSG_CHECKING([for group])
566 [ --with-group=privoxy Set group for privoxy],
568 if test "x$withval" != "xyes"; then
569 if test $BGROUPS = no ; then
570 AC_MSG_ERROR(There is no 'groups' program on this system)
572 AC_MSG_RESULT($with_group)
573 $BGROUPS $USER >/dev/null
574 if test $? -eq 0 ; then
575 # FIXME: this fails if valid group, but not first group
577 if test "$with_group" != "`$BGROUPS $USER | sed 's/.*: //' 2>/dev/null |$AWK '{print $1}'`" ; then
578 AC_MSG_ERROR(The given value '$withval' does not match group entry)
583 AC_MSG_ERROR(There is no group entry for user '$USER')
587 AC_MSG_ERROR(We need a group if you give me this parameter)
591 if test $BGROUPS = no ; then
592 AC_MSG_ERROR(There is no 'groups' programm on this system)
594 AC_MSG_RESULT(none specified)
601 dnl =================================================================
602 dnl additional gcc flags
603 dnl =================================================================
606 CFLAGS="-pipe $CFLAGS"
610 dnl =================================================================
612 dnl =================================================================
614 dnl Must do this first.
616 dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler
617 dnl into Cygwin or MinGW32 modes. Depending on the mode selected,
618 dnl the compiler will use completely different sets of library
619 dnl and include files.
621 dnl =================================================================
626 if test "$MINGW32" = "yes"; then
629 if test "$CYGWIN" = "yes"; then
636 if test $dodk = auto; then
638 if test $target_type = unix; then
647 dnl Decide what to do based on target_type
648 dnl Note: PTHREAD_LIB is always set, even if pthread is disabled.
649 dnl This is because we don't know yet whether pthread is enabled.
651 AC_ARG_ENABLE(mingw32,
652 [ --enable-mingw32 Use mingw32 for a Windows GUI],
653 [if test $enableval = yes; then
657 if test $target_type = mingw; then
659 SPECIAL_CFLAGS="-mwindows -mno-cygwin"
660 PTHREAD_LIB=-lpthreadGC
661 echo "Using mingw32 (Win32 GUI)"
664 if test $target_type = cygwin; then
665 SPECIAL_CFLAGS="-mno-win32"
667 echo "Using Cygnus (Win32 command line)"
670 PTHREAD_LIB=-lpthread
675 dnl Checking which text html browser we have avaliable
676 if test $dodk != no; then
677 AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
678 if test "$WDUMP" = false; then
679 AC_MSG_WARN(You need some kind of text browser to build documentation \(w3m, lynx and links are supported\))
681 if test $DB2HTML = false; then
682 dnl We need to clean the variable, otherwise AC_CHECK_PROGS
685 AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false)
691 dnl If we use rpm, we need to check where %_topdir is
692 AC_CHECK_PROGS(RPMBIN,rpm,false)
693 if test $RPMBIN != false; then
694 RPM_BASE=`rpm --eval "%{_topdir}"`
695 if test "$RPM_BASE" = ""; then
696 RPM_BASE=/usr/src/redhat
701 dnl Check for jade, so we can build the documentation
702 AC_CHECK_PROGS(JADEBIN,jade openjade,false)
705 dnl Check for man2html for docs.
706 AC_CHECK_PROGS(MAN2HTML,man2html,false)
709 dnl Set doc status flag for conditional content inclusions
710 DOC_STATUS=p-not-stable
711 if test $CODE_STATUS = stable; then
712 DOC_STATUS="p-stable"
716 dnl Checking for the docbook.dsl stylesheet file
717 dnl It is still not portable (directory slash)
719 if test $dodk = yes; then
720 if test $DKPREFIX = none; then
721 for i in /usr/share/sgml/docbook/dsssl-stylesheets /usr/share/sgml/docbkdsl /usr/share/sgml/docbook-dsssl; do
722 dnl echo -n does not fly with /bin/sh.
723 dnl echo -n "checking for $i/html/docbook.dsl..."
724 AC_MSG_CHECKING([for $i])
725 if test -f $i/html/docbook.dsl; then
733 # where are the catalogs?
734 for i in /usr/share/sgml/CATALOG.docbk30 /usr/share/sgml/CATALOG.docbk31; do
735 dnl echo -n "checking for $i..."
736 AC_MSG_CHECKING([for $i])
739 JADECAT="$JADECAT -c $i"
749 dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
750 old_CFLAGS_nospecial=$CFLAGS
751 CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
753 # Hack to force AutoConf to use the CFLAGS we just set
754 dnl Warning: This may break with a future version of Autoconf
755 dnl Tested with autoconf 2.13
756 ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS'
757 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
758 ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
761 dnl =================================================================
763 dnl =================================================================
765 AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no])
767 AC_ARG_ENABLE(pthread,
768 [ --disable-pthread Don't use POSIX threads (pthreads)],
769 [if test $enableval = no; then
774 if test $have_pthread = yes; then
776 AC_DEFINE(FEATURE_PTHREAD)
777 echo Using POSIX threads
778 if test "$GCC" = "yes"; then
779 # Set a GCC specific switch:
780 if test "$target_type" = "unix"; then
781 ac_jgf_save_CFLAGS=$CFLAGS
782 CFLAGS="$CFLAGS -pthread"
783 AC_TRY_LINK([#include <pthread.h>],
784 [void *p = pthread_create;],
786 # This compiler switch makes GCC on Linux thread-safe
787 # However, it's not supported on most other OS.
789 SPECIAL_CFLAGS="-pthread"
791 CFLAGS=$ac_jgf_save_CFLAGS
796 echo Using native threads
799 AC_SUBST(PTHREAD_ONLY)
801 dnl =================================================================
802 dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
803 dnl gmtime and localtime
804 dnl =================================================================
806 dnl Next line needed to find the gethost*_r functions on Solaris
807 AC_CHECK_LIB(nsl, gethostbyname)
809 AC_CHECK_FUNC(gethostbyaddr_r, [
810 AC_MSG_CHECKING([signature of gethostbyaddr_r])
814 struct hostent *h, *hp;
817 (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e)
819 AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS)
820 AC_MSG_RESULT([8 args])
828 (void) gethostbyaddr_r(a, l, t, h, b, bl, &e)
830 AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS)
831 AC_MSG_RESULT([7 args])
836 struct hostent_data *d;
840 (void) gethostbyaddr_r(a, l, t, h, d)
842 AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS)
843 AC_MSG_RESULT([5 args])
845 AC_MSG_RESULT(unrecognised)
853 AC_CHECK_FUNC(gethostbyname_r, [
854 AC_MSG_CHECKING([signature of gethostbyname_r])
858 struct hostent *h, *r;
861 (void) gethostbyname_r(n, h, b, bl, &r, &e)
863 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS)
864 AC_MSG_RESULT([6 args])
872 (void) gethostbyname_r(n, h, b, bl, &e)
874 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS)
875 AC_MSG_RESULT([5 args])
880 struct hostent_data *d;
883 (void) gethostbyname_r(n, h, d)
885 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS)
886 AC_MSG_RESULT([3 args])
888 AC_MSG_RESULT(unrecognised)
896 AC_CHECK_FUNC(gmtime_r, [
897 AC_MSG_CHECKING([signature of gmtime_r])
903 (void) gmtime_r(t, tm)
906 AC_DEFINE(HAVE_GMTIME_R)
908 AC_MSG_RESULT(unrecognised)
914 AC_CHECK_FUNC(localtime_r, [
915 AC_MSG_CHECKING([signature of localtime_r])
921 (void) localtime_r(t, tm)
924 AC_DEFINE(HAVE_LOCALTIME_R)
926 AC_MSG_RESULT(unrecognised)
932 dnl =================================================================
934 dnl FIXME: Not tested on Solaris yet...
935 dnl ISFIXED: Have tested it on Solaris, but there are other ways to
936 dnl make these checks generic, e.g.:
937 dnl AC_CHECK_FUNC(getsockopt, , AC_CHECK_LIB(socket, getsockopt))
938 dnl (Moritz Barsnick <moritz@barsnick.net>)
939 dnl =================================================================
945 *-solaris*) SOCKET_LIB="-lsocket -lnsl"
946 AC_DEFINE(__EXTENSIONS__)
947 if test "$GCC" = "yes"; then
948 # Set a GCC specific switch:
949 # This compiler switch makes Solaris thread-safe
951 SPECIAL_CFLAGS="-pthreads"
953 # What do we do without GCC? Guess this:
954 SPECIAL_CFLAGS="-D_REENTRANT"
961 dnl =================================================================
962 dnl Solaris problem, and others perhaps (socklen_t is undefined)
963 dnl =================================================================
965 AC_MSG_CHECKING([for socklen_t])
966 AC_EGREP_HEADER(socklen_t, sys/socket.h, AC_MSG_RESULT([yes]),
968 AC_DEFINE(socklen_t,int,
969 [ Define to 'int' if <sys/socket.h> doesn't have it. ]))
972 dnl =================================================================
974 dnl =================================================================
977 *-os2-emx*) SOCKET_LIB=-lsocket
983 dnl =================================================================
985 dnl =================================================================
988 *-apple-darwin*) SPECIAL_CFLAGS="-Dunix"
992 dnl =================================================================
994 dnl =================================================================
997 *-openbsd*) SPECIAL_CFLAGS="$SPECIAL_CFLAGS -Dunix"
1001 dnl =================================================================
1002 dnl AmigaOS specific
1003 dnl =================================================================
1008 *-amigaos) AMIGAOS_ONLY=
1012 AC_SUBST(AMIGAOS_ONLY)
1014 dnl =================================================================
1015 dnl Check for standard compiler stuff
1016 dnl =================================================================
1027 AC_CHECK_SIZEOF(int, 4)
1028 AC_CHECK_SIZEOF(char *, 4)
1029 AC_CHECK_SIZEOF(long, 4)
1030 AC_CHECK_SIZEOF(long long, 8)
1031 AC_CHECK_SIZEOF(size_t, 4)
1033 dnl Checks for header files.
1034 dnl AC_HEADER_SYS_WAIT
1035 dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
1036 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])
1038 dnl Checks for library functions.
1040 dnl AC_CHECK_FUNC(strstr)
1041 dnl bcopy and memmove are for PCRE
1042 AC_CHECK_FUNCS([strerror bcopy memmove])
1043 AC_PROG_GCC_TRADITIONAL
1044 dnl uncommenting does not work for swa. suse linux
1048 dnl uncommenting does not work for swa. suse linux
1050 AC_CHECK_FUNCS([atexit getcwd gethostbyaddr gethostbyname inet_ntoa localtime_r memchr memmove memset regcomp select setlocale socket strchr strdup strerror strftime strstr strtoul])
1053 dnl =================================================================
1054 dnl Checks for libraries.
1055 dnl =================================================================
1056 dnl Note: Some systems may have the library but not the system header
1057 dnl file, so we must check for both.
1058 dnl Also check for correct version
1059 AC_CHECK_LIB(pcre, pcre_compile, [
1060 AC_CHECK_HEADER(pcre.h, [
1061 AC_EGREP_HEADER(pcre_fullinfo, pcre.h, [have_pcre=yes], [AC_MSG_WARN([[pcre old version installed]]); have_pcre=no])
1063 AC_CHECK_HEADER(pcre/pcre.h, [
1064 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])
1069 AC_CHECK_LIB(pcreposix, regcomp, [
1070 AC_CHECK_HEADER(pcreposix.h, [
1071 AC_EGREP_HEADER(pcreposix_regerror, pcreposix.h, [AC_MSG_WARN([[pcreposix old version installed]]); have_pcreposix=no], [have_pcreposix=yes])
1073 AC_CHECK_HEADER(pcre/pcreposix.h, [
1074 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)])
1075 ], [have_pcreposix=no])
1077 ], [have_pcreposix=no], -lpcre)
1079 AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no], -lpcre)
1081 dnl =================================================================
1083 dnl =================================================================
1087 dnl =================================================================
1089 dnl =================================================================
1091 AC_ARG_ENABLE(toggle,
1092 [ --disable-toggle Don't support temporary disable],
1093 [if test $enableval = yes; then
1094 AC_DEFINE(FEATURE_TOGGLE)
1095 fi],AC_DEFINE(FEATURE_TOGGLE))
1097 AC_ARG_ENABLE(force,
1098 [ --disable-force Don't allow single-page disable],
1099 [if test $enableval = yes; then
1100 AC_DEFINE(FEATURE_FORCE_LOAD)
1101 fi],AC_DEFINE(FEATURE_FORCE_LOAD))
1103 AC_ARG_ENABLE(fast-redirects,
1104 [ --disable-fast-redirects Don't support fast redirects],
1105 [if test $enableval = yes; then
1106 AC_DEFINE(FEATURE_FAST_REDIRECTS)
1107 fi], AC_DEFINE(FEATURE_FAST_REDIRECTS))
1109 AC_ARG_ENABLE(killpopup,
1110 [ --disable-killpopup Never block popups],
1111 [if test $enableval = yes; then
1112 AC_DEFINE(FEATURE_KILL_POPUPS)
1113 fi],AC_DEFINE(FEATURE_KILL_POPUPS))
1115 AC_ARG_ENABLE(stats,
1116 [ --disable-stats Don't keep statistics],
1117 [if test $enableval = yes; then
1118 AC_DEFINE(FEATURE_STATISTICS)
1119 fi],AC_DEFINE(FEATURE_STATISTICS))
1121 AC_ARG_ENABLE(ie-images,
1122 [ --enable-ie-images Enable a quick but not always reliable auto-detect whether requests from
1123 MS Internet Explorer are for an image or not.],
1124 [if test $enableval = yes; then
1125 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
1128 AC_ARG_ENABLE(image-blocking,
1129 [ --disable-image-blocking Don't try to figure out whether a request is
1130 for an image or HTML - assume HTML.],
1131 [if test $enableval = yes; then
1132 AC_DEFINE(FEATURE_IMAGE_BLOCKING)
1134 AC_DEFINE(FEATURE_IMAGE_BLOCKING))
1136 AC_ARG_ENABLE(acl-files,
1137 [ --disable-acl-files Prevents the use of ACL files to control access to
1138 the proxy by IP address.],
1139 [if test $enableval = yes; then
1140 AC_DEFINE(FEATURE_ACL)
1142 AC_DEFINE(FEATURE_ACL))
1144 AC_ARG_ENABLE(trust-files,
1145 [ --disable-trust-files Prevents the use of trust files.],
1146 [if test $enableval = yes; then
1147 AC_DEFINE(FEATURE_TRUST)
1149 AC_DEFINE(FEATURE_TRUST))
1151 AC_ARG_ENABLE(jar-files,
1152 [ --disable-jar-files Prevents the use of jar files to capture cookies.],
1153 [if test $enableval = yes; then
1154 AC_DEFINE(FEATURE_COOKIE_JAR)
1156 AC_DEFINE(FEATURE_COOKIE_JAR))
1158 AC_ARG_ENABLE(editor,
1159 [ --disable-editor Prevents the use of the web-based actions file
1160 editor and web-based temporary disable setting.],
1161 [if test $enableval = yes; then
1162 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)
1164 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS))
1166 AC_ARG_ENABLE(no-gifs,
1167 [ --enable-no-gifs Use politically correct PNG format instead of GIF
1168 for built-in images. May not work with all browsers.],
1169 [if test $enableval = yes; then
1170 AC_DEFINE(FEATURE_NO_GIFS)
1174 dnl pcre/pcrs is needed for CGI anyway, so
1175 dnl the choice is only between static and
1178 AC_ARG_ENABLE(dynamic-pcre,
1179 [ --disable-dynamic-pcre Use the built-in, static pcre, even if
1180 libpcre is available],
1181 [ if test $enableval = "no"; then have_pcre=no; fi ])
1183 AC_ARG_ENABLE(dynamic-pcrs,
1184 [ --disable-dynamic-pcrs Use the built-in, static pcrs, even if
1185 libpcrs is available],
1186 [ if test $enableval = "no"; then have_pcrs=no; fi ])
1189 # If we have libpcre and either we also have pcreposix or
1190 # we don't need pcreposix, then link pcre dynamically; else
1191 # build it and link statically
1193 if test $have_pcre = "yes"; then
1194 echo "using libpcre"
1197 LIBS="$LIBS -lpcre -lpcreposix"
1199 echo "using built-in static pcre"
1201 AC_DEFINE(STATIC_PCRE)
1205 # If we have libpcrs and pcre is linked dynamically
1206 # then also link pcrs dynamically, else build and link
1209 if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then
1210 echo "using libpcrs"
1214 echo "using built-in static pcrs"
1215 AC_DEFINE(STATIC_PCRS)
1219 AC_SUBST(STATIC_PCRE_ONLY)
1220 AC_SUBST(STATIC_PCRS_ONLY)
1222 dnl =================================================================
1223 dnl Final cleanup and output
1224 dnl =================================================================
1226 dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately
1228 CFLAGS=$old_CFLAGS_nospecial
1229 AC_SUBST(SPECIAL_CFLAGS)
1231 AC_SUBST(PTHREAD_LIB)
1233 AC_OUTPUT(GNUmakefile doc/source/ldp.dsl)