view leim/Makefile.in @ 110305:b10051866f51

New syntax-propertize functionality. * lisp/font-lock.el (font-lock-syntactic-keywords): Make obsolete. (font-lock-fontify-syntactic-keywords-region): Move handling of font-lock-syntactically-fontified to... (font-lock-default-fontify-region): ...here. Let syntax-propertize-function take precedence. (font-lock-fontify-syntactically-region): Cal syntax-propertize. * lisp/emacs-lisp/regexp-opt.el (regexp-opt-depth): Skip named groups. * lisp/emacs-lisp/syntax.el (syntax-propertize-function) (syntax-propertize-chunk-size, syntax-propertize--done) (syntax-propertize-extend-region-functions): New vars. (syntax-propertize-wholelines, syntax-propertize-multiline) (syntax-propertize--shift-groups, syntax-propertize-via-font-lock) (syntax-propertize): New functions. (syntax-propertize-rules): New macro. (syntax-ppss-flush-cache): Set syntax-propertize--done. (syntax-ppss): Call syntax-propertize. * lisp/progmodes/ada-mode.el (ada-set-syntax-table-properties) (ada-after-change-function, ada-initialize-syntax-table-properties) (ada-handle-syntax-table-properties): Only define when syntax-propertize is not available. (ada-mode): Use syntax-propertize-function. * lisp/progmodes/autoconf.el (autoconf-mode): Use syntax-propertize-function. (autoconf-font-lock-syntactic-keywords): Remove. * lisp/progmodes/cfengine.el (cfengine-mode): Use syntax-propertize-function. (cfengine-font-lock-syntactic-keywords): Remove. * lisp/progmodes/cperl-mode.el (cperl-mode): Use syntax-propertize-function. * lisp/progmodes/fortran.el (fortran-mode): Use syntax-propertize-function. (fortran--font-lock-syntactic-keywords): New var. (fortran-line-length): Update syntax-propertize-function and fortran--font-lock-syntactic-keywords. * lisp/progmodes/gud.el (gdb-script-syntax-propertize-function): New var; replaces gdb-script-font-lock-syntactic-keywords. (gdb-script-mode): Use it. * lisp/progmodes/js.el (js--regexp-literal): Define while compiling. (js-syntax-propertize-function): New var; replaces js-font-lock-syntactic-keywords. (js-mode): Use it. * lisp/progmodes/make-mode.el (makefile-syntax-propertize-function): New var; replaces makefile-font-lock-syntactic-keywords. (makefile-mode): Use it. (makefile-imake-mode): Adjust. * lisp/progmodes/mixal-mode.el (mixal-syntax-propertize-function): New var; replaces mixal-font-lock-syntactic-keywords. (mixal-mode): Use it. * lisp/progmodes/octave-mod.el (octave-syntax-propertize-sqs): New function to replace octave-font-lock-close-quotes. (octave-syntax-propertize-function): New function to replace octave-font-lock-syntactic-keywords. (octave-mode): Use it. * lisp/progmodes/perl-mode.el (perl-syntax-propertize-function): New fun to replace perl-font-lock-syntactic-keywords. (perl-syntax-propertize-special-constructs): New fun to replace perl-font-lock-special-syntactic-constructs. (perl-font-lock-syntactic-face-function): New fun. (perl-mode): Use it. * lisp/progmodes/python.el (python-syntax-propertize-function): New var to replace python-font-lock-syntactic-keywords. (python-mode): Use it. (python-quote-syntax): Simplify and adjust to new use. * lisp/progmodes/ruby-mode.el (ruby-here-doc-beg-re): Define while compiling. (ruby-here-doc-end-re, ruby-here-doc-beg-match) (ruby-font-lock-syntactic-keywords, ruby-comment-beg-syntax) (syntax-ppss, ruby-in-ppss-context-p, ruby-in-here-doc-p) (ruby-here-doc-find-end, ruby-here-doc-beg-syntax) (ruby-here-doc-end-syntax): Only define when syntax-propertize is not available. (ruby-syntax-propertize-function, ruby-syntax-propertize-heredoc): New functions. (ruby-in-ppss-context-p): Update to new syntax of heredocs. (electric-indent-chars): Silence bytecompiler. (ruby-mode): Use prog-mode, syntax-propertize-function, and electric-indent-chars. * lisp/progmodes/sh-script.el (sh-st-symbol): Remove. (sh-font-lock-close-heredoc, sh-font-lock-open-heredoc): Add eol arg. (sh-font-lock-flush-syntax-ppss-cache, sh-font-lock-here-doc): Remove. (sh-font-lock-quoted-subshell): Assume we've already matched $(. (sh-font-lock-paren): Set syntax-multiline. (sh-font-lock-syntactic-keywords): Remove. (sh-syntax-propertize-function): New function to replace it. (sh-mode): Use it. * lisp/progmodes/simula.el (simula-syntax-propertize-function): New var to replace simula-font-lock-syntactic-keywords. (simula-mode): Use it. * lisp/progmodes/tcl.el (tcl-syntax-propertize-function): New var to replace tcl-font-lock-syntactic-keywords. (tcl-mode): Use it. * lisp/progmodes/vhdl-mode.el (vhdl-mode): Use syntax-propertize-function if available. (vhdl-fontify-buffer): Adjust. * lisp/textmodes/bibtex.el (bibtex-mode): Use syntax-propertize-function. * lisp/textmodes/reftex.el (font-lock-syntactic-keywords): Don't declare since we don't use it. * lisp/textmodes/sgml-mode.el (sgml-syntax-propertize-function): New var to replace sgml-font-lock-syntactic-keywords. (sgml-mode): Use it. * lisp/textmodes/tex-mode.el (tex-common-initialization, doctex-mode): Use syntax-propertize-function. * lisp/textmodes/texinfo.el (texinfo-syntax-propertize-function): New fun to replace texinfo-font-lock-syntactic-keywords. (texinfo-mode): Use it. * test/indent/octave.m: Remove some `fixindent' not needed any more.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Sat, 11 Sep 2010 01:13:42 +0200
parents ce960720ed3f
children c55486404fcd
line wrap: on
line source

