1 dnl Process this file with autoconf to produce a configure script.
3 dnl $Id: configure.in,v 1.94 2006/11/13 19:05:50 fabiankeil Exp $
5 dnl Written by and Copyright (C) 2001 - 2004 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.94 2006/11/13 19:05:50 fabiankeil
32 dnl Make pthread mutex locking more generic. Instead of
33 dnl checking for OSX and OpenBSD, check for FEATURE_PTHREAD
34 dnl and use mutex locking unless there is an _r function
35 dnl available. Better safe than sorry.
37 dnl Fixes "./configure --disable-pthread" and should result
38 dnl in less threading-related problems on pthread-using platforms,
39 dnl but it still doesn't fix BR#1122404.
41 dnl Revision 1.93 2006/09/22 01:26:20 hal9
42 dnl Set version to 3.0.5 BETA for hopefully release this weekend.
44 dnl Revision 1.92 2006/08/17 17:09:49 fabiankeil
45 dnl Added check for timegm().
47 dnl Revision 1.91 2006/08/13 22:01:51 fabiankeil
48 dnl Added checks for strptime() and random()
50 dnl Revision 1.90 2006/07/18 14:48:45 david__schmidt
51 dnl Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
52 dnl with what was really the latest development (the v_3_0_branch branch)
54 dnl Revision 1.68.2.20 2004/01/31 16:31:46 oes
55 dnl Resetting version info to 0.0.0 UNRELEASED
57 dnl Revision 1.68.2.19 2004/01/30 09:26:03 oes
58 dnl Added docbook paths for debian sarge; set status for release
60 dnl Revision 1.68.2.18 2003/12/08 15:10:29 oes
61 dnl Bugfix: --with-docbook now correctly accepts its path parameter. Thanks, Roland!
63 dnl Revision 1.68.2.17 2003/10/18 18:41:26 david__schmidt
64 dnl Update to remain buildable on OS/2 - remove the failures
65 dnl due to missing unixisms
67 dnl Revision 1.68.2.16 2003/03/26 16:05:14 oes
68 dnl Marked as 0.0.0 UNRELEASED
70 dnl Revision 1.68.2.15 2003/03/26 00:25:00 oes
71 dnl Bump version for 3.0.2
73 dnl Revision 1.68.2.14 2003/03/25 13:27:12 hal9
74 dnl Manually apply Docbook/FreeBSD patch #708081 from a.go at tiscali.nl.
76 dnl Revision 1.68.2.13 2003/03/18 19:38:57 oes
77 dnl Set version info for 3.0.1 release
79 dnl Revision 1.68.2.12 2003/03/07 03:41:04 david__schmidt
80 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.
82 dnl Revision 1.68.2.11 2003/03/06 15:22:37 oes
83 dnl Fixed minor shell syntax bug
85 dnl Revision 1.68.2.10 2003/01/08 16:39:41 oes
86 dnl Changing default to exclude FEATURE_IMAGE_DETECT_MSIE because of problem reports with recent IEs
88 dnl Revision 1.68.2.9 2002/12/13 23:47:45 hal9
89 dnl Add openbsd $specialflags per gunner at styx2002.no-ip.org
91 dnl Revision 1.68.2.8 2002/11/27 12:55:26 oes
92 dnl Fixed broken handling of pre-set CFLAGS
94 dnl Revision 1.68.2.7 2002/10/25 02:44:22 hal9
95 dnl Port of make install, etc from main trunk. Needs testing! Add Slackware
96 dnl support, and other related changes. Update related docs.
98 dnl Revision 1.68.2.6 2002/09/25 15:35:15 oes
99 dnl Marking as non-release
101 dnl Revision 1.68.2.5 2002/08/25 23:37:00 hal9
102 dnl Getting ready for 3.0 release.
104 dnl Revision 1.68.2.4 2002/08/10 11:21:57 oes
105 dnl - Set Version to 2.9.20 (beta)
106 dnl - Add two AC_DEFINEs that indicate if the pcre*.h headers
107 dnl are located in a pcre/ subdir to the include path.
109 dnl Revision 1.68.2.3 2002/08/06 11:29:36 oes
110 dnl Fixed detection/inclusion of pcre.h, which is in a pcre subdir on RH
112 dnl Revision 1.68.2.2 2002/07/30 19:36:09 hal9
113 dnl Bump version to 2.9.17.
115 dnl Revision 1.68.2.1 2002/07/26 15:21:12 oes
116 dnl Bumped version number for 2.9.16 freeze
118 dnl Revision 1.68 2002/05/25 16:54:54 jongfoster
119 dnl Detect if the compiler supports -pthread.
120 dnl Hopefully this will fix bug 560442. (I don't have a HP PA-RISC
121 dnl machine to test this!)
123 dnl Revision 1.67 2002/05/03 14:33:59 oes
124 dnl Generate doc/soucre/ldp.dsl
126 dnl Revision 1.66 2002/05/03 00:41:56 oes
127 dnl Set version to 2.9.15 to comply with new versioning scheme
129 dnl Revision 1.65 2002/04/25 19:13:57 morcego
130 dnl Removed RPM release number declaration on configure.in
131 dnl Changed makefile to use given value for RPM_PACKAGEV when on uploading
132 dnl targets (will produce an error, explaining who to do it, if no value
135 dnl Revision 1.64 2002/04/22 16:32:31 morcego
136 dnl configure.in, *.spec: Bumping release to 2 (2.9.14-2)
137 dnl -rh.spec: uid and gid are now macros
138 dnl -suse.spec: Changing the header Copyright to License (Copyright is
141 dnl Revision 1.63 2002/04/11 11:00:21 oes
142 dnl Applied Moritz' fix for socklen_t on Solaris
144 dnl Revision 1.62 2002/04/11 10:09:20 oes
147 dnl Revision 1.61 2002/04/10 18:14:45 morcego
148 dnl - (privoxy-rh.spec only) Relisting template files on the %%files section
149 dnl - (configure.in, privoxy-rh.spec) Bumped package release to 5
151 dnl Revision 1.60 2002/04/09 16:38:49 oes
152 dnl Added detection of missing config.h.in
154 dnl Revision 1.59 2002/04/06 20:23:55 jongfoster
155 dnl Removing unnessacery tests (C++, ranlib)
157 dnl Revision 1.58 2002/04/04 20:49:20 swa
158 dnl attempt to consolidate the
159 dnl different dokbook versions.
161 dnl Revision 1.57 2002/04/04 00:36:36 gliptak
162 dnl always use pcre for matching
164 dnl Revision 1.56 2002/04/03 22:28:03 gliptak
165 dnl Removed references to gnu_regex
167 dnl Revision 1.55 2002/04/03 03:54:38 gliptak
168 dnl Checking pcre version
170 dnl Revision 1.54 2002/04/01 00:54:24 gliptak
171 dnl More changes needed around regex support.
173 dnl Revision 1.53 2002/03/29 20:09:01 swa
176 dnl Revision 1.52 2002/03/29 19:51:40 gliptak
177 dnl Correcting compile problem with Debian
179 dnl Revision 1.51 2002/03/28 20:43:00 swa
180 dnl set make correctly
182 dnl Revision 1.50 2002/03/27 03:03:45 hal9
183 dnl Add test for man2html
185 dnl Revision 1.49 2002/03/27 02:19:52 david__schmidt
186 dnl More Mac OSX support:
187 dnl - Get rid of extraneous, noisy -pthread warnings
188 dnl - Define unix so we get oes' unix-tagged changes
190 dnl Revision 1.48 2002/03/26 22:29:54 swa
191 dnl we have a new homepage!
193 dnl Revision 1.47 2002/03/26 16:41:00 hal9
194 dnl Upped RPM Release to 3 (need to build new RH packages)
196 dnl Revision 1.46 2002/03/24 18:55:06 jongfoster
197 dnl Making Docbook work under Windows
199 dnl Revision 1.45 2002/03/24 14:19:55 swa
200 dnl set rpm package release in configure.in. nowhere else.
202 dnl Revision 1.44 2002/03/24 13:25:43 swa
203 dnl name change related issues
205 dnl Revision 1.43 2002/03/24 12:56:21 swa
206 dnl name change related issues.
208 dnl Revision 1.42 2002/03/22 18:11:37 jongfoster
209 dnl Bumping version number to 2.9.12
211 dnl Revision 1.41 2002/03/19 19:30:04 morcego
212 dnl - Fixing stylesheet checking on configure. If it is found, no further checks
215 dnl - configure will now check for db2html or docbook2html (should work now
216 dnl on SuSe without the docbktls package)
218 dnl Revision 1.40 2002/03/09 14:33:30 oes
219 dnl Fixing the (harmless) AC_CHECK_FILE warnings
221 dnl Revision 1.39 2002/03/08 16:46:13 oes
222 dnl Added --enable-no-gifs
224 dnl Revision 1.38 2002/03/08 14:13:50 morcego
225 dnl Fixing configure, to remove a command not found error.
227 dnl Revision 1.37 2002/03/08 12:58:21 oes
228 dnl Tiny bugfix in AC_ARG_WITH(debug)
230 dnl Revision 1.36 2002/03/06 23:50:36 morcego
231 dnl Will not test for a text browser if we are not using docbook.
233 dnl Revision 1.35 2002/03/06 21:55:52 morcego
234 dnl New configure option: --with-docbook=(yes|no|directory)
235 dnl Preliminary new platform detection code included. Will work with the
236 dnl old one for now. No use just trowing it away
238 dnl Revision 1.34 2002/03/06 20:57:00 morcego
239 dnl Fixing detection of stylesheets on SuSe.
241 dnl Revision 1.33 2002/03/05 17:31:11 morcego
242 dnl Search for docbook.dsl. Should solve portability problems for SuSe.
244 dnl Revision 1.32 2002/03/05 14:07:43 morcego
245 dnl configure now detects rpm topdir, and change GNUmakefile acordingly
246 dnl (based on sugestion by Sarantis Paskalis)
248 dnl Revision 1.31 2002/03/05 13:43:28 morcego
249 dnl Checking for text browser, so redhat-dok can work.
251 dnl Revision 1.30 2002/03/04 17:58:01 oes
252 dnl Deleted _DEBUG and PID_FILE_PATH
254 dnl Revision 1.29 2002/02/28 14:20:53 oes
255 dnl Fixed detection of gethost*_r functions on Solaris
257 dnl Revision 1.28 2002/02/27 15:02:38 oes
258 dnl Incremented version number
260 dnl Revision 1.27 2002/01/10 12:35:18 oes
261 dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros
262 dnl to silence autoconf warnings. Numbers are for Intel/Linux.
263 dnl Is there a better way?
265 dnl Revision 1.26 2002/01/09 14:29:49 oes
266 dnl - Added AC_CHECK_FUNC tests for the availability of
267 dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and
268 dnl localtime_r, as well as AC_TRY_COMPILE tests to
269 dnl determine their signatures.
271 dnl - Fixed a bug with the init of CFLAGS that was
272 dnl reported by barsnick
274 dnl Revision 1.25 2002/01/04 15:27:18 oes
275 dnl Changed quoting of CODE_STATUS for use in make
277 dnl Revision 1.24 2001/12/30 14:07:31 steudten
278 dnl - Add signal handling (unix)
279 dnl - Add SIGHUP handler (unix)
280 dnl - Add creation of pidfile (unix)
281 dnl - Add action 'top' in rc file (RH)
282 dnl - Add entry 'SIGNALS' to manpage
283 dnl - Add exit message to logfile (unix)
285 dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt
286 dnl Change from "alpha" to "beta" in configure.in
288 dnl Revision 1.22 2001/12/01 11:24:01 jongfoster
289 dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
290 dnl make break in a more obvious way.
292 dnl Revision 1.21 2001/11/30 21:35:54 jongfoster
293 dnl Bumping version number to 2.9.10
295 dnl Revision 1.20 2001/10/23 21:24:09 jongfoster
296 dnl Support for FEATURE_CGI_EDIT_ACTIONS
298 dnl Revision 1.19 2001/10/07 15:33:14 oes
299 dnl Removed FEATURE_DENY_GZIP
300 dnl Bumped up version number
302 dnl Revision 1.18 2001/09/13 13:10:24 steudten
304 dnl PreWork for Debug Interface.
305 dnl Add new option "--with-debug" to enable debugging (flags aso.)
307 dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt
308 dnl Mac OSX (Darwin) support added.
310 dnl Revision 1.16 2001/09/12 22:55:45 joergs
311 dnl AmigaOS support added.
313 dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt
315 dnl OS/2 port: update autoconf'd support for the platform.
317 dnl Revision 1.14 2001/07/30 22:12:11 jongfoster
318 dnl Fixing Solaris build (I hope) and tidying up #defines:
319 dnl - All feature #defines are now of the form FEATURE_xxx
320 dnl - Permanently turned off WIN_GUI_EDIT
321 dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
323 dnl Revision 1.13 2001/07/29 17:09:17 jongfoster
324 dnl Major changes to build system in order to fix these bugs:
325 dnl - pthreads under Linux was broken - changed -lpthread to -pthread
326 dnl - Compiling in MinGW32 mode under CygWin now correctly detects
327 dnl which shared libraries are available
328 dnl - Solaris support (?) (Not tested under Solaris yet)
330 dnl Revision 1.12 2001/07/25 19:16:27 oes
331 dnl Bumping version number to 2.9.8
333 dnl Revision 1.11 2001/07/21 18:00:07 jongfoster
334 dnl Bumping version number to 2.9.7
336 dnl Revision 1.10 2001/07/18 17:25:04 oes
339 dnl Revision 1.9 2001/07/15 19:45:13 jongfoster
340 dnl Added support for linking with POSIX threads library
342 dnl Revision 1.8 2001/07/15 17:54:29 jongfoster
343 dnl Renaming #define STATIC to STATIC_PCRE
344 dnl Adding new #define FEATURE_PTHREAD that will be used to enable
345 dnl POSIX threads support.
347 dnl Revision 1.7 2001/07/13 13:58:05 oes
348 dnl Completely reorganized the selection scheme for
349 dnl pcre, pcreposix, pcrs and gnu_regex:
351 dnl The presence of shared pcre, pcreposix or pcrs
352 dnl libraried is now autodetected. Additionally, the
353 dnl user can enforce using the built-in static variants
354 dnl by specifying --disable-dynamic-(pcre|pcrs).
355 dnl Care is taken to avoid that pcre is dyn, while pcreposix
356 dnl is static, if both are used and that pcrs is static if
359 dnl The choice between pcre, gnu or no regex for actionsfile
360 dnl URL matching is now via
361 dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the
362 dnl default being pcre.
364 dnl Revision 1.6 2001/06/29 21:56:40 oes
367 dnl Revision 1.5 2001/06/29 13:26:27 oes
368 dnl Introduced #define CODE_STATUS
370 dnl Revision 1.4 2001/05/29 09:50:24 jongfoster
371 dnl Unified blocklist/imagelist/permissionslist.
372 dnl File format is still under discussion, but the internal changes
373 dnl are (mostly) done.
375 dnl Also modified interceptor behaviour:
376 dnl - We now intercept all URLs beginning with one of the following
377 dnl prefixes (and *only* these prefixes):
379 dnl * http://ijbswa.sf.net/config/
380 dnl * http://ijbswa.sourceforge.net/config/
381 dnl - New interceptors "home page" - go to http://i.j.b/ to see it.
382 dnl - Internal changes so that intercepted and fast redirect pages
383 dnl are not replaced with an image.
384 dnl - Interceptors now have the option to send a binary page direct
385 dnl to the client. (i.e. ijb-send-banner uses this)
386 dnl - Implemented show-url-info interceptor. (Which is why I needed
387 dnl the above interceptors changes - a typical URL is
388 dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
389 dnl The previous mechanism would not have intercepted that, and
390 dnl if it had been intercepted then it then it would have replaced
391 dnl it with an image.)
393 dnl Revision 1.3 2001/05/22 18:46:04 oes
395 dnl - Enabled filtering banners by size rather than URL
396 dnl by adding patterns that replace all standard banner
397 dnl sizes with the "Junkbuster" gif to the re_filterfile
399 dnl - Enabled filtering WebBugs by providing a pattern
400 dnl which kills all 1x1 images
402 dnl - Added support for PCRE_UNGREEDY behaviour to pcrs,
403 dnl which is selected by the (nonstandard and therefore
404 dnl capital) letter 'U' in the option string.
405 dnl It causes the quantifiers to be ungreedy by default.
406 dnl Appending a ? turns back to greedy (!).
408 dnl - Added a new interceptor ijb-send-banner, which
409 dnl sends back the "Junkbuster" gif. Without imagelist or
410 dnl MSIE detection support, or if tinygif = 1, or the
411 dnl URL isn't recognized as an imageurl, a lame HTML
412 dnl explanation is sent instead.
414 dnl - Added new feature, which permits blocking remote
415 dnl script redirects and firing back a local redirect
417 dnl The feature is conditionally compiled, i.e. it
418 dnl can be disabled with --disable-fast-redirects,
419 dnl plus it must be activated by a "fast-redirects"
420 dnl line in the config file, has its own log level
421 dnl and of course wants to be displayed by show-proxy-args
422 dnl Note: Boy, all the #ifdefs in 1001 locations and
423 dnl all the fumbling with configure.in and acconfig.h
424 dnl were *way* more work than the feature itself :-(
426 dnl - Because a generic redirect template was needed for
427 dnl this, tinygif = 3 now uses the same.
429 dnl - Moved GIFs, and other static HTTP response templates
432 dnl - Some minor fixes
434 dnl - Removed some >400 CRs again (Jon, you really worked
437 dnl Revision 1.2 2001/05/20 01:21:20 jongfoster
438 dnl Version 2.9.4 checkin.
439 dnl - Merged popupfile and cookiefile, and added control over PCRS
440 dnl filtering, in new "permissionsfile".
441 dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
442 dnl file error you now get a message box (in the Win32 GUI) rather
443 dnl than the program exiting with no explanation.
444 dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header
446 dnl - Removed tabs from "config"
447 dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition.
448 dnl - Bumped up version number.
450 dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes
451 dnl Initial import of version 2.9.3 source tree
456 dnl =================================================================
457 dnl AutoConf Initialization
458 dnl =================================================================
460 AC_REVISION($Revision: 1.94 $)
463 if test ! -f config.h.in; then
464 echo "You need to run autoheader first. "
465 echo -n "Shall I do this for you now? (y/n) "
467 if test "$answer" != "y"; then
474 AC_CONFIG_HEADER([config.h])
479 AC_ARG_WITH(docbook, dnl
480 --with-docbook=[[yes|no|directory]]
481 Enable docbook documentation creation
482 (default = yes, for gnu and linux),[dnl
483 case "$with_docbook" in
493 AC_ARG_WITH(db2html, dnl
494 --with-db2html=<path/executable>
495 Set the location of the docbook to html converter
496 (default = search),[dnl
500 dnl =================================================================
501 dnl Application version number
502 dnl =================================================================
507 CODE_STATUS="UNRELEASED"
509 dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
510 dnl used for CGI output. Set version to 0.0.0 and status to "UNRELEASED"
511 dnl whenever CVS in a stable branch differs from the last release.
513 dnl =================================================================
514 dnl Substitute the version numbers
515 dnl =================================================================
517 AC_SUBST(VERSION_MAJOR)
518 AC_SUBST(VERSION_MINOR)
519 AC_SUBST(VERSION_POINT)
520 AC_SUBST(CODE_STATUS)
523 AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
524 AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR})
525 AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT})
526 AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
527 AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
529 dnl =================================================================
530 dnl Checks for programs needed to build.
531 dnl =================================================================
533 dnl Keep AC_PROG_CC from setting its own defaults:
534 if test "X$CFLAGS" = "X"; then
545 AC_CHECK_PROG(GDB,gdb,yes,no)
546 AC_PATH_PROG(BGROUPS,groups,no,/bin:/usr/bin:/usr/local/bin)
547 AC_PATH_PROG(ID,id,no,/bin:/usr/bin:/usr/local/bin)
551 dnl =================================================================
552 dnl debug, gcc and gdb support
553 dnl =================================================================
556 [ --with-debug Enable debug mode],
558 if test "x$withval" != "xno" ; then
559 if test $ac_cv_prog_cc_g = yes; then
560 if test "$GCC" = yes; then
562 CFLAGS="$CFLAGS -ggdb"
566 CFLAGS="$CFLAGS -Wshadow -Wconversion"
574 if test "X$CFLAGS" = "X "; then # if CFLAGS were unset (see above)
575 if test "$GCC" = yes; then
582 dnl =================================================================
583 dnl Check for user and group validity
584 dnl =================================================================
587 if test "$EMXOS2" = yes; then
588 echo "Skipping user and group validity stuff.";
592 $ID privoxy >/dev/null 2>/dev/null
593 if test $? -ne 0 ; then
594 AC_MSG_WARN(There is no user 'privoxy' on this system)
596 AC_MSG_CHECKING([for user])
598 [ --with-user=privoxy Set user under which privoxy will run],
600 if test "x$withval" != "xyes"; then
601 if test $ID = no ; then
602 AC_MSG_ERROR(There is no 'id' program on this system)
604 AC_MSG_RESULT($with_user)
605 $ID $with_user 2>/dev/null >/dev/null
606 if test $? -eq 0 ; then
609 AC_MSG_ERROR(There is no user '$with_user' on this system)
613 AC_MSG_ERROR(We need a user if you give me this parameter)
617 if test $ID = no ; then
618 AC_MSG_ERROR(There is no 'id' programm on this system)
620 AC_MSG_RESULT(none specified)
627 AC_MSG_CHECKING([for group])
629 [ --with-group=privoxy Set group for privoxy],
631 if test "x$withval" != "xyes"; then
632 if test $BGROUPS = no ; then
633 AC_MSG_ERROR(There is no 'groups' program on this system)
635 AC_MSG_RESULT($with_group)
636 $BGROUPS $USER >/dev/null
637 if test $? -eq 0 ; then
638 # FIXME: this fails if valid group, but not first group
640 if test "$with_group" != "`$BGROUPS $USER | sed 's/.*: //' 2>/dev/null |$AWK '{print $1}'`" ; then
641 AC_MSG_ERROR(The given value '$withval' does not match group entry)
646 AC_MSG_ERROR(There is no group entry for user '$USER')
650 AC_MSG_ERROR(We need a group if you give me this parameter)
654 if test $BGROUPS = no ; then
655 AC_MSG_ERROR(There is no 'groups' programm on this system)
657 AC_MSG_RESULT(none specified)
666 dnl =================================================================
667 dnl additional gcc flags
668 dnl =================================================================
671 CFLAGS="-pipe $CFLAGS"
675 dnl =================================================================
677 dnl =================================================================
679 dnl Must do this first.
681 dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler
682 dnl into Cygwin or MinGW32 modes. Depending on the mode selected,
683 dnl the compiler will use completely different sets of library
684 dnl and include files.
686 dnl =================================================================
691 if test "$MINGW32" = "yes"; then
694 if test "$CYGWIN" = "yes"; then
701 if test $dodk = auto; then
703 if test $target_type = unix; then
712 dnl Decide what to do based on target_type
713 dnl Note: PTHREAD_LIB is always set, even if pthread is disabled.
714 dnl This is because we don't know yet whether pthread is enabled.
716 AC_ARG_ENABLE(mingw32,
717 [ --enable-mingw32 Use mingw32 for a Windows GUI],
718 [if test $enableval = yes; then
722 if test $target_type = mingw; then
724 SPECIAL_CFLAGS="-mwindows -mno-cygwin"
725 PTHREAD_LIB=-lpthreadGC
726 echo "Using mingw32 (Win32 GUI)"
729 if test $target_type = cygwin; then
730 SPECIAL_CFLAGS="-mno-win32"
732 echo "Using Cygnus (Win32 command line)"
735 PTHREAD_LIB=-lpthread
740 dnl Checking which text html browser we have avaliable
741 if test $dodk != no; then
742 AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
743 if test "$WDUMP" = false; then
744 AC_MSG_WARN(You need some kind of text browser to build documentation \(w3m, lynx and links are supported\))
746 if test $DB2HTML = false; then
747 dnl We need to clean the variable, otherwise AC_CHECK_PROGS
750 AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false)
756 dnl If we use rpm, we need to check where %_topdir is
757 AC_CHECK_PROGS(RPMBIN,rpm,false)
758 if test $RPMBIN != false; then
759 RPM_BASE=`rpm --eval "%{_topdir}"`
760 if test "$RPM_BASE" = ""; then
761 RPM_BASE=/usr/src/redhat
766 dnl Check for jade, so we can build the documentation
767 AC_CHECK_PROGS(JADEBIN,jade openjade,false)
770 dnl Check for man2html for docs.
771 AC_CHECK_PROGS(MAN2HTML,man2html,false)
774 dnl Set doc status flag for conditional content inclusions
775 DOC_STATUS=p-not-stable
776 if test $CODE_STATUS = stable; then
777 DOC_STATUS="p-stable"
781 dnl Checking for the docbook.dsl stylesheet file
782 dnl It is still not portable (directory slash)
784 if test $dodk = yes; then
785 if test $DKPREFIX = none; then
786 for i in /usr/share/sgml/docbook/dsssl-stylesheets \
787 /usr/share/sgml/docbkdsl /usr/share/sgml/docbook-dsssl \
788 /usr/local/share/sgml/docbook/dsssl/modular \
789 /usr/share/sgml/docbook/stylesheet/dsssl/modular/ \
791 dnl echo -n does not fly with /bin/sh.
792 dnl echo -n "checking for $i/html/docbook.dsl..."
793 AC_MSG_CHECKING([for $i])
794 if test -f $i/html/docbook.dsl; then
802 # where are the catalogs?
803 for i in /usr/share/sgml/CATALOG.docbk30 \
804 /usr/share/sgml/CATALOG.docbk31 \
805 /usr/share/sgml/CATALOG.docbk31 \
806 /usr/local/share/sgml/docbook/3.0/docbook.cat \
807 /usr/local/share/sgml/docbook/3.1/docbook.cat \
808 /usr/share/sgml/docbook/dtd/3.1/docbook.cat \
810 dnl echo -n "checking for $i..."
811 AC_MSG_CHECKING([for $i])
814 JADECAT="$JADECAT -c $i"
824 dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
825 old_CFLAGS_nospecial=$CFLAGS
826 CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
828 # Hack to force AutoConf to use the CFLAGS we just set
829 dnl Warning: This may break with a future version of Autoconf
830 dnl Tested with autoconf 2.13
831 ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS'
832 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
833 ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
836 dnl =================================================================
838 dnl =================================================================
840 AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no])
842 AC_ARG_ENABLE(pthread,
843 [ --disable-pthread Don't use POSIX threads (pthreads)],
844 [if test $enableval = no; then
849 if test $have_pthread = yes; then
851 AC_DEFINE(FEATURE_PTHREAD)
852 echo Using POSIX threads
853 if test "$GCC" = "yes"; then
854 # Set a GCC specific switch:
855 if test "$target_type" = "unix"; then
856 ac_jgf_save_CFLAGS=$CFLAGS
857 CFLAGS="$CFLAGS -pthread"
858 AC_TRY_LINK([#include <pthread.h>],
859 [void *p = pthread_create;],
861 # This compiler switch makes GCC on Linux thread-safe
862 # However, it's not supported on most other OS.
864 SPECIAL_CFLAGS="-pthread"
866 CFLAGS=$ac_jgf_save_CFLAGS
871 echo Using native threads
874 AC_SUBST(PTHREAD_ONLY)
876 dnl =================================================================
877 dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
878 dnl gmtime and localtime
879 dnl =================================================================
881 dnl Next line needed to find the gethost*_r functions on Solaris
882 AC_CHECK_LIB(nsl, gethostbyname)
884 AC_CHECK_FUNC(gethostbyaddr_r, [
885 AC_MSG_CHECKING([signature of gethostbyaddr_r])
889 struct hostent *h, *hp;
892 (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e)
894 AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS)
895 AC_MSG_RESULT([8 args])
903 (void) gethostbyaddr_r(a, l, t, h, b, bl, &e)
905 AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS)
906 AC_MSG_RESULT([7 args])
911 struct hostent_data *d;
915 (void) gethostbyaddr_r(a, l, t, h, d)
917 AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS)
918 AC_MSG_RESULT([5 args])
920 AC_MSG_RESULT(unrecognised)
928 AC_CHECK_FUNC(gethostbyname_r, [
929 AC_MSG_CHECKING([signature of gethostbyname_r])
933 struct hostent *h, *r;
936 (void) gethostbyname_r(n, h, b, bl, &r, &e)
938 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS)
939 AC_MSG_RESULT([6 args])
947 (void) gethostbyname_r(n, h, b, bl, &e)
949 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS)
950 AC_MSG_RESULT([5 args])
955 struct hostent_data *d;
958 (void) gethostbyname_r(n, h, d)
960 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS)
961 AC_MSG_RESULT([3 args])
963 AC_MSG_RESULT(unrecognised)
971 AC_CHECK_FUNC(gmtime_r, [
972 AC_MSG_CHECKING([signature of gmtime_r])
978 (void) gmtime_r(t, tm)
981 AC_DEFINE(HAVE_GMTIME_R)
983 AC_MSG_RESULT(unrecognised)
989 AC_CHECK_FUNC(localtime_r, [
990 AC_MSG_CHECKING([signature of localtime_r])
996 (void) localtime_r(t, tm)
999 AC_DEFINE(HAVE_LOCALTIME_R)
1001 AC_MSG_RESULT(unrecognised)
1007 dnl =================================================================
1008 dnl Solaris specific
1009 dnl FIXME: Not tested on Solaris yet...
1010 dnl ISFIXED: Have tested it on Solaris, but there are other ways to
1011 dnl make these checks generic, e.g.:
1012 dnl AC_CHECK_FUNC(getsockopt, , AC_CHECK_LIB(socket, getsockopt))
1013 dnl (Moritz Barsnick <moritz@barsnick.net>)
1014 dnl =================================================================
1020 *-solaris*) SOCKET_LIB="-lsocket -lnsl"
1021 AC_DEFINE(__EXTENSIONS__)
1022 if test "$GCC" = "yes"; then
1023 # Set a GCC specific switch:
1024 # This compiler switch makes Solaris thread-safe
1026 SPECIAL_CFLAGS="-pthreads"
1028 # What do we do without GCC? Guess this:
1029 SPECIAL_CFLAGS="-D_REENTRANT"
1034 AC_SUBST(SOCKET_LIB)
1036 dnl =================================================================
1037 dnl Solaris problem, and others perhaps (socklen_t is undefined)
1038 dnl =================================================================
1040 AC_MSG_CHECKING([for socklen_t])
1041 AC_EGREP_HEADER(socklen_t, sys/socket.h, AC_MSG_RESULT([yes]),
1043 AC_DEFINE(socklen_t,int,
1044 [ Define to 'int' if <sys/socket.h> doesn't have it. ]))
1047 dnl =================================================================
1049 dnl =================================================================
1052 *-os2-emx*) SOCKET_LIB=-lsocket
1056 AC_SUBST(SOCKET_LIB)
1058 dnl =================================================================
1059 dnl Mac OSX specific
1060 dnl =================================================================
1063 *-apple-darwin*) SPECIAL_CFLAGS="-Dunix -DOSX_DARWIN"
1067 dnl =================================================================
1068 dnl OpenBSD specific
1069 dnl =================================================================
1072 *-openbsd*) SPECIAL_CFLAGS="$SPECIAL_CFLAGS -Dunix"
1076 dnl =================================================================
1077 dnl AmigaOS specific
1078 dnl =================================================================
1083 *-amigaos) AMIGAOS_ONLY=
1087 AC_SUBST(AMIGAOS_ONLY)
1089 dnl =================================================================
1090 dnl Check for standard compiler stuff
1091 dnl =================================================================
1102 AC_CHECK_SIZEOF(int, 4)
1103 AC_CHECK_SIZEOF(char *, 4)
1104 AC_CHECK_SIZEOF(long, 4)
1105 AC_CHECK_SIZEOF(long long, 8)
1106 AC_CHECK_SIZEOF(size_t, 4)
1108 dnl Checks for header files.
1109 dnl AC_HEADER_SYS_WAIT
1110 dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
1111 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])
1113 dnl Checks for library functions.
1115 dnl AC_CHECK_FUNC(strstr)
1116 dnl bcopy and memmove are for PCRE
1117 AC_CHECK_FUNCS([strerror bcopy memmove])
1118 AC_PROG_GCC_TRADITIONAL
1119 dnl uncommenting does not work for swa. suse linux
1123 dnl uncommenting does not work for swa. suse linux
1125 AC_CHECK_FUNCS([atexit getcwd gethostbyaddr gethostbyaddr_r gethostbyname gethostbyname_r inet_ntoa localtime_r memchr memmove memset random regcomp select setlocale socket strchr strdup strerror strftime strptime strstr strtoul timegm])
1128 dnl =================================================================
1129 dnl Checks for libraries.
1130 dnl =================================================================
1131 dnl Note: Some systems may have the library but not the system header
1132 dnl file, so we must check for both.
1133 dnl Also check for correct version
1134 AC_CHECK_LIB(pcre, pcre_compile, [
1135 AC_CHECK_HEADER(pcre.h, [
1136 AC_EGREP_HEADER(pcre_fullinfo, pcre.h, [have_pcre=yes], [AC_MSG_WARN([[pcre old version installed]]); have_pcre=no])
1138 AC_CHECK_HEADER(pcre/pcre.h, [
1139 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])
1144 AC_CHECK_LIB(pcreposix, regcomp, [
1145 AC_CHECK_HEADER(pcreposix.h, [
1146 AC_EGREP_HEADER(pcreposix_regerror, pcreposix.h, [AC_MSG_WARN([[pcreposix old version installed]]); have_pcreposix=no], [have_pcreposix=yes])
1148 AC_CHECK_HEADER(pcre/pcreposix.h, [
1149 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)])
1150 ], [have_pcreposix=no])
1152 ], [have_pcreposix=no], -lpcre)
1154 AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no], -lpcre)
1156 dnl =================================================================
1158 dnl =================================================================
1162 dnl =================================================================
1164 dnl =================================================================
1166 AC_ARG_ENABLE(toggle,
1167 [ --disable-toggle Don't support temporary disable],
1168 [if test $enableval = yes; then
1169 AC_DEFINE(FEATURE_TOGGLE)
1170 fi],AC_DEFINE(FEATURE_TOGGLE))
1172 AC_ARG_ENABLE(force,
1173 [ --disable-force Don't allow single-page disable],
1174 [if test $enableval = yes; then
1175 AC_DEFINE(FEATURE_FORCE_LOAD)
1176 fi],AC_DEFINE(FEATURE_FORCE_LOAD))
1178 AC_ARG_ENABLE(fast-redirects,
1179 [ --disable-fast-redirects Don't support fast redirects],
1180 [if test $enableval = yes; then
1181 AC_DEFINE(FEATURE_FAST_REDIRECTS)
1182 fi], AC_DEFINE(FEATURE_FAST_REDIRECTS))
1184 AC_ARG_ENABLE(killpopup,
1185 [ --disable-killpopup Never block popups],
1186 [if test $enableval = yes; then
1187 AC_DEFINE(FEATURE_KILL_POPUPS)
1188 fi],AC_DEFINE(FEATURE_KILL_POPUPS))
1190 AC_ARG_ENABLE(stats,
1191 [ --disable-stats Don't keep statistics],
1192 [if test $enableval = yes; then
1193 AC_DEFINE(FEATURE_STATISTICS)
1194 fi],AC_DEFINE(FEATURE_STATISTICS))
1196 AC_ARG_ENABLE(ie-images,
1197 [ --enable-ie-images Enable a quick but not always reliable auto-detect whether requests from
1198 MS Internet Explorer are for an image or not.],
1199 [if test $enableval = yes; then
1200 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
1203 AC_ARG_ENABLE(image-blocking,
1204 [ --disable-image-blocking Don't try to figure out whether a request is
1205 for an image or HTML - assume HTML.],
1206 [if test $enableval = yes; then
1207 AC_DEFINE(FEATURE_IMAGE_BLOCKING)
1209 AC_DEFINE(FEATURE_IMAGE_BLOCKING))
1211 AC_ARG_ENABLE(acl-files,
1212 [ --disable-acl-files Prevents the use of ACL files to control access to
1213 the proxy by IP address.],
1214 [if test $enableval = yes; then
1215 AC_DEFINE(FEATURE_ACL)
1217 AC_DEFINE(FEATURE_ACL))
1219 AC_ARG_ENABLE(trust-files,
1220 [ --disable-trust-files Prevents the use of trust files.],
1221 [if test $enableval = yes; then
1222 AC_DEFINE(FEATURE_TRUST)
1224 AC_DEFINE(FEATURE_TRUST))
1226 AC_ARG_ENABLE(jar-files,
1227 [ --disable-jar-files Prevents the use of jar files to capture cookies.],
1228 [if test $enableval = yes; then
1229 AC_DEFINE(FEATURE_COOKIE_JAR)
1231 AC_DEFINE(FEATURE_COOKIE_JAR))
1233 AC_ARG_ENABLE(editor,
1234 [ --disable-editor Prevents the use of the web-based actions file
1235 editor and web-based temporary disable setting.],
1236 [if test $enableval = yes; then
1237 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)
1239 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS))
1241 AC_ARG_ENABLE(no-gifs,
1242 [ --enable-no-gifs Use politically correct PNG format instead of GIF
1243 for built-in images. May not work with all browsers.],
1244 [if test $enableval = yes; then
1245 AC_DEFINE(FEATURE_NO_GIFS)
1249 dnl pcre/pcrs is needed for CGI anyway, so
1250 dnl the choice is only between static and
1253 AC_ARG_ENABLE(dynamic-pcre,
1254 [ --disable-dynamic-pcre Use the built-in, static pcre, even if
1255 libpcre is available],
1256 [ if test $enableval = "no"; then have_pcre=no; fi ])
1258 AC_ARG_ENABLE(dynamic-pcrs,
1259 [ --disable-dynamic-pcrs Use the built-in, static pcrs, even if
1260 libpcrs is available],
1261 [ if test $enableval = "no"; then have_pcrs=no; fi ])
1264 # If we have libpcre and either we also have pcreposix or
1265 # we don't need pcreposix, then link pcre dynamically; else
1266 # build it and link statically
1268 if test $have_pcre = "yes"; then
1269 echo "using libpcre"
1272 LIBS="$LIBS -lpcre -lpcreposix"
1274 echo "using built-in static pcre"
1276 AC_DEFINE(STATIC_PCRE)
1280 # If we have libpcrs and pcre is linked dynamically
1281 # then also link pcrs dynamically, else build and link
1284 if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then
1285 echo "using libpcrs"
1289 echo "using built-in static pcrs"
1290 AC_DEFINE(STATIC_PCRS)
1294 AC_SUBST(STATIC_PCRE_ONLY)
1295 AC_SUBST(STATIC_PCRS_ONLY)
1297 dnl =================================================================
1298 dnl Final cleanup and output
1299 dnl =================================================================
1301 dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately
1303 CFLAGS=$old_CFLAGS_nospecial
1304 AC_SUBST(SPECIAL_CFLAGS)
1306 AC_SUBST(PTHREAD_LIB)
1308 AC_OUTPUT(GNUmakefile doc/source/ldp.dsl)