X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=configure.in;h=2c50e61161f9268de3ef5ba46e0753dd00c24536;hp=492d6edcf44248fa79c353416621543ef8589096;hb=ff06d4ce3157c2262917ed0094ed69569ac606ac;hpb=c75584ebcc79f939fb4ec9c8f842cef6692640c7 diff --git a/configure.in b/configure.in index 492d6edc..2c50e611 100644 --- a/configure.in +++ b/configure.in @@ -1,9 +1,9 @@ dnl Process this file with autoconf to produce a configure script. dnl -dnl $Id: configure.in,v 1.2 2001/05/13 22:04:51 administrator Exp $ +dnl $Id: configure.in,v 1.74 2002/09/03 17:31:33 oes Exp $ dnl -dnl Written by and Copyright (C) 2001 the SourceForge -dnl IJBSWA team. http://ijbswa.sourceforge.net +dnl Written by and Copyright (C) 2001, 2002 the SourceForge +dnl Privoxy team. http://www.privoxy.org/ dnl dnl Based on the Internet Junkbuster originally written dnl by and Copyright (C) 1997 Anonymous Coders and @@ -28,230 +28,1211 @@ dnl or write to the Free Software Foundation, Inc., 59 dnl Temple Place - Suite 330, Boston, MA 02111-1307, USA. dnl dnl $Log: configure.in,v $ +dnl Revision 1.74 2002/09/03 17:31:33 oes +dnl Added workaround for very strange behaviour of AC_PROG_CC, which sets CFLAGS to -g -O2 if empty +dnl +dnl Revision 1.73 2002/06/05 00:26:21 hal9 +dnl Move all doc build stuff to doc/source/GNUmakefile, leaving a 'make dok' +dnl target only in toplevel. Add DOC_STATUS variable so docs can be built without +dnl touching sgml source. +dnl +dnl Revision 1.72 2002/06/04 15:52:25 jongfoster +dnl Removing need for acconfig.h (apparently using acconfig.h is an +dnl obsolete coding style). +dnl Moving the DocBook stuff together +dnl +dnl Revision 1.71 2002/06/04 14:51:49 jongfoster +dnl Updating for new paths: +dnl - Source files in src/ +dnl - Object files in obj/ +dnl +dnl Revision 1.70 2002/05/27 23:26:34 mal0rd +dnl Made doc-generation configuration automatic. +dnl References to DB2HTML were removed, not used. +dnl --with-docbook now only needed if in odd path. +dnl +dnl Revision 1.69 2002/05/25 18:11:49 jongfoster +dnl Wahay!!! 3.0.x has branched! +dnl New development version is 3.1.1 alpha +dnl +dnl Revision 1.68 2002/05/25 16:54:54 jongfoster +dnl Detect if the compiler supports -pthread. +dnl Hopefully this will fix bug 560442. (I don't have a HP PA-RISC +dnl machine to test this!) +dnl +dnl Revision 1.67 2002/05/03 14:33:59 oes +dnl Generate doc/soucre/ldp.dsl +dnl +dnl Revision 1.66 2002/05/03 00:41:56 oes +dnl Set version to 2.9.15 to comply with new versioning scheme +dnl +dnl Revision 1.65 2002/04/25 19:13:57 morcego +dnl Removed RPM release number declaration on configure.in +dnl Changed makefile to use given value for RPM_PACKAGEV when on uploading +dnl targets (will produce an error, explaining who to do it, if no value +dnl if provided). +dnl +dnl Revision 1.64 2002/04/22 16:32:31 morcego +dnl configure.in, *.spec: Bumping release to 2 (2.9.14-2) +dnl -rh.spec: uid and gid are now macros +dnl -suse.spec: Changing the header Copyright to License (Copyright is +dnl deprecable) +dnl +dnl Revision 1.63 2002/04/11 11:00:21 oes +dnl Applied Moritz' fix for socklen_t on Solaris +dnl +dnl Revision 1.62 2002/04/11 10:09:20 oes +dnl Version 2.9.14 +dnl +dnl Revision 1.61 2002/04/10 18:14:45 morcego +dnl - (privoxy-rh.spec only) Relisting template files on the %%files section +dnl - (configure.in, privoxy-rh.spec) Bumped package release to 5 +dnl +dnl Revision 1.60 2002/04/09 16:38:49 oes +dnl Added detection of missing config.h.in +dnl +dnl Revision 1.59 2002/04/06 20:23:55 jongfoster +dnl Removing unnessacery tests (C++, ranlib) +dnl +dnl Revision 1.58 2002/04/04 20:49:20 swa +dnl attempt to consolidate the +dnl different dokbook versions. +dnl +dnl Revision 1.57 2002/04/04 00:36:36 gliptak +dnl always use pcre for matching +dnl +dnl Revision 1.56 2002/04/03 22:28:03 gliptak +dnl Removed references to gnu_regex +dnl +dnl Revision 1.55 2002/04/03 03:54:38 gliptak +dnl Checking pcre version +dnl +dnl Revision 1.54 2002/04/01 00:54:24 gliptak +dnl More changes needed around regex support. +dnl +dnl Revision 1.53 2002/03/29 20:09:01 swa +dnl al's patch +dnl +dnl Revision 1.52 2002/03/29 19:51:40 gliptak +dnl Correcting compile problem with Debian +dnl +dnl Revision 1.51 2002/03/28 20:43:00 swa +dnl set make correctly +dnl +dnl Revision 1.50 2002/03/27 03:03:45 hal9 +dnl Add test for man2html +dnl +dnl Revision 1.49 2002/03/27 02:19:52 david__schmidt +dnl More Mac OSX support: +dnl - Get rid of extraneous, noisy -pthread warnings +dnl - Define unix so we get oes' unix-tagged changes +dnl +dnl Revision 1.48 2002/03/26 22:29:54 swa +dnl we have a new homepage! +dnl +dnl Revision 1.47 2002/03/26 16:41:00 hal9 +dnl Upped RPM Release to 3 (need to build new RH packages) +dnl +dnl Revision 1.46 2002/03/24 18:55:06 jongfoster +dnl Making Docbook work under Windows +dnl +dnl Revision 1.45 2002/03/24 14:19:55 swa +dnl set rpm package release in configure.in. nowhere else. +dnl +dnl Revision 1.44 2002/03/24 13:25:43 swa +dnl name change related issues +dnl +dnl Revision 1.43 2002/03/24 12:56:21 swa +dnl name change related issues. +dnl +dnl Revision 1.42 2002/03/22 18:11:37 jongfoster +dnl Bumping version number to 2.9.12 +dnl +dnl Revision 1.41 2002/03/19 19:30:04 morcego +dnl - Fixing stylesheet checking on configure. If it is found, no further checks +dnl should be done +dnl +dnl - configure will now check for db2html or docbook2html (should work now +dnl on SuSe without the docbktls package) +dnl +dnl Revision 1.40 2002/03/09 14:33:30 oes +dnl Fixing the (harmless) AC_CHECK_FILE warnings +dnl +dnl Revision 1.39 2002/03/08 16:46:13 oes +dnl Added --enable-no-gifs +dnl +dnl Revision 1.38 2002/03/08 14:13:50 morcego +dnl Fixing configure, to remove a command not found error. +dnl +dnl Revision 1.37 2002/03/08 12:58:21 oes +dnl Tiny bugfix in AC_ARG_WITH(debug) +dnl +dnl Revision 1.36 2002/03/06 23:50:36 morcego +dnl Will not test for a text browser if we are not using docbook. +dnl +dnl Revision 1.35 2002/03/06 21:55:52 morcego +dnl New configure option: --with-docbook=(yes|no|directory) +dnl Preliminary new platform detection code included. Will work with the +dnl old one for now. No use just trowing it away +dnl +dnl Revision 1.34 2002/03/06 20:57:00 morcego +dnl Fixing detection of stylesheets on SuSe. +dnl +dnl Revision 1.33 2002/03/05 17:31:11 morcego +dnl Search for docbook.dsl. Should solve portability problems for SuSe. +dnl +dnl Revision 1.32 2002/03/05 14:07:43 morcego +dnl configure now detects rpm topdir, and change GNUmakefile acordingly +dnl (based on sugestion by Sarantis Paskalis) +dnl +dnl Revision 1.31 2002/03/05 13:43:28 morcego +dnl Checking for text browser, so redhat-dok can work. +dnl +dnl Revision 1.30 2002/03/04 17:58:01 oes +dnl Deleted _DEBUG and PID_FILE_PATH +dnl +dnl Revision 1.29 2002/02/28 14:20:53 oes +dnl Fixed detection of gethost*_r functions on Solaris +dnl +dnl Revision 1.28 2002/02/27 15:02:38 oes +dnl Incremented version number +dnl +dnl Revision 1.27 2002/01/10 12:35:18 oes +dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros +dnl to silence autoconf warnings. Numbers are for Intel/Linux. +dnl Is there a better way? +dnl +dnl Revision 1.26 2002/01/09 14:29:49 oes +dnl - Added AC_CHECK_FUNC tests for the availability of +dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and +dnl localtime_r, as well as AC_TRY_COMPILE tests to +dnl determine their signatures. +dnl +dnl - Fixed a bug with the init of CFLAGS that was +dnl reported by barsnick +dnl +dnl Revision 1.25 2002/01/04 15:27:18 oes +dnl Changed quoting of CODE_STATUS for use in make +dnl +dnl Revision 1.24 2001/12/30 14:07:31 steudten +dnl - Add signal handling (unix) +dnl - Add SIGHUP handler (unix) +dnl - Add creation of pidfile (unix) +dnl - Add action 'top' in rc file (RH) +dnl - Add entry 'SIGNALS' to manpage +dnl - Add exit message to logfile (unix) +dnl +dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt +dnl Change from "alpha" to "beta" in configure.in +dnl +dnl Revision 1.22 2001/12/01 11:24:01 jongfoster +dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of +dnl make break in a more obvious way. +dnl +dnl Revision 1.21 2001/11/30 21:35:54 jongfoster +dnl Bumping version number to 2.9.10 +dnl +dnl Revision 1.20 2001/10/23 21:24:09 jongfoster +dnl Support for FEATURE_CGI_EDIT_ACTIONS +dnl +dnl Revision 1.19 2001/10/07 15:33:14 oes +dnl Removed FEATURE_DENY_GZIP +dnl Bumped up version number +dnl +dnl Revision 1.18 2001/09/13 13:10:24 steudten +dnl +dnl PreWork for Debug Interface. +dnl Add new option "--with-debug" to enable debugging (flags aso.) +dnl +dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt +dnl Mac OSX (Darwin) support added. +dnl +dnl Revision 1.16 2001/09/12 22:55:45 joergs +dnl AmigaOS support added. +dnl +dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt +dnl +dnl OS/2 port: update autoconf'd support for the platform. +dnl +dnl Revision 1.14 2001/07/30 22:12:11 jongfoster +dnl Fixing Solaris build (I hope) and tidying up #defines: +dnl - All feature #defines are now of the form FEATURE_xxx +dnl - Permanently turned off WIN_GUI_EDIT +dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS +dnl +dnl Revision 1.13 2001/07/29 17:09:17 jongfoster +dnl Major changes to build system in order to fix these bugs: +dnl - pthreads under Linux was broken - changed -lpthread to -pthread +dnl - Compiling in MinGW32 mode under CygWin now correctly detects +dnl which shared libraries are available +dnl - Solaris support (?) (Not tested under Solaris yet) +dnl +dnl Revision 1.12 2001/07/25 19:16:27 oes +dnl Bumping version number to 2.9.8 +dnl +dnl Revision 1.11 2001/07/21 18:00:07 jongfoster +dnl Bumping version number to 2.9.7 +dnl +dnl Revision 1.10 2001/07/18 17:25:04 oes +dnl Fixed a typo +dnl +dnl Revision 1.9 2001/07/15 19:45:13 jongfoster +dnl Added support for linking with POSIX threads library +dnl +dnl Revision 1.8 2001/07/15 17:54:29 jongfoster +dnl Renaming #define STATIC to STATIC_PCRE +dnl Adding new #define FEATURE_PTHREAD that will be used to enable +dnl POSIX threads support. +dnl +dnl Revision 1.7 2001/07/13 13:58:05 oes +dnl Completely reorganized the selection scheme for +dnl pcre, pcreposix, pcrs and gnu_regex: +dnl +dnl The presence of shared pcre, pcreposix or pcrs +dnl libraried is now autodetected. Additionally, the +dnl user can enforce using the built-in static variants +dnl by specifying --disable-dynamic-(pcre|pcrs). +dnl Care is taken to avoid that pcre is dyn, while pcreposix +dnl is static, if both are used and that pcrs is static if +dnl pcrs is. +dnl +dnl The choice between pcre, gnu or no regex for actionsfile +dnl URL matching is now via +dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the +dnl default being pcre. +dnl +dnl Revision 1.6 2001/06/29 21:56:40 oes +dnl Version -> 2.9.5 +dnl +dnl Revision 1.5 2001/06/29 13:26:27 oes +dnl Introduced #define CODE_STATUS +dnl +dnl Revision 1.4 2001/05/29 09:50:24 jongfoster +dnl Unified blocklist/imagelist/permissionslist. +dnl File format is still under discussion, but the internal changes +dnl are (mostly) done. +dnl +dnl Also modified interceptor behaviour: +dnl - We now intercept all URLs beginning with one of the following +dnl prefixes (and *only* these prefixes): +dnl * http://i.j.b/ +dnl * http://ijbswa.sf.net/config/ +dnl * http://ijbswa.sourceforge.net/config/ +dnl - New interceptors "home page" - go to http://i.j.b/ to see it. +dnl - Internal changes so that intercepted and fast redirect pages +dnl are not replaced with an image. +dnl - Interceptors now have the option to send a binary page direct +dnl to the client. (i.e. ijb-send-banner uses this) +dnl - Implemented show-url-info interceptor. (Which is why I needed +dnl the above interceptors changes - a typical URL is +dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif". +dnl The previous mechanism would not have intercepted that, and +dnl if it had been intercepted then it then it would have replaced +dnl it with an image.) +dnl +dnl Revision 1.3 2001/05/22 18:46:04 oes +dnl +dnl - Enabled filtering banners by size rather than URL +dnl by adding patterns that replace all standard banner +dnl sizes with the "Junkbuster" gif to the re_filterfile +dnl +dnl - Enabled filtering WebBugs by providing a pattern +dnl which kills all 1x1 images +dnl +dnl - Added support for PCRE_UNGREEDY behaviour to pcrs, +dnl which is selected by the (nonstandard and therefore +dnl capital) letter 'U' in the option string. +dnl It causes the quantifiers to be ungreedy by default. +dnl Appending a ? turns back to greedy (!). +dnl +dnl - Added a new interceptor ijb-send-banner, which +dnl sends back the "Junkbuster" gif. Without imagelist or +dnl MSIE detection support, or if tinygif = 1, or the +dnl URL isn't recognized as an imageurl, a lame HTML +dnl explanation is sent instead. +dnl +dnl - Added new feature, which permits blocking remote +dnl script redirects and firing back a local redirect +dnl to the browser. +dnl The feature is conditionally compiled, i.e. it +dnl can be disabled with --disable-fast-redirects, +dnl plus it must be activated by a "fast-redirects" +dnl line in the config file, has its own log level +dnl and of course wants to be displayed by show-proxy-args +dnl Note: Boy, all the #ifdefs in 1001 locations and +dnl all the fumbling with configure.in and acconfig.h +dnl were *way* more work than the feature itself :-( +dnl +dnl - Because a generic redirect template was needed for +dnl this, tinygif = 3 now uses the same. +dnl +dnl - Moved GIFs, and other static HTTP response templates +dnl to project.h +dnl +dnl - Some minor fixes +dnl +dnl - Removed some >400 CRs again (Jon, you really worked +dnl a lot! ;-) +dnl +dnl Revision 1.2 2001/05/20 01:21:20 jongfoster +dnl Version 2.9.4 checkin. +dnl - Merged popupfile and cookiefile, and added control over PCRS +dnl filtering, in new "permissionsfile". +dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration +dnl file error you now get a message box (in the Win32 GUI) rather +dnl than the program exiting with no explanation. +dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header +dnl skipping. +dnl - Removed tabs from "config" +dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition. +dnl - Bumped up version number. +dnl +dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes +dnl Initial import of version 2.9.3 source tree +dnl dnl -AC_INIT(jcc.c) -AC_CONFIG_HEADER(config.h) -VERSION_MAJOR=2 -VERSION_MINOR=9 -VERSION_POINT=3 + +dnl ================================================================= +dnl AutoConf Initialization +dnl ================================================================= + +AC_REVISION($Revision: 1.74 $) +AC_INIT(src/jcc.c) + +if test ! -f src/config.h.in; then + echo "You need to run autoheader first. " + echo -n "Shall I do this for you now? (y/n) " + read answer + if test $answer != "y"; then + exit 1 + else + autoheader + fi +fi + +AC_CONFIG_HEADER([src/config.h]) +AC_CANONICAL_HOST + + +dnl ================================================================= +dnl Application version number +dnl ================================================================= + +VERSION_MAJOR=3 +VERSION_MINOR=1 +VERSION_POINT=1 +CODE_STATUS="alpha" + +dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be +dnl used for CGI output + +dnl ================================================================= +dnl Substitute the version numbers +dnl ================================================================= AC_SUBST(VERSION_MAJOR) AC_SUBST(VERSION_MINOR) AC_SUBST(VERSION_POINT) +AC_SUBST(CODE_STATUS) -AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR}) -AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR}) -AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT}) -AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}") +dnl +AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR}, + [Version number - Major (X._._).]) +AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR}, + [Version number - Minor (_.X._).]) +AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT}, + [Version number - Point (_._.X).]) +AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}", + [Version number, as a string.]) +AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}", + [Status of the code: "alpha", "beta" or "stable".]) + +dnl ================================================================= +dnl Checks for programs needed to build. +dnl ================================================================= + +dnl Keep AC_PROG_CC from setting its own defaults: +CFLAGS=" " -dnl Checks for programs. -dnl AC_PROG_CXX AC_PROG_CC AC_PROG_CPP -dnl AC_PROG_INSTALL -dnl AC_PROG_LN_S -dnl AC_PROG_MAKE_SET -dnl RANLIB is for PCRE: -dnl AC_PROG_RANLIB +AC_PROG_INSTALL +AC_PROG_LN_S +AC_PROG_MAKE_SET -AC_MINGW32 -AC_CYGWIN -AC_EXEEXT -AC_OBJEXT +AC_CHECK_PROG(GDB,gdb,yes,no) -dnl Checks for libraries. -dnl AC_CHECK_LIB(pcre, pcre_compile) -dnl AC_CHECK_LIB(pcreposix, regcomp, pcre) +dnl ================================================================= +dnl debug, gcc and gdb support +dnl ================================================================= -dnl Checks for header files. -AC_HEADER_STDC -dnl AC_HEADER_SYS_WAIT -dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h) -dnl limits.h is for PCRE: -dnl AC_CHECK_HEADERS(limits.h) +AC_ARG_WITH(debug, + [ --with-debug Enable debug mode], + [ + if test "x$withval" != "xno" ; then + if test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + if test "$GDB"; then + CFLAGS="-ggdb" + else + CFLAGS="-g" + fi + CFLAGS="$CFLAGS -Wshadow -Wconversion" + else + CFLAGS="-g" + fi + fi + fi + ], + [ + if test "X$CFLAGS" = "X"; then # if CFLAGS are unset + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi + fi + ] +) -dnl Checks for typedefs, structures, and compiler characteristics. -AC_C_CONST -AC_TYPE_SIZE_T +AC_ARG_WITH(user, + [ --with-user=privoxy Set user under which privoxy run], + [ + if test "x$withval" != "xyes"; then + USER=$with_user; + else + AC_MSG_ERROR(We need a user if you give me this parameter) + fi + ], + [ + USER=privoxy; + ] +) +AC_SUBST(USER) -dnl Checks for library functions. -dnl AC_TYPE_SIGNAL -dnl AC_CHECK_FUNC(strstr) -dnl bcopy and memmove are for PCRE -AC_CHECK_FUNCS(strerror bcopy memmove) +AC_ARG_WITH(group, + [ --with-group=privoxy Set group for privoxy], + [ + if test "x$withval" != "xyes"; then + GROUP=$with_group; + else + AC_MSG_ERROR(We need a group if you give me this parameter) + fi + ], + [ + GROUP=privoxy; + ] +) +AC_SUBST(GROUP) + +dnl ================================================================= +dnl additional gcc flags +dnl ================================================================= +dnl +if test "$GCC"; then + CFLAGS="-pipe $CFLAGS" +fi + +dnl ================================================================= dnl Build type +dnl ================================================================= +dnl +dnl Must do this first. +dnl +dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler +dnl into Cygwin or MinGW32 modes. Depending on the mode selected, +dnl the compiler will use completely different sets of library +dnl and include files. +dnl +dnl ================================================================= + +AC_MINGW32 +AC_CYGWIN + +if test "$MINGW32" = "yes"; then + target_type=mingw +else + if test "$CYGWIN" = "yes"; then + target_type=cygwin + else + target_type=unix + fi +fi + +dnl Decide what to do based on target_type +dnl Note: PTHREAD_LIB is always set, even if pthread is disabled. +dnl This is because we don't know yet whether pthread is enabled. AC_ARG_ENABLE(mingw32, [ --enable-mingw32 Use mingw32 for a Windows GUI], [if test $enableval = yes; then - WIN_ONLY= - CYGWIN_FLAGS="-mwindows -mno-cygwin" - echo "Using mingw32 (Win32 GUI)" - else - WIN_ONLY=# - if test "$CYGWIN" = "yes"; then - CYGWIN_FLAGS="-mno-win32" - echo "Using Cygnus (Win32 command line)" - else - CYGWIN_FLAGS= - fi - fi], -[if test "$MINGW32" = "yes"; then - WIN_ONLY= - CYGWIN_FLAGS="-mwindows -mno-cygwin" - echo "Using mingw32 (Win32 GUI)" - else - WIN_ONLY=# - if test "$CYGWIN" = "yes"; then - CYGWIN_FLAGS="-mno-win32" - echo "Using Cygnus (Win32 command line)" - else - CYGWIN_FLAGS= - fi - fi]) + target_type=mingw +fi]) +if test $target_type = mingw; then + WIN_ONLY= + SPECIAL_CFLAGS="-mwindows -mno-cygwin" + PTHREAD_LIB=-lpthreadGC + echo "Using mingw32 (Win32 GUI)" +else + WIN_ONLY=# + if test $target_type = cygwin; then + SPECIAL_CFLAGS="-mno-win32" + PTHREAD_LIB= + echo "Using Cygnus (Win32 command line)" + else + SPECIAL_CFLAGS= + PTHREAD_LIB=-lpthread + fi +fi AC_SUBST(WIN_ONLY) -AC_SUBST(CYGWIN_FLAGS) -SOLARIS_ONLY=# -AC_SUBST(SOLARIS_ONLY) +dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS +old_CFLAGS_nospecial=$CFLAGS +CFLAGS="$CFLAGS $SPECIAL_CFLAGS" -dnl Features +# Hack to force AutoConf to use the CFLAGS we just set +dnl Warning: This may break with a future version of Autoconf +dnl Tested with autoconf 2.13 +ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -dnl Regex engine: -GNU_REGEX_ONLY= -PCRE_REGEX_ONLY= -NO_REGEX_ONLY=# +dnl ================================================================= +dnl Thread support +dnl ================================================================= -AC_ARG_ENABLE(regex, -[ --disable-regex Don't allow regular expressions in the blockfile], -[if test $enableval = yes; then - AC_DEFINE(REGEX) -else - NO_REGEX_ONLY= - GNU_REGEX_ONLY=# - PCRE_REGEX_ONLY=# -fi],AC_DEFINE(REGEX)) +AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no]) -AC_ARG_ENABLE(pcre-regex, -[ --disable-pcre-regex Use old, slow GNU Regex instead of PCRE.], -[if test $enableval = yes; then - AC_DEFINE(PCRE) - GNU_REGEX_ONLY=# +AC_ARG_ENABLE(pthread, +[ --disable-pthread Don't use POSIX threads (pthreads)], +[if test $enableval = no; then + # Disable pthreads + have_pthread=no +fi]) + +if test $have_pthread = yes; then + PTHREAD_ONLY= + AC_DEFINE(FEATURE_PTHREAD,1, + [Define to use POSIX threads instead of native threads.]) + echo Using POSIX threads + if test "$GCC" = "yes"; then + # Set a GCC specific switch: + if test "$target_type" = "unix"; then + ac_jgf_save_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -pthread" + AC_TRY_LINK([#include ], + [void *p = pthread_create;], + [ + # This compiler switch makes GCC on Linux thread-safe + # However, it's not supported on most other OS. + PTHREAD_LIB= + SPECIAL_CFLAGS="-pthread" + ]) + CFLAGS=$ac_jgf_save_CFLAGS + fi + fi else - PCRE_REGEX_ONLY=# -fi],[AC_DEFINE(PCRE) - GNU_REGEX_ONLY=# + PTHREAD_ONLY=# + echo Using native threads +fi + +AC_SUBST(PTHREAD_ONLY) + +dnl ================================================================= +dnl Support for thread-safe versions of gethostbyaddr, gethostbyname, +dnl gmtime and localtime +dnl ================================================================= + +dnl Next line needed to find the gethost*_r functions on Solaris +AC_CHECK_LIB(nsl, gethostbyname) + +AC_CHECK_FUNC(gethostbyaddr_r, [ + AC_MSG_CHECKING([signature of gethostbyaddr_r]) + AC_TRY_COMPILE([ +# include + ], [ + struct hostent *h, *hp; + char *a, *b; + int l, bl, t, e; + (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e) + ], [ + AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS,1, + [Define if gethostbyaddr_r() exists and takes 8 arguments]) + AC_MSG_RESULT([8 args]) + ], [ + AC_TRY_COMPILE([ +# include + ], [ + struct hostent *h; + char *a, *b; + int l, bl, t, e; + (void) gethostbyaddr_r(a, l, t, h, b, bl, &e) + ], [ + AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS,1, + [Define if gethostbyaddr_r() exists and takes 7 arguments]) + AC_MSG_RESULT([7 args]) + ], [ + AC_TRY_COMPILE([ +# include + ], [ + struct hostent_data *d; + struct hostent *h; + char a, + int l, t; + (void) gethostbyaddr_r(a, l, t, h, d) + ], [ + AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS,1, + [Define if gethostbyaddr_r() exists and takes 5 arguments]) + AC_MSG_RESULT([5 args]) + ], [ + AC_MSG_RESULT(unrecognised) + ]) + ]) + ]) +], [ + AC_MSG_RESULT(no) ]) -AC_SUBST(GNU_REGEX_ONLY) -AC_SUBST(PCRE_REGEX_ONLY) -AC_SUBST(NO_REGEX_ONLY) +AC_CHECK_FUNC(gethostbyname_r, [ + AC_MSG_CHECKING([signature of gethostbyname_r]) + AC_TRY_COMPILE([ +# include + ], [ + struct hostent *h, *r; + char *n, *b; + int bl, e; + (void) gethostbyname_r(n, h, b, bl, &r, &e) + ], [ + AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS,1, + [Define if gethostbyname_r() exists and takes 6 arguments]) + AC_MSG_RESULT([6 args]) + ], [ + AC_TRY_COMPILE([ +# include + ], [ + struct hostent *h; + char *n, *b; + int bl, e; + (void) gethostbyname_r(n, h, b, bl, &e) + ], [ + AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS,1, + [Define if gethostbyname_r() exists and takes 5 arguments]) + AC_MSG_RESULT([5 args]) + ], [ + AC_TRY_COMPILE([ +# include + ], [ + struct hostent_data *d; + struct hostent *h; + char *n, + (void) gethostbyname_r(n, h, d) + ], [ + AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS,1, + [Define if gethostbyname_r() exists and takes 3 arguments]) + AC_MSG_RESULT([3 args]) + ], [ + AC_MSG_RESULT(unrecognised) + ]) + ]) + ]) +], [ + AC_MSG_RESULT(no) +]) +AC_CHECK_FUNC(gmtime_r, [ + AC_MSG_CHECKING([signature of gmtime_r]) + AC_TRY_COMPILE([ +# include + ], [ + struct time *t; + struct tm *tm; + (void) gmtime_r(t, tm) + ], [ + AC_MSG_RESULT(ok) + AC_DEFINE(HAVE_GMTIME_R,1, + [Define if gmtime_r(struct time *, struct tm *) exists]) + ], [ + AC_MSG_RESULT(unrecognised) + ]) +], [ + AC_MSG_RESULT(no) +]) -dnl Other features: +AC_CHECK_FUNC(localtime_r, [ + AC_MSG_CHECKING([signature of localtime_r]) + AC_TRY_COMPILE([ +# include + ], [ + struct time *t; + struct tm *tm; + (void) localtime_r(t, tm) + ], [ + AC_MSG_RESULT(ok) + AC_DEFINE(HAVE_LOCALTIME_R,1, + [Define if localtime_r(struct time *, struct tm *) exists]) + ], [ + AC_MSG_RESULT(unrecognised) + ]) +], [ + AC_MSG_RESULT(no) +]) -AC_ARG_ENABLE(toggle, -[ --disable-toggle Don't support temporary disable], -[if test $enableval = yes; then - AC_DEFINE(TOGGLE) -fi],AC_DEFINE(TOGGLE)) +dnl ================================================================= +dnl Solaris specific +dnl FIXME: Not tested on Solaris yet... +dnl ISFIXED: Have tested it on Solaris, but there are other ways to +dnl make these checks generic, e.g.: +dnl AC_CHECK_FUNC(getsockopt, , AC_CHECK_LIB(socket, getsockopt)) +dnl (Moritz Barsnick ) +dnl ================================================================= -PCRS_ONLY= -AC_ARG_ENABLE(pcrs, -[ --disable-pcrs Don't support arbitrary content modification], -[if test $enableval = yes; then - AC_DEFINE(PCRS) - AC_DEFINE(DENY_GZIP) -else - PCRS_ONLY=# -fi],[AC_DEFINE(PCRS) AC_DEFINE(DENY_GZIP)]) -AC_SUBST(PCRS_ONLY) + +SOCKET_LIB= + +case "$host" in +*-solaris*) SOCKET_LIB="-lsocket -lnsl" + AC_DEFINE(__EXTENSIONS__,1, + [Define to 1 on Solaris. Do not define on other platforms.]) + if test "$GCC" = "yes"; then + # Set a GCC specific switch: + # This compiler switch makes Solaris thread-safe + PTHREAD_LIB= + SPECIAL_CFLAGS="-pthreads" + else + # What do we do without GCC? Guess this: + SPECIAL_CFLAGS="-D_REENTRANT" + fi +;; +esac + +AC_SUBST(SOCKET_LIB) + +dnl ================================================================= +dnl Solaris problem, and others perhaps (socklen_t is undefined) +dnl ================================================================= + +AC_MSG_CHECKING([for socklen_t]) +AC_EGREP_HEADER(socklen_t, sys/socket.h, AC_MSG_RESULT([yes]), + AC_MSG_RESULT([no]) + AC_DEFINE(socklen_t,int, + [ Define to 'int' if doesn't have it. ])) + + +dnl ================================================================= +dnl OS/2 specific +dnl ================================================================= + +case "$host" in +*-os2-emx*) SOCKET_LIB=-lsocket +;; +esac + +AC_SUBST(SOCKET_LIB) + +dnl ================================================================= +dnl Mac OSX specific +dnl ================================================================= + +case "$host" in +*-apple-darwin*) SPECIAL_CFLAGS="-Dunix" +;; +esac + +dnl ================================================================= +dnl AmigaOS specific +dnl ================================================================= + +AMIGAOS_ONLY=# + +case "$host" in +*-amigaos) AMIGAOS_ONLY= +;; +esac + +AC_SUBST(AMIGAOS_ONLY) + +dnl ================================================================= +dnl Check for standard compiler stuff +dnl ================================================================= + +AC_EXEEXT +AC_OBJEXT +AC_HEADER_STDC +AC_HEADER_DIRENT +AC_C_CONST +AC_TYPE_SIZE_T +AC_TYPE_PID_T +AC_HEADER_TIME +AC_STRUCT_TM +AC_CHECK_SIZEOF(int, 4) +AC_CHECK_SIZEOF(char *, 4) +AC_CHECK_SIZEOF(long, 4) +AC_CHECK_SIZEOF(long long, 8) +AC_CHECK_SIZEOF(size_t, 4) + +dnl Checks for header files. +dnl AC_HEADER_SYS_WAIT +dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h) +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]) + +dnl Checks for library functions. +dnl AC_TYPE_SIGNAL +dnl AC_CHECK_FUNC(strstr) +dnl bcopy and memmove are for PCRE +AC_CHECK_FUNCS([strerror bcopy memmove]) +AC_PROG_GCC_TRADITIONAL +dnl uncommenting does not work for swa. suse linux +dnl AC_FUNC_MALLOC +AC_FUNC_SETPGRP +AC_TYPE_SIGNAL +dnl uncommenting does not work for swa. suse linux +dnl AC_FUNC_STAT +AC_CHECK_FUNCS([atexit getcwd gethostbyaddr gethostbyname inet_ntoa localtime_r memchr memmove memset regcomp select setlocale socket strchr strdup strerror strftime strstr strtoul]) + + +dnl ================================================================= +dnl Checks for libraries. +dnl ================================================================= +dnl Note: Some systems may have the library but not the system header +dnl file, so we must check for both. +dnl Also check for correct version +AC_CHECK_LIB(pcre, pcre_compile, [AC_CHECK_HEADER(pcre.h, [AC_EGREP_HEADER(pcre_fullinfo, pcre.h, [have_pcre=yes], [AC_MSG_WARN([[pcre old version installed]]); have_pcre=no])], [have_pcre=no])], [have_pcre=no]) +AC_CHECK_LIB(pcreposix, regcomp, [AC_CHECK_HEADER(pcreposix.h, [AC_EGREP_HEADER(pcreposix_regerror, pcreposix.h, [AC_MSG_WARN([[pcreposix old version installed]]); have_pcreposix=no], [have_pcreposix=yes])], [have_pcreposix=no])], [have_pcreposix=no], -lpcre) +AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no]) + + +dnl ================================================================= +dnl Always defined +dnl ================================================================= + +AC_DEFINE(__MT__,1, + [Always define this, for thread safety on some platforms.]) + +dnl ================================================================= +dnl Features +dnl ================================================================= + +AC_ARG_ENABLE(toggle, +[ --disable-toggle Don't support temporary disable], +[enableval2=$enableval], +[enableval2=yes]) +if test $enableval2 = yes; then + AC_DEFINE(FEATURE_TOGGLE,1, + [ Allow Privoxy to be "disabled" so it is just a normal non-blocking + non-anonymizing proxy. This is useful if you're trying to access a + blocked or broken site - just change the setting in the config file, + or use the handy "Disable" menu option in the Windows GUI. ]) +fi AC_ARG_ENABLE(force, -[ --disable-force Don't allow blockfle to be bypassed], -[if test $enableval = yes; then - AC_DEFINE(FORCE_LOAD) -fi],AC_DEFINE(FORCE_LOAD)) +[ --disable-force Don't allow single-page disable], +[enableval2=$enableval], +[enableval2=yes]) +if test $enableval2 = yes; then + AC_DEFINE(FEATURE_FORCE_LOAD,1, + [ Bypass filtering for 1 page only. ]) +fi + +AC_ARG_ENABLE(fast-redirects, +[ --disable-fast-redirects Don't support fast redirects], +[enableval2=$enableval], +[enableval2=yes]) +if test $enableval2 = yes; then + AC_DEFINE(FEATURE_FAST_REDIRECTS,1, + [ Locally redirect remote script-redirect URLs. ]) +fi AC_ARG_ENABLE(killpopup, -[ --disable-killpopup Never block popups], -[if test $enableval = yes; then - AC_DEFINE(KILLPOPUPS) -fi],AC_DEFINE(KILLPOPUPS)) +[ --disable-killpopup Never block popups], +[enableval2=$enableval], +[enableval2=yes]) +if test $enableval2 = yes; then + AC_DEFINE(FEATURE_KILL_POPUPS,1, + [ Kills JavaScript popups - window.open, onunload, etc. ]) +fi AC_ARG_ENABLE(stats, -[ --disable-stats Don't keep statistics], -[if test $enableval = yes; then - AC_DEFINE(STATISTICS) -fi],AC_DEFINE(STATISTICS)) +[ --disable-stats Don't keep statistics], +[enableval2=$enableval], +[enableval2=yes]) +if test $enableval2 = yes; then + AC_DEFINE(FEATURE_STATISTICS,1, + [ Enables statistics function. ]) +fi -AC_ARG_ENABLE(split-proxy-args, -[ --disable-split-proxy-args One big show-proxy-args page, not one per file.], -[if test $enableval = yes; then - AC_DEFINE(SPLIT_PROXY_ARGS) -fi],AC_DEFINE(SPLIT_PROXY_ARGS)) +AC_ARG_ENABLE(ie-images, +[ --enable-ie-images Don't auto-detect whether a request from MS Internet + Explorer is for an image or HTML.], +[enableval2=$enableval], +[enableval2=yes]) +if test $enableval2 = yes; then + AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE,1, + [ Detect image requests automatically for MSIE. Will fall back to + other image-detection methods (i.e. ´´+image´´ action) for other + browsers. -AC_ARG_ENABLE(webdav, -[ --disable-webdav Don't support WebDAV. This option stops MS Outlook - Express from accessing HotMail e-mail.], -[if test $enableval = yes; then - AC_DEFINE(WEBDAV) -fi], -AC_DEFINE(WEBDAV)) + You must also define FEATURE_IMAGE_BLOCKING to use this feature. -AC_ARG_ENABLE(ie-images, -[ --disable-ie-images Don't auto-detect whether a request from MS Internet - Explorer is for an image or HTML.], -[if test $enableval = yes; then - AC_DEFINE(DETECT_MSIE_IMAGES) -fi], -AC_DEFINE(DETECT_MSIE_IMAGES)) + It detects the following header pair as an image request: + ´´User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)´´, + ´´Accept: * / *´´. -AC_ARG_ENABLE(image-list, -[ --disable-image-list Don't try to figure out whether a request is for an - image or HTML using the imagelist - assume HTML.], -[if test $enableval = yes; then - AC_DEFINE(USE_IMAGE_LIST) -fi], -AC_DEFINE(USE_IMAGE_LIST)) + And the following as a HTML request: + User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0), + Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, * / *. + + And no, I haven't got that backwards - IE is being wierd. + + Known limitations: + 1) If you press shift-reload on a blocked HTML page, you get + the image blocked page, not the HTML ´´blocked´´ page. + 2) Once an image ´´blocked´´ page has been sent, viewing it + in it's own browser window *should* bring up the HTML + ´´blocked´´ page, but it doesn't. You need to clear the + browser cache to get the HTML version again. + + These limitations are due to IE making inconsistent choices + about which ´´Accept:´´ header to send. ]) +fi + +AC_ARG_ENABLE(image-blocking, +[ --disable-image-blocking Don't try to figure out whether a request is + for an image or HTML - assume HTML.], +[enableval2=$enableval], +[enableval2=yes]) +if test $enableval2 = yes; then + AC_DEFINE(FEATURE_IMAGE_BLOCKING,1, + [ Allow blocking using images as well as HTML. + If you do not define this then everything is blocked as HTML. + Note that this is required if you want to use FEATURE_IMAGE_DETECT_MSIE. ]) +fi AC_ARG_ENABLE(acl-files, -[ --disable-acl-files Prevents the use of ACL files to control access to - the proxy by IP address.], -[if test $enableval = yes; then - AC_DEFINE(ACL_FILES) -fi], -AC_DEFINE(ACL_FILES)) +[ --disable-acl-files Prevents the use of ACL files to control access to + the proxy by IP address.], +[enableval2=$enableval], +[enableval2=yes]) +if test $enableval2 = yes; then + AC_DEFINE(FEATURE_ACL,1, + [ Define to 1 to allow the use of an ACL to control access to the proxy by IP address. ]) +fi AC_ARG_ENABLE(trust-files, -[ --disable-trust-files Prevents the use of trust files.], -[if test $enableval = yes; then - AC_DEFINE(TRUST_FILES) -fi], -AC_DEFINE(TRUST_FILES)) +[ --disable-trust-files Prevents the use of trust files.], +[enableval2=$enableval], +[enableval2=yes]) +if test $enableval2 = yes; then + AC_DEFINE(FEATURE_TRUST,1, + [ Define to 1 to allow the use of trust files. ]) +fi AC_ARG_ENABLE(jar-files, -[ --disable-jar-files Prevents the use of jar files to capture cookies.], -[if test $enableval = yes; then - AC_DEFINE(JAR_FILES) -fi], -AC_DEFINE(JAR_FILES)) - -LIBRARY_PCRE_ONLY=# -STATIC_PCRE_ONLY= -AC_ARG_ENABLE(static-pcre, -[ --disable-static-pcre Link dynamically with the pcre and pcreposix - libraries. You must build the libraries seperately.], -[if test $enableval = no; then - LIBRARY_PCRE_ONLY= +[ --disable-jar-files Prevents the use of jar files to capture cookies.], +[enableval2=$enableval], +[enableval2=yes]) +if test $enableval2 = yes; then + AC_DEFINE(FEATURE_COOKIE_JAR,1, + [ Define to 1 to allow the user to capture cookies. ]) +fi + +AC_ARG_ENABLE(editor, +[ --disable-editor Prevents the use of the web-based actions file + editor and web-based temporary disable setting.], +[enableval2=$enableval], +[enableval2=yes]) +if test $enableval2 = yes; then + AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS,1, + [ Define to 1 to enable the web-based configuration (actions file) editor. + If you have a shared proxy, you might want to turn this off. ]) +fi + +AC_ARG_ENABLE(no-gifs, +[ --enable-no-gifs Use politically correct PNG format instead of GIF + for built-in images. May not work with all browsers.], +[enableval2=$enableval], +[enableval2=no]) +if test $enableval2 = yes; then + AC_DEFINE(FEATURE_NO_GIFS,1, + [ Deine to 1 to use PNG instead of GIF for built-in images. ]) +fi + + +dnl pcre/pcrs is needed for CGI anyway, so +dnl the choice is only between static and +dnl dynamic: + +AC_ARG_ENABLE(dynamic-pcre, +[ --disable-dynamic-pcre Use the built-in, static pcre, even if + libpcre is available], +[ if test $enableval = "no"; then have_pcre=no; fi ]) + +AC_ARG_ENABLE(dynamic-pcrs, +[ --disable-dynamic-pcrs Use the built-in, static pcrs, even if + libpcrs is available], +[ if test $enableval = "no"; then have_pcrs=no; fi ]) + + +# If we have libpcre and either we also have pcreposix or +# we don't need pcreposix, then link pcre dynamically; else +# build it and link statically +# +if test $have_pcre = "yes"; then + echo "using libpcre" + pcre_dyn=yes STATIC_PCRE_ONLY=# -fi]) -AC_SUBST(LIBRARY_PCRE_ONLY) + LIBS="$LIBS -lpcre -lpcreposix" +else + echo "using built-in static pcre" + pcre_dyn=no + AC_DEFINE(STATIC_PCRE,1, + [Define to 1 if PCRE should be statically built in instead of linking + with libpcre. + (This is determined by configure depending on the availiability of + libpcre and user preferences). The name is ugly, but pcre needs it. + Don't try to change this here! Use configure instead.]) + STATIC_PCRE_ONLY= +fi + +# If we have libpcrs and pcre is linked dynamically +# then also link pcrs dynamically, else build and link +# pcrs statically +# +if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then + echo "using libpcrs" + STATIC_PCRS_ONLY=# + LIBS="$LIBS -lpcrs" +else + echo "using built-in static pcrs" + AC_DEFINE(STATIC_PCRS,1, + [Define to 1 if PCRS should be statically built in instead of linking + with libpcrs. + (This is determined by configure depending on the availiability of + libpcrs and user preferences). + Don't try to change this here! Use configure instead.]) + STATIC_PCRS_ONLY= +fi + AC_SUBST(STATIC_PCRE_ONLY) +AC_SUBST(STATIC_PCRS_ONLY) + +dnl ================================================================= +dnl DocBook stuff +dnl ================================================================= + +AC_ARG_WITH(docbook, dnl + --with-docbook= + Set the location of the dsssl stylesheet + (default = search),[dnl +DKPREFIX=$withval +]) + +dnl Check for jade, so we can build the documentation +dnl Openjade is preferred according to docs, but jade +dnl is *much* faster. +AC_CHECK_PROGS(JADEBIN,jade openjade,false) +AC_SUBST(JADEBIN) + +dnl Checking for the docbook.dsl stylesheet file +dnl It is still not portable (directory slash) +dnl ^ Why not? All systems use / don't they? +dnl Windows certainly can. Is this a Mac or +dnl Amiga issue? -- Jon +DKPREFIXCOPY=$DKPREFIX +DKPREFIX=false +for i in $DKPREFIXCOPY /usr/share/sgml/docbook/stylesheet/dsssl/modular \ + /usr/share/sgml/docbook/dsssl-stylesheets /usr/share/sgml/docbkdsl \ + /usr/share/sgml/docbook-dsssl; do + echo -n "checking for $i/html/docbook.dsl..." + if test -f $i/html/docbook.dsl; then + echo "yes" + DKPREFIX=$i + break + else + echo "no" + fi +done +AC_SUBST(DKPREFIX) + +JADECAT="" +dnl where are the catalogs? +for i in /usr/share/sgml/CATALOG.docbk30 \ + /usr/share/sgml/CATALOG.docbk31; do + echo -n "checking for $i..." + if test -f $i; then + echo "yes" + JADECAT="$JADECAT -c $i" + else + echo "no" + fi +done +AC_SUBST(JADECAT) + +dnl NOT USED? +dnl DB2HTML=false +dnl AC_ARG_WITH(db2html, dnl +dnl --with-db2html= +dnl Set the location of the docbook to html converter +dnl (default = search),[dnl +dnl DB2HTML=$withval +dnl ]) +dnl if ! test -x $DB2HTML; then +dnl DB2HTML="" +dnl fi +dnl +dnl Check for a docbook -> HTML converter +dnl AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false) +dnl AC_SUBST(DB2HTML) + +dnl Check for a text browser that supports -dump +AC_CHECK_PROGS(WDUMP,w3m lynx links,false) +AC_SUBST(WDUMP) + +dnl Check for man2html for docs. +AC_CHECK_PROGS(MAN2HTML,man2html,false) +AC_SUBST(MAN2HTML) + +dnl Set doc status, used for conditional content inclusions +DOC_STATUS="" +if test $CODE_STATUS = alpha; then + DOC_STATUS="-ip-alpha -ip-not-stable" +fi +if test $CODE_STATUS = beta; then + DOC_STATUS="-ip-beta -ip-not-stable" +fi +if test $CODE_STATUS = stable; then + DOC_STATUS="-ip-stable" +fi +echo "checking for doc status flags... $DOC_STATUS" +AC_SUBST(DOC_STATUS) + +dnl ================================================================= +dnl RPM stuff +dnl ================================================================= + +dnl If we use rpm, we need to check where %_topdir is +AC_CHECK_PROGS(RPMBIN,rpm,false) +if test $RPMBIN != false; then + RPM_BASE=`rpm --eval "%{_topdir}"` + if test "$RPM_BASE" = ""; then + RPM_BASE=/usr/src/redhat + fi +fi +AC_SUBST(RPM_BASE) + + +dnl ================================================================= +dnl Final cleanup and output +dnl ================================================================= + +dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately +dnl in the Makefile +CFLAGS=$old_CFLAGS_nospecial +AC_SUBST(SPECIAL_CFLAGS) -AC_OUTPUT(Makefile) +AC_SUBST(PTHREAD_LIB) +AC_OUTPUT(GNUmakefile doc/source/ldp.dsl doc/source/GNUmakefile)