Resyncing HEAD with v_3_0_branch for two OSX fixes:
[privoxy.git] / configure.in
index 8da35ef..e36526a 100644 (file)
@@ -1,6 +1,6 @@
 dnl Process this file with autoconf to produce a configure script.
 dnl 
-dnl $Id: configure.in,v 1.78 2002/09/06 23:18:08 hal9 Exp $
+dnl $Id: configure.in,v 1.88 2003/03/23 02:15:51 hal9 Exp $
 dnl 
 dnl Written by and Copyright (C) 2001, 2002 the SourceForge
 dnl Privoxy team. http://www.privoxy.org/
@@ -28,6 +28,39 @@ 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.88  2003/03/23 02:15:51  hal9
+dnl Apply Docbook/FreeBSD patch from a.go at tiscali.nl. Thanks!
+dnl
+dnl Revision 1.87  2002/12/28 04:10:22  david__schmidt
+dnl Initial drop of dashboard instrumentation - enabled with
+dnl --enable-activity-console
+dnl
+dnl Revision 1.86  2002/12/13 23:47:10  hal9
+dnl Add openbsd special flags per gunner at styx2002.no-ip.org
+dnl
+dnl Revision 1.85  2002/11/27 12:40:54  oes
+dnl Fixed broken handling of pre-set CFLAGS
+dnl
+dnl Revision 1.84  2002/10/24 22:24:57  hal9
+dnl Make install: Minor clean up for variable handling.
+dnl
+dnl Revision 1.83  2002/10/24 16:32:41  hal9
+dnl echo -n does not work with true /bin/sh. Use AC_MSG_CHECKING for docbook stuff.
+dnl
+dnl Revision 1.82  2002/09/27 04:24:07  hal9
+dnl Minor change of "! test" to "test -ne" for Solaris.
+dnl
+dnl Revision 1.81  2002/09/27 00:38:44  hal9
+dnl Some general cleanup of the user/group stuff. Including remove up to ':' to
+dnl make Linux (?) compatible with other *nix. Better AC output stuff.
+dnl
+dnl Revision 1.80  2002/09/26 18:47:46  hal9
+dnl This is most of Al's patch for --with-user and --with-group which tests that
+dnl these are valid values, if specified. If not specified, they are left empty.
+dnl
+dnl Revision 1.79  2002/09/07 02:11:06  hal9
+dnl Remove some testing stuff inadvertantly left in.
+dnl
 dnl Revision 1.78  2002/09/06 23:18:08  hal9
 dnl Migrate PCRE_H_IN_SUBDIR from 3.0 branch for pcre/pcre.h on RH, etc.
 dnl
@@ -410,14 +443,13 @@ dnl =================================================================
 dnl AutoConf Initialization
 dnl =================================================================
 
-AC_REVISION($Revision: 1.78 $)
+AC_REVISION($Revision: 1.88 $)
 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
+   if test "$answer" != "y"; then
       exit 1
    else
       autoheader
@@ -467,15 +499,22 @@ dnl Checks for programs needed to build.
 dnl =================================================================
 
 dnl Keep AC_PROG_CC from setting its own defaults:
-CFLAGS=" "
+if test "X$CFLAGS" = "X"; then
+   CFLAGS = " "
+fi
 
 AC_PROG_CC
 AC_PROG_CPP
 AC_PROG_INSTALL
 AC_PROG_LN_S
 AC_PROG_MAKE_SET
+AC_PROG_AWK
 
 AC_CHECK_PROG(GDB,gdb,yes,no)
+AC_PATH_PROG(BGROUPS,groups,no,/bin:/usr/bin:/usr/local/bin)
+AC_PATH_PROG(ID,id,no,/bin:/usr/bin:/usr/local/bin)
+AC_SUBST(ID)
+AC_SUBST(BGROUPS)
 
 dnl =================================================================
 dnl debug, gcc and gdb support 
@@ -488,54 +527,98 @@ AC_ARG_WITH(debug,
                     if test $ac_cv_prog_cc_g = yes; then
                       if test "$GCC" = yes; then
                         if test "$GDB"; then
-                          CFLAGS="-ggdb"
+                          CFLAGS="$CFLAGS -ggdb"
                         else
-                          CFLAGS="-g"
+                          CFLAGS="$CFLAGS -g"
                         fi
                         CFLAGS="$CFLAGS -Wshadow  -Wconversion"
                       else
-                        CFLAGS="-g"
+                        CFLAGS="$CFLAGS -g"
                       fi
                    fi
                 fi
         ],
         [
-            if test "X$CFLAGS" = "X"; then # if CFLAGS are unset
+            if test "X$CFLAGS" = "X "; then # if CFLAGS were unset (see above)
               if test "$GCC" = yes; then
                 CFLAGS="-O2"
-              else
-                CFLAGS=
               fi
             fi
         ]
 )
 
