250373a0f1
This adds some convenience rules to help manage releases
79 lines
2.5 KiB
Makefile
79 lines
2.5 KiB
Makefile
# Taken from Cairo - build/Makefile.am.changelog
|
|
# Modified to fit the Cogl build environment
|
|
|
|
CURR_CHANGELOG_VERSION=1.$$(echo "($(COGL_1_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[.]\?$$/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`
|
|
|
|
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" = xinitial || from=$$from.0; \
|
|
spec=$$from..$$to; \
|
|
fi; \
|
|
echo "spec=$$spec"; \
|
|
$(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
|