1 ## texk/web2c/mfluajitdir/am/mfluajit.am: Makefile fragment for MFLuaJIT.
3 ## Copyright (C) 2015 Peter Breitenlohner <tex-live@tug.org>
4 ## You may freely use, modify and/or distribute this file.
9 bin_PROGRAMS += mfluajit
11 bin_PROGRAMS += mfluajit-nowin
14 bin_PROGRAMS += inimfluajit
16 bin_links += mfluajit$(EXEEXT):inimfluajit
19 EXTRA_PROGRAMS += mfluajit mfluajit-nowin
20 DISTCLEANFILES += mfluajittrap.diffs
22 inimfluajit_CPPFLAGS = -DEXEPROG=\"mfluajit.exe\"
23 nodist_inimfluajit_SOURCES = callexe.c
26 dist_mfluajit_SOURCES = mfluajitdir/mfluajitextra.c mfluajitdir/mfluajitextra.h mfluadir/mflua_version.h
27 mfluajit_CPPFLAGS = $(AM_CPPFLAGS) $(X_CFLAGS) $(LUAJIT_INCLUDES) $(LUAJIT_DEFINES)
28 mfluajit_LDADD = libmfluajit.a $(LDADD) $(windowlib) $(mf_x_libs) $(LUAJIT_LIBS)
29 mfluajit_LDFLAGS = -export-dynamic $(LUAJIT_LDEXTRA)
30 nodist_mfluajit_nowin_SOURCES = $(dist_mfluajit_SOURCES)
31 mfluajit_nowin_CPPFLAGS = $(mfluajit_CPPFLAGS) -DMFNOWIN $(LUAJIT_INCLUDES) $(LUAJIT_DEFINES)
32 mfluajit_nowin_LDADD = libmfluajit.a $(LDADD) $(windowlib) $(LUAJIT_LIBS)
33 mfluajit_nowin_LDFLAGS = -export-dynamic $(LUAJIT_LDEXTRA)
35 # We must create mfluajitd.h and mfluadir/mflua_version.h before compiling mfluajitextra.c.
36 $(mfluajit_OBJECTS) $(mfluajit_nowin_OBJECTS): mfluajitd.h mfluadir/mflua_version.h
38 ## mfluajit and mfluajit-nowin compile mfluajitextra.c with different CPPFLAGS.
39 ## Automake, however, does not support CPPFLAGS for individual source files.
40 ## To avoid compiling everything twice, the common objects are in a library.
41 EXTRA_LIBRARIES += libmfluajit.a
44 mfluajit_c_h = mfluajitini.c mfluajit0.c mfluajitcoerce.h mfluajitd.h
45 dist_libmfluajit_a_SOURCES = mfluadir/mfluac.c mfluadir/mfluac.h
46 nodist_libmfluajit_a_SOURCES = $(mfluajit_c_h) mfluajit-pool.c
47 libmfluajit_a_CPPFLAGS = $(AM_CPPFLAGS) $(LUAJIT_INCLUDES) -DJIT
49 # We must create mfluajitd.h before building the libmfluajit_a_OBJECTS.
50 $(libmfluajit_a_OBJECTS): mfluajitd.h
52 $(mfluajit_c_h): mfluajit-web2c $(LUAJIT_LIBS)
54 mfluajit-web2c: mfluajit.p $(web2c_texmf) web2c/cvtmf1.sed web2c/cvtmf2.sed mfluajitdir/mfluajit.defines
57 mfluajit-pool.c: mfluajit.pool mfluajitd.h $(makecpool_stamp)
58 $(makecpool) mfluajit >$@ || rm -f $@
61 mfluajit.p mfluajit.pool: mfluajit-tangle
62 @$(texmf_tangle) mfluajit mfluajit
63 mfluajit-tangle: tangle$(EXEEXT) mfluajit.web mfluajit.ch tangle-sh
64 @$(texmf_tangle) mfluajit mfluajit
66 # Generate mfluajit.web
67 mfluajit.web: tie$(EXEEXT) $(mfluajit_web_srcs)
68 $(tie) -m mfluajit.web $(mfluajit_web_srcs)
72 mfluajitdir/mf-luajit.ch
74 # Generate mfluajit.ch
75 mfluajit.ch: tie$(EXEEXT) mfluajit.web $(mfluajit_ch_src)
76 $(tie) -c $@ mfluajit.web $(mfluajit_ch_src)
82 EXTRA_DIST += $(mfluajit_web_srcs) $(mfluajit_ch_src) mfluajitdir/mfluajit.defines
84 DISTCLEANFILES += $(nodist_libmfluajit_a_SOURCES) mfluajit.web mfluajit.ch mfluajit-web2c \
85 mfluajit.p mfluajit.pool mfluajit-tangle
92 mfluajit_tests = mfluajitdir/mfluajittraptest
93 EXTRA_DIST += $(mfluajit_tests)
96 TESTS += $(mfluajit_tests)
97 check_PROGRAMS += gftype tftopl
98 TRIPTRAP += mfluajittrap.diffs
99 TRIPTRAP_CLEAN += mfluajittrap-clean
101 DISTCLEANFILES += mfluajittrap.diffs
103 ## mfluajitdir/mfluajittraptest
104 mfluajittrap.diffs: mfluajit$(EXEEXT)
106 .PHONY: mfluajittrap-clean
108 rm -rf mfluajittrapdir
113 mfluadir/mfluatrap/begin_program.lua \
114 mfluadir/mfluatrap/do_add_to.lua \
115 mfluadir/mfluatrap/end_program.lua \
116 mfluadir/mfluatrap/fill_envelope.lua \
117 mfluadir/mfluatrap/fill_spec.lua \
118 mfluadir/mfluatrap/final_cleanup.lua \
119 mfluadir/mfluatrap/main_control.lua \
120 mfluadir/mfluatrap/make_ellipse.lua \
121 mfluadir/mfluatrap/mfluaini.lua \
122 mfluadir/mfluatrap/offset_prep.lua \
123 mfluadir/mfluatrap/print_edges.lua \
124 mfluadir/mfluatrap/print_path.lua \
125 mfluadir/mfluatrap/scan_direction.lua \
126 mfluadir/mfluatrap/skew_line_edges.lua \
127 mfluadir/mfluatrap/start_of_MF.lua \
128 mfluadir/mfluatrap/texmf.cnf \
129 mfluajitdir/mfluajittrap/mfluajittrap.diffs