diff options
author | Peter Breitenlohner <peb@mppmu.mpg.de> | 2015-06-12 08:45:07 +0000 |
---|---|---|
committer | Peter Breitenlohner <peb@mppmu.mpg.de> | 2015-06-12 08:45:07 +0000 |
commit | 4403160cd26a0ba4eb014d69bfb9dcd568f64fc6 (patch) | |
tree | 0a036c9b3654e6e7b2e73753225598980d25c54f /Build/source/texk/web2c/mfluajitdir/am | |
parent | 1dde8ab4578f370c597332ff3421097d7cb39a1a (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/mfluajitdir/am')
-rw-r--r-- | Build/source/texk/web2c/mfluajitdir/am/mfluajit.am | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/Build/source/texk/web2c/mfluajitdir/am/mfluajit.am b/Build/source/texk/web2c/mfluajitdir/am/mfluajit.am new file mode 100644 index 00000000000..4a98fa3da18 --- /dev/null +++ b/Build/source/texk/web2c/mfluajitdir/am/mfluajit.am @@ -0,0 +1,129 @@ +## texk/web2c/mfluajitdir/am/mfluajit.am: Makefile fragment for MFLuaJIT. +## +## Copyright (C) 2015 Peter Breitenlohner <tex-live@tug.org> +## You may freely use, modify and/or distribute this file. + +## MFLua +## +if MFLUAJIT +bin_PROGRAMS += mfluajit +if MFLUAJITN +bin_PROGRAMS += mfluajit-nowin +endif MFLUAJITN +if WIN32 +bin_PROGRAMS += inimfluajit +else !WIN32 +bin_links += mfluajit$(EXEEXT):inimfluajit +endif !WIN32 +endif MFLUAJIT +EXTRA_PROGRAMS += mfluajit mfluajit-nowin +DISTCLEANFILES += mfluajittrap.diffs + +inimfluajit_CPPFLAGS = -DEXEPROG=\"mfluajit.exe\" +nodist_inimfluajit_SOURCES = callexe.c +inimfluajit_LDADD = + +dist_mfluajit_SOURCES = mfluajitdir/mfluajitextra.c mfluajitdir/mfluajitextra.h mfluadir/mflua_version.h +mfluajit_CPPFLAGS = $(AM_CPPFLAGS) $(X_CFLAGS) $(LUAJIT_INCLUDES) $(LUAJIT_DEFINES) +mfluajit_LDADD = libmfluajit.a $(LDADD) $(windowlib) $(mf_x_libs) $(LUAJIT_LIBS) +mfluajit_LDFLAGS = -export-dynamic $(LUAJIT_LDEXTRA) +nodist_mfluajit_nowin_SOURCES = $(dist_mfluajit_SOURCES) +mfluajit_nowin_CPPFLAGS = $(mfluajit_CPPFLAGS) -DMFNOWIN $(LUAJIT_INCLUDES) $(LUAJIT_DEFINES) +mfluajit_nowin_LDADD = libmfluajit.a $(LDADD) $(windowlib) $(LUAJIT_LIBS) +mfluajit_nowin_LDFLAGS = -export-dynamic $(LUAJIT_LDEXTRA) + +# We must create mfluajitd.h and mfluadir/mflua_version.h before compiling mfluajitextra.c. +$(mfluajit_OBJECTS) $(mfluajit_nowin_OBJECTS): mfluajitd.h mfluadir/mflua_version.h + +## mfluajit and mfluajit-nowin compile mfluajitextra.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 += libmfluajit.a + +# MFLua C sources +mfluajit_c_h = mfluajitini.c mfluajit0.c mfluajitcoerce.h mfluajitd.h +dist_libmfluajit_a_SOURCES = mfluadir/mfluac.c mfluadir/mfluac.h +nodist_libmfluajit_a_SOURCES = $(mfluajit_c_h) mfluajit-pool.c +libmfluajit_a_CPPFLAGS = $(AM_CPPFLAGS) $(LUAJIT_INCLUDES) -DJIT + +# We must create mfluajitd.h before building the libmfluajit_a_OBJECTS. +$(libmfluajit_a_OBJECTS): mfluajitd.h + +$(mfluajit_c_h): mfluajit-web2c $(LUAJIT_LIBS) + @$(web2c) mfluajit +mfluajit-web2c: mfluajit.p $(web2c_texmf) web2c/cvtmf1.sed web2c/cvtmf2.sed mfluajitdir/mfluajit.defines + @$(web2c) mfluajit + +mfluajit-pool.c: mfluajit.pool mfluajitd.h $(makecpool_stamp) + $(makecpool) mfluajit >$@ || rm -f $@ + +# Tangling MFLua +mfluajit.p mfluajit.pool: mfluajit-tangle + @$(texmf_tangle) mfluajit mfluajit +mfluajit-tangle: tangle$(EXEEXT) mfluajit.web mfluajit.ch tangle-sh + @$(texmf_tangle) mfluajit mfluajit + +# Generate mfluajit.web +mfluajit.web: tie$(EXEEXT) $(mfluajit_web_srcs) + $(tie) -m mfluajit.web $(mfluajit_web_srcs) +mfluajit_web_srcs = \ + mf.web \ + mfluadir/mf-lua.ch \ + mfluajitdir/mf-luajit.ch + +# Generate mfluajit.ch +mfluajit.ch: tie$(EXEEXT) mfluajit.web $(mfluajit_ch_src) + $(tie) -c $@ mfluajit.web $(mfluajit_ch_src) +mfluajit_ch_src = \ + mf.ch \ + mfluadir/mflua-m.ch \ + mf-binpool.ch +## +EXTRA_DIST += $(mfluajit_web_srcs) $(mfluajit_ch_src) mfluajitdir/mfluajit.defines + +DISTCLEANFILES += $(nodist_libmfluajit_a_SOURCES) mfluajit.web mfluajit.ch mfluajit-web2c \ + mfluajit.p mfluajit.pool mfluajit-tangle + +EXTRA_DIST += \ + mfluajitdir/ChangeLog + +# MFLua tests +# +mfluajit_tests = mfluajitdir/mfluajittraptest +EXTRA_DIST += $(mfluajit_tests) + +if MFLUAJIT +TESTS += $(mfluajit_tests) +check_PROGRAMS += gftype tftopl +TRIPTRAP += mfluajittrap.diffs +TRIPTRAP_CLEAN += mfluajittrap-clean +endif MFLUAJIT +DISTCLEANFILES += mfluajittrap.diffs + +## mfluajitdir/mfluajittraptest +mfluajittrap.diffs: mfluajit$(EXEEXT) + $(triptrap_diffs) $@ +.PHONY: mfluajittrap-clean +mfluajittrap-clean: + rm -rf mfluajittrapdir + +## 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 \ + mfluajitdir/mfluajittrap/mfluajittrap.diffs |