From b3597047475134a08eaf301d62c2e61b332690a9 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Thu, 19 Jan 2012 09:07:02 +0100 Subject: [PATCH] maint: generate ChangeLog from git log * Makefile.am (gen-ChangeLog): New rule. (dist-hook): Depend on it. (EXTRA_DIST): Distribute the two ChangeLog-* files. * bootstrap.conf (gnulib_modules): Add gitlog-to-changelog. (bootstrap_post_import_hook): Ensure that ChangeLog exists. * build-aux/git-log-fix: New file. * ChangeLog-2012: Renamed ... * ChangeLog: ... from this. * ChangeLog-1998: Renamed ... * OChangeLog: ...from this * .gitignore: Add ChangeLog. (cherry picked from commit 5ef4a3c71cfd6c07e71462944281c284780312c1) Conflicts: Makefile.am bootstrap.conf build-aux/.gitignore --- .gitignore | 3 +-- OChangeLog => ChangeLog-1998 | 0 ChangeLog => ChangeLog-2012 | 0 Makefile.am | 19 +++++++++++++++---- bootstrap.conf | 11 ++++++++++- build-aux/.gitignore | 3 +-- build-aux/git-log-fix | 3 +++ m4/.gitignore | 1 + 8 files changed, 31 insertions(+), 9 deletions(-) rename OChangeLog => ChangeLog-1998 (100%) rename ChangeLog => ChangeLog-2012 (100%) create mode 100644 build-aux/git-log-fix diff --git a/.gitignore b/.gitignore index 27f9b06d..a2ac6ced 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ - /*.cache /*.flc /*.prj @@ -7,6 +6,7 @@ /.version /ABOUT-NLS /COPYING +/ChangeLog /GNUmakefile /INSTALL /Makefile @@ -31,4 +31,3 @@ /patches /releases /stamp-h* - diff --git a/OChangeLog b/ChangeLog-1998 similarity index 100% rename from OChangeLog rename to ChangeLog-1998 diff --git a/ChangeLog b/ChangeLog-2012 similarity index 100% rename from ChangeLog rename to ChangeLog-2012 diff --git a/Makefile.am b/Makefile.am index ffc7766a..20f1e2d0 100644 --- a/Makefile.am +++ b/Makefile.am @@ -23,14 +23,13 @@ SUBDIRS = build-aux po runtime-po lib data src doc examples tests etc aclocaldir = @aclocaldir@ aclocal_DATA = m4/bison-i18n.m4 -EXTRA_DIST = .prev-version .version cfg.mk \ - OChangeLog PACKAGING \ +EXTRA_DIST = .prev-version .version \ + cfg.mk ChangeLog-1998 ChangeLog-2012 PACKAGING \ djgpp/Makefile.maint djgpp/README.in djgpp/config.bat \ djgpp/config.sed djgpp/config.site djgpp/config_h.sed \ djgpp/subpipe.c djgpp/subpipe.h djgpp/djunpack.bat \ djgpp/fnchange.lst djgpp/testsuite.sed - .PHONY: maintainer-check maintainer-check: cd tests && $(MAKE) $(AM_MAKEFLAGS) $@ @@ -55,7 +54,7 @@ maintainer-xml-check: BUILT_SOURCES = $(top_srcdir)/.version $(top_srcdir)/.version: configure echo $(VERSION) > $@-t && mv $@-t $@ -dist-hook: +dist-hook: gen-ChangeLog echo $(VERSION) > $(distdir)/.tarball-version .PHONY: update-b4-copyright update-package-copyright-year @@ -66,3 +65,15 @@ update-b4-copyright: @echo 'warning: src/parse-gram.[hc] may need to be regenerated.' update-package-copyright-year: $(build_aux)/$@ configure.ac + +gen_start_date = 2012-01-16 +.PHONY: gen-ChangeLog +gen-ChangeLog: + $(AM_V_GEN)if test -d .git; then \ + $(top_srcdir)/build-aux/gitlog-to-changelog \ + --no-cluster \ + --amend=$(srcdir)/build-aux/git-log-fix \ + --since=$(gen_start_date) > $(distdir)/cl-t; \ + rm -f $(distdir)/ChangeLog; \ + mv $(distdir)/cl-t $(distdir)/ChangeLog; \ + fi diff --git a/bootstrap.conf b/bootstrap.conf index 0f8487bb..90ba6e56 100644 --- a/bootstrap.conf +++ b/bootstrap.conf @@ -19,7 +19,8 @@ gnulib_modules=' announce-gen argmatch assert calloc-posix close config-h c-strcase configmake dirname error extensions fdl fopen-safer gendocs getopt-gnu - gettext git-version-gen gpl-3.0 hash inttypes isnan javacomp-script + gettext git-version-gen gitlog-to-changelog + gpl-3.0 hash inttypes isnan javacomp-script javaexec-script ldexpl maintainer-makefile malloc-gnu mbschr mbsrchr mbswidth obstack perror pipe-posix quote quotearg realloc-posix spawn-pipe stdbool stpcpy strdup-posix strerror strtoul strverscmp @@ -60,6 +61,14 @@ excluded_files=' m4/visibility.m4 ' +gnulib_tool_option_extras='--symlink --makefile-name=gnulib.mk' + +bootstrap_post_import_hook() +{ + # Ensure that ChangeLog exists, for automake. + test -f ChangeLog || touch ChangeLog +} + bootstrap_epilogue() { # Make sure we don't need src/bison, which usually doesn't exist at diff --git a/build-aux/.gitignore b/build-aux/.gitignore index 582cc36b..f09add4f 100644 --- a/build-aux/.gitignore +++ b/build-aux/.gitignore @@ -1,4 +1,3 @@ - /Makefile /Makefile.in /announce-gen @@ -11,6 +10,7 @@ /depcomp /gendocs.sh /git-version-gen +/gitlog-to-changelog /install-sh /javacomp.sh.in /javaexec.sh.in @@ -23,4 +23,3 @@ /vc-list-files /warn-on-use.h /ylwrap - diff --git a/build-aux/git-log-fix b/build-aux/git-log-fix new file mode 100644 index 00000000..af702fe6 --- /dev/null +++ b/build-aux/git-log-fix @@ -0,0 +1,3 @@ +# This file is expected to be used via gitlog-to-changelog's --amend=FILE +# option. It specifies what changes to make to each given SHA1's commit +# log and metadata, using Perl-eval'able expressions. diff --git a/m4/.gitignore b/m4/.gitignore index c50ed39a..f46e1646 100644 --- a/m4/.gitignore +++ b/m4/.gitignore @@ -166,3 +166,4 @@ /raise.m4 /ssize_t.m4 /strerror_r.m4 +/gnulib-comp.m4 -- 2.45.2