1 ## Proxy Makefile.am to build LuaJIT for TeX Live.
3 ## Copyright (C) 2014 Luigi Scarso <luigi.scarso@gmail.com>
4 ## Copyright (C) 2014, 2015 Peter Breitenlohner <tex-live@tug.org>
5 ## You may freely use, modify and/or distribute this file.
7 ## We want to re-distribute the whole original LuaJIT source tree.
9 EXTRA_DIST = $(LUAJIT_TREE)
11 ## Changes applied to the original source tree
13 EXTRA_DIST += $(LUAJIT_TREE)-PATCHES
15 # Files not to be distributed
16 include $(srcdir)/../../am/dist_hook.am
17 NEVER_NAMES += $(NEVER_NAMES_SUB) $(NEVER_NAMES_LT)
19 AM_CPPFLAGS = -I$(srcdir)/$(LUAJIT_TREE)/src $(LUAJIT_DEFINES)
22 SUBDIRS = . native include
24 lib_LTLIBRARIES = libtexluajit.la
26 libtexluajit_la_LDFLAGS = -bindir @bindir@ -no-undefined -version-info $(LUAJIT_LT_VERSINFO)
28 dist_libtexluajit_la_SOURCES = \
31 nodist_libtexluajit_la_SOURCES = \
33 @LUAJIT_TREE@/src/lib_aux.c \
34 @LUAJIT_TREE@/src/lib_init.c \
35 @LUAJIT_TREE@/src/lj_alloc.c \
36 @LUAJIT_TREE@/src/lj_api.c \
37 @LUAJIT_TREE@/src/lj_asm.c \
38 @LUAJIT_TREE@/src/lj_bc.c \
39 @LUAJIT_TREE@/src/lj_bcread.c \
40 @LUAJIT_TREE@/src/lj_bcwrite.c \
41 @LUAJIT_TREE@/src/lj_carith.c \
42 @LUAJIT_TREE@/src/lj_ccall.c \
43 @LUAJIT_TREE@/src/lj_ccallback.c \
44 @LUAJIT_TREE@/src/lj_cconv.c \
45 @LUAJIT_TREE@/src/lj_cdata.c \
46 @LUAJIT_TREE@/src/lj_char.c \
47 @LUAJIT_TREE@/src/lj_clib.c \
48 @LUAJIT_TREE@/src/lj_cparse.c \
49 @LUAJIT_TREE@/src/lj_crecord.c \
50 @LUAJIT_TREE@/src/lj_ctype.c \
51 @LUAJIT_TREE@/src/lj_debug.c \
52 @LUAJIT_TREE@/src/lj_dispatch.c \
53 @LUAJIT_TREE@/src/lj_err.c \
54 @LUAJIT_TREE@/src/lj_ffrecord.c \
55 @LUAJIT_TREE@/src/lj_func.c \
56 @LUAJIT_TREE@/src/lj_gc.c \
57 @LUAJIT_TREE@/src/lj_gdbjit.c \
58 @LUAJIT_TREE@/src/lj_ir.c \
59 @LUAJIT_TREE@/src/lj_lex.c \
60 @LUAJIT_TREE@/src/lj_lib.c \
61 @LUAJIT_TREE@/src/lj_load.c \
62 @LUAJIT_TREE@/src/lj_mcode.c \
63 @LUAJIT_TREE@/src/lj_meta.c \
64 @LUAJIT_TREE@/src/lj_obj.c \
65 @LUAJIT_TREE@/src/lj_opt_dce.c \
66 @LUAJIT_TREE@/src/lj_opt_fold.c \
67 @LUAJIT_TREE@/src/lj_opt_loop.c \
68 @LUAJIT_TREE@/src/lj_opt_mem.c \
69 @LUAJIT_TREE@/src/lj_opt_narrow.c \
70 @LUAJIT_TREE@/src/lj_opt_sink.c \
71 @LUAJIT_TREE@/src/lj_opt_split.c \
72 @LUAJIT_TREE@/src/lj_parse.c \
73 @LUAJIT_TREE@/src/lj_record.c \
74 @LUAJIT_TREE@/src/lj_snap.c \
75 @LUAJIT_TREE@/src/lj_state.c \
76 @LUAJIT_TREE@/src/lj_str.c \
77 @LUAJIT_TREE@/src/lj_strscan.c \
78 @LUAJIT_TREE@/src/lj_tab.c \
79 @LUAJIT_TREE@/src/lj_trace.c \
80 @LUAJIT_TREE@/src/lj_udata.c \
81 @LUAJIT_TREE@/src/lj_vmevent.c \
82 @LUAJIT_TREE@/src/lj_vmmath.c
85 libtexluajit_la_LIBADD = lj_vm_obj.lo
87 nodist_libtexluajit_la_SOURCES += lj_vm_asm.s
103 $(libtexluajit_la_OBJECTS): $(HDRGEN)
105 # When cross-compiling, EXEEXT for the build and host systems may differ.
106 # Thus we depend on the auxiliary file native/buildvm-stamp.
107 native/buildvm-stamp: $(ljlib_sources)
108 cd native && $(MAKE) $(AM_MAKEFLAGS) buildvm-stamp
110 HDRGEN = lj_bcdef.h lj_ffdef.h lj_libdef.h lj_recdef.h lj_folddef.h
112 lj_bcdef.h: native/buildvm-stamp
113 $(AM_V_GEN)native/buildvm -m bcdef -o $@ $(ljlib_sources)
115 lj_ffdef.h: native/buildvm-stamp
116 $(AM_V_GEN)native/buildvm -m ffdef -o $@ $(ljlib_sources)
118 lj_libdef.h: native/buildvm-stamp
119 $(AM_V_GEN)native/buildvm -m libdef -o $@ $(ljlib_sources)
121 lj_recdef.h: native/buildvm-stamp
122 $(AM_V_GEN)native/buildvm -m recdef -o $@ $(ljlib_sources)
124 lj_folddef.h: native/buildvm-stamp $(LUAJIT_TREE)/src/lj_opt_fold.c
125 $(AM_V_GEN)native/buildvm -m folddef -o $@ $(srcdir)/$(LUAJIT_TREE)/src/lj_opt_fold.c
127 lj_vm_obj.o lj_vm_asm.s: native/buildvm-stamp
128 $(AM_V_GEN)native/buildvm -m $(LJVM_MODE) -o $@
130 lj_vm_obj.lo: lj_vm_obj.o lib_base.lo
131 $(AM_V_GEN)sed 's/lib_base/lj_vm_obj/' lib_base.lo >$@ \
132 && . ./$@ && test x"$$pic_object" == xnone \
133 || cp lj_vm_obj.o .libs/lj_vm_obj.o
135 $(ljlib_sources): config.force
136 @test -f $@ || { rm -f $@; \
137 if $(AM_V_P); then echo "$(LN_S) $(srcdir)/$(LUAJIT_TREE)/src/$@ $@"; \
138 else echo " LINK $@"; fi; \
139 $(LN_S) $(srcdir)/$(LUAJIT_TREE)/src/$@ $@; } || exit 1
141 CLEANFILES = $(HDRGEN) $(ljlib_sources) lj_vm_asm.s
143 CONFIG_CLEAN_FILES = dynasm_flags native_flags
145 luajitincludedir = ${includedir}/texluajit
147 luajitinclude_HEADERS = \
148 $(LUAJIT_TREE)/src/lauxlib.h \
149 $(LUAJIT_TREE)/src/luaconf.h \
150 $(LUAJIT_TREE)/src/luajit.h \
151 $(LUAJIT_TREE)/src/lua.h \
152 $(LUAJIT_TREE)/src/lua.hpp \
153 $(LUAJIT_TREE)/src/lualib.h
155 pkgconfigdir = ${libdir}/pkgconfig
157 pkgconfig_DATA = texluajit.pc
160 check_PROGRAMS = jittest luajittry
161 dist_check_SCRIPTS = luajit.test luajiterr.test
162 TESTS = luajit.test luajiterr.test
164 luajit.log: jittest$(EXEEXT)
165 luajiterr.log: luajittry$(EXEEXT)
167 jittest_SOURCES = jittest.c
169 jittest_CPPFLAGS = -Iinclude
171 nodist_luajittry_SOURCES = @LUAJIT_TREE@/src/luajit.c
173 luajittry_CPPFLAGS = -Iinclude
174 luajittry_LDFLAGS = $(LUAJIT_LDEXTRA)
176 LDADD = libtexluajit.la
178 EXTRA_DIST += jiterr.exp
179 CLEANFILES += jiterr.out jiterr.tmp
185 include $(srcdir)/../../am/reconfig.am
191 include $(srcdir)/../../am/rebuild.am