[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Changes to m4/Makefile.maint [branch-1_4]
From: |
Gary V . Vaughan |
Subject: |
Changes to m4/Makefile.maint [branch-1_4] |
Date: |
Thu, 31 Mar 2005 06:50:39 -0500 |
Index: m4/Makefile.maint
diff -u /dev/null m4/Makefile.maint:1.1.2.1
--- /dev/null Thu Mar 31 11:50:39 2005
+++ m4/Makefile.maint Thu Mar 31 11:50:38 2005
@@ -0,0 +1,215 @@
+## Makefile.maint -- Makefile rules for libtool maintainers -*-Makefile-*-
+##
+## Copyright (C) 2004, 2005 Free Software Foundation
+##
+## This program 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 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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; see the file COPYING. If not, write to
+## the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+## Boston, MA 02111-1307, USA.
+
+# Need various variables defined by configure, a lot easier to just
+# include the Makefile than figure out a way to put them in here too
+include Makefile
+Makefile:
+ @echo " *** Run maintainer rules from the build tree, with"
+ @echo " *** \`make -f../Makefile.maint' for example, where"
+ @echo " *** \`../' is the relative path back to the directory"
+ @echo " *** that contains the \`Makefile.maint'. Alternatively,"
+ @echo " *** run \`./configure' in the source tree for an in"
+ @echo " *** tree build."
+ @exit 1
+
+TEXI2HTML = texi2html
+
+.PHONY: cvs-release
+cvs-release: version-check prev-tarball cvs-news fetch 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."
+ echo " *** You might need to upload manual.html to webcvs/libtool."
+
+.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 m4/libtool.m4
+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,2d;3q' $(srcdir)/NEWS | grep -e "$(VERSION)" >/dev/null; \
+ then :; \
+ else \
+ echo "NEWS not updated; not releasing" 1>&2; \
+ exit 1; \
+ fi
+
+## Program to use to fetch files.
+WGET = wget
+WGETSGO = $(WGET) http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~
+
+## Files that we fetch and which we compare against.
+## FIXME should be a lot more here
+FETCHFILES = \
+./INSTALL \
+./install-sh \
+doc/texinfo.tex
+
+## Fetch the latest versions of files we care about.
+.PHONY: fetch
+fetch:
+ rm -rf Fetchdir > /dev/null 2>&1
+ mkdir Fetchdir
+## If a get fails then that is a problem.
+ (cd Fetchdir && \
+ $(WGETSGO)/autoconf/autoconf/INSTALL; \
+ $(WGETSGO)/automake/automake/lib/install-sh; \
+ $(WGETSGO)/texinfo/texinfo/doc/texinfo.tex )
+## Don't exit after test because we want to give as many errors as
+## possible.
+ @stat=0; for file in $(FETCHFILES); do \
+ fetchedfile=Fetchdir/`echo $$file | sed 's,.*/,,g'`; \
+ if diff -u $(srcdir)/$$file $$fetchedfile \
+ >>Fetchdir/update.patch 2>/dev/null; then :; \
+ else \
+ stat=1; \
+ echo "Updating $(srcdir)/$$file..."; \
+ cp $$fetchedfile $(srcdir)/$$file; \
+ fi; \
+ done; \
+ test $$stat = 1 && \
+ echo "See Fetchdir/update.patch for a log of the changes."; \
+ exit $$stat
+
+
+GPG = gpg # set it to `:' to avoid gpg operations
+
+.PHONY: cvs-commit
+cvs-commit: cvs-news
+ cd $(srcdir) && $(SHELL) ./commit
+
+.PHONY: cvs-dist
+cvs-dist: cvs-news timestamps
+## Build the distribution:
+ $(MAKE) distcheck
+## Finally, if everything was successful, tag the release
+ cd $(srcdir) \
+ && $(CVS) -q tag `echo "release-$(VERSION)" | sed 's/\./-/g'`
+## Generate signatures and directives for FSF ftp-upload:
+ for suffix in .gz .bz2; do \
+ ofile="$(PACKAGE)-$(VERSION).tar.$$suffix"; \
+ $(GPG) --detach-sign $$ofile \
+ && echo "directory: $(PACKAGE)" > $$ofile.directive \
+ && $(GPG) --clearsign $$ofile.directive \
+ && rm -f $$ofile.directive; \
+ done
+
+.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 \
+ && $(GPG) --detach-sign $$ofile \
+ && echo "directory: $(PACKAGE)" > $$ofile.directive \
+ && $(GPG) --clearsign $$ofile.directive \
+ && rm -f $$ofile.directive
+
+ 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 wierd 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` \
+ && : ) \
+ && $(GPG) --detach-sign $$ofile \
+ && echo "directory: $(PACKAGE)" > $$ofile.directive \
+ && $(GPG) --clearsign $$ofile.directive \
+ && rm -f $$ofile.directive
+
+.PHONY: web-manual
+web-manual:
+ @$(LN_S) $(top_srcdir)/doc/libtool.texi doc/manual.texi
+ $(TEXI2HTML) -I doc -monolithic -number -verbose doc/manual.texi
+ @mv doc/manual.html manual.html
+ @rm -f doc/manual.texi