### @configure_input@ # Copyright (C) 2012-2022 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 # # 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 . SHELL = /bin/sh AWK = gawk srcdir = . top_srcdir = ../.. top_builddir = ../.. EMACS = ${top_builddir}/src/emacs unidir = ${top_srcdir}/lisp/international emacs = "${EMACS}" -batch --no-site-file --no-site-lisp lparen = ( unifiles = $(addprefix ${unidir}/,$(sort $(shell sed -n 's/^[ \t][ \t]*${lparen}"\(uni-[^"]*\)"$$/\1/p' ${srcdir}/unidata-gen.el))) -include ${top_builddir}/src/verbose.mk .PHONY: all all: ${top_srcdir}/src/macuvs.h ${unifiles} ${unidir}/charscript.el \ ${unidir}/charprop.el ${unidir}/emoji-zwj.el ## 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 $(AM_V_GEN)${emacs} -L ${srcdir} -l uvs \ --eval '(uvs-print-table-ivd (unmsys--file-name "${srcdir}/IVD_Sequences.txt") "Adobe-Japan1")' \ > $@ %.elc: %.el $(AM_V_ELC)${emacs} -f batch-byte-compile $< unidata.txt: ${srcdir}/UnicodeData.txt $(AM_V_GEN)sed -e 's/\([^;]*\);\(.*\)/(#x\1 "\2")/' -e 's/;/" "/g' \ < $< > $@ ## charprop doesn't actually depend on unifiles, but for now at least ## pretend that it does since other Makefiles assume that if charprop ## is up-to-date, the unifiles are too. ${unidir}/charprop.el: ${unifiles} ${srcdir}/unidata-gen.el | ${srcdir}/unidata-gen.elc $(AM_V_at)[ ! -f $@ ] || chmod +w $@ $(AM_V_GEN)${emacs} -L ${srcdir} -l unidata-gen \ -f unidata-gen-charprop $@ ${unifiles}: ${srcdir}/unidata-gen.el \ ${srcdir}/UnicodeData.txt ${srcdir}/BidiMirroring.txt \ ${srcdir}/BidiBrackets.txt | \ ${srcdir}/unidata-gen.elc unidata.txt $(AM_V_at)[ ! -f $@ ] || chmod +w $@ $(AM_V_GEN)${emacs} -L ${srcdir} -l unidata-gen \ -f unidata-gen-file $@ ${srcdir} .PHONY: charscript.el charscript.el: ${unidir}/charscript.el blocks = ${srcdir}/blocks.awk ${unidir}/charscript.el: ${blocks} ${unidir}/charscript.el: ${srcdir}/Blocks.txt ${srcdir}/emoji-data.txt $(AM_V_GEN)$(AWK) -f ${blocks} $^ > $@ .PHONY: emoji-zwj.el emoji-zwj.el: ${unidir}/emoji-zwj.el zwj = ${srcdir}/emoji-zwj.awk ${unidir}/emoji-zwj.el: ${srcdir}/emoji-zwj-sequences.txt $(srcdir)/emoji-sequences.txt ${zwj} $(AM_V_GEN)$(AWK) -f ${zwj} $^ > $@ .PHONY: clean bootstrap-clean distclean maintainer-clean gen-clean clean: rm -f ${srcdir}/*.elc unidata.txt ## IMO this should also run gen-clean. bootstrap-clean: clean distclean: clean rm -f Makefile ## macuvs.h is a generated file, but it's also checked in because ## macOS builds would need to do a headless bootstrap without it, ## which is currently awkward. To avoid changing checked-in files ## from a make target, we don't delete it here. gen-clean: rm -f ${unidir}/charscript.el* rm -f ${unidir}/emoji-zwj.el* rm -f ${unifiles} ${unidir}/charprop.el ## ref: https://lists.gnu.org/r/emacs-devel/2013-11/msg01029.html maintainer-clean: gen-clean distclean