diff options
author | Kristian Høgsberg <krh@redhat.com> | 2007-09-17 15:45:26 -0400 |
---|---|---|
committer | Kristian Høgsberg <krh@redhat.com> | 2007-09-18 10:22:58 -0400 |
commit | 8f8274e6e8db584c605906e5db750a2fc19d52b4 (patch) | |
tree | 02d4064f8c16cbd975e12eefc29c9c49ac983cfd | |
parent | 7cd2d276d1fe384236cda0b0309c36c3e1d65fab (diff) |
Add dist hook to generate ChangeLog.
Taken from cairo. It still need some tweaking.
-rw-r--r-- | ChangeLog.mk | 81 | ||||
-rw-r--r-- | Makefile.am | 4 | ||||
-rw-r--r-- | configure.ac | 2 |
3 files changed, 86 insertions, 1 deletions
diff --git a/ChangeLog.mk b/ChangeLog.mk new file mode 100644 index 00000000..99f5ed60 --- /dev/null +++ b/ChangeLog.mk @@ -0,0 +1,81 @@ +# Creating ChangeLog files from git log: + +# We always create a ChangeLog that contains the most recent changes, and +# multiple others for changes between major releases (other than the last such +# segment that we put in 'ChangeLog'. The old ones are named +# ChangeLog.pre-X.Y where X.Y is the version number of the major release. + +CURR_CHANGELOG_VERSION=$(CAIRO_VERSION_MAJOR).$$(echo "($(CAIRO_VERSION_MINOR)+1)/2*2" | bc) +# examines $version +PREV_CHANGELOG_VERSION=$$(if test "x$$(echo "($$version-0.1)*2/2"|bc)" = "x$$(echo "$$version*2/2"|bc)"; \ + then echo "$$version-$$(echo "$$version" | sed 's/[0-9]/0/g;s/[0-9]$$/2/')"; \ + else echo "$$version-1.0"; \ + fi | bc | sed 's/[.]0*/./;s/^0[.]\?$$/initial/;s/[.]$$/.0/') + +CHANGELOGS = ChangeLog \ + `version=$(CURR_CHANGELOG_VERSION); \ + version=$(PREV_CHANGELOG_VERSION); \ + while test "x$$version" != xinitial; do \ + echo ChangeLog.pre-$$version; \ + version=$(PREV_CHANGELOG_VERSION); \ + done` + +MAINTAINERCLEANFILES += $(srcdir)/ChangeLog $(srcdir)/ChangeLog.pre-* +DISTCLEANFILES += $(srcdir)/ChangeLog.cache-* + +changelogs: + @$(MAKE) $(AM_MAKEFLAGS) $(CHANGELOGS) + +dist-hook: changelogs + changelogs="$(CHANGELOGS)"; \ + for changelog in $$changelogs; do \ + cp $(srcdir)/$$changelog $(distdir)/ 2>/dev/null || \ + cp $$changelog $(distdir)/; \ + done + +$(srcdir)/ChangeLog: + @if test -d "$(srcdir)/.git"; then \ + version=$(CURR_CHANGELOG_VERSION); \ + prev=$(PREV_CHANGELOG_VERSION).0; \ + nearest_tag=`git-describe | sed 's/-.*//'`; \ + before=$(srcdir)/ChangeLog.cache-$$prev..$$nearest_tag; \ + after=$(srcdir)/ChangeLog.cache-$$nearest_tag..; \ + $(MAKE) $(AM_MAKEFLAGS) $$before $$after && \ + echo Creating $@ && \ + { cat $$after; echo; cat $$before; } > $@; \ + else \ + test -f $@ || \ + (echo A git checkout is required to generate $@ >&2 && \ + echo A git checkout is required to generate this file >> $@); \ + fi + +DISTCLEANFILES += ChangeLog.cache-* + +ChangeLog.cache-*..: .git + +ChangeLog%: $(srcdir)/ChangeLog% + +$(srcdir)/ChangeLog.cache-% $(srcdir)/ChangeLog.pre-%: + @echo Creating $@ + @if test -d "$(srcdir)/.git"; then \ + (cd "$(srcdir)" && \ + version=$$(echo "$@" | sed 's/.*ChangeLog\([.].*-\)\?//'); \ + if echo "$@" | grep -q '^ChangeLog[.]cache'; then \ + spec=$$version; \ + else \ + to=$$version; \ + test "x$$version" = x && version=$(CURR_CHANGELOG_VERSION); \ + from=$(PREV_CHANGELOG_VERSION); \ + test "x$$to" = x || version=$$version.0; \ + test "x$$from" = xinitial || from=$$from.0; \ + spec=$$from..$$to; \ + fi; \ + ./missing --run git-log --stat "$$spec") > $@.tmp \ + && mv -f $@.tmp $@ \ + || ($(RM) $@.tmp; \ + echo Failed to generate $@, your $@ may be outdated >&2); \ + else \ + echo A git checkout is required to generate $@ >&2; \ + fi + +.PHONY: changelogs ChangeLog $(srcdir)/ChangeLog diff --git a/Makefile.am b/Makefile.am index fda19b0f..3142b18d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -46,3 +46,7 @@ pkgconfig_DATA = \ $(glib_pc_file) \ $(qt_pc_file) \ $(qt4_pc_file) + +MAINTAINERCLEANFILES = +DISTCLEANFILES = +include ChangeLog.mk
\ No newline at end of file diff --git a/configure.ac b/configure.ac index 81c75c2a..4bdce05c 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ AC_PREREQ(2.59) AC_INIT(poppler, 0.6) -AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) +AM_INIT_AUTOMAKE([foreign]) AM_CONFIG_HEADER(config.h) AM_CONFIG_HEADER(poppler/poppler-config.h) |