X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=configure.in;h=0cb78e2690dd249ea4717c01b7e9be1ff12aed88;hp=808b3970f6112bee68679524d8a42b306ba4ef7c;hb=f9c035874fed6c7d1f0fd709bd49f5fd71815b6d;hpb=87a69fc505def6be1c8a4d24ae225c3623b5e861 diff --git a/configure.in b/configure.in index 808b3970..0cb78e26 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.1.1.1 2001/05/15 13:58:50 oes Exp $ +dnl $Id: configure.in,v 1.6 2001/06/29 21:56:40 oes Exp $ dnl dnl Written by and Copyright (C) 2001 the SourceForge dnl IJBSWA team. http://ijbswa.sourceforge.net @@ -28,6 +28,92 @@ 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.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 @@ -37,12 +123,17 @@ AC_CONFIG_HEADER(config.h) VERSION_MAJOR=2 VERSION_MINOR=9 -VERSION_POINT=4 +VERSION_POINT=6 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}) @@ -64,8 +155,9 @@ AC_EXEEXT AC_OBJEXT dnl Checks for libraries. -dnl AC_CHECK_LIB(pcre, pcre_compile) -dnl AC_CHECK_LIB(pcreposix, regcomp, pcre) +AC_CHECK_LIB(pcre, pcre_compile, [have_pcre=yes], [have_pcre=no]) +AC_CHECK_LIB(pcreposix, regcomp, [have_pcreposix=yes], [have_pcreposix=no], -lpcre) +AC_CHECK_LIB(pcrs, pcrs_compile, [have_pcrs=yes], [have_pcrs=no]) dnl Checks for header files. AC_HEADER_STDC @@ -123,56 +215,17 @@ AC_SUBST(SOLARIS_ONLY) dnl Features -dnl Regex engine: - -GNU_REGEX_ONLY= -PCRE_REGEX_ONLY= -NO_REGEX_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)) - -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(GNU_REGEX_ONLY) -AC_SUBST(PCRE_REGEX_ONLY) -AC_SUBST(NO_REGEX_ONLY) - - -dnl Other features: - AC_ARG_ENABLE(toggle, [ --disable-toggle Don't support temporary disable], [if test $enableval = yes; then 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, +[ --enable-gzip Allow gzip'ed transfer of documents. Note that this will make content modification impossible.], +[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], @@ -180,6 +233,12 @@ AC_ARG_ENABLE(force, AC_DEFINE(FORCE_LOAD) fi],AC_DEFINE(FORCE_LOAD)) +AC_ARG_ENABLE(fast-redirects, +[ --disable-fast-redirects Don't support fast redirects], +[if test $enableval = yes; then + AC_DEFINE(FAST_REDIRECTS) +fi], AC_DEFINE(FAST_REDIRECTS)) + AC_ARG_ENABLE(killpopup, [ --disable-killpopup Never block popups], [if test $enableval = yes; then @@ -214,13 +273,13 @@ AC_ARG_ENABLE(ie-images, fi], AC_DEFINE(DETECT_MSIE_IMAGES)) -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.], +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.], [if test $enableval = yes; then - AC_DEFINE(USE_IMAGE_LIST) + AC_DEFINE(IMAGE_BLOCKING) fi], -AC_DEFINE(USE_IMAGE_LIST)) +AC_DEFINE(IMAGE_BLOCKING)) AC_ARG_ENABLE(acl-files, [ --disable-acl-files Prevents the use of ACL files to control access to @@ -244,17 +303,91 @@ 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) + 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) AC_OUTPUT(Makefile)