# Note: Makefile is built automatically from Makefile.in
#
-# $Id: GNUmakefile.in,v 1.144 2006/09/07 22:53:20 hal9 Exp $
+# $Id: GNUmakefile.in,v 1.157 2007/12/10 02:28:02 hal9 Exp $
#
-# Written by and Copyright (C) 2001 - 2004 the SourceForge
+# Written by and Copyright (C) 2001 - 2007 the SourceForge
# Privoxy team. http://www.privoxy.org/
#
# Based on the Internet Junkbuster originally written
#DOSFILTER = $(SED) -e $$'s,$$,\r,'
#DOSFILTER = gawk -v ORS='\r\n' '{print $0;}'
DOSFILTER = $(PERL) -p -e 's/\n/\r\n/'
-CVSROOT = :pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa
+CVSROOT = :pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa
#TMPDIR := $(shell mktemp -d /tmp/$(PROGRAM).XXXXXX)
#############################################################################
CFLAGS = @CFLAGS@ @CPPFLAGS@ $(OTHER_CFLAGS) $(SPECIAL_CFLAGS) -Wall \
@STATIC_PCRE_ONLY@ -Ipcre
-LDFLAGS = $(DEBUG_CFLAGS) $(SPECIAL_CFLAGS)
+LDFLAGS = @LDFLAGS@ $(DEBUG_CFLAGS) $(SPECIAL_CFLAGS)
#############################################################################
# This creates a tar.gz and spec-file for a Red Hat 6.x version.
#############################################################################
create-snapshot:
- TMPDIR=$(shell mktemp -d /tmp/$(PROGRAM).XXXXXX)
@tag=`cvs -d $(CVSROOT) status Makefile | awk ' /Sticky Tag/ { print $$3 } '` 2> /dev/null; \
[ x"$$tag" = x"(none)" ] && tag=HEAD; \
echo "*** Creating package from $$tag!"; \
- cd $(TMPDIR) ; cvs -Q -d $(CVSROOT) export -r $$tag current || echo "Um... export aborted."
- @cd $(TMPDIR)/current; \
+ TMPDIR=$(shell mktemp -d /tmp/$(PROGRAM).XXXXXX); \
+ cd $$TMPDIR ; cvs -Q -d $(CVSROOT) export -r $$tag current || echo "Um... export aborted."; \
+ cd $$TMPDIR/current; \
TMPFILE=$$(mktemp -q /tmp/$(PROGRAM).XXXXXX); \
if $(SED) -e 's/^\(Version:\).*/\1 $(RPM_VERSION)/g' \
-e 's/^\(Release:\).*/\1 $(SNAPVERSION)/g' \
$(ECHO) "Could not set version info in specfile."; \
exit 1;\
fi; \
- $(RM) $(TMPFILE); \
- cd $(TMPDIR)/current; \
- $(TAR) --exclude ".cvsignore" --exclude "CVS" --exclude \
- "privoxy-suse.spec" -czf $(TMPDIR)/$(PROGRAM)-rh-$(VERSION).tar.gz .; \
- $(TAR) --exclude ".cvsignore" --exclude "CVS" --exclude \
- "privoxy-rh.spec" -czf $(TMPDIR)/$(PROGRAM)-suse-$(VERSION).tar.gz .
- @$(MV) -f $(TMPDIR)/$(PROGRAM)-rh-$(VERSION).tar.gz .
- @$(MV) -f $(TMPDIR)/$(PROGRAM)-suse-$(VERSION).tar.gz .
- @$(RM) -rf $(TMPDIR)
- @echo "Resulting files are $(PROGRAM)-rh-$(VERSION).tar.gz and"
- @echo " $(PROGRAM)-suse-$(VERSION).tar.gz"
+ $(RM) $$TMPFILE; \
+ cd $$TMPDIR/current; \
+ $(TAR) --exclude ".cvsignore" --exclude "CVS" \
+ -czf /tmp/$(PROGRAM)-$(VERSION).tar.gz .; \
+ $(RM) -rf $$TMPDIR
+ @echo "Resulting file is /tmp/$(PROGRAM)-$(VERSION).tar.gz"
#############################################################################
#############################################################################
redhat-srpm:
make create-archive
- $(MV) $(PROGRAM)-rh-$(VERSION).tar.gz $(PROGRAM)-$(VERSION).tar.gz
$(RPMBUILD) -ts --nodeps $(PROGRAM)-$(VERSION).tar.gz
# fi
$(TAR) --exclude ".cvsignore" --exclude "CVS" --exclude "privoxy-rh.spec" --exclude "privoxy-cl.spec" --exclude "PACKAGERS" -czf $(TAR_ARCH) .
- $(RPM) --clean -ta $(TAR_ARCH)
+ $(RPMBUILD) --clean -ta $(TAR_ARCH)
if [ -f $(TAR_ARCH) ]; then $(RM) $(TAR_ARCH); fi
# anonymously ncftps the rpms to sourceforge
#
# Documentation
#
-# converts doc/source/*.sgml into html, text and man pages
+# converts doc/source/*.sgml into html, text, pdf and man pages
#
#############################################################################
$(RM) -r doc/source/developer-manual
mkdir -p doc/text doc/source/developer-manual
cd doc/source/developer-manual && $(DB) ../developer-manual.sgml && cd .. && cp developer-manual/*.html ../webserver/developer-manual/
- cd doc/source && $(DB) -V nochunks developer-manual.sgml > tmp.html && $(WDUMP) tmp.html > ../text/developer-manual.txt && $(RM) -r tmp.html developer-manual
+ cd doc/source && $(DB) -V nochunks developer-manual.sgml > tmp.html && env -u LANG $(WDUMP) tmp.html > ../text/developer-manual.txt && $(RM) -r tmp.html developer-manual
# user manual
dok-user:
@# for all doc set-ups, including the 'user manual' config option in local \
@#system where it MUST be in same directory as html.
$(PERL) -pi.bak -e 's/<\/head/\n<LINK REL=\"STYLESHEET\" TYPE=\"text\/css\" HREF=\"p_doc.css\">\n<\/head/i' doc/webserver/user-manual/*html
- cd doc/source && $(DB) -iuser-man -V nochunks user-manual.sgml > tmp.html && $(WDUMP) tmp.html > ../text/user-manual.txt && $(RM) -r tmp.html user-manual
+ cd doc/source && $(DB) -iuser-man -V nochunks user-manual.sgml > tmp.html && env -u LANG $(WDUMP) tmp.html > ../text/user-manual.txt && $(RM) -r tmp.html user-manual
# faq
dok-faq:
$(RM) -r doc/source/faq
mkdir -p doc/text doc/source/faq
cd doc/source/faq && $(DB) ../faq.sgml && cd .. && cp faq/*.html ../webserver/faq/
- cd doc/source && $(DB) -V nochunks faq.sgml > tmp.html && $(WDUMP) tmp.html > ../text/faq.txt && $(RM) -r tmp.html faq
+ cd doc/source && $(DB) -V nochunks faq.sgml > tmp.html && env -u LANG $(WDUMP) tmp.html > ../text/faq.txt && $(RM) -r tmp.html faq
# man page, one variation. Try to use the next target, just 'make man'.
dok-man:
# readme page and INSTALL file
dok-readme: dok-release
cd doc/source && $(DB)-notoc -V nochunks readme.sgml > tmp.html &&\
- $(WDUMP) tmp.html > ../../README ;\
+ env -u LANG $(WDUMP) tmp.html > ../../README ;\
$(DB)-notoc -V nochunks install.sgml > tmp.html &&\
- $(WDUMP) tmp.html > ../../INSTALL ;\
+ env -u LANG $(WDUMP) tmp.html > ../../INSTALL ;\
$(RM) tmp.*
# index.sgml is used to create both the Home Page, and a local index
## Make AUTHORS file
dok-authors:
- cd doc/source && $(DB) -V nochunks authors.sgml > tmp.html && $(WDUMP) \
+ cd doc/source && $(DB) -V nochunks authors.sgml > tmp.html && env -u LANG $(WDUMP) \
tmp.html > ../../AUTHORS && $(RM) tmp.html
# Set doc entities for VERSION and CODE_STATUS in sgml docs. Toggle content
if htmldoc --version ; then : ; \
else $(ECHO) "WARNING: could not get htmldoc version" ; fi
cd utils/ldp_print && $(RM) *html *bak *jpg *tmp *pdf *zip
- cp -f doc/source/temp/*html doc/webserver/images/*jpg utils/ldp_print
+ cp -f doc/source/temp/*html doc/webserver/user-manual/*jpg utils/ldp_print
cd utils/ldp_print ;\
$(PERL) -pi.bak -e 's/\.\.\/images\///; s/(<\/?)SUB/$$1small/i;\
s/\.\.\/user-manual\/index\.html/privoxy-user-manual.pdf/;\
# NOTE: This will require some hand editing. The new file is outputted
# as config.new so that problem sections can be compared to previous
# version. This is hardcored to w3m for html/text conversion. Also,
-# requires the shell util 'fmt'.
+# requires the shell util 'fmt'. 2007-11-14: note the perl below dies
+# with perl 5.8.8. The same code pasted into a free standing script,
+# without the makefile-isms, works fine.
config-file: dok-release
cd doc/source && $(DB)-notoc -iconfig-file -V nochunks config.sgml > __tmp.html &&\
w3m -dump __tmp.html |fmt -w 70 > ../../config.new && $(RM) -r __tmp.*
- $(PERL) -pi.bak -e 's/^1\. \@\@TITLE\@\@/ /i;\
- /^\d\.\d\.\s+/ && tr/[a-z]/[A-Z]/;\
- $$header_len=0 unless $$hit_header;\
- if ($$hit_header) {\
- print "# ";\
- for ($$i=1; $$i < $$header_len; $$i++) {print "=";}\
- print "\n";\
- };\
- $$hit_header=0;\
- $$hit_header=1 if m/^(\d\.)(\d\.)(\d\.)?\s/ && s/^(\d\.)//;\
- $$header_len = length($$_);\
- s/^/# /; /^# #{12,}/ && s/^# #/####/;\
- s/^.*$$// if $$hit_option;\
- $$hit_option=0;\
- s/^\n//; s/^#\s*-{20,}//; s/ *$$//;\
- $$hit_option=1 if s/^#\s+@@//;' config.new
+ $(PERL) -pi.bak -e 's/^1\. \@\@TITLE\@\@/ /i;\
+ /^\d\.\d\.\s+/ && tr/[a-z]/[A-Z]/;\
+ my $$hit_header;\
+ $$header_len=0 unless $$hit_header;\
+ if ($$hit_header) {\
+ print "# ";\
+ for ($$i=1; $$i < $$header_len; $$i++) {print "=";}\
+ print "\n";\
+ };\
+ my $$hit_header;\
+ $$hit_header=0;\
+ $$hit_header=1 if m/^(\d\.)(\d\.)(\d\.)?\s/ && s/^(\d\.)//;\
+ $$header_len = length($$_);\
+ s/^/# /; /^# #{12,}/ && s/^# #/####/;\
+ s/^.*$$// if $$hit_option;\
+ $$hit_option=0;\
+ s/^\n//; s/^#\s*-{20,}//; s/ *$$//;\
+ $$hit_option=1 if s/^#\s+@@//;' config.new
+
$(RM) *.bak
@$(ECHO) "****************************************************"
@$(ECHO) "The output file is config.new."
actions.@OBJEXT@: actions.c actions.h config.h $(PROJECT_H_DEPS) errlog.h jcc.h list.h loaders.h miscutil.h actionlist.h ssplit.h
cgi.@OBJEXT@: cgi.c cgi.h config.h $(PROJECT_H_DEPS) cgiedit.h cgisimple.h list.h pcrs.h encode.h ssplit.h jcc.h filters.h actions.h errlog.h miscutil.h
-cgiedit.@OBJEXT@: cgiedit.c cgiedit.h config.h $(PROJECT_H_DEPS) cgi.h list.h pcrs.h encode.h ssplit.h jcc.h filters.h actions.h errlog.h miscutil.h
+cgiedit.@OBJEXT@: cgiedit.c cgiedit.h config.h $(PROJECT_H_DEPS) cgi.h list.h pcrs.h encode.h ssplit.h jcc.h filters.h actionlist.h actions.h errlog.h miscutil.h
cgisimple.@OBJEXT@: cgisimple.c cgisimple.h config.h $(PROJECT_H_DEPS) cgi.h list.h pcrs.h encode.h ssplit.h jcc.h filters.h actions.h errlog.h miscutil.h
deanimate.@OBJEXT@: deanimate.c deanimate.h config.h $(PROJECT_H_DEPS)
encode.@OBJEXT@: encode.c encode.h config.h
# AmigaOS
@AMIGAOS_ONLY@OBJS += amiga.o
+@AMIGAOS_ONLY@ifeq ($(shell $(CC) -dumpmachine), m68k-amigaos)
@AMIGAOS_ONLY@CFLAGS += -D__AMIGAVERSION__=\"$(VERSION_MAJOR).$(VERSION_MINOR)$(VERSION_POINT)\" -D__AMIGADATE__=\"`date +%d.%m.%Y`\" -W -m68020 -noixemul -fbaserel -msmall-code
@AMIGAOS_ONLY@LDFLAGS += -m68020 -noixemul -fbaserel
@AMIGAOS_ONLY@LIBS = -lm /gg/lib/libb/libm020/libnix/swapstack.o
+@AMIGAOS_ONLY@else
+@AMIGAOS_ONLY@CFLAGS += -D__AMIGAVERSION__=\"$(VERSION_MAJOR).$(VERSION_MINOR)$(VERSION_POINT)\" -D__AMIGADATE__=\"`date +%d.%m.%Y`\" -Wextra -D__USE_INLINE__ -D__NO_INTUITION_RJ_MACROS
+@AMIGAOS_ONLY@endif
@AMIGAOS_ONLY@amiga.o: amiga.c amiga.h config.h
$(INSTALL) $(INSTALL_P) $(STRIP) $(PROGRAM) $(SBIN_DEST)
@# Install the DOCS and man page. install-sh only does one file at a time.
+ @# FIXME: only handles jpegs.
-@if [ $(check_doc) = 0 ]; then \
DOC=$(DOC_DEST) ;\
else \
$(INSTALL) $(INSTALL_T) $$ii $$DOC/$$i;\
done ;\
done ;\
- for i in $(DOK_WEB)/images/*jpg; do \
- $(INSTALL) $(INSTALL_T) $$i $$DOC/images;\
+ for i in $(DOK_WEB)/user-manual/*jpg; do \
+ $(INSTALL) $(INSTALL_T) $$i $$DOC/user-manual;\
done ;\
$(INSTALL) $(INSTALL_T) $(DOK_WEB)/man-page/*html $$DOC/man-page;\
$(INSTALL) $(INSTALL_T) $(DOK_WEB)/privoxy-index.html $$DOC/index.html;\
$(CAT) config >config~ ;\
$(MV) config.base config ;\
fi
- $(SED) 's+confdir .+confdir $(CONF_DEST)+' config | \
- $(SED) 's+logdir .+logdir $(LOG_DEST)+' >config.tmp
+ $(SED) 's+^confdir \.+confdir $(CONF_DEST)+' config | \
+ $(SED) 's+^logdir \.+logdir $(LOG_DEST)+' >config.tmp
-@if [ $(check_doc) = 0 ]; then \
$(SED) 's+^#\?user-manual .*+user-manual $(DOC_DEST)/user-manual/+' config.tmp >config.updated ;\
else \
fi ;\
$(ECHO) Installing configuration files to $(CONF_DEST);\
for i in $(CONFIGS); do \
- if [ -s "$(CONF_DEST)/$$i" ] ; then \
+ if [ "$$i" = "default.action" ] || [ "$$i" = "default.filter" ] || [ "$$i" = "standard.action" ]; then \
+ $(RM) $(CONF_DEST)/$$i ;\
+ $(ECHO) Installing fresh $$i;\
+ $(INSTALL) $$INSTALL_CONF $$i $(CONF_DEST) || exit 1;\
+ elif [ -s "$(CONF_DEST)/$$i" ]; then \
$(ECHO) Installing $$i as $$i.new ;\
$(INSTALL) $$INSTALL_CONF $$i $(CONF_DEST)/$$i.new || exit 1;\
NEW=1;\
$(SED) 's+%PROGRAM%+$(PROGRAM)+' slackware/rc.privoxy.orig | \
$(SED) 's+%SBIN_DEST%+$(SBIN_DEST)+' | \
$(SED) 's+%CONF_DEST%+$(CONF_DEST)+' | \
- $(SED) 's+%USER%+$$USER+' | \
+ $(SED) 's+%USER%+$(USER)+' | \
$(SED) 's+%GROUP%+$(GROUP_T)+' >slackware/rc.privoxy ;\
$(INSTALL) $(INSTALL_P) slackware/rc.privoxy /etc/rc.d/ ;\
$(ECHO) "Installing for Slackware." ;\
## end:
# $Log: GNUmakefile.in,v $
+# Revision 1.157 2007/12/10 02:28:02 hal9
+# Unset $LANG for text processing of docs so we get pure text.
+#
+# Revision 1.156 2007/11/15 03:17:43 hal9
+# Some workaround changes to the config file perl stuff and comments, which is
+# broken here all by itself on perl 5.8.8.
+#
+# Revision 1.155 2007/09/22 16:23:25 fabiankeil
+# Update copyright line.
+#
+# Revision 1.154 2007/02/07 11:52:40 fabiankeil
+# Fix suse-dist as described in BR#1654052.
+# (I didn't test it, but it's done the same
+# way in redhat-dist which is known to work).
+#
+# Revision 1.153 2007/01/07 07:36:36 joergs
+# Added AmigaOS4 support.
+#
+# Revision 1.152 2006/12/13 14:53:51 etresoft
+# Include any existing LDFLAGS environment when linking so that a MacOS X Universal Binary can be created.
+#
+# Revision 1.151 2006/11/30 01:08:55 hal9
+# Fix problem with variable declarations in the Slackware section. Thanks to higuita.
+#
+# Revision 1.150 2006/10/25 11:55:45 fabiankeil
+# Fix sed regexes for rewriting "confdir ." and "logdir .".
+# Thanks to Darel Henman for reporting this.
+#
+# Revision 1.149 2006/10/11 01:40:28 hal9
+# Apply patch from Neil McCalden to fix syntax issue.
+#
+# Revision 1.148 2006/09/26 10:57:58 hal9
+# Including Karsten's patch to fix make create-snapshot.
+#
+# Revision 1.147 2006/09/13 01:25:16 hal9
+# Make sure install forces in new default.action, default.filter, and
+# standard.filter. These are privoxy files, not user files.
+#
+# Revision 1.146 2006/09/08 23:57:19 hal9
+# User manual images are now user-manual doc directory, and fix make install
+# target accordingly.
+#
+# Revision 1.145 2006/09/08 02:32:00 hal9
+# Various changes to implement building and installing docs to be compatible
+# with the new "user-manual" settings in config from Roland. Docbook does not
+# seem to like dealing with more than one css file, so workaround that here.
+# Change 'make install' so it provides p_doc.css in the user-manual doc
+# directory so that functions well, and lastly modify 'make install' so that the
+# PATH is automatically set, and the 'user-manual' directive should done during
+# the install.
+#
# Revision 1.144 2006/09/07 22:53:20 hal9
# Make sure config sgml build related artifacts are cleaned out.
#