Commit | Line | Data |
---|---|---|
bbece175 | 1 | ### @configure_input@ |
95df8112 | 2 | |
ab422c4d | 3 | # Copyright (C) 1997-2013 Free Software Foundation, Inc. |
6d344054 | 4 | # Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, |
d0981f82 | 5 | # 2006, 2007, 2008, 2009, 2010, 2011 |
eda20bd8 KH |
6 | # National Institute of Advanced Industrial Science and Technology (AIST) |
7 | # Registration Number H14PRO021 | |
24b31c88 | 8 | |
dadbf673 GM |
9 | # This file is part of GNU Emacs. |
10 | ||
d3fb0974 | 11 | # GNU Emacs is free software: you can redistribute it and/or modify |
dadbf673 | 12 | # it under the terms of the GNU General Public License as published by |
d3fb0974 GM |
13 | # the Free Software Foundation, either version 3 of the License, or |
14 | # (at your option) any later version. | |
15 | ||
dadbf673 GM |
16 | # GNU Emacs is distributed in the hope that it will be useful, |
17 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
18 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
19 | # GNU General Public License for more details. | |
d3fb0974 | 20 | |
dadbf673 | 21 | # You should have received a copy of the GNU General Public License |
d3fb0974 GM |
22 | # along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
23 | ||
50b13cde | 24 | SHELL = @SHELL@ |
dadbf673 GM |
25 | |
26 | # Here are the things that we expect ../configure to edit. | |
dadbf673 | 27 | srcdir=@srcdir@ |
b8e3b0a9 | 28 | abs_srcdir=@abs_srcdir@ |
7a7f042f | 29 | |
dadbf673 GM |
30 | # Which Emacs to use to convert TIT files to Emacs Lisp files, |
31 | # byte-compile Emacs Lisp files, and generate the file leim-list.el. | |
935396c0 | 32 | EMACS = ../src/emacs |
dadbf673 | 33 | |
b8e3b0a9 | 34 | buildlisppath=${abs_srcdir}/../lisp |
dadbf673 GM |
35 | |
36 | # How to run Emacs. | |
b8e3b0a9 GM |
37 | RUN_EMACS = EMACSLOADPATH="$(buildlisppath)" LC_ALL=C \ |
38 | "${EMACS}" -batch --no-site-file --no-site-lisp | |
dadbf673 | 39 | |
35c46c2f | 40 | MKDIR_P = @MKDIR_P@ |
dadbf673 GM |
41 | |
42 | # Files generated from TIT dictionaries for Chinese GB character set. | |
68b5f855 | 43 | TIT_GB=\ |
41455956 GM |
44 | quail/CCDOSPY.el \ |
45 | quail/Punct.el \ | |
46 | quail/QJ.el \ | |
47 | quail/SW.el \ | |
48 | quail/TONEPY.el | |
dadbf673 GM |
49 | |
50 | # Files generated from TIT dictionaries for Chinese BIG5 character set. | |
acb8e1dd | 51 | TIT_BIG5=\ |
41455956 GM |
52 | quail/4Corner.el \ |
53 | quail/ARRAY30.el \ | |
54 | quail/ECDICT.el \ | |
55 | quail/ETZY.el \ | |
56 | quail/Punct-b5.el \ | |
57 | quail/PY-b5.el \ | |
58 | quail/QJ-b5.el \ | |
59 | quail/ZOZY.el | |
dadbf673 | 60 | |
68b5f855 | 61 | CHINESE_TIT=${TIT_GB} ${TIT_BIG5} |
dadbf673 | 62 | |
242a2def | 63 | MISC= \ |
41455956 GM |
64 | quail/tsang-b5.el \ |
65 | quail/quick-b5.el \ | |
66 | quail/tsang-cns.el \ | |
67 | quail/quick-cns.el \ | |
68 | quail/PY.el \ | |
69 | quail/ZIRANMA.el \ | |
70 | quail/CTLau.el \ | |
71 | quail/CTLau-b5.el | |
72 | ||
73 | ## The generated .el files. | |
68b5f855 | 74 | TIT_MISC=${CHINESE_TIT} ${MISC} |
dadbf673 | 75 | |
e1e539ed KH |
76 | .SUFFIXES: .elc .el |
77 | ||
dadbf673 | 78 | .el.elc: |
8e0214ec | 79 | @echo Compiling $< |
b8e3b0a9 | 80 | @${RUN_EMACS} -l "${buildlisppath}/international/quail" -f batch-byte-compile $< |
dadbf673 | 81 | |
35c46c2f | 82 | all: leim-list.el compile-main |
0aee6912 | 83 | .PHONY: all |
dadbf673 | 84 | |
68b5f855 | 85 | TIT_SOURCES= \ |
2cd23d89 KH |
86 | ${srcdir}/CXTERM-DIC/4Corner.tit \ |
87 | ${srcdir}/CXTERM-DIC/ARRAY30.tit \ | |
88 | ${srcdir}/CXTERM-DIC/CCDOSPY.tit \ | |
89 | ${srcdir}/CXTERM-DIC/ECDICT.tit \ | |
90 | ${srcdir}/CXTERM-DIC/ETZY.tit \ | |
91 | ${srcdir}/CXTERM-DIC/PY-b5.tit \ | |
92 | ${srcdir}/CXTERM-DIC/Punct-b5.tit \ | |
93 | ${srcdir}/CXTERM-DIC/Punct.tit \ | |
94 | ${srcdir}/CXTERM-DIC/QJ-b5.tit \ | |
95 | ${srcdir}/CXTERM-DIC/QJ.tit \ | |
96 | ${srcdir}/CXTERM-DIC/SW.tit \ | |
97 | ${srcdir}/CXTERM-DIC/TONEPY.tit \ | |
98 | ${srcdir}/CXTERM-DIC/ZOZY.tit | |
242a2def | 99 | |
41455956 | 100 | ${CHINESE_TIT}: changed.tit |
4c603b0c AS |
101 | @true |
102 | ||
e7333757 GM |
103 | ## The changed.* files act to serialize this part of the build. |
104 | ## A single Emacs invocation creates all the CHINESE_TIT files. | |
105 | ## Otherwise in a parallel build multiple Emacs instances could | |
106 | ## interfere with each other. If we used GNU make we could probably | |
107 | ## parallelize this without the need for an explicit rule for each | |
41a2ce39 GM |
108 | ## file. Something like the pattern rule: |
109 | ## quail/%.el: CXTERM-DIC/%.tit | |
110 | ## It doesn't seem possible to do this with VPATH and suffix rules. | |
35c46c2f GM |
111 | changed.tit: ${TIT_SOURCES} |
112 | @${MKDIR_P} quail | |
b8e3b0a9 | 113 | ${RUN_EMACS} -l "${buildlisppath}/international/titdic-cnv" \ |
026e4e51 EZ |
114 | -f batch-titdic-convert -dir quail ${srcdir}/CXTERM-DIC; \ |
115 | echo "changed" > $@ | |
242a2def | 116 | |
68b5f855 | 117 | MISC_SOURCES= \ |
2cd23d89 KH |
118 | ${srcdir}/MISC-DIC/CTLau-b5.html \ |
119 | ${srcdir}/MISC-DIC/CTLau.html \ | |
120 | ${srcdir}/MISC-DIC/cangjie-table.b5 \ | |
121 | ${srcdir}/MISC-DIC/cangjie-table.cns \ | |
122 | ${srcdir}/MISC-DIC/pinyin.map \ | |
123 | ${srcdir}/MISC-DIC/ziranma.cin | |
242a2def | 124 | |
41455956 | 125 | ${MISC}: changed.misc |
4c603b0c AS |
126 | @true |
127 | ||
35c46c2f GM |
128 | changed.misc: ${MISC_SOURCES} |
129 | @${MKDIR_P} quail | |
b8e3b0a9 | 130 | ${RUN_EMACS} -l "${buildlisppath}/international/titdic-cnv" \ |
026e4e51 EZ |
131 | -f batch-miscdic-convert -dir quail ${srcdir}/MISC-DIC; \ |
132 | echo "changed" > $@ | |
242a2def | 133 | |
35c46c2f | 134 | leim-list.el: ${TIT_MISC} ${srcdir}/leim-ext.el |
7069bd16 | 135 | rm -f leim-list.el |
b8e3b0a9 GM |
136 | if [ "`cd ${srcdir} && /bin/pwd`" = "`/bin/pwd`" ] ; then \ |
137 | ${RUN_EMACS} -l "${buildlisppath}/international/quail" \ | |
dadbf673 GM |
138 | --eval "(update-leim-list-file \".\")" ; \ |
139 | else \ | |
b8e3b0a9 | 140 | ${RUN_EMACS} -l "${buildlisppath}/international/quail" \ |
bc1dd793 | 141 | --eval "(update-leim-list-file \".\" (unmsys--file-name \"${srcdir}\"))" ; \ |
dadbf673 | 142 | fi |
8f34b40c | 143 | sed -n '/^[^;]/ p' < ${srcdir}/leim-ext.el >> $@ |
dadbf673 | 144 | |
982efbcd PE |
145 | $(srcdir)/ja-dic/ja-dic.el: $(srcdir)/SKK-DIC/SKK-JISYO.L |
146 | @$(MKDIR_P) $(srcdir)/ja-dic | |
b8e3b0a9 | 147 | $(RUN_EMACS) -batch -l "$(buildlisppath)/international/ja-dic-cnv" \ |
faaecb52 PE |
148 | -f batch-skkdic-convert -dir "$(srcdir)/ja-dic" \ |
149 | "$(srcdir)/SKK-DIC/SKK-JISYO.L" | |
982efbcd | 150 | |
41455956 GM |
151 | ## Following adapted from lisp/Makefile.in. |
152 | setwins=wins="${srcdir}/ja-dic quail"; \ | |
b8e3b0a9 | 153 | [ "`cd ${srcdir} && /bin/pwd`" != "`/bin/pwd`" ] && \ |
41455956 GM |
154 | wins="$$wins ${srcdir}/quail" |
155 | ||
156 | .PHONY: compile-targets | |
157 | # TARGETS is set dynamically in the recursive call from `compile-main'. | |
158 | compile-targets: $(TARGETS) | |
159 | ||
160 | # Compile all the Elisp files that need it. Beware: it approximates | |
161 | # `no-byte-compile', so watch out for false-positives! | |
0aee6912 | 162 | .PHONY: compile-main |
982efbcd | 163 | compile-main: ${TIT_MISC} $(srcdir)/ja-dic/ja-dic.el |
41455956 GM |
164 | @($(setwins); \ |
165 | els=`echo "$$wins " | sed -e 's| |/*.el |g'`; \ | |
166 | for el in $$els; do \ | |
167 | test -f $$el || continue; \ | |
168 | test ! -f $${el}c && GREP_OPTIONS= grep '^;.*no-byte-compile: t' $$el > /dev/null && continue; \ | |
169 | echo "$${el}c"; \ | |
170 | done | xargs echo) | \ | |
171 | while read chunk; do \ | |
935396c0 | 172 | $(MAKE) $(MFLAGS) compile-targets EMACS="$(EMACS)" TARGETS="$$chunk"; \ |
41455956 GM |
173 | done |
174 | ||
0aee6912 PE |
175 | .PHONY: clean mostlyclean bootstrap-clean distclean maintainer-clean extraclean |
176 | ||
dadbf673 | 177 | clean mostlyclean: |
41455956 | 178 | rm -f ${TIT_MISC} ${TIT_MISC:.el=.elc} \ |
242a2def | 179 | leim-list.el changed.tit changed.misc |
dadbf673 | 180 | |
9200c926 RF |
181 | # The following target is needed because the `clean' target only removes |
182 | # TIT-generated files and doesn't touch compiled Quail packages. But | |
183 | # bootstrapping should not leave non-fresh .elc files behind. | |
184 | bootstrap-clean: clean | |
41455956 | 185 | $(setwins); for w in $$wins; do rm -f $$w/*.elc; done |
9200c926 | 186 | |
e6f528ba | 187 | distclean: clean |
b8e3b0a9 | 188 | -[ "`cd ${srcdir} && /bin/pwd`" != "`/bin/pwd`" ] && rm -rf quail |
dadbf673 | 189 | rm -f Makefile |
a070e0b7 | 190 | |
cbeed5af | 191 | maintainer-clean: distclean bootstrap-clean |
e6f528ba KH |
192 | |
193 | extraclean: maintainer-clean | |
cbeed5af | 194 | -rm -f *~ \#* */*~ */\#* |
63150f3c GM |
195 | |
196 | .PHONY: check-declare | |
197 | ||
198 | check-declare: | |
b8e3b0a9 | 199 | $(RUN_EMACS) -l "$(buildlisppath)/emacs-lisp/check-declare" \ |
bc1dd793 | 200 | --eval '(check-declare-directory (unmsys--file-name "$(srcdir)"))' |