diff --git a/Makefile.in b/Makefile.in index e8780c22d4a..7ae81b0b217 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1091,17 +1091,15 @@ bootstrap: bootstrap-clean .PHONY: ChangeLog change-history change-history-commit change-history-nocommit .PHONY: master-branch-is-current unchanged-history-files -CHANGELOG = +CHANGELOG = ChangeLog emacslog = $(srcdir)/build-aux/gitlog-to-emacslog # Convert git commit log to ChangeLog file. make-dist uses this. # I guess this is PHONY because it generates in distprefix (which is # non-nil when called from make-dist)? -# FIXME: test -f does not respect distprefix. ChangeLog: - @[ -n "${CHANGELOG}" ] || test ! -f ChangeLog $(AM_V_GEN)distprefix=$(distprefix) srcprefix=$(srcdir)/ \ - $(emacslog) . $(CHANGELOG) + $(emacslog) -o $(CHANGELOG) # The ChangeLog history files are called ChangeLog.1, ChangeLog.2, ..., # ChangeLog.$(CHANGELOG_HISTORY_INDEX_MAX). $(CHANGELOG_N) stands for @@ -1119,6 +1117,7 @@ unchanged-history-files: # Copy newer commit messages to the start of the ChangeLog history file, # and consider them to be older. change-history-nocommit: master-branch-is-current unchanged-history-files + -rm -f ChangeLog.tmp $(MAKE) ChangeLog CHANGELOG=ChangeLog.tmp (sed '/^;; [L]ocal Variables:/,$$d' $(CHANGELOG_N).tmp diff --git a/build-aux/gitlog-to-emacslog b/build-aux/gitlog-to-emacslog index a657cce0b61..2e5741c16f6 100755 --- a/build-aux/gitlog-to-emacslog +++ b/build-aux/gitlog-to-emacslog @@ -24,15 +24,26 @@ export LC_ALL # The newest revision that should not appear in the generated ChangeLog. gen_origin=2c1b8604946efbcd8ec5dd6c6dda7541ce4fc3c0 -test -n "$1" && test "$1" != "." && gen_origin=$1 +force= +output=ChangeLog -output=$2 -test -n "$output" || output=ChangeLog +while [ $# -gt 0 ]; do + case "$1" in + -g|--gen-origin) gen_origin="$2" ; shift ;; + -f|--force) force=1 ;; + -o|--output) output="$2" ; shift ;; + *) echo "Unrecognized argument: $1" >&2; exit 1 ;; + esac + shift +done + +if [ -f "${distprefix}$output" ]; then + [ ! "$force" ] && echo "${distprefix}$output exists" && exit 1 + rm -f "${distprefix}$output" || exit 1 +fi # If this is not a Git repository, just generate an empty ChangeLog. test -d ${srcprefix}.git || { - # Remove any old ChangeLog, in case it is a vc-dwim symlink. - rm -f "${distprefix}$output" || exit >"${distprefix}$output" exit }