-# Makefile -- Makefile to generate character property tables.
+### @configure_input@
+
+# Copyright (C) 2012-2014 Free Software Foundation, Inc.
+
# Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011
# National Institute of Advanced Industrial Science and Technology (AIST)
# Registration Number H13PRO009
# 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 = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+top_builddir = @top_builddir@
+
+EMACS = ${top_builddir}/src/emacs
+DSTDIR = ${top_srcdir}/lisp/international
+emacs = "${EMACS}" -batch --no-site-file --no-site-lisp
-EMACS = ../../src/emacs
-DSTDIR = ../../lisp/international
-RUNEMACS = ${EMACS} -Q -batch
+.PHONY: all compile install
all: ${DSTDIR}/charprop.el
.el.elc:
- ${RUNEMACS} -batch -f batch-byte-compile $<
+ ${emacs} -f batch-byte-compile $<
-unidata.txt: UnicodeData.txt
- sed -e 's/\([^;]*\);\(.*\)/(#x\1 "\2")/' -e 's/;/" "/g' < UnicodeData.txt > $@
+unidata.txt: ${srcdir}/UnicodeData.txt
+ sed -e 's/\([^;]*\);\(.*\)/(#x\1 "\2")/' -e 's/;/" "/g' < ${srcdir}/UnicodeData.txt > $@
+
+compile: ${srcdir}/unidata-gen.elc
+
+## Depend on .el rather than .elc so as not to needlessly rebuild
+## uni-*.el files just because .elc is missing.
+## Same for UnicodeData.txt v unidata.txt.
+${DSTDIR}/charprop.el: ${srcdir}/unidata-gen.el ${srcdir}/UnicodeData.txt
+ ${MAKE} ${MFLAGS} compile unidata.txt EMACS="${EMACS}"
+ -if [ -f "$@" ]; then \
+ cd ${DSTDIR} && chmod +w charprop.el `sed -n 's/^;; FILE: //p' < charprop.el`; \
+ fi
+ ${emacs} -L ${srcdir} -l unidata-gen -f unidata-gen-files \
+ ${srcdir} "${DSTDIR}"
-${DSTDIR}/charprop.el: unidata-gen.elc unidata.txt
- ELC=`/bin/pwd`/unidata-gen.elc; \
- DATADIR=`/bin/pwd`; \
- DATA=unidata.txt; \
- cd ${DSTDIR}; \
- ${RUNEMACS} -batch --load $${ELC} -f unidata-gen-files $${DATADIR} $${DATA}
+## Like the above, but generate in PWD rather than lisp/international.
+charprop.el: ${srcdir}/unidata-gen.elc unidata.txt
+ ${emacs} -L ${srcdir} -l unidata-gen -f unidata-gen-files \
+ ${srcdir}
+
+.PHONY: clean bootstrap-clean distclean maintainer-clean extraclean
install: charprop.el
cp charprop.el ${DSTDIR}
if test -f charprop.el; then \
rm -f `sed -n 's/^;; FILE: //p' < charprop.el`; \
fi
- rm -f charprop.el unidata-gen.elc unidata.txt
+ rm -f charprop.el ${srcdir}/*.elc unidata.txt
+
+bootstrap-clean: clean
+
+distclean: clean
+ 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:
+ if test -f ${DSTDIR}/charprop.el; then \
+ (cd ${DSTDIR} && rm -f `sed -n 's/^;; FILE: //p' < charprop.el`); \
+ rm -f ${DSTDIR}/charprop.el; \
+ fi