From 08042aa10d1e5302a40097cfc75b742ac5f7c763 Mon Sep 17 00:00:00 2001 From: Michael Smith Date: Wed, 6 Apr 2005 09:36:03 +0000 Subject: [PATCH] create separate *zip files for doc distro --- cvstools/Release-targets.mk | 58 ++++++++++++++++++++++++++++--------- cvstools/Release-vars.mk | 21 ++++++++++++-- 2 files changed, 64 insertions(+), 15 deletions(-) diff --git a/cvstools/Release-targets.mk b/cvstools/Release-targets.mk index 2f642969e..1602f2fbc 100644 --- a/cvstools/Release-targets.mk +++ b/cvstools/Release-targets.mk @@ -49,11 +49,17 @@ ifeq ($(ZIPVER),) @echo You must specify ZIPVER for the zip target exit 1 else +# normalize perms/filemodes for all files and dirs find . -type f | xargs chmod 0644 find . -type d | xargs chmod 0755 +# set executable bit on anything that should be executable ifneq ($(EXECUTABLES),) chmod 0755 $(EXECUTABLES) endif + +# ----------------------------------------------------------------- +# Prepare *zip files for main (NON-doc) part of distro +# ----------------------------------------------------------------- rm -rf $(TMP)/docbook-$(DISTRO)-$(ZIPVER) rm -f $(TMP)/tar.exclude rm -f $(TMP)/docbook-$(DISTRO)-$(ZIPVER).tar.gz @@ -63,26 +69,52 @@ endif touch $(TMP)/tar.exclude # distro-specific excludes for file in $(DISTRIB_EXCLUDES); do \ - find . -print | grep $$file | cut -c3- >> $(TMP)/tar.exclude; \ + find . -print | grep $$file | cut -c3- >> $(TMP)/tar.exclude; \ done +# specific excludes for distros with docs + if [ -d doc ]; then \ + find . -print | grep /doc/ | cut -c3- >> $(TMP)/tar.exclude; \ + fi + if [ -d docsrc ]; then \ + find . -print | grep /docsrc/ | cut -c3- >> $(TMP)/tar.exclude; \ + fi # global excludes - find . -print | grep /CVS$$ | cut -c3- >> $(TMP)/tar.exclude - find . -print | grep /CVS/ | cut -c3- >> $(TMP)/tar.exclude - find . -print | grep /debian/ | cut -c3- >> $(TMP)/tar.exclude - find . -print | grep .classes | cut -c3- >> $(TMP)/tar.exclude - find . -print | grep "~$$" | cut -c3- >> $(TMP)/tar.exclude - find . -type f -name ".*.pyc" | cut -c3- >> $(TMP)/tar.exclude - find . -type f -name "#*" | cut -c3- >> $(TMP)/tar.exclude - find . -type f -name ".#*" | cut -c3- >> $(TMP)/tar.exclude - find . -type f -name "prj.el" | cut -c3- >> $(TMP)/tar.exclude - find . -type f -name ".cvsignore" | cut -c3- >> $(TMP)/tar.exclude - find . -type f -name "Makefile*" | cut -c3- >> $(TMP)/tar.exclude - find . -type f -name "README.CVS" | cut -c3- >> $(TMP)/tar.exclude + for file in $(ZIP_EXCLUDES); do \ + find . -print | grep $$file | cut -c3- >> $(TMP)/tar.exclude; \ + done +# tar up distro, then gzip/bzip/zip it tar cf - * --exclude-from $(TMP)/tar.exclude | (cd $(TMP)/docbook-$(DISTRO)-$(ZIPVER); tar xf -) umask 022; cd $(TMP) && tar cf - docbook-$(DISTRO)-$(ZIPVER) | gzip > docbook-$(DISTRO)-$(ZIPVER).tar.gz umask 022; cd $(TMP) && tar cf - docbook-$(DISTRO)-$(ZIPVER) | bzip2 > docbook-$(DISTRO)-$(ZIPVER).tar.bz2 umask 022; cd $(TMP) && zip -q -rpD docbook-$(DISTRO)-$(ZIPVER).zip docbook-$(DISTRO)-$(ZIPVER) rm -f $(TMP)/tar.exclude + +# ----------------------------------------------------------------- +# Prepare *zip files for DOC part of distro (if any) +# ----------------------------------------------------------------- +ifeq ($(shell test -d doc; echo $$?),0) + rm -rf $(TMP)/docbook-$(DISTRO)-$(ZIPVER) + rm -f $(TMP)/tar.exclude + rm -f $(TMP)/docbook-$(DISTRO)-doc-$(ZIPVER).tar.gz + rm -f $(TMP)/docbook-$(DISTRO)-doc-$(ZIPVER).tar.bz2 + rm -f $(TMP)/docbook-$(DISTRO)-doc-$(ZIPVER).zip + umask 022; mkdir -p $(TMP)/docbook-$(DISTRO)-$(ZIPVER) + touch $(TMP)/tar.exclude +# distro-specific excludes + for file in $(DISTRIB_EXCLUDES); do \ + find . -print | grep $$file | cut -c3- >> $(TMP)/tar.exclude; \ + done +# global excludes + for file in $(ZIP_EXCLUDES); do \ + find . -print | grep $$file | cut -c3- >> $(TMP)/tar.exclude; \ + done +# tar up just the doc and docsrc dirs + tar cf - doc docsrc --exclude-from $(TMP)/tar.exclude | (cd $(TMP)/docbook-$(DISTRO)-$(ZIPVER); tar xf -) + cd $(TMP) && tar cf - docbook-$(DISTRO)-$(ZIPVER) | gzip > docbook-$(DISTRO)-doc-$(ZIPVER).tar.gz + cd $(TMP) && tar cf - docbook-$(DISTRO)-$(ZIPVER) | bzip2 > docbook-$(DISTRO)-doc-$(ZIPVER).tar.bz2 + cd $(TMP) && zip -q -rpD docbook-$(DISTRO)-doc-$(ZIPVER).zip docbook-$(DISTRO)-$(ZIPVER) + rm -f $(TMP)/tar.exclude +endif endif install: zip diff --git a/cvstools/Release-vars.mk b/cvstools/Release-vars.mk index 0874ea5db..2a569b171 100644 --- a/cvstools/Release-vars.mk +++ b/cvstools/Release-vars.mk @@ -1,6 +1,5 @@ - #----------------------------------------------------------------- -# VARIABLES FOR RELEASE BUILDS +# MAKEFILE VARIABLES FOR RELEASE BUILDS #----------------------------------------------------------------- # If you are doing normal (non-release) sandbox builds just for # your own use, you can ignore all the variables below. They are @@ -55,6 +54,24 @@ TAGVER := $(shell echo "V$(RELVER)" | sed "s/\.//g") # to use a temp directory other than /tmp, run "make zip TMP=/foo" # or "make zip TMP=$TMP to override following setting TMP=/tmp + +# value of ZIP_EXCLUDES is a space-separated list of any file or +# directory names (regular expressions OK) that should be excluded +# from the *zip files for the release +ZIP_EXCLUDES = \ + /CVS$$ \ + /CVS/ \ + /debian/ \ + \.classes \ + ~$$ \ + \..*\.pyc \ + \\\#.* \ + \.\\\#.* \ + prj\.el \ + \.cvsignore \ + Makefile \ + README\.CVS + # specifies options to feed to "freshmeat-submit" FMGO=-N # SFRELID specifies Sourceforge release ID for current release. -- 2.40.0