From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Kenichi Handa Newsgroups: gmane.emacs.devel Subject: Re: Dependencies in leim/Makefile.in Date: Sat, 1 May 2004 14:51:58 +0900 (JST) Sender: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Message-ID: <200405010551.OAA04777@etlken.m17n.org> References: <7494-Mon26Apr2004140554+0300-eliz@gnu.org> <200404290142.KAA27636@etlken.m17n.org> NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 (generated by SEMI 1.14.3 - "Ushinoya") Content-Type: text/plain; charset=US-ASCII X-Trace: sea.gmane.org 1083391013 19125 80.91.224.253 (1 May 2004 05:56:53 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Sat, 1 May 2004 05:56:53 +0000 (UTC) Cc: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Sat May 01 07:56:40 2004 Return-path: Original-Received: from quimby.gnus.org ([80.91.224.244]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1BJnUO-00052i-00 for ; Sat, 01 May 2004 07:56:40 +0200 Original-Received: from monty-python.gnu.org ([199.232.76.173]) by quimby.gnus.org with esmtp (Exim 3.35 #1 (Debian)) id 1BJnUN-0004dj-00 for ; Sat, 01 May 2004 07:56:39 +0200 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.30) id 1BJnRW-000217-JL for emacs-devel@quimby.gnus.org; Sat, 01 May 2004 01:53:42 -0400 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.30) id 1BJnQU-0001zA-2g for emacs-devel@gnu.org; Sat, 01 May 2004 01:52:38 -0400 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.30) id 1BJnPv-0001ev-AU for emacs-devel@gnu.org; Sat, 01 May 2004 01:52:34 -0400 Original-Received: from [192.47.44.130] (helo=tsukuba.m17n.org) by monty-python.gnu.org with esmtp (Exim 4.30) id 1BJnPu-0001dU-9E; Sat, 01 May 2004 01:52:02 -0400 Original-Received: from fs.m17n.org (fs.m17n.org [192.47.44.2]) by tsukuba.m17n.org (8.11.6p2/8.11.6) with ESMTP id i415pw813290; Sat, 1 May 2004 14:51:58 +0900 (JST) Original-Received: from etlken.m17n.org (etlken.m17n.org [192.47.44.125]) by fs.m17n.org (8.11.6p2/8.11.6) with ESMTP id i415pw928763; Sat, 1 May 2004 14:51:58 +0900 (JST) Original-Received: (from handa@localhost) by etlken.m17n.org (8.8.8+Sun/3.7W-2001040620) id OAA04777; Sat, 1 May 2004 14:51:58 +0900 (JST) Original-To: eliz@gnu.org In-reply-to: (message from Eli Zaretskii on 29 Apr 2004 07:58:13 +0200) User-Agent: SEMI/1.14.3 (Ushinoya) FLIM/1.14.2 (Yagi-Nishiguchi) APEL/10.2 Emacs/21.3 (sparc-sun-solaris2.6) MULE/5.0 (SAKAKI) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Xref: main.gmane.org gmane.emacs.devel:22481 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:22481 In article , Eli Zaretskii writes: >> With Gnu make, it seems that we can do: >> >> TIT-GB-SOURCE := $(TIT-GB:quail/%.elc=CXTERM-DIC/%.tit) >> >> But, is such a variable substitution generally available? > One idea is to get rid of the prefix directory in the source file > names (CXTERM-DIC in this case), by putting those directories into > VPATH, and then use an implicit dependency ".tit.elc:" and leave it to > Make to find the *.tit files. (Yes, I know that VPATH is also > unavailable in some flavors of Make, but I think it's more widespread > than the feature you used above.) > Even if no general solution is possible, we could use a GNU Make > specific one; that way, at least users of GNU Make will have a better > Makefile. I've just installed the attached fix which takes the different approach. I gave up generating a list of TIT and MISC-DIC sources, but could eliminate kludgy code for avoiding parallel make problems. I changed only leim/Makefile.in, and tested it only with GNU Make. I'd like to ask main maintainers of the other systems to change makefile.nt and makefile.w32-in accordingly (and test them). --- Ken'ichi HANDA handa@m17n.org Index: Makefile.in =================================================================== RCS file: /cvsroot/emacs/emacs/leim/Makefile.in,v retrieving revision 1.58 retrieving revision 1.60 diff -u -c -r1.58 -r1.60 cvs server: conflicting specifications of output style *** Makefile.in 1 Mar 2004 06:56:32 -0000 1.58 --- Makefile.in 1 May 2004 05:02:57 -0000 1.60 *************** *** 117,129 **** RUSSIAN=${srcdir}/quail/cyrillic.elc ${srcdir}/quail/cyril-jis.elc ! MISC= \ ${srcdir}/quail/ethiopic.elc \ ${srcdir}/quail/ipa.elc \ ${srcdir}/quail/hebrew.elc \ ${srcdir}/quail/georgian.elc ! MISC-DIC=\ quail/tsang-b5.elc \ quail/quick-b5.elc \ quail/tsang-cns.elc \ --- 117,129 ---- RUSSIAN=${srcdir}/quail/cyrillic.elc ${srcdir}/quail/cyril-jis.elc ! OTHERS= \ ${srcdir}/quail/ethiopic.elc \ ${srcdir}/quail/ipa.elc \ ${srcdir}/quail/hebrew.elc \ ${srcdir}/quail/georgian.elc ! MISC= \ quail/tsang-b5.elc \ quail/quick-b5.elc \ quail/tsang-cns.elc \ *************** *** 137,153 **** EASTASIA=${CHINESE} ${JAPANESE} ${KOREAN} ASIA=${EASTASIA} ${THAI} ${VIETNAMESE} ${LAO} ${INDIAN} ${TIBETAN} EUROPEAN=${LATIN} ${SLAVIC} ${GREEK} ${RUSSIAN} ! WORLD=${ASIA} ${EUROPEAN} ${MISC} ${MISC-DIC} ${UNICODE} ! TIT=${CHINESE-TIT} ! NON-TIT=${CHINESE-NON-TIT} ${JAPANESE} ${KOREAN} ${EUROPEAN} ${MISC} .SUFFIXES: .elc .el .el.elc: ${RUN-EMACS} -f batch-byte-compile $< ! all: ${BUILT-EMACS} ${SUBDIRS} ${WORLD} leim-list.el # To ensure that we can run Emacs. This target is ignored (never # being hit) if a user changes default value of EMACS. --- 137,153 ---- EASTASIA=${CHINESE} ${JAPANESE} ${KOREAN} ASIA=${EASTASIA} ${THAI} ${VIETNAMESE} ${LAO} ${INDIAN} ${TIBETAN} EUROPEAN=${LATIN} ${SLAVIC} ${GREEK} ${RUSSIAN} ! WORLD=${ASIA} ${EUROPEAN} ${OTHERS} ${MISC} ${UNICODE} ! TIT-MISC=${CHINESE-TIT} ${MISC} ! NON-TIT-MISC=${CHINESE-NON-TIT} ${JAPANESE} ${KOREAN} ${EUROPEAN} ${OTHERS} .SUFFIXES: .elc .el .el.elc: ${RUN-EMACS} -f batch-byte-compile $< ! all: ${BUILT-EMACS} ${SUBDIRS} leim-list.el # To ensure that we can run Emacs. This target is ignored (never # being hit) if a user changes default value of EMACS. *************** *** 158,195 **** mkdir $@ touch stamp-subdir ! # The rules which generate ${TIT} and ${MISC-DIC} files create them all ! # in one go. So we need to prevent parallel execution for that target, ! # otherwise Emacs complains about files being locked. .NOTPARALLEL is ! # for GNU Make, .NO_PARALLEL is for other Make's. ! .NOTPARALLEL: ${TIT} ${MISC-DIC} ! ! .NO_PARALLEL: ${TIT} ${MISC-DIC} ! ! # Rule to generate quail/*.el from CXTERM-DIC/*.tit. ! # The "if [ -f $@ ]; then true; " part prevents parallel Make's ! # which don't honor .NOTPARALLEL, such as SGI's Make, from running ! # this rule many times, one each for every file it creates. ! ${TIT}: ! if [ -d quail ]; then true; else make quail; fi ! if [ -f $@ ]; then true; else \ ! ${RUN-EMACS} -l ${buildlisppath}/international/titdic-cnv \ ! --eval '(batch-titdic-convert t)' -dir quail ${srcdir}/CXTERM-DIC; fi ! if [ -f $@ ]; then true; else \ ! ${RUN-EMACS} -l ${buildlisppath}/international/quail \ ! -f batch-byte-compile ${TIT:.elc=.el}; fi ! ! # Rule to generate quail/*.el from MISC-DIC/*. ! ${MISC-DIC}: ! if [ -d quail ]; then true; else make quail; fi ! if [ -f $@ ]; then true; else \ ! ${RUN-EMACS} -l ${buildlisppath}/international/titdic-cnv \ ! -f batch-miscdic-convert -dir quail ${srcdir}/MISC-DIC; fi ! if [ -f $@ ]; then true; else \ ! ${RUN-EMACS} -l ${buildlisppath}/international/quail \ ! -f batch-byte-compile ${MISC-DIC:.elc=.el}; fi ! ! leim-list.el: ${SUBDIRS} ${WORLD} if [ x`(cd ${srcdir} && /bin/pwd)` = x`(/bin/pwd)` ] ; then \ ${RUN-EMACS} -l ${buildlisppath}/international/quail \ --eval "(update-leim-list-file \".\")" ; \ --- 158,205 ---- mkdir $@ touch stamp-subdir ! TIT-SOURCES= \ ! CXTERM-DIC/4Corner.tit \ ! CXTERM-DIC/ARRAY30.tit \ ! CXTERM-DIC/CCDOSPY.tit \ ! CXTERM-DIC/ECDICT.tit \ ! CXTERM-DIC/ETZY.tit \ ! CXTERM-DIC/PY-b5.tit \ ! CXTERM-DIC/Punct-b5.tit \ ! CXTERM-DIC/Punct.tit \ ! CXTERM-DIC/QJ-b5.tit \ ! CXTERM-DIC/QJ.tit \ ! CXTERM-DIC/SW.tit \ ! CXTERM-DIC/TONEPY.tit \ ! CXTERM-DIC/ZOZY.tit ! ! changed.tit: ${TIT-SOURCES} ! echo "0" > $@ ! ! MISC-SOURCES= \ ! MISC-DIC/CTLau-b5.html \ ! MISC-DIC/CTLau.html \ ! MISC-DIC/cangjie-table.b5 \ ! MISC-DIC/cangjie-table.cns \ ! MISC-DIC/pinyin.map \ ! MISC-DIC/ziranma.cin ! ! changed.misc: ${MISC-SOURCES} ! echo "0" > $@ ! ! leim-list.el: ${SUBDIRS} ${NON-TIT-MISC} changed.tit changed.misc ! if [ `(cat changed.tit)` = 0 ] ; then \ ! ${RUN-EMACS} -l ${buildlisppath}/international/titdic-cnv \ ! -f batch-titdic-convert -dir quail ${srcdir}/CXTERM-DIC; \ ! echo "1" > changed.tit; \ ! else true; fi ! if [ `(cat changed.misc)` = 0 ] ; then \ ! ${RUN-EMACS} -l ${buildlisppath}/international/titdic-cnv \ ! -f batch-miscdic-convert -dir quail ${srcdir}/MISC-DIC; \ ! echo "1" > changed.misc; \ ! else true; fi ! ${RUN-EMACS} -l ${buildlisppath}/international/quail \ ! -f batch-byte-compile-if-not-done ${TIT-MISC:.elc=.el} if [ x`(cd ${srcdir} && /bin/pwd)` = x`(/bin/pwd)` ] ; then \ ${RUN-EMACS} -l ${buildlisppath}/international/quail \ --eval "(update-leim-list-file \".\")" ; \ *************** *** 223,230 **** -chmod -R a+r ${INSTALLDIR} clean mostlyclean: ! rm -f ${TIT} ${TIT:.elc=.el} ${MISC-DIC} ${MISC-DIC:.elc=.el} \ ! leim-list.el distclean: clean if test -f stamp-subdir; then rm -rf ${SUBDIRS} stamp-subdir; fi --- 233,240 ---- -chmod -R a+r ${INSTALLDIR} clean mostlyclean: ! rm -f ${TIT-MISC} ${TIT-MISC:.elc=.el} \ ! leim-list.el changed.tit changed.misc distclean: clean if test -f stamp-subdir; then rm -rf ${SUBDIRS} stamp-subdir; fi