X-Git-Url: http://www.privoxy.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=configure.in;h=89f1c1a7c1816c68a2f116c8fb35e0d8100affcb;hb=2a1116713cb4dfdcc837e87f111886b1c4360923;hp=cffbfc4804ffc3765c599423d316f44fa915faac;hpb=54ec734d27ac5bb06672a22516fca5cc75743286;p=privoxy.git diff --git a/configure.in b/configure.in index cffbfc48..89f1c1a7 100644 --- a/configure.in +++ b/configure.in @@ -1,6 +1,6 @@ dnl Process this file with autoconf to produce a configure script. dnl -dnl $Id: configure.in,v 1.5 2001/06/29 13:26:27 oes Exp $ +dnl $Id: configure.in,v 1.12 2001/07/25 19:16:27 oes Exp $ dnl dnl Written by and Copyright (C) 2001 the SourceForge dnl IJBSWA team. http://ijbswa.sourceforge.net @@ -28,6 +28,43 @@ 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.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 @@ -115,56 +152,173 @@ 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 + + +dnl ================================================================= +dnl AutoConf Initialization +dnl ================================================================= + +AC_REVISION($Revision: 1.11 $) AC_INIT(jcc.c) AC_CONFIG_HEADER(config.h) + +dnl ================================================================= +dnl Application version number +dnl ================================================================= + VERSION_MAJOR=2 VERSION_MINOR=9 -VERSION_POINT=5 +VERSION_POINT=8 +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) -dnl This can be "alpha", "beta", or "stable" -dnl and will be used for CGI output dnl -AC_DEFINE(CODE_STATUS, "alpha") - 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}) -dnl Checks for programs. -dnl AC_PROG_CXX + +dnl ================================================================= +dnl Checks for programs needed to build. +dnl ================================================================= AC_PROG_CC AC_PROG_CPP +dnl AC_PROG_CXX dnl AC_PROG_INSTALL dnl AC_PROG_LN_S dnl AC_PROG_MAKE_SET dnl RANLIB is for PCRE: dnl AC_PROG_RANLIB + +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 + 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) + +dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS +old_CFLAGS_nospecial=$CFLAGS +CFLAGS="$CFLAGS $SPECIAL_CFLAGS" + +# 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 ================================================================= +dnl Thread support +dnl ================================================================= + +AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no]) + +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) + echo Using POSIX threads + if test "$GCC" = "yes"; then + # Set a GCC specific switch: + if test "$target_type" = "unix"; then + # This compiler switch makes Linux thread-safe + # Don't know about other OS's? Is this switch + # supported? + PTHREAD_LIB= + SPECIAL_CFLAGS="-pthread" + fi + fi +else + PTHREAD_ONLY=# + echo Using native threads +fi + +AC_SUBST(PTHREAD_LIB) +AC_SUBST(PTHREAD_ONLY) + + +dnl ================================================================= +dnl Check for standard compiler stuff +dnl ================================================================= + AC_EXEEXT AC_OBJEXT - -dnl Checks for libraries. -dnl AC_CHECK_LIB(pcre, pcre_compile) -dnl AC_CHECK_LIB(pcreposix, regcomp, pcre) +AC_HEADER_STDC +AC_C_CONST +AC_TYPE_SIZE_T 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) - -dnl Checks for typedefs, structures, and compiler characteristics. -AC_C_CONST -AC_TYPE_SIZE_T dnl Checks for library functions. dnl AC_TYPE_SIGNAL @@ -172,78 +326,44 @@ dnl AC_CHECK_FUNC(strstr) dnl bcopy and memmove are for PCRE AC_CHECK_FUNCS(strerror bcopy memmove) -dnl Build type -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]) +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. +AC_CHECK_LIB(pcre, pcre_compile, [AC_CHECK_HEADER(pcre.h, [have_pcre=yes], [have_pcre=no])], [have_pcre=no]) +AC_CHECK_LIB(pcreposix, regcomp, [AC_CHECK_HEADER(pcreposix.h, [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]) -AC_SUBST(WIN_ONLY) -AC_SUBST(CYGWIN_FLAGS) -SOLARIS_ONLY=# -AC_SUBST(SOLARIS_ONLY) +dnl ================================================================= +dnl Solaris specific +dnl FIXME: Not tested on Solaris yet... +dnl ================================================================= -dnl Features +AC_CANONICAL_HOST -dnl Regex engine: - -GNU_REGEX_ONLY= -PCRE_REGEX_ONLY= -NO_REGEX_ONLY=# +SOLARIS_ONLY=# -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)) +case "$target" in +*-solaris*) AC_DEFINE(_REENTRANT) + AC_DEFINE(__EXTENSIONS__) + SOLARIS_ONLY= +;; +esac -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=# -else - PCRE_REGEX_ONLY=# -fi],[AC_DEFINE(PCRE) - GNU_REGEX_ONLY=# -]) +AC_SUBST(SOLARIS_ONLY) -AC_SUBST(GNU_REGEX_ONLY) -AC_SUBST(PCRE_REGEX_ONLY) -AC_SUBST(NO_REGEX_ONLY) +dnl ================================================================= +dnl Always defined +dnl ================================================================= +AC_DEFINE(__MT__) -dnl Other features: +dnl ================================================================= +dnl Features +dnl ================================================================= AC_ARG_ENABLE(toggle, [ --disable-toggle Don't support temporary disable], @@ -251,19 +371,16 @@ AC_ARG_ENABLE(toggle, AC_DEFINE(TOGGLE) fi],AC_DEFINE(TOGGLE)) -PCRS_ONLY= -AC_ARG_ENABLE(pcrs, -[ --disable-pcrs Don't support arbitrary content modification], -[if test $enableval = yes; then - AC_DEFINE(PCRS) +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(DENY_GZIP) -else - PCRS_ONLY=# -fi],[AC_DEFINE(PCRS) AC_DEFINE(DENY_GZIP)]) -AC_SUBST(PCRS_ONLY) +fi]) AC_ARG_ENABLE(force, -[ --disable-force Don't allow blockfle to be bypassed], +[ --disable-force Don't allow blockfile to be bypassed], [if test $enableval = yes; then AC_DEFINE(FORCE_LOAD) fi],AC_DEFINE(FORCE_LOAD)) @@ -293,8 +410,8 @@ AC_ARG_ENABLE(split-proxy-args, fi],AC_DEFINE(SPLIT_PROXY_ARGS)) AC_ARG_ENABLE(webdav, -[ --disable-webdav Don't support WebDAV. This option stops MS Outlook - Express from accessing HotMail e-mail.], +[ --disable-webdav Don't support WebDAV. This option breaks MS + Outlook Express when accessing HotMail e-mail.], [if test $enableval = yes; then AC_DEFINE(WEBDAV) fi], @@ -338,17 +455,105 @@ AC_ARG_ENABLE(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= +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)], +[ 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], +[ 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 ]) + + +# Is the regex URL matching based on libpcreposix, but we +# don't have that library? +# +if test $have_pcreposix = "yes" -o $regex_matching != "pcre"; then + dont_miss_pcreposix=yes +else + dont_miss_pcreposix=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" -a $dont_miss_pcreposix = "yes"; then + echo "using libpcre" + pcre_dyn=yes STATIC_PCRE_ONLY=# -fi]) -AC_SUBST(LIBRARY_PCRE_ONLY) + LIBS="$LIBS -lpcre" +else + echo "using built-in static pcre" + pcre_dyn=no + AC_DEFINE(STATIC_PCRE) + 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) + STATIC_PCRS_ONLY= +fi + +# Which method should be used for URL matching? +# pcre, gnu regex or prefix matching? +# +if test $regex_matching = "gnu"; then + echo "using gnu regex for URL matching" + AC_DEFINE(REGEX_GNU) + GNU_REGEX_ONLY= + PCRE_REGEX_ONLY=# +elif test $regex_matching = "pcre"; then + echo "using pcre regex for URL matching" + AC_DEFINE(REGEX_PCRE) + GNU_REGEX_ONLY=# + PCRE_REGEX_ONLY= + if test $pcre_dyn = "yes"; then + LIBS="$LIBS -lpcreposix" + fi +else + echo -e "using prefix matching for URLs\nHint: This does NOT make the executable any smaller!" + GNU_REGEX_ONLY=# + PCRE_REGEX_ONLY=# +fi + +AC_SUBST(GNU_REGEX_ONLY) +AC_SUBST(PCRE_REGEX_ONLY) AC_SUBST(STATIC_PCRE_ONLY) +AC_SUBST(STATIC_PCRS_ONLY) + +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)