summaryrefslogtreecommitdiff
path: root/NG-NEWS
diff options
context:
space:
mode:
authorStefano Lattarini <stefano.lattarini@gmail.com>2012-08-12 20:58:17 +0200
committerStefano Lattarini <stefano.lattarini@gmail.com>2012-08-13 17:32:06 +0200
commit080905d5f9ced80db683ba2b28a0c61940159ab4 (patch)
tree7f8817f98f8bee0e149107ec50560f512a297a29 /NG-NEWS
parentc3408fea2205b82df473c8655e3c37e8c43333e2 (diff)
downloadautomake-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-NEWS48
1 files changed, 39 insertions, 9 deletions
diff --git a/NG-NEWS b/NG-NEWS
index 8f3cf72b8..129da68ae 100644
--- a/NG-NEWS
+++ b/NG-NEWS
@@ -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