# Makefile for leim subdirectory in GNU Emacs.
# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
#   2006, 2007, 2008, 2009, 2010
#   Free Software Foundation, Inc.
# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
#   2006, 2007, 2008, 2009, 2010
#   National Institute of Advanced Industrial Science and Technology (AIST)
#   Registration Number H14PRO021

# 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 3 of the License, 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.  If not, see <http://www.gnu.org/licenses/>.


# 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@
datarootdir=@datarootdir@
datadir=@datadir@
srcdir=@srcdir@
ns_appresdir=@ns_appresdir@

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

GZIP_PROG = @GZIP_PROG@

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

buildlisppath=${srcdir}/../lisp

# How to run Emacs.
RUN-EMACS = EMACSLOADPATH=$(buildlisppath) LC_ALL=C \
	${BUILT-EMACS} -batch --no-init-file --no-site-file

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

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

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

CHINESE-TIT=${TIT-GB} ${TIT-BIG5}

NON-TIT-GB=${srcdir}/quail/py-punct.elc

NON-TIT-BIG5=${srcdir}/quail/pypunct-b5.elc

CHINESE-NON-TIT=${NON-TIT-GB} ${NON-TIT-BIG5}

CHINESE-GB=${TIT-GB} ${NON-TIT-GB}

CHINESE-BIG5=${TIT-BIG5} ${NON-TIT-BIG5}

JAPANESE=${srcdir}/quail/japanese.elc ${srcdir}/ja-dic/ja-dic.elc

KOREAN=	${srcdir}/quail/hangul.elc	\
	${srcdir}/quail/hanja.elc	\
	${srcdir}/quail/hanja3.elc	\
	${srcdir}/quail/hanja-jis.elc	\
	${srcdir}/quail/symbol-ksc.elc

THAI=${srcdir}/quail/thai.elc

VIETNAMESE=${srcdir}/quail/viqr.elc ${srcdir}/quail/vntelex.elc

LAO=${srcdir}/quail/lao.elc ${srcdir}/quail/lrt.elc

INDIAN=${srcdir}/quail/indian.elc

TIBETAN=${srcdir}/quail/tibetan.elc

LATIN=	${srcdir}/quail/latin-pre.elc	\
	${srcdir}/quail/latin-post.elc	\
	${srcdir}/quail/latin-alt.elc	\
	${srcdir}/quail/latin-ltx.elc   \
	${srcdir}/quail/welsh.elc

UNICODE=${srcdir}/quail/sgml-input.elc ${srcdir}/quail/rfc1345.elc \
	${srcdir}/quail/uni-input.elc

SLAVIC= \
	${srcdir}/quail/czech.elc \
	${srcdir}/quail/croatian.elc \
	${srcdir}/quail/slovak.elc

GREEK=${srcdir}/quail/greek.elc

RUSSIAN=${srcdir}/quail/cyrillic.elc ${srcdir}/quail/cyril-jis.elc

OTHERS= \
	${srcdir}/quail/arabic.elc \
	${srcdir}/quail/ethiopic.elc \
	${srcdir}/quail/ipa.elc \
	${srcdir}/quail/hebrew.elc \
	${srcdir}/quail/georgian.elc \
	${srcdir}/quail/sisheng.elc

MISC= \
	quail/tsang-b5.elc	\
	quail/quick-b5.elc	\
	quail/tsang-cns.elc	\
	quail/quick-cns.elc	\
	quail/PY.elc		\
	quail/ZIRANMA.elc	\
	quail/CTLau.elc		\
	quail/CTLau-b5.elc

CHINESE=${CHINESE-GB} ${CHINESE-BIG5}
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:
	@echo Compiling $<
	@${RUN-EMACS} -f batch-byte-compile $<

all: ${BUILT-EMACS} ${SUBDIRS} leim-list.el ${WORLD}

# To ensure that we can run Emacs.  This target is ignored (never
# being hit) if a user changes default value of EMACS.
../src/emacs:
	cd ../src; ${MAKE} ${MFLAGS} emacs

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

TIT-SOURCES= \
	${srcdir}/CXTERM-DIC/4Corner.tit \
	${srcdir}/CXTERM-DIC/ARRAY30.tit \
	${srcdir}/CXTERM-DIC/CCDOSPY.tit \
	${srcdir}/CXTERM-DIC/ECDICT.tit \
	${srcdir}/CXTERM-DIC/ETZY.tit \
	${srcdir}/CXTERM-DIC/PY-b5.tit \
	${srcdir}/CXTERM-DIC/Punct-b5.tit \
	${srcdir}/CXTERM-DIC/Punct.tit \
	${srcdir}/CXTERM-DIC/QJ-b5.tit \
	${srcdir}/CXTERM-DIC/QJ.tit \
	${srcdir}/CXTERM-DIC/SW.tit \
	${srcdir}/CXTERM-DIC/TONEPY.tit \
	${srcdir}/CXTERM-DIC/ZOZY.tit

${CHINESE-TIT:.elc=.el}: changed.tit
	@true

changed.tit: ${TIT-SOURCES}
	${RUN-EMACS} -l ${buildlisppath}/international/titdic-cnv \
	  -f batch-titdic-convert -dir quail ${srcdir}/CXTERM-DIC; \
	  echo "changed" > $@

MISC-SOURCES= \
	${srcdir}/MISC-DIC/CTLau-b5.html \
	${srcdir}/MISC-DIC/CTLau.html \
	${srcdir}/MISC-DIC/cangjie-table.b5 \
	${srcdir}/MISC-DIC/cangjie-table.cns \
	${srcdir}/MISC-DIC/pinyin.map \
	${srcdir}/MISC-DIC/ziranma.cin

${MISC:.elc=.el}: changed.misc
	@true

changed.misc: ${MISC-SOURCES}
	${RUN-EMACS} -l ${buildlisppath}/international/titdic-cnv \
	  -f batch-miscdic-convert -dir quail ${srcdir}/MISC-DIC; \
	  echo "changed" > $@

leim-list.el: ${SUBDIRS} ${TIT-MISC} changed.tit changed.misc ${srcdir}/leim-ext.el
	rm -f leim-list.el
	${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 \".\")" ; \
	else \
	  ${RUN-EMACS} -l ${buildlisppath}/international/quail \
	    --eval "(update-leim-list-file \".\" \"${srcdir}\")" ; \
	fi
	sed -n '/^[^;]/ p' < ${srcdir}/leim-ext.el >> $@

MV_DIRS = for i in $$dir; do rm -fr `basename "$$i"` ; mv "$$i" . ; done

install: all
	if [ ! -d ${INSTALLDIR} ] ; then \
          umask 022; ${srcdir}/../mkinstalldirs ${INSTALLDIR}; \
	else true; fi
	if [ x`(cd ${INSTALLDIR} && /bin/pwd)` != x`(/bin/pwd)` ] ; then \
	  rm -f ${INSTALLDIR}/leim-list.el; \
	  rm -rf ${INSTALLDIR}/quail ${INSTALLDIR}/ja-dic ; \
	  echo "Copying leim files to ${INSTALLDIR} ..." ; \
	  if [ x`(cd ${srcdir} && /bin/pwd)` = x`(/bin/pwd)` ] ; then \
	    tar -chf - leim-list.el quail ja-dic \
		| (cd ${INSTALLDIR}; umask 0; tar -xvf - && cat > /dev/null) ;\
	  else \
	    tar -chf - leim-list.el quail \
		| (cd ${INSTALLDIR}; umask 0; tar -xvf - && cat > /dev/null) ;\
	    cd ${srcdir}; \
	    tar -chf - quail/* ja-dic \
		| (cd ${INSTALLDIR}; umask 0; tar -xvf - && cat > /dev/null) ;\
	  fi; \
	  rm -f  ${INSTALLDIR}/.gitignore ${INSTALLDIR}/*/.gitignore; \
	  rm -f  ${INSTALLDIR}/.arch-inventory ${INSTALLDIR}/*/.arch-inventory; \
	  rm -f  ${INSTALLDIR}/\#*        ${INSTALLDIR}/*/\#* ; \
	  rm -f  ${INSTALLDIR}/.\#*       ${INSTALLDIR}/*/.\#* ; \
	  rm -f  ${INSTALLDIR}/*~         ${INSTALLDIR}/*/*~ ; \
	  rm -f  ${INSTALLDIR}/*.orig     ${INSTALLDIR}/*/*.orig ; \
	else true; fi
	-unset CDPATH; \
	if [ -n "${GZIP_PROG}" ]; \
	then \
	   echo "Compressing *.el ..." ; \
	   (cd ${INSTALLDIR}; for f in `find . -name "*.elc" -print`; do \
		${GZIP_PROG} -9n `echo $$f|sed 's/.elc$$/.el/'` ; \
	    done) \
	else true; fi
	-chmod -R a+r ${INSTALLDIR}
	for installuser in $${LOGNAME} $${USERNAME} $${USER} \
	  `id -un 2> /dev/null`; do \
	  [ -n "$${installuser}" ] && break ; \
	done ; \
	find ${INSTALLDIR} -exec chown $${installuser} '{}' ';'
	if [ "${ns_appresdir}" != "" ]; then \
	  ( cd ${ns_appresdir} ; \
	    if test -d share/emacs ; then dir=share/emacs/*/*; $(MV_DIRS); fi;\
	    rm -fr share ) ; \
	else true ; fi

clean mostlyclean:
	rm -f ${TIT-MISC} ${TIT-MISC:.elc=.el} \
		leim-list.el changed.tit changed.misc

# The following target is needed because the `clean' target only removes
# TIT-generated files and doesn't touch compiled Quail packages.  But
# bootstrapping should not leave non-fresh .elc files behind.
bootstrap-clean: clean
	rm -f ${WORLD}
## FIXME some compiled files go to srcdir, some don't?
#	cd ${srcdir}; rm -f *.elc */*.elc

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

maintainer-clean: distclean bootstrap-clean

extraclean: maintainer-clean
	-rm -f *~ \#* */*~ */\#*

.PHONY: check-declare

check-declare:
	$(RUN-EMACS) -l $(buildlisppath)/emacs-lisp/check-declare \
	  --eval '(check-declare-directory "$(srcdir)")'