]> code.delx.au - gnu-emacs/blobdiff - admin/unidata/Makefile.in
Update copyright year to 2015
[gnu-emacs] / admin / unidata / Makefile.in
index c759079a49a15d7737ccaf6feb6aa8957249a32b..7b96c6d478ff1690fc2b63cad7e26f6d09739097 100644 (file)
@@ -1,6 +1,6 @@
 ### @configure_input@
 
-# Copyright (C) 2012-2013 Free Software Foundation, Inc.
+# Copyright (C) 2012-2015 Free Software Foundation, Inc.
 
 # Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011
 #   National Institute of Advanced Industrial Science and Technology (AIST)
 # You should have received a copy of the GNU General Public License
 # along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 
-SHELL = /bin/sh
+SHELL = @SHELL@
 
 srcdir = @srcdir@
-abs_builddir = @abs_builddir@
 top_srcdir = @top_srcdir@
-abs_top_builddir = @abs_top_builddir@
+top_builddir = @top_builddir@
 
-EMACS = ${abs_top_builddir}/src/emacs
-DSTDIR = ${top_srcdir}/lisp/international
-emacs = ${EMACS} -batch --no-site-file --no-site-lisp
+EMACS = ${top_builddir}/src/emacs
+unidir = ${top_srcdir}/lisp/international
+emacs = "${EMACS}" -batch --no-site-file --no-site-lisp
 
-all: ${DSTDIR}/charprop.el
+.PHONY: all unifiles
 
-.el.elc:
+all: ${top_srcdir}/src/macuvs.h unifiles
+
+## Specify .elc as an order-only prereq so as to not needlessly rebuild
+## target just because the .elc is missing.
+## Same with charprop.el below.
+${top_srcdir}/src/macuvs.h: ${srcdir}/uvs.el ${srcdir}/IVD_Sequences.txt | \
+  ${srcdir}/uvs.elc
+       ${emacs} -L ${srcdir} -l uvs \
+         --eval '(uvs-print-table-ivd (unmsys--file-name "${srcdir}/IVD_Sequences.txt") "Adobe-Japan1")' \
+         > $@
+
+%.elc: %.el
        ${emacs} -f batch-byte-compile $<
 
 unidata.txt: ${srcdir}/UnicodeData.txt
-       sed -e 's/\([^;]*\);\(.*\)/(#x\1 "\2")/' -e 's/;/" "/g' < ${srcdir}/UnicodeData.txt > $@
-
-${DSTDIR}/charprop.el: ${srcdir}/unidata-gen.elc unidata.txt
-       cd ${DSTDIR} && ${emacs} -l ${srcdir}/unidata-gen \
-         -f unidata-gen-files ${srcdir} ${abs_builddir}/unidata.txt
+       sed -e 's/\([^;]*\);\(.*\)/(#x\1 "\2")/' -e 's/;/" "/g' < $< > $@
+
+FORCE =
+FORCE:
+.PHONY: FORCE
+
+${unidir}/charprop.el: ${FORCE} ${srcdir}/unidata-gen.el \
+  ${srcdir}/UnicodeData.txt ${srcdir}/BidiMirroring.txt \
+  ${srcdir}/BidiBrackets.txt | \
+  ${srcdir}/unidata-gen.elc unidata.txt
+       -if [ -f "$@" ]; then \
+         cd ${unidir} && chmod +w charprop.el `sed -n 's/^;; FILE: //p' < charprop.el`; \
+       fi
+       ${emacs} -L ${srcdir} -l unidata-gen -f unidata-gen-files \
+         ${srcdir} "${unidir}"
 
-## Like the above, but generate in PWD rather than lisp/international.
-charprop.el: ${srcdir}/unidata-gen.elc unidata.txt
-       ${emacs} -l ${srcdir}/unidata-gen \
-         -f unidata-gen-files ${srcdir} unidata.txt
+## Check for deleted uni- files, and if any such, force a rebuild.
+## Perhaps a more elegant way would be for the previous rule
+## to generate a Makefile fragment explicitly listing the uni- files,
+## which this file could include.  If no fragment, rebuild everything.
+unifiles: ${unidir}/charprop.el
+       for f in `sed -n 's/^;; FILE: //p' < $<`; do \
+         [ -f ${unidir}/$$f ] || { ${MAKE} $< FORCE=FORCE || exit 1; break; };\
+       done
 
-install: charprop.el
-       cp charprop.el ${DSTDIR}
-       cp `sed -n 's/^;; FILE: //p' < charprop.el` ${DSTDIR}
+.PHONY: clean bootstrap-clean distclean maintainer-clean extraclean
 
 clean:
-       if test -f charprop.el; then \
-         rm -f `sed -n 's/^;; FILE: //p' < charprop.el`; \
-       fi
-       rm -f charprop.el ${srcdir}/unidata-gen.elc unidata.txt
+       rm -f ${srcdir}/*.elc unidata.txt
+
+bootstrap-clean: clean
 
 distclean: clean
-       -rm -f ./Makefile
+       rm -f Makefile
 
 maintainer-clean: distclean
+
+## Do not remove these files, even in a bootstrap, because they rarely
+## change and it slows down bootstrap (a tiny bit).
+## Cf leim/ja-dic (which is much slower).
+extraclean:
+       rm -f ${top_srcdir}/src/macuvs.h
+       if test -f ${unidir}/charprop.el; then \
+         (cd ${unidir} && rm -f `sed -n 's/^;; FILE: //p' < charprop.el`); \
+         rm -f ${unidir}/charprop.el; \
+       fi