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 noinst_PROGRAMS += call_mfluajit
15 install_exe_links += install-mfluajit-links
16 uninstall_exe_links += uninstall-mfluajit-links
19 bin_links += mfluajit$(EXEEXT):mfluajit-nowin
21 bin_links += mfluajit$(EXEEXT):inimfluajit
24 EXTRA_PROGRAMS += mfluajit mfluajit-nowin
25 DISTCLEANFILES += mfluajittrap.diffs
27 call_mfluajit_CPPFLAGS = -DEXEPROG=\"mfluajit.exe\"
28 nodist_call_mfluajit_SOURCES = callexe.c
31 .PHONY: install-mfluajit-links uninstall-mfluajit-links
33 install-mfluajit-links: call_mfluajit$(EXEEXT)
35 $(INSTALL_PROGRAM) call_mfluajit$(EXEEXT) $(DESTDIR)$(bindir)/mfluajit-nowin$(EXEEXT)
37 $(INSTALL_PROGRAM) call_mfluajit$(EXEEXT) $(DESTDIR)$(bindir)/inimfluajit$(EXEEXT)
38 uninstall-mfluajit-links:
40 rm -f $(DESTDIR)$(bindir)/mfluajit-nowin$(EXEEXT)
42 rm -f $(DESTDIR)$(bindir)/inimfluajit$(EXEEXT)
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
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
73 mfluajit-web2c: mfluajit.p $(web2c_texmf) web2c/cvtmf1.sed web2c/cvtmf2.sed mfluajitdir/mfluajit.defines $(LUAJIT_DEPEND)
76 mfluajit-pool.c: mfluajit.pool mfluajitd.h $(makecpool_stamp)
77 $(makecpool) mfluajit >$@ || rm -f $@
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)
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)
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
107 mfluajitdir/ChangeLog
111 mfluajit_tests = mfluajitdir/mfluajittraptest.test
112 mfluajitdir/mfluajittraptest.log: mfluajit$(EXEEXT) gftype$(EXEEXT) tftopl$(EXEEXT)
113 EXTRA_DIST += $(mfluajit_tests)
116 TESTS += $(mfluajit_tests)
117 TRIPTRAP += mfluajittrap.diffs
118 TRIPTRAP_CLEAN += mfluajittrap-clean
120 DISTCLEANFILES += mfluajittrap.diffs
122 ## mfluajitdir/mfluajittraptest
123 mfluajittrap.diffs: mfluajit$(EXEEXT) gftype$(EXEEXT) tftopl$(EXEEXT)
125 .PHONY: mfluajittrap-clean
127 rm -rf mfluajittrapdir
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