From: Scott James Remnant Date: Thu, 12 Feb 2004 23:50:56 +0000 (+0000) Subject: * Makefile.maint, Makefile: Move rules intended for Libtool X-Git-Tag: release-1-9b~156 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=20edd8bb0d8b66f0aaac67810238af554cd752e4;p=thirdparty%2Flibtool.git * Makefile.maint, Makefile: Move rules intended for Libtool maintainers only out of the Makefile we distribute and into one that we only need keep in CVS. * README-alpha: Add -fMakefile.maint to the instructions where needed. --- diff --git a/ChangeLog b/ChangeLog index 43d6f96dc..ccaaa4b0f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2004-02-12 Scott James Remnant + + * Makefile.maint, Makefile: Move rules intended for Libtool + maintainers only out of the Makefile we distribute and into one + that we only need keep in CVS. + * README-alpha: Add -fMakefile.maint to the instructions where + needed. + 2004-02-12 Albert Chin-A-Young Scott James Remnant diff --git a/Makefile.am b/Makefile.am index 27c5b517f..ac0845620 100644 --- a/Makefile.am +++ b/Makefile.am @@ -91,184 +91,3 @@ install-data-local: install-data-hook: chmod +x $(DESTDIR)$(pkgdatadir)/config.guess chmod +x $(DESTDIR)$(pkgdatadir)/config.sub - - -## ---------------------------------------------------------------- ## -## Everything past here is useful to the maintainer, but probably ## -## not to anybody else (inspiration from automake/Makefile.am). ## -## ---------------------------------------------------------------- ## - -.PHONY: cvs-release -cvs-release: version-check prev-tarball cvs-news fetch cvs-commit cvs-dist deltas - @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 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 \ -config/config.guess \ -config/config.sub \ -config/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)/config/config/config.guess; \ - $(WGETSGO)/config/config/config.sub; \ - $(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 -c `echo "release-$(VERSION)" | sed 's/\./-/g'` -## Generate signatures and directives for FSF ftp-upload: - ofile="$(PACKAGE)-$(VERSION).tar.gz"; \ - $(GPG) --detach-sign $$ofile \ - && echo "directory: libtool" > $$ofile.directive \ - && $(GPG) --clearsign $$ofile.directive \ - && rm -f $$ofile.directive - -.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: libtool" > $$ofile.directive \ - && $(GPG) --clearsign $$ofile.directive \ - && rm -f $$ofile.directive - - rm -rf delta-diff - -XDELTA = xdelta -XDELTA_OPTIONS = --pristine -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: libtool" > $$ofile.directive \ - && $(GPG) --clearsign $$ofile.directive \ - && rm -f $$ofile.directive diff --git a/Makefile.maint b/Makefile.maint new file mode 100644 index 000000000..13c03017d --- /dev/null +++ b/Makefile.maint @@ -0,0 +1,202 @@ +## Makefile.maint -- Makefile rules for libtool maintainers +## +## Copyright (C) 2004 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 " *** Source directory must be configured to use the " + @echo " *** maintainer rules." + @exit 1 + + +.PHONY: cvs-release +cvs-release: version-check prev-tarball cvs-news fetch cvs-commit cvs-dist deltas + @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 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 \ +config/config.guess \ +config/config.sub \ +config/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)/config/config/config.guess; \ + $(WGETSGO)/config/config/config.sub; \ + $(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 -c `echo "release-$(VERSION)" | sed 's/\./-/g'` +## Generate signatures and directives for FSF ftp-upload: + ofile="$(PACKAGE)-$(VERSION).tar.gz"; \ + $(GPG) --detach-sign $$ofile \ + && echo "directory: libtool" > $$ofile.directive \ + && $(GPG) --clearsign $$ofile.directive \ + && rm -f $$ofile.directive + +.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: libtool" > $$ofile.directive \ + && $(GPG) --clearsign $$ofile.directive \ + && rm -f $$ofile.directive + + rm -rf delta-diff + +XDELTA = xdelta +XDELTA_OPTIONS = --pristine -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: libtool" > $$ofile.directive \ + && $(GPG) --clearsign $$ofile.directive \ + && rm -f $$ofile.directive diff --git a/README-alpha b/README-alpha index 79af92db4..309d7f7e8 100644 --- a/README-alpha +++ b/README-alpha @@ -92,22 +92,22 @@ using (by typing `libtool --version'). * Run ./configure and then make. -* Run `make fetch', which will fetch new versions of the files that are - maintained outside of libtool. +* Run `make -fMakefile.maint fetch', which will fetch new versions of the + files that are maintained outside of libtool. * Run ./commit. -* Run `make cvs-dist' which will build a release tarball (with `make - distcheck'), tag the tree with release-$(VERSION) and generate the - gpg signature files. +* Run `make -fMakefile.maint cvs-dist' which will build a release tarball + (with `make distcheck'), tag the tree with release-$(VERSION) and generate + the gpg signature files. * Make sure you have a copy of xdelta installed, and a copy of the previous release tarball in the build directory. -* Run 'make deltas' (pass LASTRELEASE=min.maj[.mic[alpha]] if needed) to - create both diff and xdelta files between the previous release tarball - and the new with detached gpg signature files and clear signed directive - files. +* Run 'make -fMakefile.maint deltas' (pass LASTRELEASE=min.maj[.mic[alpha]] + if needed) to create both diff and xdelta files between the previous + release tarball and the new with detached gpg signature files and clear + signed directive files. * Upload release tarball, diff file and xdelta file, plus their associated detached gpg signature files and clear signed directive files to