aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlenn Morris2014-10-07 16:17:09 -0400
committerGlenn Morris2014-10-07 16:17:09 -0400
commit23755ba32b9baeff4173e317624ceb89fc274468 (patch)
tree03fa4e60c045f274e94225df4752f5a56b3e9c03
parent8ca8fde8a2f94e9446efc5aa68020c0badeecb4d (diff)
downloademacs-23755ba32b9baeff4173e317624ceb89fc274468.tar.gz
emacs-23755ba32b9baeff4173e317624ceb89fc274468.zip
* admin/unidata/Makefile.in: Check for deleted uni- files.
(all): Use unifiles rather than charprop.el. (FORCE): New variable and phony rule. (${unidir}/charprop.el): Respect FORCE. (unifiles): New rule. * src/Makefile.in ($(srcdir)/macuvs.h) ($(lispsource)/international/charprop.el): Add explicit FORCE. Fixes: debbugs:18489
-rw-r--r--admin/ChangeLog6
-rw-r--r--admin/unidata/Makefile.in19
-rw-r--r--src/ChangeLog5
-rw-r--r--src/Makefile.in6
4 files changed, 32 insertions, 4 deletions
diff --git a/admin/ChangeLog b/admin/ChangeLog
index 224ed5e6149..742a64ce15d 100644
--- a/admin/ChangeLog
+++ b/admin/ChangeLog
@@ -1,5 +1,11 @@
12014-10-07 Glenn Morris <rgm@gnu.org> 12014-10-07 Glenn Morris <rgm@gnu.org>
2 2
3 * unidata/Makefile.in: Check for deleted uni- files. (Bug#18489)
4 (all): Use unifiles rather than charprop.el.
5 (FORCE): New variable and phony rule.
6 (${unidir}/charprop.el): Respect FORCE.
7 (unifiles): New rule.
8
3 * unidata/Makefile.in (unidir): Rename from DSTDIR. Change all uses. 9 * unidata/Makefile.in (unidir): Rename from DSTDIR. Change all uses.
4 (charprop.el, install): Remove rules. 10 (charprop.el, install): Remove rules.
5 (clean): Simplify. 11 (clean): Simplify.
diff --git a/admin/unidata/Makefile.in b/admin/unidata/Makefile.in
index f1b8ba2bd13..4649b3b339d 100644
--- a/admin/unidata/Makefile.in
+++ b/admin/unidata/Makefile.in
@@ -31,9 +31,9 @@ EMACS = ${top_builddir}/src/emacs
31unidir = ${top_srcdir}/lisp/international 31unidir = ${top_srcdir}/lisp/international
32emacs = "${EMACS}" -batch --no-site-file --no-site-lisp 32emacs = "${EMACS}" -batch --no-site-file --no-site-lisp
33 33
34.PHONY: all 34.PHONY: all unifiles
35 35
36all: ${top_srcdir}/src/macuvs.h ${unidir}/charprop.el 36all: ${top_srcdir}/src/macuvs.h unifiles
37 37
38## Specify .elc as an order-only prereq so as to not needlessly rebuild 38## Specify .elc as an order-only prereq so as to not needlessly rebuild
39## target just because the .elc is missing. 39## target just because the .elc is missing.
@@ -50,7 +50,11 @@ ${top_srcdir}/src/macuvs.h: ${srcdir}/uvs.el ${srcdir}/IVD_Sequences.txt | \
50unidata.txt: ${srcdir}/UnicodeData.txt 50unidata.txt: ${srcdir}/UnicodeData.txt
51 sed -e 's/\([^;]*\);\(.*\)/(#x\1 "\2")/' -e 's/;/" "/g' < $< > $@ 51 sed -e 's/\([^;]*\);\(.*\)/(#x\1 "\2")/' -e 's/;/" "/g' < $< > $@
52 52
53${unidir}/charprop.el: ${srcdir}/unidata-gen.el ${srcdir}/UnicodeData.txt | \ 53FORCE =
54FORCE:
55.PHONY: FORCE
56
57${unidir}/charprop.el: ${FORCE} ${srcdir}/unidata-gen.el ${srcdir}/UnicodeData.txt | \
54 ${srcdir}/unidata-gen.elc unidata.txt 58 ${srcdir}/unidata-gen.elc unidata.txt
55 -if [ -f "$@" ]; then \ 59 -if [ -f "$@" ]; then \
56 cd ${unidir} && chmod +w charprop.el `sed -n 's/^;; FILE: //p' < charprop.el`; \ 60 cd ${unidir} && chmod +w charprop.el `sed -n 's/^;; FILE: //p' < charprop.el`; \
@@ -58,6 +62,15 @@ ${unidir}/charprop.el: ${srcdir}/unidata-gen.el ${srcdir}/UnicodeData.txt | \
58 ${emacs} -L ${srcdir} -l unidata-gen -f unidata-gen-files \ 62 ${emacs} -L ${srcdir} -l unidata-gen -f unidata-gen-files \
59 ${srcdir} "${unidir}" 63 ${srcdir} "${unidir}"
60 64
65## Check for deleted uni- files, and if any such, force a rebuild.
66## Perhaps a more elegant way would be for the previous rule
67## to generate a Makefile fragment explicitly listing the uni- files,
68## which this file could include. If no fragment, rebuild everything.
69unifiles: ${unidir}/charprop.el
70 for f in `sed -n 's/^;; FILE: //p' < $<`; do \
71 [ -f ${unidir}/$$f ] || { ${MAKE} $< FORCE=FORCE || exit 1; break; };\
72 done
73
61.PHONY: clean bootstrap-clean distclean maintainer-clean extraclean 74.PHONY: clean bootstrap-clean distclean maintainer-clean extraclean
62 75
63clean: 76clean:
diff --git a/src/ChangeLog b/src/ChangeLog
index 7a6b38f3b90..1b77d1c9aa1 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
12014-10-07 Glenn Morris <rgm@gnu.org>
2
3 * Makefile.in ($(srcdir)/macuvs.h)
4 ($(lispsource)/international/charprop.el): Add explicit FORCE.
5
12014-10-07 Eli Zaretskii <eliz@gnu.org> 62014-10-07 Eli Zaretskii <eliz@gnu.org>
2 7
3 * decompress.c (init_zlib_functions): Move the message about zlib 8 * decompress.c (init_zlib_functions): Move the message about zlib
diff --git a/src/Makefile.in b/src/Makefile.in
index dfa5854489b..dffb77e7338 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -437,8 +437,12 @@ all: emacs$(EXEEXT) $(OTHER_FILES)
437$(leimdir)/leim-list.el: bootstrap-emacs$(EXEEXT) 437$(leimdir)/leim-list.el: bootstrap-emacs$(EXEEXT)
438 $(MAKE) -C ../leim leim-list.el EMACS="$(bootstrap_exe)" 438 $(MAKE) -C ../leim leim-list.el EMACS="$(bootstrap_exe)"
439 439
440## FORCE it so that admin/unidata can decide whether these files
441## are up-to-date. Although since charprop depends on bootstrap-emacs,
442## and emacs (which recreates bootstrap-emacs) depends on charprop,
443## in practice this rule was always run anyway.
440$(srcdir)/macuvs.h $(lispsource)/international/charprop.el: \ 444$(srcdir)/macuvs.h $(lispsource)/international/charprop.el: \
441 bootstrap-emacs$(EXEEXT) 445 bootstrap-emacs$(EXEEXT) FORCE
442 $(MAKE) -C ../admin/unidata all EMACS="../$(bootstrap_exe)" 446 $(MAKE) -C ../admin/unidata all EMACS="../$(bootstrap_exe)"
443 447
444## The dumped Emacs is as functional and more efficient than 448## The dumped Emacs is as functional and more efficient than