aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlenn Morris2014-06-09 21:44:11 -0400
committerGlenn Morris2014-06-09 21:44:11 -0400
commitbb175792b137dde8c4fd47a0e4660395e6e2f77f (patch)
treeb32f5505b3b0bffe352834892b49becb56dae600
parentfeb6546cdf5b43f8e50aaaabb29c6856a9251893 (diff)
downloademacs-bb175792b137dde8c4fd47a0e4660395e6e2f77f.tar.gz
emacs-bb175792b137dde8c4fd47a0e4660395e6e2f77f.zip
leim/Makefile.in: use GNU Make features to simplify and parallelize.
* leim/Makefile.in (CHINESE_TIT, TIT_SOURCES, MISC_SOURCES, changed.tit) (changed.misc): Remove. (${leimdir}/quail, ${leimdir}/ja-dic): Create using order-only prereq. (misc_convert): New. (${leimdir}/quail/%.el, ${leimdir}/quail/CT%.el) (${leimdir}/quail/PY.el, ${leimdir}/quail/ZIRANMA.el) (${leimdir}/quail/tsang-%.el, ${leimdir}/quail/quick-%.el): Use pattern rules. (${leimdir}/leim-list.el, ${leimdir}/ja-dic/ja-dic.el): Use automatic variables. (bootstrap-clean): No changed.* files to delete any more. * .bzrignore: No leim/changed.* files to ignore any more.
-rw-r--r--leim/ChangeLog15
-rw-r--r--leim/Makefile.in100
2 files changed, 56 insertions, 59 deletions
diff --git a/leim/ChangeLog b/leim/ChangeLog
index 6c3ec294269..ac698f63e71 100644
--- a/leim/ChangeLog
+++ b/leim/ChangeLog
@@ -1,3 +1,18 @@
12014-06-10 Glenn Morris <rgm@gnu.org>
2
3 Use GNU Make features to simplify and parallelize.
4 * Makefile.in (CHINESE_TIT, TIT_SOURCES, MISC_SOURCES, changed.tit)
5 (changed.misc): Remove.
6 (${leimdir}/quail, ${leimdir}/ja-dic): Create using order-only prereq.
7 (misc_convert): New.
8 (${leimdir}/quail/%.el, ${leimdir}/quail/CT%.el)
9 (${leimdir}/quail/PY.el, ${leimdir}/quail/ZIRANMA.el)
10 (${leimdir}/quail/tsang-%.el, ${leimdir}/quail/quick-%.el):
11 Use pattern rules.
12 (${leimdir}/leim-list.el, ${leimdir}/ja-dic/ja-dic.el):
13 Use automatic variables.
14 (bootstrap-clean): No changed.* files to delete any more.
15
12014-04-11 Glenn Morris <rgm@gnu.org> 162014-04-11 Glenn Morris <rgm@gnu.org>
2 17
3 * Makefile.in (EMACSDATA, EMACSDOC, EMACSPATH): Unexport. 18 * Makefile.in (EMACSDATA, EMACSDOC, EMACSPATH): Unexport.
diff --git a/leim/Makefile.in b/leim/Makefile.in
index 293b052aeb3..16f3917c61c 100644
--- a/leim/Makefile.in
+++ b/leim/Makefile.in
@@ -61,8 +61,6 @@ TIT_BIG5=\
61 ${leimdir}/quail/QJ-b5.el \ 61 ${leimdir}/quail/QJ-b5.el \
62 ${leimdir}/quail/ZOZY.el 62 ${leimdir}/quail/ZOZY.el
63 63
64CHINESE_TIT=${TIT_GB} ${TIT_BIG5}
65
66MISC= \ 64MISC= \
67 ${leimdir}/quail/tsang-b5.el \ 65 ${leimdir}/quail/tsang-b5.el \
68 ${leimdir}/quail/quick-b5.el \ 66 ${leimdir}/quail/quick-b5.el \
@@ -73,80 +71,66 @@ MISC= \
73 ${leimdir}/quail/CTLau.el \ 71 ${leimdir}/quail/CTLau.el \
74 ${leimdir}/quail/CTLau-b5.el 72 ${leimdir}/quail/CTLau-b5.el
75 73
76## The generated .el files. 74## All the generated .el files.
77TIT_MISC=${CHINESE_TIT} ${MISC} 75TIT_MISC = ${TIT_GB} ${TIT_BIG5} ${MISC}
76
78 77
79all: ${leimdir}/leim-list.el ${leimdir}/ja-dic/ja-dic.el 78all: ${leimdir}/leim-list.el ${leimdir}/ja-dic/ja-dic.el
80.PHONY: all 79.PHONY: all
81 80
82TIT_SOURCES= \ 81
83 ${srcdir}/CXTERM-DIC/4Corner.tit \ 82## Ensure the output directory exists.
84 ${srcdir}/CXTERM-DIC/ARRAY30.tit \ 83${TIT_MISC}: | ${leimdir}/quail
85 ${srcdir}/CXTERM-DIC/CCDOSPY.tit \ 84
86 ${srcdir}/CXTERM-DIC/ECDICT.tit \ 85${leimdir}/quail ${leimdir}/ja-dic:
87 ${srcdir}/CXTERM-DIC/ETZY.tit \ 86 ${MKDIR_P} $@
88 ${srcdir}/CXTERM-DIC/PY-b5.tit \ 87
89 ${srcdir}/CXTERM-DIC/Punct-b5.tit \ 88
90 ${srcdir}/CXTERM-DIC/Punct.tit \ 89## All of TIT_GB and TIT_BIG5.
91 ${srcdir}/CXTERM-DIC/QJ-b5.tit \ 90${leimdir}/quail/%.el: ${srcdir}/CXTERM-DIC/%.tit
92 ${srcdir}/CXTERM-DIC/QJ.tit \
93 ${srcdir}/CXTERM-DIC/SW.tit \
94 ${srcdir}/CXTERM-DIC/TONEPY.tit \
95 ${srcdir}/CXTERM-DIC/ZOZY.tit
96
97${CHINESE_TIT}: changed.tit
98 @true
99
100## The changed.* files act to serialize this part of the build.
101## A single Emacs invocation creates all the CHINESE_TIT files.
102## Otherwise in a parallel build multiple Emacs instances could
103## interfere with each other. If we used GNU make we could probably
104## parallelize this without the need for an explicit rule for each
105## file. Something like the pattern rule:
106## quail/%.el: CXTERM-DIC/%.tit
107## It doesn't seem possible to do this with VPATH and suffix rules.
108changed.tit: ${TIT_SOURCES}
109 @${MKDIR_P} ${leimdir}/quail
110 ${RUN_EMACS} -l titdic-cnv \
111 -f batch-titdic-convert -dir ${leimdir}/quail ${srcdir}/CXTERM-DIC
112 echo "changed" > $@
113
114MISC_SOURCES= \
115 ${srcdir}/MISC-DIC/CTLau-b5.html \
116 ${srcdir}/MISC-DIC/CTLau.html \
117 ${srcdir}/MISC-DIC/cangjie-table.b5 \
118 ${srcdir}/MISC-DIC/cangjie-table.cns \
119 ${srcdir}/MISC-DIC/pinyin.map \
120 ${srcdir}/MISC-DIC/ziranma.cin
121
122${MISC}: changed.misc
123 @true
124
125changed.misc: ${MISC_SOURCES}
126 @${MKDIR_P} ${leimdir}/quail
127 ${RUN_EMACS} -l titdic-cnv \ 91 ${RUN_EMACS} -l titdic-cnv \
128 -f batch-miscdic-convert -dir ${leimdir}/quail ${srcdir}/MISC-DIC 92 -f batch-titdic-convert -dir ${leimdir}/quail $<
129 echo "changed" > $@ 93
94
95misc_convert = ${RUN_EMACS} -l titdic-cnv -f batch-miscdic-convert -dir ${leimdir}/quail
96
97## CTLau.el, CTLau-b5.el.
98${leimdir}/quail/CT%.el: ${srcdir}/MISC-DIC/CT%.html
99 ${misc_convert} $<
100
101${leimdir}/quail/PY.el: ${srcdir}/MISC-DIC/pinyin.map
102 ${misc_convert} $<
103
104${leimdir}/quail/ZIRANMA.el: ${srcdir}/MISC-DIC/ziranma.cin
105 ${misc_convert} $<
106
107## Processing cangjie-table.b5 and cangjie-table.cns generates two files
108## in each case.
109${leimdir}/quail/tsang-%.el ${leimdir}/quail/quick-%.el: ${srcdir}/MISC-DIC/cangjie-table.%
110 ${misc_convert} $<
111
130 112
131.PHONY: leim-list.el 113.PHONY: leim-list.el
132leim-list.el: ${leimdir}/leim-list.el 114leim-list.el: ${leimdir}/leim-list.el
133 115
134${leimdir}/leim-list.el: ${TIT_MISC} ${srcdir}/leim-ext.el 116${leimdir}/leim-list.el: ${srcdir}/leim-ext.el ${TIT_MISC}
135 rm -f $@ 117 rm -f $@
136 ${RUN_EMACS} -l international/quail \ 118 ${RUN_EMACS} -l international/quail \
137 --eval "(update-leim-list-file (unmsys--file-name \"${leimdir}\"))" 119 --eval "(update-leim-list-file (unmsys--file-name \"${leimdir}\"))"
138 sed -n -e '/^[^;]/p' -e 's/^;\(;*\)inc /;\1 /p' < ${srcdir}/leim-ext.el >> $@ 120 sed -n -e '/^[^;]/p' -e 's/^;\(;*\)inc /;\1 /p' < $< >> $@
121
122
123${leimdir}/ja-dic/ja-dic.el: | $(leimdir)/ja-dic
139 124
140${leimdir}/ja-dic/ja-dic.el: $(srcdir)/SKK-DIC/SKK-JISYO.L 125${leimdir}/ja-dic/ja-dic.el: $(srcdir)/SKK-DIC/SKK-JISYO.L
141 @$(MKDIR_P) $(leimdir)/ja-dic
142 $(RUN_EMACS) -batch -l ja-dic-cnv \ 126 $(RUN_EMACS) -batch -l ja-dic-cnv \
143 -f batch-skkdic-convert -dir "$(leimdir)/ja-dic" \ 127 -f batch-skkdic-convert -dir "$(leimdir)/ja-dic" "$<"
144 "$(srcdir)/SKK-DIC/SKK-JISYO.L" 128
145 129
146.PHONY: bootstrap-clean distclean maintainer-clean extraclean 130.PHONY: bootstrap-clean distclean maintainer-clean extraclean
147 131
148bootstrap-clean: 132bootstrap-clean:
149 rm -f ${TIT_MISC} ${leimdir}/leim-list.el changed.tit changed.misc 133 rm -f ${TIT_MISC} ${leimdir}/leim-list.el
150 134
151distclean: 135distclean:
152 rm -f Makefile 136 rm -f Makefile
@@ -155,8 +139,6 @@ maintainer-clean: distclean bootstrap-clean
155 139
156## We do not delete ja-dic, even in a bootstrap, because it rarely 140## We do not delete ja-dic, even in a bootstrap, because it rarely
157## changes and is slow to regenerate. 141## changes and is slow to regenerate.
158## TODO? Could consider doing the same with TIT_MISC, though those
159## are much faster to generate.
160extraclean: 142extraclean:
161 rm -rf ${leimdir}/ja-dic 143 rm -rf ${leimdir}/ja-dic
162 144