[build] Fix the ChangeLog generation rule

The ChangeLog should only be generated by dist-hook and as a temporary
file to avoid overwriting the stub we use to direct people to the
commit log when cloning the repository.

When generated, the ChangeLog should be copied inside the distdir so
that the autotools will not freak out.
This commit is contained in:
Emmanuele Bassi 2009-02-19 17:15:04 +00:00
parent 01cf52c44c
commit 5643a47cb6

View File

@ -41,53 +41,40 @@ EXTRA_DIST = \
CLEANFILES = $(pcfiles)
DISTCLEANFILES =
DISTCLEANFILES = doltcompile doltlibtool
DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --enable-maintainer-flags
# Extra clean files so that maintainer-clean removes *everything*
MAINTAINERCLEANFILES = \
aclocal.m4 \
compile \
config.guess \
config.h.in \
config.sub \
configure \
depcomp \
gtk-doc.make \
install-sh \
ltmain.sh \
Makefile.in \
missing \
MAINTAINERCLEANFILES = \
aclocal.m4 \
compile \
config.guess \
config.h.in \
config.sub \
configure \
depcomp \
gtk-doc.make \
install-sh \
ltmain.sh \
Makefile.in \
missing \
$(NULL)
MAINTAINERCLEANFILES += $(srcdir)/ChangeLog
PREV_RELEASE=$(CLUTTER_MAJOR_VERSION).$$(echo "$(CLUTTER_MINOR_VERSION)-1" | bc)
CHANGELOGS = ChangeLog
changelogs:
@$(MAKE) $(AM_MAKEFLAGS) $(CHANGELOGS)
dist-hook: changelogs
changelogs="$(CHANGELOGS)"; \
for changelog in $$changelogs; \
do \
cp -f $(srcdir)/$$changelog $(distdir)/ 2>/dev/null || \
cp -f $$changelog $(distdir)/; \
done
$(srcdir)/ChangeLog:
@if test -d "$(top_srcdir)/.git"; \
dist-hook:
@if test -d "$(srcdir)/.git"; \
then \
to=""; \
from="$(PREV_RELEASE)"; \
echo Creating $@ && \
( echo '# Generated by configure. Do no edit.'; echo; \
$(top_srcdir)/missing --run perl $(top_srcdir)/build/gen-changelog.pl $$from.0..$$to ) > $@ ; \
echo Creating ChangeLog && \
( cd "$(top_srcdir)" && \
echo '# Generated by configure. Do no edit.'; echo; \
$(top_srcdir)/missing --run perl $(top_srcdir)/build/gen-changelog.pl $$from.0..$$to ) > ChangeLog.tmp \
&& mv -f ChangeLog.tmp $(top_distdir)/ChangeLog \
|| ( rm -f ChangeLog.tmp ; \
echo Failed to generate ChangeLog >&2 ); \
else \
echo A git checkout is required to generate $@; \
echo A git checkout is required to generate a ChangeLog >&2; \
fi
.PHONY: changelogs ChangeLog $(srcdir)/ChangeLog