summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefano Lattarini <stefano.lattarini@gmail.com>2011-12-28 10:50:37 +0100
committerStefano Lattarini <stefano.lattarini@gmail.com>2011-12-28 10:50:37 +0100
commit47b0a251e64d467cd30b0d3d2210f7a456851c9b (patch)
tree7f9e0e45006f22941731c98b51d30e10542949c9
parent4eb17acdd0f880faf94ddec41a2c063ebbcf993b (diff)
parente6fa05e7c7df67117138bf131e1599b346213bd0 (diff)
downloadautomake-47b0a251e64d467cd30b0d3d2210f7a456851c9b.tar.gz
Merge branch 'maint'
* maint: maint: autogenerate ChangeLog
-rw-r--r--.gitignore1
-rw-r--r--ChangeLog.11 (renamed from ChangeLog)0
-rw-r--r--Makefile.am38
3 files changed, 39 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index 007475929..a1e84be39 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
Makefile.in
Makefile
+/ChangeLog
/aclocal.m4
/configure
/autom4te.cache
diff --git a/ChangeLog b/ChangeLog.11
index 252dd18db..252dd18db 100644
--- a/ChangeLog
+++ b/ChangeLog.11
diff --git a/Makefile.am b/Makefile.am
index bf2eeb69e..f3638dd48 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -44,6 +44,7 @@ EXTRA_DIST = \
ChangeLog.03 \
ChangeLog.04 \
ChangeLog.09 \
+ ChangeLog.11 \
bootstrap \
$(AUTOMAKESOURCES)
@@ -130,6 +131,43 @@ recheck:
## to anybody else
##
+gitlog_to_changelog_command = $(PERL) $(srcdir)/lib/gitlog-to-changelog
+gitlog_to_changelog_options = --since='2011-12-28 00:00:00'
+
+# Automatic generation of the ChangeLog from git history.
+#
+# When executed from a git checkout, generate the ChangeLog from the git
+# history. When executed from an extracted distribution tarball, just
+# copy the distributed ChangeLog in the build directory (and if this
+# fails, or if no distributed ChangeLog file is present, complain and
+# give an error).
+#
+# We need the apparently useless dependency from another .PHONY target
+# `am--changelog-regen-hook' to work around a bug of Solaris make, which
+# doesn't execute the recipe of a target named as an existing file, even
+# if such target is declared `.PHONY' (yikes!)
+#
+.PHONY: am--changelog-regen-hook
+am--changelog-regen-hook:
+ChangeLog: am--changelog-regen-hook
+ $(AM_V_GEN)set -e; set -u; \
+## The ChangeLog should be regenerated unconditionally when working from
+## checked-out sources; otherwise, if we're working from a distribution
+## tarball, we expect the ChangeLog to be distributed, so check that it
+## is indeed present in the source directory.
+ if test -d $(srcdir)/.git; then \
+ rm -f $@-t \
+ && $(gitlog_to_changelog_command) \
+ $(gitlog_to_changelog_options) >$@-t \
+ && chmod a-w $@-t \
+ && mv -f $@-t $@ \
+ || exit 1; \
+ elif test ! -f $(srcdir)/$@; then \
+ echo "Source tree is not a git checkout, and no pre-existent" \
+ "$@ file has been found there" >&2; \
+ exit 1; \
+ fi
+
# Ensure tests are world-executable
dist-hook:
$(am__cd) $(distdir)/tests && chmod a+rx *.test