sync with trunk
[luatex.git] / source / texk / web2c / mfluajitdir / am / mfluajit.am
blob4a98fa3da185910b7b157dbdf5657d1105bea554
1 ## texk/web2c/mfluajitdir/am/mfluajit.am: Makefile fragment for MFLuaJIT.
2 ##
3 ## Copyright (C) 2015 Peter Breitenlohner <tex-live@tug.org>
4 ## You may freely use, modify and/or distribute this file.
6 ## MFLua
7 ##
8 if MFLUAJIT
9 bin_PROGRAMS += mfluajit
10 if MFLUAJITN
11 bin_PROGRAMS += mfluajit-nowin
12 endif MFLUAJITN
13 if WIN32
14 bin_PROGRAMS += inimfluajit
15 else !WIN32
16 bin_links += mfluajit$(EXEEXT):inimfluajit
17 endif !WIN32
18 endif MFLUAJIT
19 EXTRA_PROGRAMS += mfluajit mfluajit-nowin
20 DISTCLEANFILES += mfluajittrap.diffs
22 inimfluajit_CPPFLAGS = -DEXEPROG=\"mfluajit.exe\"
23 nodist_inimfluajit_SOURCES = callexe.c
24 inimfluajit_LDADD =
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
43 # MFLua C sources
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)
53         @$(web2c) mfluajit
54 mfluajit-web2c: mfluajit.p $(web2c_texmf) web2c/cvtmf1.sed web2c/cvtmf2.sed mfluajitdir/mfluajit.defines
55         @$(web2c) mfluajit
57 mfluajit-pool.c: mfluajit.pool mfluajitd.h $(makecpool_stamp)
58         $(makecpool) mfluajit >$@ || rm -f $@
60 # Tangling MFLua
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)
69 mfluajit_web_srcs = \
70         mf.web \
71         mfluadir/mf-lua.ch \
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)
77 mfluajit_ch_src = \
78         mf.ch \
79         mfluadir/mflua-m.ch \
80         mf-binpool.ch
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
87 EXTRA_DIST += \
88         mfluajitdir/ChangeLog
90 # MFLua tests
92 mfluajit_tests = mfluajitdir/mfluajittraptest
93 EXTRA_DIST += $(mfluajit_tests)
95 if MFLUAJIT
96 TESTS += $(mfluajit_tests)
97 check_PROGRAMS += gftype tftopl
98 TRIPTRAP += mfluajittrap.diffs
99 TRIPTRAP_CLEAN += mfluajittrap-clean
100 endif MFLUAJIT
101 DISTCLEANFILES += mfluajittrap.diffs
103 ## mfluajitdir/mfluajittraptest
104 mfluajittrap.diffs: mfluajit$(EXEEXT)
105         $(triptrap_diffs) $@
106 .PHONY: mfluajittrap-clean
107 mfluajittrap-clean:
108         rm -rf mfluajittrapdir
110 ## Test data 
112 EXTRA_DIST += \
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