+dnl =================================================================
+dnl Check for user and group validity
+dnl =================================================================
+
+$ID privoxy >/dev/null 2>/dev/null
+if test $? -ne 0 ; then
+ AC_MSG_WARN(There is no user 'privoxy' on this system)
+fi
+AC_MSG_CHECKING([for user])
 AC_ARG_WITH(user,
-        [  --with-user=privoxy            Set user under which privoxy run],
+        [  --with-user=privoxy          Set user under which privoxy will run],
         [
                 if test "x$withval" != "xyes"; then
-                    USER=$with_user;
+                  if test $ID = no ; then
+                    AC_MSG_WARN(There is no 'id' program on this system)
+                  else
+                    AC_MSG_RESULT($with_user)
+                    $ID $with_user 2>/dev/null >/dev/null
+                    if test $? -eq 0 ; then
+                      USER=$with_user;
+                    else
+                      AC_MSG_ERROR(There is no user '$with_user' on this system)
+                    fi
+                  fi
                   else
                    AC_MSG_ERROR(We need a user if you give me this parameter)
                 fi
         ],
         [
-          USER=privoxy;
+          if test $ID = no ; then
+            AC_MSG_WARN(There is no 'id' program on this system)
+          else
+            AC_MSG_RESULT(none specified)
+            USER=$with_user
+          fi
         ]
 )
 AC_SUBST(USER)
 
+AC_MSG_CHECKING([for group])
 AC_ARG_WITH(group,
         [  --with-group=privoxy         Set group for privoxy],
-        [
+        [ 
                 if test "x$withval" != "xyes"; then
-                    GROUP=$with_group;
+                  if test $BGROUPS = no ; then
+                    AC_MSG_ERROR(There is no 'groups' program on this system)
                   else
+                    AC_MSG_RESULT($with_group)
+                    $BGROUPS $USER >/dev/null
+                    if test $? -eq 0 ; then
+                    # FIXME: this fails if valid group, but not first group
+                    # listed.
+                      if test "$with_group" != "`$BGROUPS $USER | sed 's/.*: //' 2>/dev/null |$AWK '{print $1}'`" ; then
+                        AC_MSG_ERROR(The given value '$withval' does not match group entry)
+                      else
+                        GROUP=$with_group;
+                      fi
+                    else
+                      AC_MSG_ERROR(There is no group entry for user '$USER')
+                    fi
+                  fi
+                else
                    AC_MSG_ERROR(We need a group if you give me this parameter)
                 fi
         ],
         [
-          GROUP=privoxy;
+          if test $BGROUPS = no ; then
+            AC_MSG_WARN(There is no 'groups' program on this system)
+          else
+            AC_MSG_RESULT(none specified)
+            GROUP=$with_group;
+          fi
         ]
 )
 AC_SUBST(GROUP)
@@ -845,10 +928,19 @@ dnl Mac OSX specific
 dnl =================================================================
     
 case "$host" in
-*-apple-darwin*) SPECIAL_CFLAGS="-Dunix"
+*-apple-darwin*) SPECIAL_CFLAGS="-Dunix -DOSX_DARWIN"
 ;;  
 esac
 
+dnl =================================================================
+dnl OpenBSD specific
+dnl =================================================================
+
+case "$host" in
+*-openbsd*) SPECIAL_CFLAGS="$SPECIAL_CFLAGS -Dunix"
+;;
+esac
+
 dnl =================================================================
 dnl AmigaOS specific
 dnl =================================================================
@@ -988,6 +1080,20 @@ if test $enableval2 = yes; then
     [ Enables statistics function. ])
 fi
 
+AC_ARG_ENABLE(activity-console,
+[  --enable-activity-console    Gather and send extended statistics to the activity console],
+[enableval2=$enableval],
+[enableval2=no])
+if test $enableval2 = yes; then
+  ACTIVITY_ONLY=
+  AC_DEFINE(FEATURE_ACTIVITY_CONSOLE,1,
+    [ Enables sending statistics to the activity console. This is currently
+      experimental, and will require some porting work for a few more platforms. ])
+  else
+    ACTIVITY_ONLY=#
+fi
+AC_SUBST(ACTIVITY_ONLY)
+
 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.],
@@ -1081,10 +1187,9 @@ AC_ARG_ENABLE(no-gifs,
 [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. ])
+    [ Define 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:
@@ -1169,8 +1274,10 @@ 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..."
+        /usr/share/sgml/docbook-dsssl /usr/local/share/sgml/docbook/dsssl/modular; do
+dnl  echo -n does not fly with /bin/sh.
+dnl      echo -n "checking for $i/html/docbook.dsl..."
+      AC_MSG_CHECKING([for $i])
         if test -f $i/html/docbook.dsl; then
                 echo "yes"
                 DKPREFIX=$i
@@ -1184,8 +1291,12 @@ 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..."
+         /usr/share/sgml/CATALOG.docbk31 \
+        /usr/local/share/sgml/docbook/3.0/docbook.cat \
+        /usr/local/share/sgml/docbook/3.1/docbook.cat \
+        ; do
+dnl     echo -n "checking for $i..."
+      AC_MSG_CHECKING([for $i])
         if test -f $i; then
                 echo "yes"
                 JADECAT="$JADECAT -c $i"