summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/mfluadir/am
diff options
context:
space:
mode:
authorPeter Breitenlohner <peb@mppmu.mpg.de>2015-06-12 08:45:07 +0000
committerPeter Breitenlohner <peb@mppmu.mpg.de>2015-06-12 08:45:07 +0000
commit4403160cd26a0ba4eb014d69bfb9dcd568f64fc6 (patch)
tree0a036c9b3654e6e7b2e73753225598980d25c54f /Build/source/texk/web2c/mfluadir/am
parent1dde8ab4578f370c597332ff3421097d7cb39a1a (diff)
Integrate MFLua and MFLuaJIT
git-svn-id: svn://tug.org/texlive/trunk@37504 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/mfluadir/am')
-rw-r--r--Build/source/texk/web2c/mfluadir/am/mflua.am133
1 files changed, 133 insertions, 0 deletions
diff --git a/Build/source/texk/web2c/mfluadir/am/mflua.am b/Build/source/texk/web2c/mfluadir/am/mflua.am
new file mode 100644
index 00000000000..e2fea0a36ad
--- /dev/null
+++ b/Build/source/texk/web2c/mfluadir/am/mflua.am
@@ -0,0 +1,133 @@
+## texk/web2c/mfluadir/am/mflua.am: Makefile fragment for MFLua.
+##
+## Copyright (C) 2015 Peter Breitenlohner <tex-live@tug.org>
+## You may freely use, modify and/or distribute this file.
+
+## MFLua
+##
+if MFLUA
+bin_PROGRAMS += mflua
+if MFLUAN
+bin_PROGRAMS += mflua-nowin
+endif MFLUAN
+if WIN32
+bin_PROGRAMS += inimflua
+else !WIN32
+bin_links += mflua$(EXEEXT):inimflua
+endif !WIN32
+endif MFLUA
+EXTRA_PROGRAMS += mflua mflua-nowin
+DISTCLEANFILES += mfluatrap.diffs
+
+inimflua_CPPFLAGS = -DEXEPROG=\"mflua.exe\"
+nodist_inimflua_SOURCES = callexe.c
+inimflua_LDADD =
+
+dist_mflua_SOURCES = mfluadir/mfluaextra.c mfluadir/mfluaextra.h mfluadir/mflua_version.h
+mflua_CPPFLAGS = $(AM_CPPFLAGS) $(X_CFLAGS) $(LUA_INCLUDES)
+mflua_LDADD = libmflua.a $(LDADD) $(windowlib) $(mf_x_libs) $(LUA_LIBS)
+mflua_LDFLAGS = -export-dynamic
+nodist_mflua_nowin_SOURCES = $(dist_mflua_SOURCES)
+mflua_nowin_CPPFLAGS = $(mflua_CPPFLAGS) -DMFNOWIN $(LUA_INCLUDES)
+mflua_nowin_LDADD = libmflua.a $(LDADD) $(windowlib) $(LUA_LIBS)
+mflua_nowin_LDFLAGS = -export-dynamic
+
+# We must create mfluad.h and mfluadir/mflua_version.h before compiling mfluaextra.c.
+$(mflua_OBJECTS) $(mflua_nowin_OBJECTS): mfluad.h mfluadir/mflua_version.h
+
+## mflua and mflua-nowin compile mfluaextra.c with different CPPFLAGS.
+## Automake, however, does not support CPPFLAGS for individual source files.
+## To avoid compiling everything twice, the common objects are in a library.
+EXTRA_LIBRARIES += libmflua.a
+
+# MFLua C sources
+mflua_c_h = mfluaini.c mflua0.c mfluacoerce.h mfluad.h
+dist_libmflua_a_SOURCES = mfluadir/mfluac.c mfluadir/mfluac.h
+nodist_libmflua_a_SOURCES = $(mflua_c_h) mflua-pool.c
+libmflua_a_CPPFLAGS = $(AM_CPPFLAGS) $(LUA_INCLUDES)
+
+# We must create mfluad.h before building the libmflua_a_OBJECTS.
+$(libmflua_a_OBJECTS): mfluad.h
+
+$(mflua_c_h): mflua-web2c $(LUA_LIBS)
+ @$(web2c) mflua
+mflua-web2c: mflua.p $(web2c_texmf) web2c/cvtmf1.sed web2c/cvtmf2.sed mfluadir/mflua.defines
+ @$(web2c) mflua
+
+mflua-pool.c: mflua.pool mfluad.h $(makecpool_stamp)
+ $(makecpool) mflua >$@ || rm -f $@
+
+# Tangling MFLua
+mflua.p mflua.pool: mflua-tangle
+ @$(texmf_tangle) mflua mflua
+mflua-tangle: tangle$(EXEEXT) mflua.web mflua.ch tangle-sh
+ @$(texmf_tangle) mflua mflua
+
+# Extract mflua version
+$(srcdir)/mfluadir/mflua_version.h: @MAINTAINER_MODE_TRUE@ mfluadir/mf-lua.ch
+ $(AM_V_GEN)grep '^@d MFLua_version_string==' $(srcdir)/mfluadir/mf-lua.ch \
+ | sed "s/^.*'-/#define MFLUA_VERSION \"/;s/'.*$$/\"/" >$@
+
+# Generate mflua.web
+mflua.web: tie$(EXEEXT) $(mflua_web_srcs)
+ $(tie) -m mflua.web $(mflua_web_srcs)
+mflua_web_srcs = \
+ mf.web \
+ mfluadir/mf-lua.ch
+
+# Generate mflua.ch
+mflua.ch: tie$(EXEEXT) mflua.web $(mflua_ch_src)
+ $(tie) -c $@ mflua.web $(mflua_ch_src)
+mflua_ch_src = \
+ mf.ch \
+ mfluadir/mflua-m.ch \
+ mf-binpool.ch
+##
+EXTRA_DIST += $(mflua_web_srcs) $(mflua_ch_src) mfluadir/mflua.defines
+
+DISTCLEANFILES += $(nodist_libmflua_a_SOURCES) mflua.web mflua.ch mflua-web2c \
+ mflua.p mflua.pool mflua-tangle
+
+EXTRA_DIST += \
+ mfluadir/ChangeLog
+
+# MFLua tests
+#
+mflua_tests = mfluadir/mfluatraptest
+EXTRA_DIST += $(mflua_tests)
+
+if MFLUA
+TESTS += $(mflua_tests)
+check_PROGRAMS += gftype tftopl
+TRIPTRAP += mfluatrap.diffs
+TRIPTRAP_CLEAN += mfluatrap-clean
+endif MFLUA
+DISTCLEANFILES += mfluatrap.diffs
+
+## mfluadir/mfluatraptest
+mfluatrap.diffs: mflua$(EXEEXT)
+ $(triptrap_diffs) $@
+.PHONY: mfluatrap-clean
+mfluatrap-clean:
+ rm -rf mfluatrapdir
+
+## Test data
+##
+EXTRA_DIST += \
+ mfluadir/mfluatrap/begin_program.lua \
+ mfluadir/mfluatrap/do_add_to.lua \
+ mfluadir/mfluatrap/end_program.lua \
+ mfluadir/mfluatrap/fill_envelope.lua \
+ mfluadir/mfluatrap/fill_spec.lua \
+ mfluadir/mfluatrap/final_cleanup.lua \
+ mfluadir/mfluatrap/main_control.lua \
+ mfluadir/mfluatrap/make_ellipse.lua \
+ mfluadir/mfluatrap/mfluaini.lua \
+ mfluadir/mfluatrap/offset_prep.lua \
+ mfluadir/mfluatrap/print_edges.lua \
+ mfluadir/mfluatrap/print_path.lua \
+ mfluadir/mfluatrap/scan_direction.lua \
+ mfluadir/mfluatrap/skew_line_edges.lua \
+ mfluadir/mfluatrap/start_of_MF.lua \
+ mfluadir/mfluatrap/texmf.cnf \
+ mfluadir/mfluatrap/mfluatrap.diffs