# Note: GNUmakefile is built automatically from GNUmakefile.in
#
-# $Id: GNUmakefile.in,v 1.259 2017/05/04 14:35:02 fabiankeil Exp $
+# $Id: GNUmakefile.in,v 1.263 2017/06/01 13:22:46 ler762 Exp $
#
# Written by and Copyright (C) 2001-2017 members of the
# Privoxy team. https://www.privoxy.org/
VERSION = $(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_POINT)
SNAPVERSION = $(VERSION)-$(shell date "+%Y%m%d")
+SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@
+MTREE_SPEC_FILE = privoxy-$(VERSION)-$(CODE_STATUS).spec
#############################################################################
# "make install" directories and variables
$(GZIP_PROG) ../privoxy-$(VERSION)-$(CODE_STATUS)-src.tar
@$(ECHO) Tarball distribution created.
+# Create a mtree spec file that can be used to get a reproducible tar ball
+mtree-spec:
+ $(LN) -s `pwd` ../privoxy-$(VERSION)-$(CODE_STATUS)
+ $(ECHO) "#mtree 2.0" > $(MTREE_SPEC_FILE)
+ for i in `find . -type f -a -not \( -path "*/CVS*" -o -name ".*" \
+ -o -path "*/debian/*" -o -path "*/actions/*" -o -name "*.php" -o \
+ -name "PACKAGERS" -o -path "*.git/*" -o -name "*.spec" \) | env -i sort`; do \
+ $(ECHO) "privoxy-$(VERSION)-$(CODE_STATUS)/$$i time=$(SOURCE_DATE_EPOCH) type=file uname=privoxy gname=privoxy mode=0555"; \
+ done >> $(MTREE_SPEC_FILE)
+ $(RM) ../privoxy-$(VERSION)-$(CODE_STATUS)
+
+# Create a reproducible tarball.
+# Requires a tar implementation with mtree support.
+reproducible-tarball-dist: dist-check clean clobber mtree-spec
+ $(LN) -s `pwd` ../privoxy-$(VERSION)-$(CODE_STATUS)
+
+ $(TAR) cvhf privoxy-$(VERSION)-$(CODE_STATUS)-src.tar -C .. @privoxy-$(VERSION)-$(CODE_STATUS)/$(MTREE_SPEC_FILE)
+ $(GZIP_PROG) -n privoxy-$(VERSION)-$(CODE_STATUS)-src.tar
+ $(RM) ../privoxy-$(VERSION)-$(CODE_STATUS) $(MTREE_SPEC_FILE)
+ @$(ECHO) Reproducible tarball distribution created.
+
# anonymously ncftps the tarball to sourceforge
tarball-upload:
ncftpput -u anonymous -p ijbswa-developers@lists.sourceforge.net upload.sourceforge.net /incoming ../privoxy-$(VERSION)-$(CODE_STATUS)-src.tar.gz
doc/webserver/privoxy-index.html && $(RM) doc/webserver/*.bak
# Main documentation target.
-dok: dok-release dok-devel dok-user dok-faq dok-readme dok-webserver dok-authors dok-index
+dok: dok-release dok-devel dok-user dok-faq dok-readme dok-webserver dok-authors dok-index dok-tidy
@$(ECHO) Documentation created.
## Make AUTHORS file
@$(ECHO) Updating the FAQ on the webserver ...
@$(RSYNC) doc/webserver/faq/*.html shell.sourceforge.net:$(WWW_ROOT)/htdocs/faq
+web-sponsors:
+ @$(ECHO) "Updating the sponsor page (index.html) only ..."
+ @$(RSYNC) doc/webserver/sponsors/index.html shell.sourceforge.net:$(WWW_ROOT)/htdocs/sponsors/
+
web-user-manual:
@$(ECHO) Updating the user manual on the webserver (do not use in case of version changes) ...
@$(RSYNC) doc/webserver/user-manual/*.html shell.sourceforge.net:$(WWW_ROOT)/htdocs/user-manual/
parsers.@OBJEXT@: parsers.c parsers.h config.h $(PROJECT_H_DEPS) errlog.h filters.h jbsockets.h jcc.h loadcfg.h loaders.h miscutil.h ssplit.h
ssplit.@OBJEXT@: ssplit.c ssplit.h config.h miscutil.h
urlmatch.@OBJEXT@: urlmatch.c urlmatch.h config.h $(PROJECT_H_DEPS) errlog.h miscutil.h ssplit.h
+client-tags.@OBJEXT@: client-tags.c client-tags.h config.h $(PROJECT_H_DEPS) errlog.h miscutil.h ssplit.h
+fuzz.@OBJEXT@: fuzz.c config.h $(PROJECT_H_DEPS) errlog.h miscutil.h ssplit.h
# GNU regex
gnu_regex.@OBJEXT@: gnu_regex.c gnu_regex.h config.h
win32.@OBJEXT@: win32.c config.h jcc.h loadcfg.h pcre/pcre.h pcre/pcreposix.h pcrs.h project.h w32log.h win32.h w32svrapi.h
w32.res: w32.rc w32res.h icons/radar-01.ico icons/radar-02.ico icons/radar-03.ico icons/radar-04.ico icons/radar-05.ico icons/radar-06.ico icons/radar-07.ico icons/radar-08.ico icons/idle.ico icons/privoxy.ico config.h
- windres -D__MINGW32__=0.2 -O coff -i $< -o $@
+ windres -F pe-i386 -D__MINGW32__=0.2 -O coff -i $< -o $@
# AmigaOS
@AMIGAOS_ONLY@OBJS += amiga.o