[easytag/wip/ax-compile-warnings] Use AX_GENERATE_CHANGELOG



commit 86abd7921907b1cb66a2245a14f1da1545a15045
Author: David King <amigadave amigadave com>
Date:   Wed Feb 4 08:28:32 2015 +0000

    Use AX_GENERATE_CHANGELOG
    
    Use the upstream autconf archive ChangeLog generation macro, rather than
    a custom equivalent.

 Makefile.am                 |   13 +----
 configure.ac                |    2 +
 m4/ax_generate_changelog.m4 |   99 +++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 104 insertions(+), 10 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index 13eeede..4857525 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -541,15 +541,8 @@ clean-local-dstamp:
        -rm -f data/.dstamp
        -rm -f tests/.dstamp
 
-git-changelog-hook:
-       $(AM_V_at)if $(top_srcdir)/build-aux/missing --run git \
-               --git-dir=$(top_srcdir)/.git --work-tree=$(top_srcdir) log \
-               --stat -M -C --name-status --no-color \
-               | fmt --split-only >.ChangeLog.tmp; \
-       then mv -f .ChangeLog.tmp "$(top_distdir)/ChangeLog"; \
-       else rm -f .ChangeLog.tmp; exit 1; fi
+ GENERATE_CHANGELOG_RULES@
+dist-hook: dist-ChangeLog
 
-dist-hook: git-changelog-hook
-
-.PHONY: clean-local-dstamp git-changelog-hook
+.PHONY: clean-local-dstamp
 .PHONY: test test-report perf-report full-report
diff --git a/configure.ac b/configure.ac
index 50e2a2e..bc4682e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -47,6 +47,8 @@ AC_PROG_CXXCPP
 AC_PROG_SED
 PKG_PROG_PKG_CONFIG([0.24])
 
+AX_GENERATE_CHANGELOG
+
 AC_SUBST([GLIB_COMPILE_RESOURCES], [`$PKG_CONFIG --variable glib_compile_resources gio-2.0`])
 
 AC_PATH_PROG([GDK_PIXBUF_PIXDATA], [gdk-pixbuf-pixdata])
diff --git a/m4/ax_generate_changelog.m4 b/m4/ax_generate_changelog.m4
new file mode 100644
index 0000000..a740955
--- /dev/null
+++ b/m4/ax_generate_changelog.m4
@@ -0,0 +1,99 @@
+# ===============================================================================
+#     http://www.gnu.org/software/autoconf-archive/ax_generate_changelog.html
+# ===============================================================================
+#
+# SYNOPSIS
+#
+#   AX_GENERATE_CHANGELOG()
+#
+# DESCRIPTION
+#
+#   Builds a rule for generating a ChangeLog file from version control system
+#   commit messages.  Currently, the only supported VCS is git, but support
+#   for others could be added in future.
+#
+#   Defines GENERATE_CHANGELOG_RULES which should be substituted in your
+#   Makefile.
+#
+#   Usage example:
+#
+#   configure.ac:
+#
+#     AX_GENERATE_CHANGELOG
+#
+#   Makefile.am:
+#
+#     @GENERATE_CHANGELOG_RULES@
+#     CHANGELOG_START = 0.2.3^
+#     dist-hook: dist-ChangeLog
+#
+#   ChangeLog (stub committed to VCS):
+#
+#     The ChangeLog is auto-generated when releasing.
+#     If you are seeing this, use 'git log' for a detailed list of changes.
+#
+#   This results in a "dist-ChangeLog" rule being added to the Makefile.
+#   When run, "dist-ChangeLog" will generate a ChangeLog in the
+#   $(top_distdir), using $(CHANGELOG_GIT_FLAGS) to format the output from
+#   "git log" being run in $(CHANGELOG_GIT_DIR).
+#
+#   Unless Automake is initialised with the 'foreign' option, a dummy
+#   ChangeLog file must be committed to VCS in $(top_srcdir), containing the
+#   text above (for example).  It will be substituted by the automatically
+#   generated ChangeLog during "make dist".
+#
+# LICENSE
+#
+#   Copyright (c) 2015 David King <amigadave amigadave com>
+#   Copyright (c) 2015 Philip Withnall <philip withnall collabora co uk>
+#
+#   Copying and distribution of this file, with or without modification, are
+#   permitted in any medium without royalty provided the copyright notice
+#   and this notice are preserved.  This file is offered as-is, without any
+#   warranty.
+
+#serial 1
+
+AC_DEFUN([AX_GENERATE_CHANGELOG],[
+       # Find git, defaulting to the 'missing' script so the user gets a nice
+       # message if git is missing, rather than a plain 'command not found'.
+       AC_PATH_PROG([GIT],[git],[${am_missing_run}git])
+       AC_SUBST([GIT])
+
+       # Build the ChangeLog rules.
+       m4_pattern_allow([AM_V_GEN])
+GENERATE_CHANGELOG_RULES='
+# Generate ChangeLog
+#
+# Optional:
+#  - CHANGELOG_START: git commit ID or tag name to output changelogs from
+#    (exclusive). (Default: include all commits)
+#  - CHANGELOG_GIT_FLAGS: General flags to pass to git-log when generating the
+#    ChangeLog. (Default: various)
+#  - CHANGELOG_GIT_DIR: .git directory to use. (Default: $(top_srcdir)/.git)
+
+# git-specific
+CHANGELOG_GIT_FLAGS ?= --stat -M -C --name-status --no-color
+CHANGELOG_GIT_DIR ?= $(top_srcdir)/.git
+
+ifeq ($(CHANGELOG_START),)
+CHANGELOG_GIT_RANGE = 
+else
+CHANGELOG_GIT_RANGE = $(CHANGELOG_START)..
+endif
+
+# Generate a ChangeLog in $(top_distdir)
+dist-ChangeLog:
+       $(AM_V_GEN)if $(GIT) \
+               --git-dir=$(CHANGELOG_GIT_DIR) --work-tree=$(top_srcdir) log \
+               $(CHANGELOG_GIT_FLAGS) $(CHANGELOG_GIT_RANGE) \
+               | fmt --split-only >.ChangeLog.tmp; \
+       then mv -f .ChangeLog.tmp "$(top_distdir)/ChangeLog"; \
+       else rm -f .ChangeLog.tmp; exit 1; fi
+
+.PHONY: dist-ChangeLog
+'
+
+       AC_SUBST([GENERATE_CHANGELOG_RULES])
+       m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([GENERATE_CHANGELOG_RULES])])
+])


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]