### @configure_input@
-# Copyright (C) 1992-2014 Free Software Foundation, Inc.
+# Copyright (C) 1992-2015 Free Software Foundation, Inc.
# This file is part of GNU Emacs.
### The nt/ subdirectory gets built only for MinGW
NTDIR=@NTDIR@
+# 'make' verbosity.
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+
# ==================== Where To Install Things ====================
# Location to install Emacs.app under GNUstep / Mac OS X.
# repository pull. In git there is no single file that guarantees
# this, but the local log for the current head should be close enough.
#
-# Note the use of single quotes in the value of vcswitness.
-# This passes an unexpanded $srcdir to src's Makefile, which then
+# Pass an unexpanded $srcdir to src's Makefile, which then
# expands it using its own value of srcdir (which points to the
# source directory of src/).
+dirstate = .git/logs/HEAD
+VCSWITNESS = $(if $(wildcard $(srcdir)/$(dirstate)),$$(srcdir)/../$(dirstate))
src: Makefile
- dirstate='.git/logs/HEAD'; \
- vcswitness='$$(srcdir)/../'$$dirstate; \
- [ -r "$(srcdir)/$$dirstate" ] || vcswitness=''; \
- $(MAKE) -C $@ all VCSWITNESS="$$vcswitness"
+ $(MAKE) -C $@ VCSWITNESS='$(VCSWITNESS)' all
blessmail: Makefile src
$(MAKE) -C lib-src maybe-blessmail
@ # because stamp-h.in has changed (since building stamp-h.in
@ # refreshes config.in as well), but if config.in is missing
@ # then we really need to do something more.
- [ -r "$@" ] || ( cd ${srcdir} && ${AUTOHEADER} )
+ $(if $(wildcard $@),,cd $(srcdir) && $(AUTOHEADER))
$(srcdir)/src/stamp-h.in: $(AUTOCONF_INPUTS)
cd ${srcdir} && ${AUTOHEADER}
- rm -f $(srcdir)/src/stamp-h.in
- echo timestamp > $(srcdir)/src/stamp-h.in
+ rm -f $@
+ echo timestamp > $@
# ==================== Installation ====================
thisdir=`/bin/pwd`; \
cd ${mansrcdir}; \
for page in *.1; do \
+ test "$$page" = ChangeLog.1 && continue; \
dest=`echo "$${page}" | sed -e 's/\.1$$//' -e '$(TRANSFORM)'`.1; \
(cd "$${thisdir}"; \
${INSTALL_DATA} ${mansrcdir}/$${page} "$(DESTDIR)${man1dir}/$${dest}"); \
for dir in test/automated; do \
[ ! -d $$dir ] || $(MAKE) -C $$dir clean; \
done
- -rm -f etc/emacs.tmpdesktop etc/emacs.tmpappdata
+ -rm -f *.tmp etc/*.tmp*
-rm -rf info-dir.*
### `bootclean'
## but then we would need to depend on info-real, which would
## slow down parallelization.
${srcdir}/info/dir: ${info_dir_deps}
- ${MKDIR_P} ${srcdir}/info
- tempfile=info-dir.$$$$; \
+ $(AM_V_at)${MKDIR_P} ${srcdir}/info
+ $(AM_V_GEN)tempfile=info-dir.$$$$; \
rm -f $${tempfile}; \
(cd ${srcdir}/doc && \
AWK='${AWK}' ../build-aux/make-info-dir ${info_dir_inputs} \
# and it's not worth it. This case is only relevant if you download a
# release, then change the .texi files.
info:
- @if test "$(HAVE_MAKEINFO)" = "no"; then \
- echo "Configured --without-makeinfo, not building manuals" ; \
- else \
- $(MAKE) info-real info-dir; \
- fi
+ ifneq ($(HAVE_MAKEINFO),no)
+ $(MAKE) info-real info-dir
+ endif
## build-aux/make-info-dir expects only certain dircategories.
check-info: info
$(MAKE) MAKEFILE_NAME=force-Makefile force-Makefile
$(MAKE) all
+.PHONY: ChangeLog change-history change-history-commit
+.PHONY: master-branch-is-current no-ChangeLog unchanged-history-files
+
+# The newest revision that should not appear in the generated ChangeLog.
+gen_origin = 455f13b8c91a51cd08e19fda737a4358a9a927d6
+
+# Convert git commit log to ChangeLog file. make-dist uses this.
+ChangeLog:
+ $(AM_V_GEN)distprefix=$(distprefix) srcprefix=$(srcdir)/ \
+ $(srcdir)/build-aux/gitlog-to-emacslog $(gen_origin)
+
+# The ChangeLog history files are called ChangeLog.1, ChangeLog.2, ...,
+# ChangeLog.$(CHANGELOG_HISTORY_INDEX_MAX). $(CHANGELOG_N) stands for
+# the newest (highest-numbered) ChangeLog history file.
+CHANGELOG_HISTORY_INDEX_MAX = 2
+CHANGELOG_N = ChangeLog.$(CHANGELOG_HISTORY_INDEX_MAX)
+
+# Check that we are in a good state for changing history.
+no-ChangeLog:
+ test ! -f ChangeLog
+master-branch-is-current:
+ git branch | grep -q '^\* master$$'
+unchanged-history-files:
+ x=$$(git diff-files --name-only $(CHANGELOG_N) Makefile.in) && \
+ test -z "$$x"
+
+# Copy newer commit messages to the start of the ChangeLog history file,
+# and consider them to be older.
+change-history: no-ChangeLog master-branch-is-current unchanged-history-files \
+ ChangeLog
+ (sed '/^;; [L]ocal Variables:/,$$d' <ChangeLog && cat $(CHANGELOG_N)) \
+ >$(CHANGELOG_N).tmp
+ new_origin=$$(git log --pretty=format:%H HEAD^!) && \
+ sed 's/^\(gen_origin *= *\).*/\1'"$$new_origin/" \
+ <Makefile.in >Makefile.in.tmp
+ mv $(CHANGELOG_N).tmp $(CHANGELOG_N)
+ mv Makefile.in.tmp Makefile.in
+ $(MAKE) $@-commit
+
+# If 'make change-history' fails because the newest ChangeLog history
+# file contains invalid text, fix the file by hand and then run
+# 'make change-history-commit'.
+change-history-commit:
+ git commit -m'; make $@' $(CHANGELOG_N) Makefile.in
+
.PHONY: check-declare
check-declare: