# Makefile for leim subdirectory in GNU Emacs.
# Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
# Licensed to the Free Software Foundation.

# This file is part of GNU Emacs.

# GNU Emacs is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# GNU Emacs is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Emacs; see the file COPYING.  If not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.

# Avoid trouble on systems where the `SHELL' variable might be
# inherited from the environment.
SHELL = /bin/sh

# Here are the things that we expect ../configure to edit.
version=@version@
prefix=@prefix@
datadir=@datadir@
srcdir=@srcdir@

# Where to install LEIM files.
INSTALLDIR=${datadir}/emacs/${version}/leim

# On Xenix and the IBM RS6000, double-dot gets screwed up.
dot = .
dotdot = ${dot}${dot}

# Which Emacs to use to convert TIT files to Emacs Lisp files,
# byte-compile Emacs Lisp files, and generate the file leim-list.el.
EMACS = ${dot}${dot}/src/emacs

buildlisppath=${srcdir}/${dot}${dot}/lisp

# How to run Emacs.  This forces Emacs to use new Emacs Lisp libraries.
RUN-EMACS = EMACSLOADPATH=${buildlisppath}:${buildlisppath}/international \
	${EMACS}

# Subdirectories to be made if ${srcdir} is different from the current
# directory.
SUBDIRS=quail skk

# Files generated from TIT dictionaries for Chinese GB character set.
TIT-GB=\
	quail/CTLau.el		\
	quail/CCDOSPY.el	\
	quail/Punct.el		\
	quail/PY.el		\
	quail/QJ.el		\
	quail/SW.el		\
	quail/TONEPY.el		\
	quail/ZIRANMA.el

# Files generated from TIT dictionaries for Chinese BIG5 character set.
TIT-BIG5=\
	quail/4Corner.el	\
	quail/ARRAY30.el	\
	quail/CTLauB.el		\
	quail/ECDICT.el		\
	quail/ETZY.el		\
	quail/Punct-b5.el	\
	quail/PY-b5.el		\
	quail/QJ-b5.el		\
	quail/ZOZY.el

CHINESE-GB=${TIT-GB} \
	quail/py-punct.el

CHINESE-BIG5=${TIT-BIG5} \
	quail/quick-b5.el quail/tsangchi-b5.el quail/py-punct-b5.el

CHINESE-CNS=quail/quick-cns.el	quail/tsangchi-cns.el

JAPANESE=quail/japanese.el skk/skkdic.el

KOREAN=	quail/hangul.el	\
	quail/hangul3.el	\
	quail/hanja.el		\
	quail/hanja-jis.el	\
	quail/symbol-ksc.el

THAI=quail/thai.el

VIETNAMESE=quail/viqr.el

LAO=quail/lao.el quail/lrt.el

INDIAN=quail/devanagari.el

TIBETAN=quail/tibetan.el

LATIN=quail/latin-pre.el quail/latin-post.el

GREEK=quail/greek.el

RUSSIAN=quail/cyrillic.el

MISC=quail/ethiopic.el quail/ipa.el

CHINESE=${CHINESE-GB} ${CHINESE-BIG5} ${CHINESE-CNS}
EASTASIA=${CHINESE} ${JAPANESE} ${KOREAN}
ASIA=${EASTASIA} ${THAI} ${VIETNAMESE} ${LAO} ${INDIAN}
EUROPEAN=${LATIN} ${GREEK} ${RUSSIAN}
WORLD=${ASIA} ${EUROPEAN} ${MISC}

all: ${SUBDIRS} ${WORLD} stamp-bytecomp 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.
${dot}${dot}/src/emacs:
	cd ../src; ${MAKE} ${MFLAGS} emacs

${SUBDIRS}:
	mkdir $@
	touch stamp-subdir

# Rule to generate quail/*.el from CXTERM-DIC/*.tit.
${TIT-GB} ${TIT-BIG5}: ${EMACS}
	${RUN-EMACS} -batch -l titdic-cnv --eval '(batch-titdic-convert t)'\
		-dir quail ${srcdir}/CXTERM-DIC

# Emacs Lisp source files not generated from TIT dictionaries are
# distributed as is.  So, we just make symbolic links to them if
# ${srcdir} is different form the current directory.
%.el:
	ln -s ${srcdir}/$@ $@

