dnl Process this file with autoconf to produce a configure script.
dnl
-dnl $Id: configure.in,v 1.14 2001/07/30 22:12:11 jongfoster Exp $
+dnl $Id: configure.in,v 1.35 2002/03/06 21:55:52 morcego Exp $
dnl
dnl Written by and Copyright (C) 2001 the SourceForge
dnl IJBSWA team. http://ijbswa.sourceforge.net
dnl Temple Place - Suite 330, Boston, MA 02111-1307, USA.
dnl
dnl $Log: configure.in,v $
+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 AutoConf Initialization
dnl =================================================================
-AC_REVISION($Revision: 1.14 $)
+AC_REVISION($Revision: 1.35 $)
AC_INIT(jcc.c)
AC_CONFIG_HEADER(config.h)
+AC_CANONICAL_HOST
+dodk=auto
+DKPREFIX=none
+AC_ARG_WITH(docbook, dnl
+ --with-docbook=[[yes|no|directory]]
+ Enable docbook documentation creation
+ (default = yes, for gnu and linux),[dnl
+case "$with_docbook" in
+yes) dodk=yes;;
+no) dodk=no;;
+*)
+ dodk=no
+ DKPREFIX=$withval
+ ;;
+esac
+])
dnl =================================================================
dnl Application version number
VERSION_MAJOR=2
VERSION_MINOR=9
-VERSION_POINT=8
-CODE_STATUS="\"alpha\""
+VERSION_POINT=11
+CODE_STATUS="beta"
dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
dnl used for CGI output
AC_SUBST(VERSION_MAJOR)
AC_SUBST(VERSION_MINOR)
AC_SUBST(VERSION_POINT)
+AC_SUBST(CODE_STATUS)
dnl
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}")
-AC_DEFINE_UNQUOTED(CODE_STATUS,${CODE_STATUS})
-
+AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
dnl =================================================================
dnl Checks for programs needed to build.
dnl RANLIB is for PCRE:
dnl AC_PROG_RANLIB
+AC_CHECK_PROG(GDB,gdb,yes,no)
+
+dnl =================================================================
+dnl debug, gcc and gdb support
+dnl =================================================================
+
+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 =================================================================
+dnl additional gcc flags
+dnl =================================================================
+dnl
+if test "$GCC"; then
+ CFLAGS="-pipe $CFLAGS"
+fi
+
dnl =================================================================
dnl Build type
fi
fi
+if test $dodk = auto; then
+ dodk = no
+ if test $target_type = unix; then
+ case "$host_os" in
+ linux* | gnu*)
+ dodk=yes
+ ;;
+ esac
+ 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.
fi
AC_SUBST(WIN_ONLY)
+dnl Checking which text html browser we have avaliable
+if test $dodk != no; then
+ AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
+ if test "$WDUMP" = false; then
+ AC_MSG_ERROR(You need some kind of text browser to continue \(w3m, lynx and links are supported\))
+ fi
+fi
+AC_SUBST(WDUMP)
+
+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 Check for jade, so we can build the documentation
+AC_CHECK_PROGS(JADEBIN,jade openjade,false)
+AC_SUBST(JADEBIN)
+
+dnl Checking for the docbook.dsl stylesheet file
+if test $dodk = yes; then
+ if test $DKPREFIX = none; then
+ AC_CHECK_FILE(/usr/share/sgml/docbook/dsssl-stylesheets/html/docbook.dsl,DKPREFIX=/usr/share/sgml/docbook/dsssl-stylesheets,AC_CHECK_FILE(/usr/share/sgml/docbkdsl/html/docbook.dsl,DKPREFIX=/usr/share/sgml/docbkdsl))
+ fi
+fi
+AC_SUBST(DKPREFIX)
+
dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
old_CFLAGS_nospecial=$CFLAGS
CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
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 <netdb.h>
+ ], [
+ 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)
+ AC_MSG_RESULT([8 args])
+ ], [
+ AC_TRY_COMPILE([
+# include <netdb.h>
+ ], [
+ 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)
+ AC_MSG_RESULT([7 args])
+ ], [
+ AC_TRY_COMPILE([
+# include <netdb.h>
+ ], [
+ 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)
+ AC_MSG_RESULT([5 args])
+ ], [
+ AC_MSG_RESULT(unrecognised)
+ ])
+ ])
+ ])
+], [
+ AC_MSG_RESULT(no)
+])
+
+AC_CHECK_FUNC(gethostbyname_r, [
+ AC_MSG_CHECKING([signature of gethostbyname_r])
+ AC_TRY_COMPILE([
+# include <netdb.h>
+ ], [
+ 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)
+ AC_MSG_RESULT([6 args])
+ ], [
+ AC_TRY_COMPILE([
+# include <netdb.h>
+ ], [
+ struct hostent *h;
+ char *n, *b;
+ int bl, e;
+ (void) gethostbyname_r(n, h, b, bl, &e)
+ ], [
+ AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS)
+ AC_MSG_RESULT([5 args])
+ ], [
+ AC_TRY_COMPILE([
+# include <netdb.h>
+ ], [
+ struct hostent_data *d;
+ struct hostent *h;
+ char *n,
+ (void) gethostbyname_r(n, h, d)
+ ], [
+ AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS)
+ 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 <time.h>
+ ], [
+ struct time *t;
+ struct tm *tm;
+ (void) gmtime_r(t, tm)
+ ], [
+ AC_MSG_RESULT(ok)
+ AC_DEFINE(HAVE_GMTIME_R)
+ ], [
+ AC_MSG_RESULT(unrecognised)
+ ])
+], [
+ AC_MSG_RESULT(no)
+])
+
+AC_CHECK_FUNC(localtime_r, [
+ AC_MSG_CHECKING([signature of localtime_r])
+ AC_TRY_COMPILE([
+# include <time.h>
+ ], [
+ struct time *t;
+ struct tm *tm;
+ (void) localtime_r(t, tm)
+ ], [
+ AC_MSG_RESULT(ok)
+ AC_DEFINE(HAVE_LOCALTIME_R)
+ ], [
+ AC_MSG_RESULT(unrecognised)
+ ])
+], [
+ AC_MSG_RESULT(no)
+])
dnl =================================================================
dnl Solaris specific
dnl FIXME: Not tested on Solaris yet...
dnl =================================================================
-AC_CANONICAL_HOST
SOCKET_LIB=
case "$host" in
-*-solaris*) SOCKET_LIB=-lsocket -lnsl
+*-solaris*) SOCKET_LIB="-lsocket -lnsl"
AC_DEFINE(__EXTENSIONS__)
if test "$GCC" = "yes"; then
# Set a GCC specific switch:
AC_SUBST(SOCKET_LIB)
+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_HEADER_STDC
AC_C_CONST
AC_TYPE_SIZE_T
+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_ARG_ENABLE(toggle,
-[ --disable-toggle Don't support temporary disable],
+[ --disable-toggle Don't support temporary disable],
[if test $enableval = yes; then
AC_DEFINE(FEATURE_TOGGLE)
fi],AC_DEFINE(FEATURE_TOGGLE))
-AC_ARG_ENABLE(gzip,
-[ --disable-gzip Block gzip'ed transfer of documents. Note that
- this is required if you want content modification
- even with gzip-supporting servers.],
-[if test $enableval = "no"; then
- AC_DEFINE(FEATURE_DENY_GZIP)
-fi])
-
AC_ARG_ENABLE(force,
-[ --disable-force Don't allow blockfile to be bypassed],
+[ --disable-force Don't allow single-page disable],
[if test $enableval = yes; then
AC_DEFINE(FEATURE_FORCE_LOAD)
fi],AC_DEFINE(FEATURE_FORCE_LOAD))
fi], AC_DEFINE(FEATURE_FAST_REDIRECTS))
AC_ARG_ENABLE(killpopup,
-[ --disable-killpopup Never block popups],
+[ --disable-killpopup Never block popups],
[if test $enableval = yes; then
AC_DEFINE(FEATURE_KILL_POPUPS)
fi],AC_DEFINE(FEATURE_KILL_POPUPS))
AC_ARG_ENABLE(stats,
-[ --disable-stats Don't keep statistics],
+[ --disable-stats Don't keep statistics],
[if test $enableval = yes; then
AC_DEFINE(FEATURE_STATISTICS)
fi],AC_DEFINE(FEATURE_STATISTICS))
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.],
+[ --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(FEATURE_IMAGE_DETECT_MSIE)
fi],
AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE))
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.],
+[ --disable-image-blocking Don't try to figure out whether a request is
+ for an image or HTML - assume HTML.],
[if test $enableval = yes; then
AC_DEFINE(FEATURE_IMAGE_BLOCKING)
fi],
AC_DEFINE(FEATURE_IMAGE_BLOCKING))
AC_ARG_ENABLE(acl-files,
-[ --disable-acl-files Prevents the use of ACL files to control access to
- the proxy by IP address.],
+[ --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(FEATURE_ACL)
fi],
AC_DEFINE(FEATURE_ACL))
AC_ARG_ENABLE(trust-files,
-[ --disable-trust-files Prevents the use of trust files.],
+[ --disable-trust-files Prevents the use of trust files.],
[if test $enableval = yes; then
AC_DEFINE(FEATURE_TRUST)
fi],
AC_DEFINE(FEATURE_TRUST))
AC_ARG_ENABLE(jar-files,
-[ --disable-jar-files Prevents the use of jar files to capture cookies.],
+[ --disable-jar-files Prevents the use of jar files to capture cookies.],
[if test $enableval = yes; then
AC_DEFINE(FEATURE_COOKIE_JAR)
fi],
AC_DEFINE(FEATURE_COOKIE_JAR))
+AC_ARG_ENABLE(editor,
+[ --disable-editor Prevents the use of the web-based actions file
+ editor and web-based temporary disable setting.],
+[if test $enableval = yes; then
+ AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)
+fi],
+AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS))
+
dnl pcre/pcrs is needed for CGI anyway, so
dnl the choice is only between static and
dnl dynamic:
AC_ARG_ENABLE(regex-matching,
-[ --enable-regex-matching=pcre Use perl-compatible regex for actionsfile
- pattern matching (default)
- --enable-regex-matching=gnu Use gnu style regex for actionsfile pattern
- matching (-> bigger binary)
- --disable-regex-matching Don't use regex matching, compare URL
- prefix instead (won't shrink birary)],
+[ --enable-regex-matching=pcre Use perl-compatible regex for actionsfile
+ pattern matching (default)
+ --enable-regex-matching=gnu Use gnu style regex for actionsfile pattern
+ matching (-> bigger binary)
+ --disable-regex-matching Don't use regex matching, compare URL
+ prefix instead (won't shrink birary)],
[ regex_matching=$enableval ],
[ regex_matching=pcre ])
AC_ARG_ENABLE(dynamic-pcre,
-[ --disable-dynamic-pcre Use the built-in, static pcre, even if
- libpcre is available],
+[ --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],
+[ --disable-dynamic-pcrs Use the built-in, static pcrs, even if
+ libpcrs is available],
[ if test $enableval = "no"; then have_pcrs=no; fi ])
AC_SUBST(PTHREAD_LIB)
-AC_OUTPUT(Makefile)
+AC_OUTPUT(GNUmakefile)