# Note: Makefile is built automatically from Makefile.in
#
-# $Id: Makefile.in,v 1.16 2001/07/15 19:45:33 jongfoster Exp $
+# $Id: Makefile.in,v 1.17 2001/07/28 16:44:54 oes Exp $
#
# Written by and Copyright (C) 2001 the SourceForge
# IJBSWA team. http://ijbswa.sourceforge.net
# Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# $Log: Makefile.in,v $
+# Revision 1.17 2001/07/28 16:44:54 oes
+# Fixed sed LF->CRLF conversion and removed deprecated files
+#
# Revision 1.16 2001/07/15 19:45:33 jongfoster
# Added support for linking with POSIX threads library
#
#
#
-# define version (will be wired into the rpm.)
+
+#############################################################################
+# Version number (for RPM)
+#############################################################################
+
VERSION_MAJOR = @VERSION_MAJOR@
VERSION_MINOR = @VERSION_MINOR@
VERSION_POINT = @VERSION_POINT@
RPM_VERSION = $(VERSION)
RPM_PACKAGEV = 1
-# The version is currently specified in config.h, which is
-# written by "configure".
-#
-#VERSION_CFLAGS = -DVERSION_MAJOR=$(VERSION_MAJOR) \
-# -DVERSION_MINOR=$(VERSION_MINOR) \
-# -DVERSION_POINT=$(VERSION_POINT) \
-# -DVERSION="$(VERSION)"
+#############################################################################
# Directories for "make install"
+#############################################################################
+
DEST = /etc/junkbuster
SBIN_DEST = @sbindir@
MAN_DEST = @mandir@
-# The flag "-mno-win32" can be used by Cygwin to emulate a un?x type install.
-# The flag "-mwindows -mno-cygwin" will cause Cygwin to use MingW32 for Win32 install.
-CYGWIN_FLAGS = @CYGWIN_FLAGS@
-# Either/Or of these next two lines
-#DEBUG_CFLAGS = -g
-DEBUG_CFLAGS = -O3
-
-# Solaris needs a special define:
-# FIXME: This is always commented out
-SOLARIS_FLAGS = @SOLARIS_ONLY@-D__EXTENSIONS__=1
-
-# -DSTDC_HEADERS Now in config.h
-# Do we need -DHAVE_STRING ???
-CFLAGS = @CFLAGS@ @CPPFLAGS@ \
- -D__MT__=1 -D__STDC__=1 $(SOLARIS_FLAGS) -DHAVE_STRING $(DEBUG_CFLAGS) \
- $(CYGWIN_FLAGS) $(PCRE_WIN_FLAGS) @STATIC_PCRE_ONLY@ -Ipcre
-
-PROGRAM = junkbuster@EXEEXT@
-CC = gcc
-ECHO = echo
-GZIP_PROG = gzip
-INSTALL = cp -f
-LD = gcc
-OBJEXT = @OBJEXT@
-RM = rm -f
-STRIP_PROG = strip
+#############################################################################
+# Build tools
+#############################################################################
+
+PROGRAM = junkbuster@EXEEXT@
+CC = @CC@
+ECHO = echo
+GZIP_PROG = gzip
+INSTALL = cp -f
+LD = gcc
+OBJEXT = @OBJEXT@
+RM = rm -f
+STRIP_PROG = strip
+
+
+#############################################################################
+# Filenames and libraries
+#############################################################################
C_SRC = actions.c encode.c errlog.c filters.c gateway.c jbsockets.c \
jcc.c killpopup.c list.c loadcfg.c loaders.c miscutil.c \
PROJECT_H_DEPS = project.h $(REGEX_HDRS) $(PCRS_HDRS) @STATIC_PCRE_ONLY@pcre/pcre.h
# Only need this on Solaris
-# FIXME: This is always commented out
SOCKET_LIB = @SOLARIS_ONLY@-lsocket -lnsl
# PThreads library, if needed.
PTHREAD_LIB = @PTHREAD_ONLY@@PTHREAD_LIB@
-LIBS = @LIBS@ $(W32_LIB) $(SOCKET_LIB) $(PTHREAD_LIB)
-
SRCS = $(C_SRC) $(W32_SRC) $(PCRS_SRC) $(PCRE_SRC) $(REGEX_SRC)
OBJS = $(C_OBJS) $(W32_OBJS) $(PCRS_OBJS) $(PCRE_OBJS) $(REGEX_OBJS)
HDRS = $(C_HDRS) $(W32_HDRS) $(PCRS_HDRS) $(PCRE_OBJS) $(REGEX_HDRS)
+LIBS = @LIBS@ $(W32_LIB) $(SOCKET_LIB) $(PTHREAD_LIB)
+
+
+#############################################################################
+# Compiler switches
+#############################################################################
+
+# The flag "-mno-win32" can be used by Cygwin to emulate a un?x type build.
+# The flag "-mwindows -mno-cygwin" will cause Cygwin to use MingW32 for a
+# Win32 GUI build.
+# The flag "-pthread" is required if using Pthreads under Linux (and
+# possibly other OSs).
+SPECIAL_CFLAGS = @SPECIAL_CFLAGS@
+
+# Either/Or of these next two lines
+#DEBUG_CFLAGS = -g # Debug build
+DEBUG_CFLAGS = -O3 # Full optimization
+CFLAGS = @CFLAGS@ @CPPFLAGS@ $(DEBUG_CFLAGS) $(SPECIAL_CFLAGS) \
+ @STATIC_PCRE_ONLY@ -Ipcre
-# -------------------------------------------------------------------------
-# Do not change anything below this line
-# And there should NOT be any targets above this line.
-# -------------------------------------------------------------------------
-LDFLAGS = $(DEBUG_CFLAGS) $(CYGWIN_FLAGS)
+LDFLAGS = $(DEBUG_CFLAGS) $(SPECIAL_CFLAGS)
+
+#############################################################################
+# Build section.
+#
+# There should NOT be any targets above this line.
+#############################################################################
all: $(PROGRAM)
-SUFFIX = .txt:o
-.SUFFIXES : .txt
+
+#############################################################################
+# Define this explicitly because Solaris is broken!
+#############################################################################
+%.o: %.c
+ $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
+
+
+#############################################################################
+# Win32 config files
+#############################################################################
%.txt:
sed -e $$'s,$$,\r,' < $< > $@
-
inifiles: $(W32_INIS)
junkbstr.txt: config
- sed -e 's!\(/etc/junkbuster\|.\)/actionsfile!sactions.txt!' \
- -e 's!\(/etc/junkbuster\|.\)/trust!strust.txt!' \
- -e 's!\(/var/log/junkbuster\|.\)/jarfile!jar.log!' \
- -e 's!\(/var/log/junkbuster\|.\)/logfile!junkbstr.log!' \
- -e 's!\(/etc/junkbuster\|.\)/re_filterfile!sregexp.txt!' \
+ sed -e 's!\actionsfile!sactions.txt!' \
+ -e 's!\trust!strust.txt!' \
+ -e 's!\jarfile!jar.log!' \
+ -e 's!\logfile!junkbstr.log!' \
+ -e 's!\re_filterfile!sregexp.txt!' \
-e $$'s,$$,\r,' \
-e 's!#Win32-only: !!' \
< $< > $@
sregexp.txt: re_filterfile
-# -------------------------------------------------------------------------
+#############################################################################
# redhat distribution
-# -------------------------------------------------------------------------
+#############################################################################
+
redhat-dist:
@make clobber
# verify that i'm root needs to be done
# verify all files in their correct location needs to be done
cd .. && rpm -ta ijbswa.tar.gz
-# -------------------------------------------------------------------------
+
+#############################################################################
# suse distribution
-# -------------------------------------------------------------------------
+#############################################################################
+
suse-dist:
@make clobber
# verify that i'm root needs to be done
# verify all files in their correct location needs to be done
cd .. && rpm -ta ijbswa.tar.gz
-# -------------------------------------------------------------------------
-#
-# -------------------------------------------------------------------------
+
+#############################################################################
+# Windows distribution
+#############################################################################
win-dist:
$(ECHO) Not implemented.
-# -------------------------------------------------------------------------
-#
-# -------------------------------------------------------------------------
+
+#############################################################################
+# Tarball distribution
+#############################################################################
tarball-dist:
@make clean
make $(PROGRAM)
chmod a+r ../../ijb-distribution-$(VERSION).tar.gz
@$(ECHO) Tarball with binary created.
-# -------------------------------------------------------------------------
-#
-# -------------------------------------------------------------------------
+
+#############################################################################
+# Source file dependencies
+#############################################################################
actions.@OBJEXT@: actions.c actions.h config.h $(PROJECT_H_DEPS) errlog.h jcc.h list.h loaders.h miscutil.h actionlist.h
encode.@OBJEXT@: encode.c encode.h config.h
$(INSTALL) junkbuster.init /sbin/init.d/junkbuster
+#############################################################################
+
## Local Variables:
## tab-width: 3
## end:
dnl Process this file with autoconf to produce a configure script.
dnl
-dnl $Id: configure.in,v 1.11 2001/07/21 18:00:07 jongfoster 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
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 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=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 Note: Some systems have the library but not the system header file,
-dnl 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_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
dnl bcopy and memmove are for PCRE
AC_CHECK_FUNCS(strerror bcopy memmove)
-dnl Build type
-dnl Note: PTHREAD_LIB is always set, even if pthread is disabled.
+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_ARG_ENABLE(mingw32,
-[ --enable-mingw32 Use mingw32 for a Windows GUI],
-[if test $enableval = yes; then
- WIN_ONLY=
- CYGWIN_FLAGS="-mwindows -mno-cygwin"
- PTHREAD_LIB=-lpthreadGC
- echo "Using mingw32 (Win32 GUI)"
- else
- WIN_ONLY=#
- if test "$CYGWIN" = "yes"; then
- CYGWIN_FLAGS="-mno-win32"
- PTHREAD_LIB=
- echo "Using Cygnus (Win32 command line)"
- else
- CYGWIN_FLAGS=
- PTHREAD_LIB=-lpthread
- fi
- fi],
-[if test "$MINGW32" = "yes"; then
- WIN_ONLY=
- CYGWIN_FLAGS="-mwindows -mno-cygwin"
- PTHREAD_LIB=-lpthreadGC
- echo "Using mingw32 (Win32 GUI)"
- else
- WIN_ONLY=#
- if test "$CYGWIN" = "yes"; then
- CYGWIN_FLAGS="-mno-win32"
- PTHREAD_LIB=
- echo "Using Cygnus (Win32 command line)"
- else
- CYGWIN_FLAGS=
- PTHREAD_LIB=-lpthread
- fi
- fi])
-AC_SUBST(WIN_ONLY)
-AC_SUBST(CYGWIN_FLAGS)
-AC_SUBST(PTHREAD_LIB)
+dnl =================================================================
+dnl Solaris specific
+dnl FIXME: Not tested on Solaris yet...
+dnl =================================================================
+
+AC_CANONICAL_HOST
SOLARIS_ONLY=#
+
+case "$target" in
+*-solaris*) AC_DEFINE(_REENTRANT)
+ AC_DEFINE(__EXTENSIONS__)
+ SOLARIS_ONLY=
+;;
+esac
+
AC_SUBST(SOLARIS_ONLY)
+dnl =================================================================
+dnl Always defined
+dnl =================================================================
+
+AC_DEFINE(__MT__)
+
+dnl =================================================================
dnl Features
+dnl =================================================================
AC_ARG_ENABLE(toggle,
[ --disable-toggle Don't support temporary disable],
AC_DEFINE(TOGGLE)
fi],AC_DEFINE(TOGGLE))
-AC_ARG_ENABLE(pthread,
-[ --disable-pthread Don't use POSIX threads (pthreads)],
-[if test $enableval = yes; then
- PTHREAD_ONLY=
- AC_DEFINE(FEATURE_PTHREAD)
-else
- PTHREAD_ONLY=#
-fi],[AC_DEFINE(FEATURE_PTHREAD)
- PTHREAD_ONLY=
-])
-AC_SUBST(PTHREAD_ONLY)
-
AC_ARG_ENABLE(gzip,
-[ --enable-gzip Allow gzip'ed transfer of documents. Note that this will make content modification impossible.],
+[ --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)
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))
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],
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(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)