beta-0.89.2
[luatex.git] / source / texk / web2c / mfluajitdir / am / mfluajit.am
blobb2cf7a4fa9049ec7d87074532494df5bef24deea
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 ## MFLuaJIT
7 ##
8 if MFLUAJIT
9 bin_PROGRAMS += mfluajit
10 if MFLUAJITN
11 bin_PROGRAMS += mfluajit-nowin
12 endif MFLUAJITN
13 if WIN32
14 noinst_PROGRAMS += call_mfluajit
15 install_exe_links += install-mfluajit-links
16 uninstall_exe_links += uninstall-mfluajit-links
17 else !WIN32
18 if !MFLUAJITN
19 bin_links += mfluajit$(EXEEXT):mfluajit-nowin
20 endif !MFLUAJITN
21 bin_links += mfluajit$(EXEEXT):inimfluajit
22 endif !WIN32
23 endif MFLUAJIT
24 EXTRA_PROGRAMS += mfluajit mfluajit-nowin
25 DISTCLEANFILES += mfluajittrap.diffs
27 call_mfluajit_CPPFLAGS = -DEXEPROG=\"mfluajit.exe\"
28 nodist_call_mfluajit_SOURCES = callexe.c
29 call_mfluajit_LDADD =
31 .PHONY: install-mfluajit-links uninstall-mfluajit-links
32 if WIN32
33 install-mfluajit-links: call_mfluajit$(EXEEXT)
34 if !MFLUAJITN
35         $(INSTALL_PROGRAM) call_mfluajit$(EXEEXT) $(DESTDIR)$(bindir)/mfluajit-nowin$(EXEEXT)
36 endif !MFLUAJITN
37         $(INSTALL_PROGRAM) call_mfluajit$(EXEEXT) $(DESTDIR)$(bindir)/inimfluajit$(EXEEXT)
38 uninstall-mfluajit-links:
39 if !MFLUAJITN
40         rm -f $(DESTDIR)$(bindir)/mfluajit-nowin$(EXEEXT)
41 endif !MFLUAJITN
42         rm -f $(DESTDIR)$(bindir)/inimfluajit$(EXEEXT)
43 endif WIN32
45 dist_mfluajit_SOURCES = mfluajitdir/mfluajitextra.c mfluajitdir/mfluajitextra.h mfluadir/mflua_version.h
46 mfluajit_CPPFLAGS = $(AM_CPPFLAGS) $(X_CFLAGS) $(LUAJIT_INCLUDES) $(LUAJIT_DEFINES)
47 mfluajit_LDADD = libmfluajit.a $(LDADD) $(windowlib) $(mf_x_libs) $(LUAJIT_LIBS)
48 mfluajit_LDFLAGS = -export-dynamic $(LUAJIT_LDEXTRA)
49 nodist_mfluajit_nowin_SOURCES = $(dist_mfluajit_SOURCES)
50 mfluajit_nowin_CPPFLAGS = $(mfluajit_CPPFLAGS) -DMFNOWIN $(LUAJIT_INCLUDES) $(LUAJIT_DEFINES)
51 mfluajit_nowin_LDADD = libmfluajit.a $(LDADD) $(windowlib) $(LUAJIT_LIBS)
52 mfluajit_nowin_LDFLAGS = -export-dynamic $(LUAJIT_LDEXTRA)
54 # We must create mfluajitd.h and mfluadir/mflua_version.h before compiling mfluajitextra.c.
55 $(mfluajit_OBJECTS) $(mfluajit_nowin_OBJECTS): mfluajitd.h mfluadir/mflua_version.h
57 ## mfluajit and mfluajit-nowin compile mfluajitextra.c with different CPPFLAGS.
58 ## Automake, however, does not support CPPFLAGS for individual source files.
59 ## To avoid compiling everything twice, the common objects are in a library.
60 EXTRA_LIBRARIES += libmfluajit.a
62 # MFLuaJIT C sources
63 mfluajit_c_h = mfluajitini.c mfluajit0.c mfluajitcoerce.h mfluajitd.h
64 dist_libmfluajit_a_SOURCES = luatexdir/lua/lkpselib.c mfluadir/mfluac.c mfluadir/mfluac.h
65 nodist_libmfluajit_a_SOURCES = $(mfluajit_c_h) mfluajit-pool.c
66 libmfluajit_a_CPPFLAGS = $(AM_CPPFLAGS) $(LUAJIT_INCLUDES) -DMF_LUA -DJIT
68 # We must create mfluajitd.h before building the libmfluajit_a_OBJECTS.
69 $(libmfluajit_a_OBJECTS): mfluajitd.h
71 $(mfluajit_c_h): mfluajit-web2c
72         @$(web2c) mfluajit
73 mfluajit-web2c: mfluajit.p $(web2c_texmf) web2c/cvtmf1.sed web2c/cvtmf2.sed mfluajitdir/mfluajit.defines $(LUAJIT_DEPEND)
74         @$(web2c) mfluajit
76 mfluajit-pool.c: mfluajit.pool mfluajitd.h $(makecpool_stamp)
77         $(makecpool) mfluajit >$@ || rm -f $@
79 # Tangling MFLuaJIT
80 mfluajit.p mfluajit.pool: mfluajit-tangle
81         @$(texmf_tangle) mfluajit mfluajit
82 mfluajit-tangle: tangle$(EXEEXT) mfluajit.web mfluajit.ch tangle-sh
83         @$(texmf_tangle) mfluajit mfluajit
85 # Generate mfluajit.web
86 mfluajit.web: tie$(EXEEXT) $(mfluajit_web_srcs)
87         $(tie_m) $(mfluajit_web_srcs)
88 mfluajit_web_srcs = \
89         mf.web \
90         mfluadir/mf-lua.ch \
91         mfluajitdir/mf-luajit.ch
93 # Generate mfluajit.ch
94 mfluajit.ch: tie$(EXEEXT) mfluajit.web $(mfluajit_ch_src)
95         $(tie_c) mfluajit.web $(mfluajit_ch_src)
96 mfluajit_ch_src = \
97         mf.ch \
98         mfluadir/mflua-m.ch \
99         mf-binpool.ch
101 EXTRA_DIST += $(mfluajit_web_srcs) $(mfluajit_ch_src) mfluajitdir/mfluajit.defines
103 DISTCLEANFILES += $(nodist_libmfluajit_a_SOURCES) mfluajit.web mfluajit.ch mfluajit-web2c \
104         mfluajit.p mfluajit.pool mfluajit-tangle
106 EXTRA_DIST += \
107         mfluajitdir/ChangeLog
109 # MFLuaJIT tests
111 mfluajit_tests = mfluajitdir/mfluajittraptest.test
112 mfluajitdir/mfluajittraptest.log: mfluajit$(EXEEXT) gftype$(EXEEXT) tftopl$(EXEEXT)
113 EXTRA_DIST += $(mfluajit_tests)
115 if MFLUAJIT
116 TESTS += $(mfluajit_tests)
117 TRIPTRAP += mfluajittrap.diffs
118 TRIPTRAP_CLEAN += mfluajittrap-clean
119 endif MFLUAJIT
120 DISTCLEANFILES += mfluajittrap.diffs
122 ## mfluajitdir/mfluajittraptest
123 mfluajittrap.diffs: mfluajit$(EXEEXT) gftype$(EXEEXT) tftopl$(EXEEXT)
124         $(triptrap_diffs) $@
125 .PHONY: mfluajittrap-clean
126 mfluajittrap-clean:
127         rm -rf mfluajittrapdir
129 ## Test data 
131 EXTRA_DIST += \
132         mfluadir/mfluatrap/begin_program.lua \
133         mfluadir/mfluatrap/do_add_to.lua \
134         mfluadir/mfluatrap/end_program.lua \
135         mfluadir/mfluatrap/fill_envelope.lua \
136         mfluadir/mfluatrap/fill_spec.lua \
137         mfluadir/mfluatrap/final_cleanup.lua \
138         mfluadir/mfluatrap/main_control.lua \
139         mfluadir/mfluatrap/make_ellipse.lua \
140         mfluadir/mfluatrap/mfluaini.lua \
141         mfluadir/mfluatrap/offset_prep.lua \
142         mfluadir/mfluatrap/print_edges.lua \
143         mfluadir/mfluatrap/print_path.lua \
144         mfluadir/mfluatrap/scan_direction.lua \
145         mfluadir/mfluatrap/skew_line_edges.lua \
146         mfluadir/mfluatrap/start_of_MF.lua \
147         mfluadir/mfluatrap/texmf.cnf \
148         mfluajitdir/mfluajittrap/mfluajittrap.diffs