diff options
author | Stefano Lattarini <stefano.lattarini@gmail.com> | 2012-08-12 20:58:17 +0200 |
---|---|---|
committer | Stefano Lattarini <stefano.lattarini@gmail.com> | 2012-08-13 17:32:06 +0200 |
commit | 080905d5f9ced80db683ba2b28a0c61940159ab4 (patch) | |
tree | 7f8817f98f8bee0e149107ec50560f512a297a29 /NG-NEWS | |
parent | c3408fea2205b82df473c8655e3c37e8c43333e2 (diff) | |
download | automake-080905d5f9ced80db683ba2b28a0c61940159ab4.tar.gz |
[ng] dist: new internal API to specify formats of distribution tarballs
The API to specify the formats of distribution tarballs has been changed
completely, in a BACKWARD-INCOMPATIBLE way.
Instead of using the various 'dist-*' automake options, the developer is
now expected to specify the default formats of its distribution tarballs
with the special variable AM_DIST_FORMATS; for example, where once would
have been:
AM_INIT_AUTOMAKE([dist-bzip2 dist-zip])
now it must be:
AM_DIST_FORMATS = gzip bzip2 zip
and similarly, where once would have been:
AUTOMAKE_OPTIONS = no-dist-gzip dist-bzip2 dist-xz
now is it simply:
AM_DIST_FORMATS = bzip2 xz
Similarly, The various 'dist-*' targets (dist-gzip, dist-xz, dist-lzip,
dist-bzip2 and dist-gz) has been removed. If the user wants to generate
tarballs for formats not specified by the default AM_DIST_FORMATS, he can
simply override that variable dynamically:
# Will generate a '.zip' archive and a '.tar.xz' archive, and not
# further ones.
make dist AM_DIST_FORMATS='zip xz'
This change is of course is totally backward incompatible, but the
enhanced flexibility and simplicity is worth it. Not to mention that
the transition from the mainline Automake API to the new Automake-NG
one is trivial.
* NG-NEWS: Update.
* ng/automake-ng.texi: Likewise.
* configure.ac (AM_INIT_AUTOMAKE): Drop the 'dist-xz' option. While
at it, drop the 'color-tests' option (now on by default, even in
coming-soon Automake 1.13) and add the 'ng' option (mostly for some
showing-off :-).
* t/ax/am-test-lib.sh: Also unset 'AM_DIST_FORMATS'.
* Makefile.am (AM_DIST_FORMATS): New, containing 'gzip' ad 'xz' (so
that we distribute the same formats we did before).
* lib/am/distcheck.mk (AM_DIST_FORMATS): New, defaulting to 'gzip'.
(am.dist.bad-targets): New, list invalid entries of $(AM_DIST_FORMATS).
Error out with a suitable message if that variable is non-empty.
Rename all the 'dist-*' targets, once public, to '.am/dist-*' (which
are private). Adjust their rules.
(am.dist.all-targets): Adjust to said 'dist-*' => '.am/dist-*'
renaming.
(am.dist.default-targets): New, defined from $(AM_DIST_FORMATS).
(dist, dist-all): Rewritten to rely on dependencies rather than on
recursive make invocation (the new API allows us to do so easily).
Other minor related adjustments.
(distcheck): Use $(AM_DIST_FORMATS) instead of $(am.dist.formats)
in the recipe.
* automake.in (handle_dist): Drop analysis of the various 'dist-*'
options, and of the 'no-dist-gzip' one; don't define the internal
make variable 'am.dist.formats'.
* lib/Automake/Options.pm (_is_valid_easy_option): Recognize the
various 'dist-*' options and the 'no-dist-gzip' one no more.
(_process_option_list): Explicitly reject them (to give better
diagnostic).
* t/dist-obsolete-opts.sh: New, check such diagnostic.
* t/dist-obsolete.sh: Remove as obsolete.
* t/repeated-options.sh: Minor adjustments to avoid spurious
failures.
* t/dist-formats.tap: Adjust heavily (almost a complete rewrite).
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Diffstat (limited to 'NG-NEWS')
-rw-r--r-- | NG-NEWS | 48 |
1 files changed, 39 insertions, 9 deletions
@@ -212,24 +212,54 @@ Distribution EXTRA_DIST = $(wildcard doc/*.txt $(srcdir)/doc/*.txt) # Better. -* The make variables $(DISTFILES), $(DIST_COMMON), $(DIST_SOURCES), - $(DIST_TARGETS), $(DIST_ARCHIVES) had never been documented - in mainline Automake, and were always intended to be internal - variables. But that was not clear from their names. So we have - renamed rename like this: +* The make variables $(DISTFILES), $(DIST_COMMON), $(DIST_SOURCES) and + $(DIST_ARCHIVES) had never been documented in mainline Automake, and + were always intended to be internal variables. But that was not clear + from their names. So we have renamed rename like this: DISTFILES => am.dist.all-files DIST_COMMON => am.dist.common-files DIST_SOURCES => am.dist.sources - DIST_TARGETS => am.dist.default-targets DIST_ARCHIVES => am.dist.default-archives Do not use any of these variables in your Makefiles! * Support for distribution archived in the '.shar.gz' and '.tar.Z' formats - have been removed. Accordingly, the targets 'dist-shar' and 'dist-tarZ' - are no more present in the generated Makefiles, and the use of the - Automake options 'dist-shar' and 'dist-tarZ' will elicit a fatal error. + have been removed; and with them the targets 'dist-shar' and 'dist-tarZ'. + +* The API to specify the formats of distribution tarballs has been changed + completely. + + Instead of using the various 'dist-*' automake options, the developer is + now expected to specify the default formats of its distribution tarballs + with the special variable AM_DIST_FORMATS; for example, where once would + have been: + + AM_INIT_AUTOMAKE([dist-bzip2 dist-zip]) + + now it must be: + + AM_DIST_FORMATS = gzip bzip2 zip + + and similarly, where once would have been: + + AUTOMAKE_OPTIONS = no-dist-gzip dist-bzip2 dist-xz + + now is it simply: + + AM_DIST_FORMATS = bzip2 xz + +* The various 'dist-*' targets (dist-gzip, dist-xz, dist-lzip, dist-bzip2 + and dist-gz) has been removed. If the user wants to generate tarballs + for formats not specified by the default AM_DIST_FORMATS, he can simply + override that variable dynamically: + + # Will generate a '.zip' archive and a '.tar.xz' archive, and not + # further ones. + make dist AM_DIST_FORMATS='zip xz' + +* The DIST_TARGETS variable has been removed (as a side-effect of the + previous change). Obsolete Features Removed |