mirror of
https://https.git.savannah.gnu.org/git/m4.git
synced 2026-01-27 01:44:29 +00:00
147 lines
4.5 KiB
Makefile
147 lines
4.5 KiB
Makefile
## Makefile.maint -- Makefile rules for m4 maintainers -*-Makefile-*-
|
|
##
|
|
## Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation
|
|
##
|
|
## This file is part of GNU M4.
|
|
##
|
|
## GNU M4 is free software: you can redistribute it and/or modify
|
|
## it under the terms of the GNU General Public License as published by
|
|
## the Free Software Foundation, either version 3 of the License, or
|
|
## (at your option) any later version.
|
|
##
|
|
## GNU M4 is distributed in the hope that it will be useful,
|
|
## but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
## GNU General Public License for more details.
|
|
##
|
|
## You should have received a copy of the GNU General Public License
|
|
## along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
TEXI2HTML = texi2html
|
|
|
|
.PHONY: cvs-release
|
|
cvs-release: version-check prev-tarball cvs-news cvs-commit cvs-dist deltas web-manual
|
|
@tarname="$(PACKAGE)-$(VERSION).tar.gz"; \
|
|
diffname="$(PACKAGE)-$(LASTRELEASE)-$(VERSION).diff.gz"; \
|
|
xdeltaname="$(PACKAGE)-$(LASTRELEASE)-$(VERSION).xdelta"; \
|
|
echo " *** Upload $$tarname, $$tarname.sig,";\
|
|
echo " *** $$tarname.directive.asc, $$diffname,"; \
|
|
echo " *** $$diffname.sig, $$diffname.directive.asc,"; \
|
|
echo " *** $$xdeltaname, $$xdeltaname.sig and";\
|
|
echo " *** $$xdeltaname.directive.asc to either"
|
|
echo " *** /incoming/alpha or /incoming/ftp on ftp-upload.gnu.org."
|
|
|
|
.PHONY: version-check
|
|
version-check:
|
|
@case $(VERSION) in \
|
|
*[acegikmoqsuwy]) \
|
|
echo "Version \`$(VERSION)' is not a releasable version, please read:"; \
|
|
echo " http://www.gnu.org/software/libtool/contribute.html"; \
|
|
exit 1; \
|
|
;; \
|
|
esac
|
|
|
|
.PHONY: prev-tarball
|
|
prev-tarball:
|
|
## Make sure we have the previous release tarball in the tree.
|
|
@if test -z "$(LASTRELEASE)"; \
|
|
then echo "LASTRELEASE is not set"; exit 1; fi
|
|
@ofile="$(PACKAGE)-$(LASTRELEASE).tar.gz"; \
|
|
if test -f $$ofile; then :; \
|
|
else echo "Cannot make deltas without $$ofile"; exit 1; fi
|
|
|
|
# TSDEPS will be defined to TSDEPS_DIST at `make dist' time
|
|
TSDEPS =
|
|
TSDEPS_DIST = ChangeLog
|
|
CVS = cvs # set it to `:' to avoid CVS operations
|
|
|
|
.PHONY: timestamps update-timestamps
|
|
timestamps: update-timestamps
|
|
update-timestamps:
|
|
@if (cd $(srcdir) && test -d CVS && \
|
|
$(CVS) -n update $(TSDEPS_DIST) | grep '^M'); then \
|
|
echo "Cannot make cvs-dist before commit"; exit 1; else :; fi
|
|
|
|
|
|
.PHONY: cvs-news
|
|
cvs-news:
|
|
## Make sure the NEWS file is up-to-date:
|
|
@if sed '1,4d;5q' $(srcdir)/NEWS | grep -e "$(VERSION)" >/dev/null; \
|
|
then :; \
|
|
else \
|
|
echo "NEWS not updated; not releasing" 1>&2; \
|
|
exit 1; \
|
|
fi
|
|
|
|
.PHONY: cvs-commit
|
|
cvs-commit: cvs-news
|
|
cd $(srcdir) && $(SHELL) ./commit
|
|
|
|
.PHONY: cvs-dist
|
|
cvs-dist: cvs-news timestamps
|
|
## Build the distribution:
|
|
$(MAKE) dist
|
|
## Finally, if everything was successful, tag the release
|
|
cd $(srcdir) \
|
|
&& $(CVS) -q tag `echo "release-$(VERSION)" | sed 's/\./_/g'`
|
|
|
|
.PHONY: new-tarball
|
|
new-tarball:
|
|
## Make sure we have the new release tarball in the tree.
|
|
@ofile="$(PACKAGE)-$(VERSION).tar.gz"; \
|
|
if test -f $$ofile; then :; \
|
|
else echo "Cannot make deltas without $$ofile"; exit 1; fi
|
|
|
|
.PHONY: got-xdelta
|
|
got-xdelta:
|
|
## Make sure xdelta exists;
|
|
@if ($(XDELTA) --version 2>&1 | grep version)>/dev/null 2>/dev/null; \
|
|
then :;\
|
|
else \
|
|
echo "Get xdelta from http://sourceforge.net/projects/xdelta."; \
|
|
exit 1; \
|
|
fi
|
|
|
|
.PHONY: deltas
|
|
deltas: delta-diff delta-xdelta
|
|
|
|
DIFF = diff
|
|
DIFF_OPTIONS = -ruNp
|
|
|
|
.PHONY: delta-diff
|
|
delta-diff: prev-tarball new-tarball
|
|
## Unpack the tarballs somewhere to diff them
|
|
rm -rf delta-diff
|
|
mkdir delta-diff
|
|
|
|
ofile="../$(PACKAGE)-$(LASTRELEASE)-$(VERSION).diff.gz"; \
|
|
cd delta-diff \
|
|
&& tar xzf "../$(PACKAGE)-$(LASTRELEASE).tar.gz" \
|
|
&& tar xzf "../$(PACKAGE)-$(VERSION).tar.gz" \
|
|
&& $(DIFF) $(DIFF_OPTIONS) \
|
|
$(PACKAGE)-$(LASTRELEASE) $(PACKAGE)-$(VERSION) \
|
|
| GZIP=$(GZIP_ENV) gzip -c > $$ofile
|
|
|
|
rm -rf delta-diff
|
|
|
|
XDELTA = xdelta
|
|
XDELTA_OPTIONS = -9
|
|
|
|
.PHONY: delta-xdelta
|
|
delta-xdelta: prev-tarball new-tarball got-xdelta
|
|
## Generate the delta file (xdelta has weird exit statuses, so we need to
|
|
## add some shell code to keep make happy), and then generate the signatures
|
|
## for FSF ftp-upload:
|
|
ofile="$(PACKAGE)-$(LASTRELEASE)-$(VERSION).xdelta"; \
|
|
( test -z `$(XDELTA) delta $(XDELTA_OPTIONS) \
|
|
$(PACKAGE)-$(LASTRELEASE).tar.gz $(PACKAGE)-$(VERSION).tar.gz \
|
|
$$ofile 2>&1` \
|
|
&& : )
|
|
|
|
.PHONY: web-manual
|
|
web-manual:
|
|
@cd ./doc ; \
|
|
$(SHELL) ../gendocs.sh $(PACKAGE) \
|
|
"GNU $(PACKAGE)- GNU macro processor"
|
|
@echo " *** Upload the doc/manual directory to web-cvs."
|