d11343532d
We should generate a ChangeLog for each minor version cycle, starting from the Git import date (since before that we used ChangeLog-style commit messages that don't really look good with the Git ones). For this reason we can take Cairo's Makefile.am.changelog file and, after tweaking it to fit our use case, let it generate the correct ChangeLogs on dist.
79 lines
2.6 KiB
Makefile
79 lines
2.6 KiB
Makefile
# Taken from Cairo - build/Makefile.am.changelog
|
|
# Modified to fit the Clutter build environment
|
|
|
|
CURR_CHANGELOG_VERSION=$(CLUTTER_MAJOR_VERSION).$$(echo "($(CLUTTER_MINOR_VERSION)+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[.]\?$$/git-import/;s/[.]$$/.0/')
|
|
|
|
CHANGELOGS = ChangeLog \
|
|
`version=$(CURR_CHANGELOG_VERSION); \
|
|
version=$(PREV_CHANGELOG_VERSION); \
|
|
while test "x$$version" != xgit-import; do \
|
|
echo ChangeLog.pre-$$version; \
|
|
version=$(PREV_CHANGELOG_VERSION); \
|
|
done`
|
|
|
|
MAINTAINERCLEANFILES += $(srcdir)/ChangeLog $(srcdir)/ChangeLog.pre-*
|
|
CLEANFILES += $(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 $@ && \
|
|
{ echo '# Generated by configure. Do not edit.'; echo; \
|
|
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 || to=$$to.0; \
|
|
test "x$$from" = xgit-import || from=$$from.0; \
|
|
spec=$$from..$$to; \
|
|
fi; \
|
|
$(top_srcdir)/build/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
|