Add TLS/SSL interception support
[privoxy.git] / configure.in
index 2adba9d..8739535 100644 (file)
@@ -1,8 +1,6 @@
 dnl Process this file with autoconf to produce a configure script.
 dnl
-dnl $Id: configure.in,v 1.211 2017/05/25 11:14:27 fabiankeil Exp $
-dnl
-dnl Written by and Copyright (C) 2001-2017 the
+dnl Written by and Copyright (C) 2001-2018 the
 dnl Privoxy team. https://www.privoxy.org/
 dnl
 dnl Based on the Internet Junkbuster originally written
@@ -32,7 +30,7 @@ dnl =================================================================
 dnl AutoConf Initialization
 dnl =================================================================
 
-AC_REVISION($Revision: 1.211 $)
+AC_REVISION($Revision: 1.213 $)
 AC_INIT(jcc.c)
 
 if test ! -f config.h.in; then
@@ -78,12 +76,12 @@ dnl =================================================================
 
 VERSION_MAJOR=3
 VERSION_MINOR=0
-VERSION_POINT=27
+VERSION_POINT=29
 CODE_STATUS="UNRELEASED"
 
 dnl Timestamp (date +%s) used by the mtree-spec target.
 dnl Should be updated before releases but forgetting it isn't critical.
-SOURCE_DATE_EPOCH=1494070262
+SOURCE_DATE_EPOCH=1545411710
 
 dnl CODE_STATUS can be "alpha", "beta", "stable" or "UNRELEASED",
 dnl and will be used for CGI output. Increment version number and
@@ -308,6 +306,9 @@ if test $target_type = mingw; then
   WIN_ONLY=
   CFLAGS="$CFLAGS -DWINVER=0x501"
   SPECIAL_CFLAGS="-mwindows"
+dnl from the cygwin FAQ: The regular setup allows you to use the -mwindows option
+dnl to include a set of the basic libraries user32, gdi32 and comdlg32.
+dnl (and also make your program a GUI program instead of a console program)
   PTHREAD_LIB=-lpthread
   echo "Using mingw32 (Win32 GUI)"
 else
@@ -348,10 +349,16 @@ if test $RPMBIN != false; then
 fi
 AC_SUBST(RPM_BASE)
 
+dnl prefer openjade to jade
 dnl Check for jade, so we can build the documentation
-AC_CHECK_PROGS(JADEBIN,jade openjade,false)
+AC_CHECK_PROGS(JADEBIN,openjade jade,false)
 AC_SUBST(JADEBIN)
 
+dnl Prefer OpenSP to SP
+dnl   ref: https://lists.privoxy.org/pipermail/privoxy-devel/2018-November/000293.html
+AC_CHECK_PROGS(NSGMLS,onsgmls nsgmls,false)
+AC_SUBST(NSGMLS)
+
 dnl Check for man2html for docs.
 AC_CHECK_PROGS(MAN2HTML,man2html,false)
 AC_SUBST(MAN2HTML)
@@ -480,9 +487,10 @@ dnl FD_SETSIZE, as a result Privoxy can't handle more than
 dnl approximately FD_SETSIZE/2 client connections.
 dnl On some platforms the value can be changed at compile time,
 dnl on others it's hardcoded and requires recompilation of the OS.
+dnl Only relevant if select() is actually being used.
 dnl =================================================================
 AC_ARG_WITH(fdsetsize,
- [  --with-fdsetsize=n  Optimistically redefine FD_SETSIZE with the intend to change the number of connections Privoxy can handle. Dangerous if the platform doesn't support this.],
+ [  --with-fdsetsize=n  Optimistically redefine FD_SETSIZE with the intend to change the number of connections Privoxy can handle. Dangerous if the platform doesn't support this. Pointless if Privoxy can use poll() instead of select().],
  [
    if test "x$withval" != "xyes"; then
      AC_DEFINE_UNQUOTED(FD_SETSIZE,$with_fdsetsize,[Relevant for select(). Not honoured by all OS.])
@@ -698,19 +706,6 @@ case "$host" in
 ;;
 esac
 
-dnl =================================================================
-dnl AmigaOS specific
-dnl =================================================================
-
-AMIGAOS_ONLY=#
-
-case "$host" in
-*-amigaos) AMIGAOS_ONLY=
-;;
-esac
-
-AC_SUBST(AMIGAOS_ONLY)
-
 dnl =================================================================
 dnl Haiku specific
 dnl =================================================================
@@ -781,6 +776,7 @@ AC_CHECK_FUNCS([ \
  access \
  arc4random \
  atexit \
+ calloc \
  getcwd \
  gethostbyaddr \
  gethostbyaddr_r \
@@ -791,6 +787,7 @@ AC_CHECK_FUNCS([ \
  memchr \
  memmove \
  memset \
+ nanosleep \
  poll \
  putenv \
  random \
@@ -1134,6 +1131,36 @@ dnl fi
 AC_SUBST(STATIC_PCRE_ONLY)
 AC_SUBST(STATIC_PCRS_ONLY)
 
+dnl =======================================================
+dnl check for mbedTLS which is required for https filtering
+dnl =======================================================
+FEATURE_HTTPS_FILTERING_ONLY=#
+OPT_MBEDTLS=no
+AC_ARG_WITH(mbedtls,dnl
+AC_HELP_STRING([--with-mbedtls],[enable mbedTLS detection for https filtering.])
+AC_HELP_STRING([--without-mbedtls], [disable mbedTLS detection]),
+  OPT_MBEDTLS=$withval)
+
+if test X"$OPT_MBEDTLS" != Xno; then
+
+  AC_CHECK_LIB(mbedtls, mbedtls_ssl_init,
+   [
+     AC_DEFINE(FEATURE_HTTPS_FILTERING, 1, [if mbedTLS is enabled])
+     AC_SUBST(FEATURE_HTTPS_FILTERING, [1])
+     FEATURE_HTTPS_FILTERING="yes"
+   ], [], -lmbedx509 -lmbedcrypto)
+
+  if test "x$FEATURE_HTTPS_FILTERING" = "xyes"; then
+    AC_MSG_NOTICE([Detected mbedTLS. Enabling https filtering.])
+
+    LIBS="-lmbedtls -lmbedx509 -lmbedcrypto $LIBS"
+
+    FEATURE_HTTPS_FILTERING_ONLY=
+  fi
+fi
+AC_SUBST(FEATURE_HTTPS_FILTERING_ONLY)
+
+
 dnl =================================================================
 dnl Final cleanup and output
 dnl =================================================================