Add a rule to generate ChangeLog
authorMatthias Clasen <mclasen@redhat.com>
Fri, 3 Apr 2009 03:42:29 +0000 (23:42 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 3 Apr 2009 03:42:29 +0000 (23:42 -0400)
We use the same rule pango uses to create a ChangeLog file with
the help of git-log. The format is somewhat different from traditional
ChangeLog, but it contains the relevant information.

Makefile.am

index 1498acb..8973778 100644 (file)
@@ -15,6 +15,9 @@ AM_CPPFLAGS =                                         \
        -DGLIB_COMPILATION
 
 EXTRA_DIST +=                  \
+       ChangeLog.pre-2-20      \
+       ChangeLog.pre-2-18      \
+       ChangeLog.pre-2-16      \
        ChangeLog.pre-2-14      \
        ChangeLog.pre-2-12      \
        ChangeLog.pre-2-10      \
@@ -56,13 +59,14 @@ EXTRA_DIST +=                       \
        gthread-2.0-uninstalled.pc.in   \
        gmodule-no-export-2.0-uninstalled.pc.in \
        gio-2.0-uninstalled.pc.in               \
-       gio-unix-2.0-uninstalled.pc.in  
+       gio-unix-2.0-uninstalled.pc.in
 
 
 # These may be in the builddir too
 BUILT_EXTRA_DIST =             \
        README                  \
        INSTALL                 \
+       ChangeLog               \
        glibconfig.h.win32      \
        config.h.win32          \
        gtk-doc.make
@@ -83,6 +87,20 @@ stamp-gc-h: config.status
        cd $(top_builddir) && $(SHELL) ./config.status glibconfig.h
        echo timestamp > stamp-gc-h
 
+ChangeLog:
+       @echo Creating $@
+       @if test -d "$(srcdir)/.git"; then \
+         (GIT_DIR=$(top_srcdir)/.git ./missing --run git log GLIB_2_20_0^^.. --stat) | fmt --split-only > $@.tmp \
+         && mv -f $@.tmp $@ \
+         || ($(RM) $@.tmp; \
+             echo Failed to generate ChangeLog, your ChangeLog may be outdated >&2; \
+             (test -f $@ || echo git-log is required to generate this file >> $@)); \
+       else \
+         test -f $@ || \
+         (echo A git checkout and git-log is required to generate ChangeLog >&2 && \
+         echo A git checkout and git-log is required to generate this file >> $@); \
+       fi
+
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = glib-2.0.pc gobject-2.0.pc gmodule-2.0.pc gmodule-export-2.0.pc gmodule-no-export-2.0.pc gthread-2.0.pc gio-2.0.pc gio-unix-2.0.pc
 
@@ -102,7 +120,7 @@ distclean-local:
            rm -f $(BUILT_EXTRA_DIST); \
        fi
 
-.PHONY: files release sanity snapshot
+.PHONY: files release sanity snapshot ChangeLog
 
 files:
        @files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \