libtool/Makefile.am

276 lines
9.3 KiB
Makefile
Raw Normal View History

Refactor all the test case common code into shell functions in tests/defs, and move the various demo directories out of $top_srcdir, and into tests too. The refactoring showed up a number of inconsistencies and latent bugs, as well as fixing (I think!!) the long-standing annoyance with some of the tests giving spurious failures intermittently. While I was here, emacs kindly removed a lot of bogus whitespace and added copyright notices for us: * cdemo, demo, depdemo, f77demo, mdemo, mdemo2, pdemo, tagdemo: Moved from here... * tests/cdemo, tests/demo, tests/depdemo, tests/f77demo, tests/mdemo, tests/mdemo2, tests/pdemo, tests/tagdemo: ...to here. * tests/defs: Factor much common functionality from the test scripts into shell functions. Added a copyright notice. * tests/assign.test, tests/cdemo-conf.test, tests/cdemo-exec.test, tests/cdemo-make.test, tests/cdemo-shared.test, tests/cdemo-static.test, tests/demo-conf.test, tests/demo-deplibs.test, tests/demo-exec.test, tests/demo-inst.test, tests/demo-make.test, tests/demo-nofast.test, tests/demo-nopic.test, tests/demo-pic.test, tests/demo-shared.test, tests/demo-static.test, tests/demo-unst.test, tests/depdemo-conf.test, tests/depdemo-exec.test, tests/depdemo-inst.test, tests/depdemo-make.test, tests/depdemo-nofast.test, tests/depdemo-shared.test, tests/depdemo-static.test, tests/depdemo-unst.test, tests/f77demo-conf.test, tests/f77demo-exec.test, tests/f77demo-make.test, tests/f77demo-shared.test, tests/f77demo-static.test, tests/link-2.test, tests/link.test, tests/mdemo-conf.test, tests/mdemo-exec.test, tests/mdemo-inst.test, tests/mdemo-make.test, tests/mdemo-shared.test, tests/mdemo-static.test, tests/mdemo-unst.test, tests/mdemo2-conf.test, tests/mdemo2-exec.test, tests/mdemo2-make.test, tests/nomode.test, tests/pdemo-conf.test, tests/pdemo-exec.test, tests/pdemo-inst.test, tests/pdemo-make.test, tests/pdemo-unst.test, tests/quote.test, tests/sh.test, tests/suffix.test, tests/tagdemo-conf.test, tests/tagdemo-exec.test, tests/tagdemo-make.test, tests/tagdemo-shared.test, tests/tagdemo-static.test: Refactored to use new functions in tests/defs. Added a copyright notice. * tests/hardcode.test, noinst-link.test, tests/relink.test, tests/relink.test, tests/mdryrun.test: Ditto. Moved from here... * tests/demo-hardcode.test, demo-noinst-link.test, tests/demo-relink.test, tests/depdemo-relink.test, tests/mdemo-dryrun.test: ...to here respectively. * Makefile.am: Added a copyright notice. * tests/sh.test: Check libtoolize.in for non-portabilities too. * libtoolize.in: Fix non-portabilities found by tests/sh.test.
2003-10-15 05:45:03 +08:00
## Makefile.am -- Process this file with automake to produce Makefile.in
##
A complete rewrite of the m4 code involved in the generation of libtool via config.status. The old way involved manually synchronising disparate bits of shell code in several macros, to quote a copy of a shell variable, put that in config.status, maybe add it to some quotation loops to prevent early expansion, and then add a block to _LT_CONFIG_COMMANDS to bring it into the libtool script. The new way is to mark shell variables for propogation using _LT_DECL for language independent variables, or _LT_TAGDECL for those that need to be propogated in several language flavours. The marking can be done in the macro that probes the variables, and this new m4 machinery takes care of synchronising all the other bits of code at autoconf time: * m4/ltsugar.m4: New file. Macros that are useful outside the context of libtool. Initially, contains some generalised list management macros, and the scaffolding for dictionary type data storage and retrieval. * Makefile.am (aclocal_macros): Install ltsugar.m4. * m4/libtool.m4 (_LT_DECL): Mark a shell variable for export to the libtool script, along with a comment, and hints for quoting and renaming. (_LT_TAGDECL): Similarly mark a tagged shell variable for export in each tag. (lt_decl_tag_varnames, lt_decl_quote_varnames) (lt_decl_dquote_varnames, lt_decl_varnames_tagged) (lt_decl_all_varnames): New utility macros for managing lists of shell variable names from _LT_DECL and _LT_TAGDECL. (_LT_CONFIG_STATUS_DECLARATIONS, _LT_CONFIG_STATUS_DECLARE): Expand to correctly quoted variable declarations in config.status from all marked shell variables. (_LT_LIBTOOL_DECLARE): Expand to commented and quoted variable declaration for libtool tag section. (_LT_LIBTOOL_CONFIG_VARS, _LT_LIBTOOL_TAG_VARS): Pass all marked variables to _LT_LIBTOOL_DECLARE. (_LT_CONFIG_COMMANDS): Use _LT_CONFIG_STATUS_DECLARATIONS and friends to generate all the variable passing shell code for config.status, to get marked variables from libtool.m4 into libtool itself eventually. (AC_LIBTOOL_CONFIG): Generate marked variable code for libtool tag configuration. Changed all client macros to mark variables suitably rather than the hand pasting that was necessary previously. (AC_PROG_SED): Renamed from LT_AC_PROG_SED. (LT_AC_PROG_SED): Wrap AC_PROG_SED, and mark shell variables for propogation to the libtool script.
2004-01-07 20:26:25 +08:00
## Copyright (C) 2003, 2004 Free Software Foundation
Refactor all the test case common code into shell functions in tests/defs, and move the various demo directories out of $top_srcdir, and into tests too. The refactoring showed up a number of inconsistencies and latent bugs, as well as fixing (I think!!) the long-standing annoyance with some of the tests giving spurious failures intermittently. While I was here, emacs kindly removed a lot of bogus whitespace and added copyright notices for us: * cdemo, demo, depdemo, f77demo, mdemo, mdemo2, pdemo, tagdemo: Moved from here... * tests/cdemo, tests/demo, tests/depdemo, tests/f77demo, tests/mdemo, tests/mdemo2, tests/pdemo, tests/tagdemo: ...to here. * tests/defs: Factor much common functionality from the test scripts into shell functions. Added a copyright notice. * tests/assign.test, tests/cdemo-conf.test, tests/cdemo-exec.test, tests/cdemo-make.test, tests/cdemo-shared.test, tests/cdemo-static.test, tests/demo-conf.test, tests/demo-deplibs.test, tests/demo-exec.test, tests/demo-inst.test, tests/demo-make.test, tests/demo-nofast.test, tests/demo-nopic.test, tests/demo-pic.test, tests/demo-shared.test, tests/demo-static.test, tests/demo-unst.test, tests/depdemo-conf.test, tests/depdemo-exec.test, tests/depdemo-inst.test, tests/depdemo-make.test, tests/depdemo-nofast.test, tests/depdemo-shared.test, tests/depdemo-static.test, tests/depdemo-unst.test, tests/f77demo-conf.test, tests/f77demo-exec.test, tests/f77demo-make.test, tests/f77demo-shared.test, tests/f77demo-static.test, tests/link-2.test, tests/link.test, tests/mdemo-conf.test, tests/mdemo-exec.test, tests/mdemo-inst.test, tests/mdemo-make.test, tests/mdemo-shared.test, tests/mdemo-static.test, tests/mdemo-unst.test, tests/mdemo2-conf.test, tests/mdemo2-exec.test, tests/mdemo2-make.test, tests/nomode.test, tests/pdemo-conf.test, tests/pdemo-exec.test, tests/pdemo-inst.test, tests/pdemo-make.test, tests/pdemo-unst.test, tests/quote.test, tests/sh.test, tests/suffix.test, tests/tagdemo-conf.test, tests/tagdemo-exec.test, tests/tagdemo-make.test, tests/tagdemo-shared.test, tests/tagdemo-static.test: Refactored to use new functions in tests/defs. Added a copyright notice. * tests/hardcode.test, noinst-link.test, tests/relink.test, tests/relink.test, tests/mdryrun.test: Ditto. Moved from here... * tests/demo-hardcode.test, demo-noinst-link.test, tests/demo-relink.test, tests/depdemo-relink.test, tests/mdemo-dryrun.test: ...to here respectively. * Makefile.am: Added a copyright notice. * tests/sh.test: Check libtoolize.in for non-portabilities too. * libtoolize.in: Fix non-portabilities found by tests/sh.test.
2003-10-15 05:45:03 +08:00
##
## 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.
* bootstrap: Rewritten to use autoreconf. * config.guess, config.sub, mkstamp: Moved from here... * config/config.guess, config/config.sub, config/mkstamp: ...to here, respectively. * libtool.m4, ltdl.m4: Moved from here... * m4/libtool.m4, m4/ltdl.m4: ...to here, respectively. * configure.ac: Removed various acinclude.m4 hackery, as these files are no longer needed with automake 1.8. * Makefile.am: Removed various acinclude.m4 hackery, as these files are no longer needed with automake 1.8. (AUTOMAKE_OPTIONS): Require CVS automake. (CONF_SUBDIRS, CFLAGS, CPPFLAGS, LDFLAGS, LIBS, FFLAGS, FLIBS): Automake now makes a Make variable from every AC_SUBST, so these are NOP. (aclocal_macros): These files are now in their own m4 subdir. Changed all clients. (EXTRA_DIST): mkstamp has moved to the new config subdir. Changed all clients. (pkgdata_SCRIPTS): Ditto wrt config.guess and config.sub. (pkgdata_DATA): Ditto wrt ltmain.sh. * f77demo/configure.ac, libltdl/configure.ac (AM_CONFIG_HEADER): Is deprecated in favour of AC_CONFIG_HEADERS. Updated to the latter. * Makefile.am, cdemo/Makefile.am, demo/Makefile.am, depdemo/Makefile.am, f77demo/Makefile.am, mdemo/Makefile.am, mdemo2/Makefile.am, pdemo/Makefile.am, tagdemo/Makefile.am (EXTRA_DIST): Remove acinclude.m4. (ACLOCAL_AMFLAGS): Search new `m4' macro directory. * configure.ac, cdemo/configure.ac, demo/configure.ac, depdemo/configure.ac, f77demo/configure.ac, mdemo/configure.ac, mdemo2/configure.ac, pdemo/configure.ac, tagdemo/configure.ac (AC_CONFIG_AUX_DIR): Declare that config helper scripts are now kept in the new config subdir. * libltdl/configure.ac (AC_CONFIG_AUX_DIR): Removed. Defaults to `.' anyway.
2003-09-25 19:22:29 +08:00
ACLOCAL_AMFLAGS = -I m4
BUILD_SUBDIRS = . libltdl doc tests
1999-01-14 23:07:12 +08:00
SUBDIRS = $(BUILD_SUBDIRS)
DIST_SUBDIRS = $(BUILD_SUBDIRS)
1997-04-02 02:29:23 +08:00
EXTRA_DIST = bootstrap libtoolize.in ltmain.in \
config/mailnotify config/mkstamp stamp-vcl \
ChangeLog.1996 ChangeLog.1997 ChangeLog.1998 ChangeLog.1999 \
ChangeLog.2000 ChangeLog.2001 ChangeLog.2002 ChangeLog.2003
CLEANFILES = libtool libtoolize ltmain.shT
1997-04-02 02:29:23 +08:00
# These are required by libtoolize and must be executable when installed.
# Since _SCRIPTS gets the program transform applied we make them
# executable by hand
dist_pkgdata_DATA = config/config.guess config/config.sub config/ltmain.sh
1997-04-02 02:29:23 +08:00
2004-02-06 22:03:52 +08:00
# We maintain our own macros to provent problems with ancient definitions.
# lt~obsolete.m4 doesn't belong here, it's for bootstrapping us only
pkgmacrodir = $(pkgdatadir)/m4
dist_pkgmacro_DATA = m4/libtool.m4 m4/ltdl.m4 m4/ltsugar.m4
nodist_pkgmacro_DATA = m4/ltversion.m4
EXTRA_DIST += m4/ltversion.in
# We build ltversion.m4 here, instead of from config.status,
# because config.status is rerun each time one og configure's
# dependencies change and ltversion.m4 happens to be a configure
# dependency. configure and ltversion.m4 vould be rebuilt in
# a loop otherwise.
# Use `$(top_srcdir)/m4' for the benefit of non-GNU makes: this is
# how ltversion.m4 appears in our dependencies.
$(top_srcdir)/m4/ltversion.m4: $(top_srcdir)/m4/ltversion.in stamp-vcl
set `$(MKSTAMP) < $(top_srcdir)/ChangeLog`; \
sed -e "s,[@]MACRO_VERSION[@],$(VERSION),g" \
-e "s,[@]MACRO_REVISION[@],$$1,g" \
-e "s,[@]configure_input[@],Generated from ltversion.in; do not edit by hand.,g" \
$(top_srcdir)/m4/ltversion.in > $@t
chmod a-w $@t
mv -f $@t $@
1997-04-02 02:29:23 +08:00
# The standalone libtool script, and the libtool distributor.
bin_SCRIPTS = libtool libtoolize
## If mkstamp does not match $(srcdir)/stamp-vcl, we still put the new one
## in the current dir, incase $(srcdir) is not writable. The dir selection
## at the top of this rule takes care of prefering the right one on
## subsequent runs.
MKSTAMP = $(SHELL) $(top_srcdir)/config/mkstamp
stamp-vcl: vcl.tmp $(top_srcdir)/ChangeLog
vcl.tmp:
@dir=.; test -f $$dir/stamp-vcl || dir=$(srcdir); \
set `$(MKSTAMP) < $(top_srcdir)/ChangeLog`; \
echo "$$1" > vcl.tmp; \
cmp -s vcl.tmp $$dir/stamp-vcl \
|| (echo "Updating stamp-vcl"; cp vcl.tmp ./stamp-vcl)
-@rm -f vcl.tmp
.PHONY: configure-subdirs
configure-subdirs distdir: $(DIST_MAKEFILE_LIST)
@DIST_MAKEFILE_LIST@:
dir=`echo $@ | sed 's,^[^/]*$$,.,;s,/[^/]*$$,,'`; \
test -d $$dir || mkdir $$dir || exit 1; \
abs_srcdir=`cd $(top_srcdir) && pwd`; \
1999-01-15 17:21:04 +08:00
(cd $$dir && $$abs_srcdir/$$dir/configure) || exit 1
install-data-local:
## Don't install over the top of an old pkgdatadir
-rm -rf $(DESTDIR)$(pkgdatadir)
## Remove old macro definitions
-rm -rf $(DESTDIR)$(aclocaldir)/ltdl.m4
-rm -rf $(DESTDIR)$(aclocaldir)/libtool.m4
install-data-hook:
chmod +x $(DESTDIR)$(pkgdatadir)/config.guess
chmod +x $(DESTDIR)$(pkgdatadir)/config.sub
1998-12-09 02:36:31 +08:00
## ---------------------------------------------------------------- ##
## Everything past here is useful to the maintainer, but probably ##
## not to anybody else (inspiration from automake/Makefile.am). ##
## ---------------------------------------------------------------- ##
.PHONY: cvs-release
This fixes release procedure problems discovered whilst making the 1.5.2 release. * Makefile.am (cvs-dist): Because we check whether ChangeLog has been committed, this rule can't be run with uncommitted source so we can't run 'commit' and don't need to run 'make dist' a second time. Fix CVS tag as it should be "release-X" not "Release-X". (cvs_commit): New rule for the cvs-release chain that runs 'commit' (cvs-release): Depend on cvs-commit, depend on deltas instead of cvs-diff and xdelta. (cvs-diff): Removed, replaced with delta-diff. (delta-diff): Unpack and diff the old and new tarballs rather than using CVS, so we get a genuinely complete diff. (xdelta): Removed, replaced with delta-xdelta. (got-xdelta): New rule for improved reading. (delta-xdiff): Copied and cleaned up version of old xdelta rule. (deltas): Depends on delta-diff and delta-xdelta (make deltas). (cvs-news): Don't depend on timestamps, cvs-dist itself does now. (prev-tarball): This is the only place we need a LASTRELEASE check so copy the code here and remove the CHECK_RELEASE variable. (new-tarball): Check there's a new tarball (did cvs-dist work?) (FETCHFILES): Remove obsolete libltdl mentions. * README-alpha: Update CVS instructions as everything's changed on Savannah. (Release procedure): Update NEWS and ChangeLog after changing the version number (both times); Run 'make fetch' after running 'configure' (difficult to do it beforehand); Require 'commit' before 'make cvs-dist' as that checks ChangeLog is committed; 'make deltas' instead of 'cvs-diff' and 'xdelta', pass LASTRELEASE to make instead of OLDVERSION (and it's mandatory); Clean up uploading paragraph; Clearer announcement sending instruction; Removed ftp-upload@gnu.org mail as that's not necessary now; Make web page updating instructions a bit clearer; Add an instruction to update the manual for non-alphas. (Alpha release note template): Add a Subject; update CVS instructions. (Full release note template): Add a Subject; update CVS instructions. * configure.ac: Add dist-bzip2 to AM_INIT_AUTOMAKE as we talk about bz2 files in our release announcements; remove old reference to OLDVERSION.
2004-01-27 20:38:47 +08:00
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.
This fixes release procedure problems discovered whilst making the 1.5.2 release. * Makefile.am (cvs-dist): Because we check whether ChangeLog has been committed, this rule can't be run with uncommitted source so we can't run 'commit' and don't need to run 'make dist' a second time. Fix CVS tag as it should be "release-X" not "Release-X". (cvs_commit): New rule for the cvs-release chain that runs 'commit' (cvs-release): Depend on cvs-commit, depend on deltas instead of cvs-diff and xdelta. (cvs-diff): Removed, replaced with delta-diff. (delta-diff): Unpack and diff the old and new tarballs rather than using CVS, so we get a genuinely complete diff. (xdelta): Removed, replaced with delta-xdelta. (got-xdelta): New rule for improved reading. (delta-xdiff): Copied and cleaned up version of old xdelta rule. (deltas): Depends on delta-diff and delta-xdelta (make deltas). (cvs-news): Don't depend on timestamps, cvs-dist itself does now. (prev-tarball): This is the only place we need a LASTRELEASE check so copy the code here and remove the CHECK_RELEASE variable. (new-tarball): Check there's a new tarball (did cvs-dist work?) (FETCHFILES): Remove obsolete libltdl mentions. * README-alpha: Update CVS instructions as everything's changed on Savannah. (Release procedure): Update NEWS and ChangeLog after changing the version number (both times); Run 'make fetch' after running 'configure' (difficult to do it beforehand); Require 'commit' before 'make cvs-dist' as that checks ChangeLog is committed; 'make deltas' instead of 'cvs-diff' and 'xdelta', pass LASTRELEASE to make instead of OLDVERSION (and it's mandatory); Clean up uploading paragraph; Clearer announcement sending instruction; Removed ftp-upload@gnu.org mail as that's not necessary now; Make web page updating instructions a bit clearer; Add an instruction to update the manual for non-alphas. (Alpha release note template): Add a Subject; update CVS instructions. (Full release note template): Add a Subject; update CVS instructions. * configure.ac: Add dist-bzip2 to AM_INIT_AUTOMAKE as we talk about bz2 files in our release announcements; remove old reference to OLDVERSION.
2004-01-27 20:38:47 +08:00
@if test -z "$(LASTRELEASE)"; \
then echo "LASTRELEASE is not set"; exit 1; fi
@ofile="$(PACKAGE)-$(LASTRELEASE).tar.gz"; \
if test -f $$ofile; then :; \
This fixes release procedure problems discovered whilst making the 1.5.2 release. * Makefile.am (cvs-dist): Because we check whether ChangeLog has been committed, this rule can't be run with uncommitted source so we can't run 'commit' and don't need to run 'make dist' a second time. Fix CVS tag as it should be "release-X" not "Release-X". (cvs_commit): New rule for the cvs-release chain that runs 'commit' (cvs-release): Depend on cvs-commit, depend on deltas instead of cvs-diff and xdelta. (cvs-diff): Removed, replaced with delta-diff. (delta-diff): Unpack and diff the old and new tarballs rather than using CVS, so we get a genuinely complete diff. (xdelta): Removed, replaced with delta-xdelta. (got-xdelta): New rule for improved reading. (delta-xdiff): Copied and cleaned up version of old xdelta rule. (deltas): Depends on delta-diff and delta-xdelta (make deltas). (cvs-news): Don't depend on timestamps, cvs-dist itself does now. (prev-tarball): This is the only place we need a LASTRELEASE check so copy the code here and remove the CHECK_RELEASE variable. (new-tarball): Check there's a new tarball (did cvs-dist work?) (FETCHFILES): Remove obsolete libltdl mentions. * README-alpha: Update CVS instructions as everything's changed on Savannah. (Release procedure): Update NEWS and ChangeLog after changing the version number (both times); Run 'make fetch' after running 'configure' (difficult to do it beforehand); Require 'commit' before 'make cvs-dist' as that checks ChangeLog is committed; 'make deltas' instead of 'cvs-diff' and 'xdelta', pass LASTRELEASE to make instead of OLDVERSION (and it's mandatory); Clean up uploading paragraph; Clearer announcement sending instruction; Removed ftp-upload@gnu.org mail as that's not necessary now; Make web page updating instructions a bit clearer; Add an instruction to update the manual for non-alphas. (Alpha release note template): Add a Subject; update CVS instructions. (Full release note template): Add a Subject; update CVS instructions. * configure.ac: Add dist-bzip2 to AM_INIT_AUTOMAKE as we talk about bz2 files in our release announcements; remove old reference to OLDVERSION.
2004-01-27 20:38:47 +08:00
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
This fixes release procedure problems discovered whilst making the 1.5.2 release. * Makefile.am (cvs-dist): Because we check whether ChangeLog has been committed, this rule can't be run with uncommitted source so we can't run 'commit' and don't need to run 'make dist' a second time. Fix CVS tag as it should be "release-X" not "Release-X". (cvs_commit): New rule for the cvs-release chain that runs 'commit' (cvs-release): Depend on cvs-commit, depend on deltas instead of cvs-diff and xdelta. (cvs-diff): Removed, replaced with delta-diff. (delta-diff): Unpack and diff the old and new tarballs rather than using CVS, so we get a genuinely complete diff. (xdelta): Removed, replaced with delta-xdelta. (got-xdelta): New rule for improved reading. (delta-xdiff): Copied and cleaned up version of old xdelta rule. (deltas): Depends on delta-diff and delta-xdelta (make deltas). (cvs-news): Don't depend on timestamps, cvs-dist itself does now. (prev-tarball): This is the only place we need a LASTRELEASE check so copy the code here and remove the CHECK_RELEASE variable. (new-tarball): Check there's a new tarball (did cvs-dist work?) (FETCHFILES): Remove obsolete libltdl mentions. * README-alpha: Update CVS instructions as everything's changed on Savannah. (Release procedure): Update NEWS and ChangeLog after changing the version number (both times); Run 'make fetch' after running 'configure' (difficult to do it beforehand); Require 'commit' before 'make cvs-dist' as that checks ChangeLog is committed; 'make deltas' instead of 'cvs-diff' and 'xdelta', pass LASTRELEASE to make instead of OLDVERSION (and it's mandatory); Clean up uploading paragraph; Clearer announcement sending instruction; Removed ftp-upload@gnu.org mail as that's not necessary now; Make web page updating instructions a bit clearer; Add an instruction to update the manual for non-alphas. (Alpha release note template): Add a Subject; update CVS instructions. (Full release note template): Add a Subject; update CVS instructions. * configure.ac: Add dist-bzip2 to AM_INIT_AUTOMAKE as we talk about bz2 files in our release announcements; remove old reference to OLDVERSION.
2004-01-27 20:38:47 +08:00
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 \
1998-12-09 02:36:31 +08:00
echo "NEWS not updated; not releasing" 1>&2; \
exit 1; \
1998-12-09 02:36:31 +08:00
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
This fixes release procedure problems discovered whilst making the 1.5.2 release. * Makefile.am (cvs-dist): Because we check whether ChangeLog has been committed, this rule can't be run with uncommitted source so we can't run 'commit' and don't need to run 'make dist' a second time. Fix CVS tag as it should be "release-X" not "Release-X". (cvs_commit): New rule for the cvs-release chain that runs 'commit' (cvs-release): Depend on cvs-commit, depend on deltas instead of cvs-diff and xdelta. (cvs-diff): Removed, replaced with delta-diff. (delta-diff): Unpack and diff the old and new tarballs rather than using CVS, so we get a genuinely complete diff. (xdelta): Removed, replaced with delta-xdelta. (got-xdelta): New rule for improved reading. (delta-xdiff): Copied and cleaned up version of old xdelta rule. (deltas): Depends on delta-diff and delta-xdelta (make deltas). (cvs-news): Don't depend on timestamps, cvs-dist itself does now. (prev-tarball): This is the only place we need a LASTRELEASE check so copy the code here and remove the CHECK_RELEASE variable. (new-tarball): Check there's a new tarball (did cvs-dist work?) (FETCHFILES): Remove obsolete libltdl mentions. * README-alpha: Update CVS instructions as everything's changed on Savannah. (Release procedure): Update NEWS and ChangeLog after changing the version number (both times); Run 'make fetch' after running 'configure' (difficult to do it beforehand); Require 'commit' before 'make cvs-dist' as that checks ChangeLog is committed; 'make deltas' instead of 'cvs-diff' and 'xdelta', pass LASTRELEASE to make instead of OLDVERSION (and it's mandatory); Clean up uploading paragraph; Clearer announcement sending instruction; Removed ftp-upload@gnu.org mail as that's not necessary now; Make web page updating instructions a bit clearer; Add an instruction to update the manual for non-alphas. (Alpha release note template): Add a Subject; update CVS instructions. (Full release note template): Add a Subject; update CVS instructions. * configure.ac: Add dist-bzip2 to AM_INIT_AUTOMAKE as we talk about bz2 files in our release announcements; remove old reference to OLDVERSION.
2004-01-27 20:38:47 +08:00
.PHONY: cvs-commit
cvs-commit: cvs-news
cd $(srcdir) && $(SHELL) ./commit
.PHONY: cvs-dist
This fixes release procedure problems discovered whilst making the 1.5.2 release. * Makefile.am (cvs-dist): Because we check whether ChangeLog has been committed, this rule can't be run with uncommitted source so we can't run 'commit' and don't need to run 'make dist' a second time. Fix CVS tag as it should be "release-X" not "Release-X". (cvs_commit): New rule for the cvs-release chain that runs 'commit' (cvs-release): Depend on cvs-commit, depend on deltas instead of cvs-diff and xdelta. (cvs-diff): Removed, replaced with delta-diff. (delta-diff): Unpack and diff the old and new tarballs rather than using CVS, so we get a genuinely complete diff. (xdelta): Removed, replaced with delta-xdelta. (got-xdelta): New rule for improved reading. (delta-xdiff): Copied and cleaned up version of old xdelta rule. (deltas): Depends on delta-diff and delta-xdelta (make deltas). (cvs-news): Don't depend on timestamps, cvs-dist itself does now. (prev-tarball): This is the only place we need a LASTRELEASE check so copy the code here and remove the CHECK_RELEASE variable. (new-tarball): Check there's a new tarball (did cvs-dist work?) (FETCHFILES): Remove obsolete libltdl mentions. * README-alpha: Update CVS instructions as everything's changed on Savannah. (Release procedure): Update NEWS and ChangeLog after changing the version number (both times); Run 'make fetch' after running 'configure' (difficult to do it beforehand); Require 'commit' before 'make cvs-dist' as that checks ChangeLog is committed; 'make deltas' instead of 'cvs-diff' and 'xdelta', pass LASTRELEASE to make instead of OLDVERSION (and it's mandatory); Clean up uploading paragraph; Clearer announcement sending instruction; Removed ftp-upload@gnu.org mail as that's not necessary now; Make web page updating instructions a bit clearer; Add an instruction to update the manual for non-alphas. (Alpha release note template): Add a Subject; update CVS instructions. (Full release note template): Add a Subject; update CVS instructions. * configure.ac: Add dist-bzip2 to AM_INIT_AUTOMAKE as we talk about bz2 files in our release announcements; remove old reference to OLDVERSION.
2004-01-27 20:38:47 +08:00
cvs-dist: cvs-news timestamps
## Build the distribution:
$(MAKE) distcheck
This fixes release procedure problems discovered whilst making the 1.5.2 release. * Makefile.am (cvs-dist): Because we check whether ChangeLog has been committed, this rule can't be run with uncommitted source so we can't run 'commit' and don't need to run 'make dist' a second time. Fix CVS tag as it should be "release-X" not "Release-X". (cvs_commit): New rule for the cvs-release chain that runs 'commit' (cvs-release): Depend on cvs-commit, depend on deltas instead of cvs-diff and xdelta. (cvs-diff): Removed, replaced with delta-diff. (delta-diff): Unpack and diff the old and new tarballs rather than using CVS, so we get a genuinely complete diff. (xdelta): Removed, replaced with delta-xdelta. (got-xdelta): New rule for improved reading. (delta-xdiff): Copied and cleaned up version of old xdelta rule. (deltas): Depends on delta-diff and delta-xdelta (make deltas). (cvs-news): Don't depend on timestamps, cvs-dist itself does now. (prev-tarball): This is the only place we need a LASTRELEASE check so copy the code here and remove the CHECK_RELEASE variable. (new-tarball): Check there's a new tarball (did cvs-dist work?) (FETCHFILES): Remove obsolete libltdl mentions. * README-alpha: Update CVS instructions as everything's changed on Savannah. (Release procedure): Update NEWS and ChangeLog after changing the version number (both times); Run 'make fetch' after running 'configure' (difficult to do it beforehand); Require 'commit' before 'make cvs-dist' as that checks ChangeLog is committed; 'make deltas' instead of 'cvs-diff' and 'xdelta', pass LASTRELEASE to make instead of OLDVERSION (and it's mandatory); Clean up uploading paragraph; Clearer announcement sending instruction; Removed ftp-upload@gnu.org mail as that's not necessary now; Make web page updating instructions a bit clearer; Add an instruction to update the manual for non-alphas. (Alpha release note template): Add a Subject; update CVS instructions. (Full release note template): Add a Subject; update CVS instructions. * configure.ac: Add dist-bzip2 to AM_INIT_AUTOMAKE as we talk about bz2 files in our release announcements; remove old reference to OLDVERSION.
2004-01-27 20:38:47 +08:00
## Finally, if everything was successful, tag the release
cd $(srcdir) \
This fixes release procedure problems discovered whilst making the 1.5.2 release. * Makefile.am (cvs-dist): Because we check whether ChangeLog has been committed, this rule can't be run with uncommitted source so we can't run 'commit' and don't need to run 'make dist' a second time. Fix CVS tag as it should be "release-X" not "Release-X". (cvs_commit): New rule for the cvs-release chain that runs 'commit' (cvs-release): Depend on cvs-commit, depend on deltas instead of cvs-diff and xdelta. (cvs-diff): Removed, replaced with delta-diff. (delta-diff): Unpack and diff the old and new tarballs rather than using CVS, so we get a genuinely complete diff. (xdelta): Removed, replaced with delta-xdelta. (got-xdelta): New rule for improved reading. (delta-xdiff): Copied and cleaned up version of old xdelta rule. (deltas): Depends on delta-diff and delta-xdelta (make deltas). (cvs-news): Don't depend on timestamps, cvs-dist itself does now. (prev-tarball): This is the only place we need a LASTRELEASE check so copy the code here and remove the CHECK_RELEASE variable. (new-tarball): Check there's a new tarball (did cvs-dist work?) (FETCHFILES): Remove obsolete libltdl mentions. * README-alpha: Update CVS instructions as everything's changed on Savannah. (Release procedure): Update NEWS and ChangeLog after changing the version number (both times); Run 'make fetch' after running 'configure' (difficult to do it beforehand); Require 'commit' before 'make cvs-dist' as that checks ChangeLog is committed; 'make deltas' instead of 'cvs-diff' and 'xdelta', pass LASTRELEASE to make instead of OLDVERSION (and it's mandatory); Clean up uploading paragraph; Clearer announcement sending instruction; Removed ftp-upload@gnu.org mail as that's not necessary now; Make web page updating instructions a bit clearer; Add an instruction to update the manual for non-alphas. (Alpha release note template): Add a Subject; update CVS instructions. (Full release note template): Add a Subject; update CVS instructions. * configure.ac: Add dist-bzip2 to AM_INIT_AUTOMAKE as we talk about bz2 files in our release announcements; remove old reference to OLDVERSION.
2004-01-27 20:38:47 +08:00
&& $(CVS) -q tag -c `echo "release-$(VERSION)" | sed 's/\./-/g'`
## Generate signatures and directives for FSF ftp-upload:
ofile="$(PACKAGE)-$(VERSION).tar.gz"; \
This fixes release procedure problems discovered whilst making the 1.5.2 release. * Makefile.am (cvs-dist): Because we check whether ChangeLog has been committed, this rule can't be run with uncommitted source so we can't run 'commit' and don't need to run 'make dist' a second time. Fix CVS tag as it should be "release-X" not "Release-X". (cvs_commit): New rule for the cvs-release chain that runs 'commit' (cvs-release): Depend on cvs-commit, depend on deltas instead of cvs-diff and xdelta. (cvs-diff): Removed, replaced with delta-diff. (delta-diff): Unpack and diff the old and new tarballs rather than using CVS, so we get a genuinely complete diff. (xdelta): Removed, replaced with delta-xdelta. (got-xdelta): New rule for improved reading. (delta-xdiff): Copied and cleaned up version of old xdelta rule. (deltas): Depends on delta-diff and delta-xdelta (make deltas). (cvs-news): Don't depend on timestamps, cvs-dist itself does now. (prev-tarball): This is the only place we need a LASTRELEASE check so copy the code here and remove the CHECK_RELEASE variable. (new-tarball): Check there's a new tarball (did cvs-dist work?) (FETCHFILES): Remove obsolete libltdl mentions. * README-alpha: Update CVS instructions as everything's changed on Savannah. (Release procedure): Update NEWS and ChangeLog after changing the version number (both times); Run 'make fetch' after running 'configure' (difficult to do it beforehand); Require 'commit' before 'make cvs-dist' as that checks ChangeLog is committed; 'make deltas' instead of 'cvs-diff' and 'xdelta', pass LASTRELEASE to make instead of OLDVERSION (and it's mandatory); Clean up uploading paragraph; Clearer announcement sending instruction; Removed ftp-upload@gnu.org mail as that's not necessary now; Make web page updating instructions a bit clearer; Add an instruction to update the manual for non-alphas. (Alpha release note template): Add a Subject; update CVS instructions. (Full release note template): Add a Subject; update CVS instructions. * configure.ac: Add dist-bzip2 to AM_INIT_AUTOMAKE as we talk about bz2 files in our release announcements; remove old reference to OLDVERSION.
2004-01-27 20:38:47 +08:00
$(GPG) --detach-sign $$ofile \
&& echo "directory: libtool" > $$ofile.directive \
&& $(GPG) --clearsign $$ofile.directive \
&& rm -f $$ofile.directive
This fixes release procedure problems discovered whilst making the 1.5.2 release. * Makefile.am (cvs-dist): Because we check whether ChangeLog has been committed, this rule can't be run with uncommitted source so we can't run 'commit' and don't need to run 'make dist' a second time. Fix CVS tag as it should be "release-X" not "Release-X". (cvs_commit): New rule for the cvs-release chain that runs 'commit' (cvs-release): Depend on cvs-commit, depend on deltas instead of cvs-diff and xdelta. (cvs-diff): Removed, replaced with delta-diff. (delta-diff): Unpack and diff the old and new tarballs rather than using CVS, so we get a genuinely complete diff. (xdelta): Removed, replaced with delta-xdelta. (got-xdelta): New rule for improved reading. (delta-xdiff): Copied and cleaned up version of old xdelta rule. (deltas): Depends on delta-diff and delta-xdelta (make deltas). (cvs-news): Don't depend on timestamps, cvs-dist itself does now. (prev-tarball): This is the only place we need a LASTRELEASE check so copy the code here and remove the CHECK_RELEASE variable. (new-tarball): Check there's a new tarball (did cvs-dist work?) (FETCHFILES): Remove obsolete libltdl mentions. * README-alpha: Update CVS instructions as everything's changed on Savannah. (Release procedure): Update NEWS and ChangeLog after changing the version number (both times); Run 'make fetch' after running 'configure' (difficult to do it beforehand); Require 'commit' before 'make cvs-dist' as that checks ChangeLog is committed; 'make deltas' instead of 'cvs-diff' and 'xdelta', pass LASTRELEASE to make instead of OLDVERSION (and it's mandatory); Clean up uploading paragraph; Clearer announcement sending instruction; Removed ftp-upload@gnu.org mail as that's not necessary now; Make web page updating instructions a bit clearer; Add an instruction to update the manual for non-alphas. (Alpha release note template): Add a Subject; update CVS instructions. (Full release note template): Add a Subject; update CVS instructions. * configure.ac: Add dist-bzip2 to AM_INIT_AUTOMAKE as we talk about bz2 files in our release announcements; remove old reference to OLDVERSION.
2004-01-27 20:38:47 +08:00
.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
This fixes release procedure problems discovered whilst making the 1.5.2 release. * Makefile.am (cvs-dist): Because we check whether ChangeLog has been committed, this rule can't be run with uncommitted source so we can't run 'commit' and don't need to run 'make dist' a second time. Fix CVS tag as it should be "release-X" not "Release-X". (cvs_commit): New rule for the cvs-release chain that runs 'commit' (cvs-release): Depend on cvs-commit, depend on deltas instead of cvs-diff and xdelta. (cvs-diff): Removed, replaced with delta-diff. (delta-diff): Unpack and diff the old and new tarballs rather than using CVS, so we get a genuinely complete diff. (xdelta): Removed, replaced with delta-xdelta. (got-xdelta): New rule for improved reading. (delta-xdiff): Copied and cleaned up version of old xdelta rule. (deltas): Depends on delta-diff and delta-xdelta (make deltas). (cvs-news): Don't depend on timestamps, cvs-dist itself does now. (prev-tarball): This is the only place we need a LASTRELEASE check so copy the code here and remove the CHECK_RELEASE variable. (new-tarball): Check there's a new tarball (did cvs-dist work?) (FETCHFILES): Remove obsolete libltdl mentions. * README-alpha: Update CVS instructions as everything's changed on Savannah. (Release procedure): Update NEWS and ChangeLog after changing the version number (both times); Run 'make fetch' after running 'configure' (difficult to do it beforehand); Require 'commit' before 'make cvs-dist' as that checks ChangeLog is committed; 'make deltas' instead of 'cvs-diff' and 'xdelta', pass LASTRELEASE to make instead of OLDVERSION (and it's mandatory); Clean up uploading paragraph; Clearer announcement sending instruction; Removed ftp-upload@gnu.org mail as that's not necessary now; Make web page updating instructions a bit clearer; Add an instruction to update the manual for non-alphas. (Alpha release note template): Add a Subject; update CVS instructions. (Full release note template): Add a Subject; update CVS instructions. * configure.ac: Add dist-bzip2 to AM_INIT_AUTOMAKE as we talk about bz2 files in our release announcements; remove old reference to OLDVERSION.
2004-01-27 20:38:47 +08:00
.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
This fixes release procedure problems discovered whilst making the 1.5.2 release. * Makefile.am (cvs-dist): Because we check whether ChangeLog has been committed, this rule can't be run with uncommitted source so we can't run 'commit' and don't need to run 'make dist' a second time. Fix CVS tag as it should be "release-X" not "Release-X". (cvs_commit): New rule for the cvs-release chain that runs 'commit' (cvs-release): Depend on cvs-commit, depend on deltas instead of cvs-diff and xdelta. (cvs-diff): Removed, replaced with delta-diff. (delta-diff): Unpack and diff the old and new tarballs rather than using CVS, so we get a genuinely complete diff. (xdelta): Removed, replaced with delta-xdelta. (got-xdelta): New rule for improved reading. (delta-xdiff): Copied and cleaned up version of old xdelta rule. (deltas): Depends on delta-diff and delta-xdelta (make deltas). (cvs-news): Don't depend on timestamps, cvs-dist itself does now. (prev-tarball): This is the only place we need a LASTRELEASE check so copy the code here and remove the CHECK_RELEASE variable. (new-tarball): Check there's a new tarball (did cvs-dist work?) (FETCHFILES): Remove obsolete libltdl mentions. * README-alpha: Update CVS instructions as everything's changed on Savannah. (Release procedure): Update NEWS and ChangeLog after changing the version number (both times); Run 'make fetch' after running 'configure' (difficult to do it beforehand); Require 'commit' before 'make cvs-dist' as that checks ChangeLog is committed; 'make deltas' instead of 'cvs-diff' and 'xdelta', pass LASTRELEASE to make instead of OLDVERSION (and it's mandatory); Clean up uploading paragraph; Clearer announcement sending instruction; Removed ftp-upload@gnu.org mail as that's not necessary now; Make web page updating instructions a bit clearer; Add an instruction to update the manual for non-alphas. (Alpha release note template): Add a Subject; update CVS instructions. (Full release note template): Add a Subject; update CVS instructions. * configure.ac: Add dist-bzip2 to AM_INIT_AUTOMAKE as we talk about bz2 files in our release announcements; remove old reference to OLDVERSION.
2004-01-27 20:38:47 +08:00
.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
This fixes release procedure problems discovered whilst making the 1.5.2 release. * Makefile.am (cvs-dist): Because we check whether ChangeLog has been committed, this rule can't be run with uncommitted source so we can't run 'commit' and don't need to run 'make dist' a second time. Fix CVS tag as it should be "release-X" not "Release-X". (cvs_commit): New rule for the cvs-release chain that runs 'commit' (cvs-release): Depend on cvs-commit, depend on deltas instead of cvs-diff and xdelta. (cvs-diff): Removed, replaced with delta-diff. (delta-diff): Unpack and diff the old and new tarballs rather than using CVS, so we get a genuinely complete diff. (xdelta): Removed, replaced with delta-xdelta. (got-xdelta): New rule for improved reading. (delta-xdiff): Copied and cleaned up version of old xdelta rule. (deltas): Depends on delta-diff and delta-xdelta (make deltas). (cvs-news): Don't depend on timestamps, cvs-dist itself does now. (prev-tarball): This is the only place we need a LASTRELEASE check so copy the code here and remove the CHECK_RELEASE variable. (new-tarball): Check there's a new tarball (did cvs-dist work?) (FETCHFILES): Remove obsolete libltdl mentions. * README-alpha: Update CVS instructions as everything's changed on Savannah. (Release procedure): Update NEWS and ChangeLog after changing the version number (both times); Run 'make fetch' after running 'configure' (difficult to do it beforehand); Require 'commit' before 'make cvs-dist' as that checks ChangeLog is committed; 'make deltas' instead of 'cvs-diff' and 'xdelta', pass LASTRELEASE to make instead of OLDVERSION (and it's mandatory); Clean up uploading paragraph; Clearer announcement sending instruction; Removed ftp-upload@gnu.org mail as that's not necessary now; Make web page updating instructions a bit clearer; Add an instruction to update the manual for non-alphas. (Alpha release note template): Add a Subject; update CVS instructions. (Full release note template): Add a Subject; update CVS instructions. * configure.ac: Add dist-bzip2 to AM_INIT_AUTOMAKE as we talk about bz2 files in our release announcements; remove old reference to OLDVERSION.
2004-01-27 20:38:47 +08:00
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
This fixes release procedure problems discovered whilst making the 1.5.2 release. * Makefile.am (cvs-dist): Because we check whether ChangeLog has been committed, this rule can't be run with uncommitted source so we can't run 'commit' and don't need to run 'make dist' a second time. Fix CVS tag as it should be "release-X" not "Release-X". (cvs_commit): New rule for the cvs-release chain that runs 'commit' (cvs-release): Depend on cvs-commit, depend on deltas instead of cvs-diff and xdelta. (cvs-diff): Removed, replaced with delta-diff. (delta-diff): Unpack and diff the old and new tarballs rather than using CVS, so we get a genuinely complete diff. (xdelta): Removed, replaced with delta-xdelta. (got-xdelta): New rule for improved reading. (delta-xdiff): Copied and cleaned up version of old xdelta rule. (deltas): Depends on delta-diff and delta-xdelta (make deltas). (cvs-news): Don't depend on timestamps, cvs-dist itself does now. (prev-tarball): This is the only place we need a LASTRELEASE check so copy the code here and remove the CHECK_RELEASE variable. (new-tarball): Check there's a new tarball (did cvs-dist work?) (FETCHFILES): Remove obsolete libltdl mentions. * README-alpha: Update CVS instructions as everything's changed on Savannah. (Release procedure): Update NEWS and ChangeLog after changing the version number (both times); Run 'make fetch' after running 'configure' (difficult to do it beforehand); Require 'commit' before 'make cvs-dist' as that checks ChangeLog is committed; 'make deltas' instead of 'cvs-diff' and 'xdelta', pass LASTRELEASE to make instead of OLDVERSION (and it's mandatory); Clean up uploading paragraph; Clearer announcement sending instruction; Removed ftp-upload@gnu.org mail as that's not necessary now; Make web page updating instructions a bit clearer; Add an instruction to update the manual for non-alphas. (Alpha release note template): Add a Subject; update CVS instructions. (Full release note template): Add a Subject; update CVS instructions. * configure.ac: Add dist-bzip2 to AM_INIT_AUTOMAKE as we talk about bz2 files in our release announcements; remove old reference to OLDVERSION.
2004-01-27 20:38:47 +08:00
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