stamp-bytecomp: ${WORLD} ${EMACS}
	${RUN-EMACS} -batch	--eval '(byte-recompile-directory "quail" 0)'
	if test ! -f skk/skkdic.elc; then \
	  if test -f ${srcdir}/skk/skkdic.elc; then \
	    ln -s ${srcdir}/skk/skkdic.elc skk; \
	  else \
	    ${RUN-EMACS} -batch -l skkdic-cnv \
		--eval '(byte-recompile-directory "skk" 0)'; \
	  fi \
	fi
	touch stamp-bytecomp

leim-list.el: ${EMACS} ${SUBDIRS} ${WORLD}
	${RUN-EMACS} -batch --eval "(update-leim-list-file \".\")"

# install -- all languages supported by LEIM
#   install-asia -- all Asian languages
#     install-eastasia -- all Each Asian languages
#       install-chinese -- all Chinese Languages
#         install-chinese-gb -- Chinese (GB)
#         install-chinese-big5 -- Chinese (BIG5)
#         install-chinese-cns -- Chinese (CNS)
#       install-japanese -- Japanese
#       install-korean -- Korean (hangul and hanja)
#     install-thai -- Thai
#     install-vietnamese -- Vietnamese
#     install-lao -- Lao
#     install-indian -- Indian (Devanagari script)
#     install-tibetan -- Tibetan (Devanagari)
#   install-european -- all European languages
#     install-latin -- all Latin scripts
#     install-greek -- Greek
#     install-russian -- Russian (cyrillic)
#   install-misc -- Ethiopic and IPA

install: all
	tar cfh - ${SUBDIRS} | (cd ${INSTALLDIR}; tar xvf -)
	${RUN-EMACS} -batch --eval "(update-leim-list-file \"${INSTALLDIR}\")"

install-asia: all
	ELC=`echo ${ASIA} | sed 's/\.el/.elc/g'`; \
	tar cfh - $$ELC ${ASIA} | (cd ${INSTALLDIR}; tar xvf -)
	${RUN-EMACS} -batch --eval "(update-leim-list-file \"${INSTALLDIR}\")"

install-eastasia: all
	ELC=`echo ${EASTASIA} | sed 's/\.el/.elc/g'`; \
	tar cfh - $$ELC ${EASTASIA} | (cd ${INSTALLDIR}; tar xvf -)
	${RUN-EMACS} -batch --eval "(update-leim-list-file \"${INSTALLDIR}\")"

install-chinese: all ${CHINESE}
	ELC=`echo ${CHINESE} | sed 's/\.el/.elc/g'`; \
	tar cfh - $$ELC ${CHINESE} | (cd ${INSTALLDIR}; tar xvf -)
	${RUN-EMACS} -batch --eval "(update-leim-list-file \"${INSTALLDIR}\")"

install-chinese-gb: all ${CHINESE-GB}
	ELC=`echo ${CHINESE-GB} | sed 's/\.el/.elc/g'`; \
	tar cfh - $$ELC ${CHINESE-GB} | (cd ${INSTALLDIR}; tar xvf -)
	${RUN-EMACS} -batch --eval "(update-leim-list-file \"${INSTALLDIR}\")"

install-chinese-big5: all ${CHINESE-BIG5}
	ELC=`echo ${CHINESE-BIG5} | sed 's/\.el/.elc/g'`; \
	tar cfh - $$ELC ${CHINESE-BIG5} | (cd ${INSTALLDIR}; tar xvf -)
	${RUN-EMACS} -batch --eval "(update-leim-list-file \"${INSTALLDIR}\")"

install-chinese-cns: all ${CHINESE-CNS}
	ELC=`echo ${CHINESE-CNS} | sed 's/\.el/.elc/g'`; \
	tar cfh - $$ELC ${CHINESE-CNS} | (cd ${INSTALLDIR}; tar xvf -)
	${RUN-EMACS} -batch --eval "(update-leim-list-file \"${INSTALLDIR}\")"

install-japanese: all ${JAPANESE}
	ELC=`echo ${JAPANESE} | sed 's/\.el/.elc/g'`; \
	tar cfh - $$ELC ${JAPANESE} | (cd ${INSTALLDIR}; tar xvf -)
	${RUN-EMACS} -batch --eval "(update-leim-list-file \"${INSTALLDIR}\")"

