@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
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
-
#-----------------------------------------------------------------
-# 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
# 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.