# This file is part of GNU paxutils
#
# Copyright (c) 2009, 2014 Free Software Foundation, Inc.
#
# Written by Sergey Poznyakoff
#
# GNU Paxutils is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 3, or (at your option) any later
# version.
#
# GNU Paxutils is distributed in the hope that it will be useful, but
# without any warranty; without even the implied warranty of
# merchantability or fitness for a particular purpose.  see the gnu general
# public license for more details.
#
# You should have received a copy of the GNU General Public License along
# with GNU Paxutils; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

# Define the following variables in order to use the ChangeLog rule below:
#  prev_change_log      [optional]  Name of the previous ChangeLog file.
#  gen_start_date       [optional]  Start ChangeLog from this date. 
#  changelog_dir        [mandatory] Directory where to create ChangeLog
#  changelog_amend_file [optional]  Amendment file

.PHONY: ChangeLog
ChangeLog: 
	if test -d .git; then                                              \
	  cmd=$(top_srcdir)/build-aux/gitlog-to-changelog;                 \
	  if test -n "$(gen_start_date)"; then                             \
	    cmd="$$cmd --since=\"$(gen_start_date)\"";                     \
	  fi;                                                              \
	  if test -n "$(changelog_amend_file)"; then                       \
	    cmd="$$cmd --amend=$(changelog_amend_file)";                   \
	  fi;                                                              \
	  $$cmd --format='%s%n%n%b%n' |                                    \
            sed '/<unknown>$$/d' | fmt -s > $(changelog_dir)/cl-t;         \
          if test -n "$(prev_change_log)" && test -f "$(prev_change_log)"; \
	  then                                                             \
	    echo "" >> $(changelog_dir)/cl-t;                              \
	    cat "$(prev_change_log)" |                                     \
	      sed '/^Local Variables:/,/^End:/d' >> $(changelog_dir)/cl-t; \
	  fi;                                                              \
	  echo "Local Variables:" >> $(changelog_dir)/cl-t;                \
	  echo "mode: change-log" >> $(changelog_dir)/cl-t;                \
	  echo "version-control: never"  >> $(changelog_dir)/cl-t;         \
	  echo "buffer-read-only: t" >> $(changelog_dir)/cl-t;             \
	  echo "End:" >> $(changelog_dir)/cl-t;                            \
	  rm -f $(changelog_dir)/ChangeLog;                                \
	  mv $(changelog_dir)/cl-t $(changelog_dir)/ChangeLog;             \
	fi