install-korean: all ${KOREAN}
	ELC=`echo ${KOREAN} | sed 's/\.el/.elc/g'`; \
	tar cfh - $$ELC ${KOREAN} | (cd ${INSTALLDIR}; tar xvf -)
	${RUN-EMACS} -batch --eval "(update-leim-list-file \"${INSTALLDIR}\")"

install-thai: all ${THAI}
	ELC=`echo ${THAI} | sed 's/\.el/.elc/g'`; \
	tar cfh - $$ELC ${THAI} | (cd ${INSTALLDIR}; tar xvf -)
	${RUN-EMACS} -batch --eval "(update-leim-list-file \"${INSTALLDIR}\")"

install-vietnamese: all ${VIETNAMESE}
	ELC=`echo ${VIETNAMESE} | sed 's/\.el/.elc/g'`; \
	tar cfh - $$ELC ${VIETNAMESE} | (cd ${INSTALLDIR}; tar xvf -)
	${RUN-EMACS} -batch --eval "(update-leim-list-file \"${INSTALLDIR}\")"

install-lao: all ${LAO}
	ELC=`echo ${LAO} | sed 's/\.el/.elc/g'`; \
	tar cfh - $$ELC ${LAO} | (cd ${INSTALLDIR}; tar xvf -)
	${RUN-EMACS} -batch --eval "(update-leim-list-file \"${INSTALLDIR}\")"

install-indian: all ${INDIAN}
	ELC=`echo ${INDIAN} | sed 's/\.el/.elc/g'`; \
	tar cfh - $$ELC ${INDIAN} | (cd ${INSTALLDIR}; tar xvf -)
	${RUN-EMACS} -batch --eval "(update-leim-list-file \"${INSTALLDIR}\")"

install-tibetan: all ${TIBETAN}
	ELC=`echo ${TIBETAN} | sed 's/\.el/.elc/g'`; \
	tar cfh - $$ELC ${TIBETAN} | (cd ${INSTALLDIR}; tar xvf -)
	${RUN-EMACS} -batch --eval "(update-leim-list-file \"${INSTALLDIR}\")"

install-european: all ${EUROPEAN}
	ELC=`echo ${EUROPEAN} | sed 's/\.el/.elc/g'`; \
	tar cfh - $$ELC ${EUROPEAN} | (cd ${INSTALLDIR}; tar xvf -)
	${RUN-EMACS} -batch --eval "(update-leim-list-file \"${INSTALLDIR}\")"

install-latin: all ${LATIN}
	ELC=`echo ${LATIN} | sed 's/\.el/.elc/g'`; \
	tar cfh - $$ELC ${LATIN} | (cd ${INSTALLDIR}; tar xvf -)
	${RUN-EMACS} -batch --eval "(update-leim-list-file \"${INSTALLDIR}\")"

install-greek: all ${GREEK}
	ELC=`echo ${GREEK} | sed 's/\.el/.elc/g'`; \
	tar cfh - $$ELC ${GREEK} | (cd ${INSTALLDIR}; tar xvf -)
	${RUN-EMACS} -batch --eval "(update-leim-list-file \"${INSTALLDIR}\")"

install-russian: all ${RUSSIAN}
	ELC=`echo ${RUSSIAN} | sed 's/\.el/.elc/g'`; \
	tar cfh - $$ELC ${RUSSIAN} | (cd ${INSTALLDIR}; tar xvf -)
	${RUN-EMACS} -batch --eval "(update-leim-list-file \"${INSTALLDIR}\")"

install-misc: all ${MISC}
	ELC=`echo ${MISC} | sed 's/\.el/.elc/g'`; \
	tar cfh - $$ELC ${MISC} | (cd ${INSTALLDIR}; tar xvf -)
	${RUN-EMACS} -batch --eval "(update-leim-list-file \"${INSTALLDIR}\")"

mostlyclean:
	rm -f quail/*.elc stamp-bytecomp

clean:
	rm -rf ${TIT-GB} ${TIT-BIG5} quail/*.elc stamp-bytecomp leim-list.el
	test -L skk/skkdic.elc || rm skk/skkdic.elc

distclean maintainer-clean: clean
	if test -f stamp-subdir; then rm -rf ${SUBDIRS} stamp-subdir; fi
	rm -f Makefile
