Adding copyright notices to most files. Also add readme file, and some
[jitcs.git] / makefile
blob677a4cfb026a81d10c2e216db257bbffb7567569
1 CC = g++.bat
2 CFLAGS = -I ./include
3 CFLAGS_DBG32 = -D_DEBUG
4 CFLAGS_REL32 = -D_NDEBUG -O3
5 CFLAGS_DBG64 = -D_DEBUG -m64
6 CFLAGS_REL64 = -D_NDEBUG -O3 -m64
7 LUA = luax51.bat
8 NASM = nasm.bat
9 RM = del
10 SEP = $(subst A,\,A)
11 SRC_SRC = cpu.cpp dumper.cpp tmpalloc.cpp memmgr.cpp \
12 bblock.cpp bblock_impl.cpp function.cpp function_impl.cpp \
13 callingconvention.cpp callingconvention_impl.cpp \
14 host.cpp machine.cpp virtualregister.cpp spillslotinfo.cpp \
15 cfg_analysis.cpp codegenerator.cpp dfg_analysis.cpp adt_bitmap.cpp
16 SRC_X86 = x86_32_callingconvention.cpp x86_64_callingconvention.cpp \
17 x86_32_machine.cpp x86_64_machine.cpp x86_32_regs.cpp x86_64_regs.cpp \
18 x86_32_insinfo.cpp x86_64_insinfo.cpp x86_32_dumper.cpp x86_64_dumper.cpp \
19 x86_32_codegen.cpp x86_64_codegen.cpp x86_32_ins2reg.cpp x86_64_ins2reg.cpp
20 SRC_UNITTEST = test_unittest.cpp test_main.cpp test_fnctypeinfo.cpp \
21 test_adt_range.cpp test_adt_slice.cpp test_callingconvention.cpp \
22 test_simplefunction.cpp test_adt_bitmap.cpp test_adt_tmpvector.cpp \
23 test_adt_heap.cpp test_adt_smallheap.cpp \
24 test_bitfuncs.cpp test_power2funcs.cpp test_cfg_analysis.cpp \
25 test_simplecodegen.cpp test_asm.cpp \
26 test_asm_x86_32_ins.cpp test_asm_x86_32_reg.cpp test_asm_x86_32_ext.cpp \
27 test_asm_x86_64_ins.cpp test_asm_x86_64_reg.cpp test_asm_x86_64_ext.cpp \
28 test_allinstructions.cpp test_dfg_analysis.cpp
29 X86_INS = x86_arith.ins x86_mov_set.ins x86_other.ins x86_other_vex.ins \
30 x86_simd_arith.ins x86_simd_blend.ins x86_simd_cvt.ins \
31 x86_simd_insext.ins x86_simd_mov.ins x86_simd_shuffle.ins\
32 x86_simd_arith_vex.ins x86_simd_blend_vex.ins x86_simd_cvt_vex.ins \
33 x86_simd_insext_vex.ins x86_simd_mov_vex.ins x86_simd_shuffle_vex.ins \
34 x86_cf.ins x86_addrmode.ins
35 PREFIXES_LIBSRC = dbg32_ rel32_ dbg64_ rel64_
36 PREFIXES_TESTSRC = test32_ test64_ testd32_ testd64_
37 OBJDIR = _objs
38 LIBDIR = _lib
39 BINDIR = _bin
40 BINDATADIR = _bin/data
41 TEST_NAMES = $(patsubst %.cpp,%.o,$(SRC_SRC))
42 LIBOBJ_NAMES = $(addprefix src_,$(patsubst %.cpp,%.o,$(SRC_SRC))) \
43 $(addprefix x86_,$(patsubst %.cpp,%.o,$(SRC_X86)))
44 LIBOBJS_DEBUG32 = $(addprefix $(OBJDIR)/dbg32_,$(LIBOBJ_NAMES))
45 LIBOBJS_RELEASE32 = $(addprefix $(OBJDIR)/rel32_,$(LIBOBJ_NAMES))
46 LIBOBJS_DEBUG64 = $(addprefix $(OBJDIR)/dbg64_,$(LIBOBJ_NAMES))
47 LIBOBJS_RELEASE64 = $(addprefix $(OBJDIR)/rel64_,$(LIBOBJ_NAMES))
48 UNITTESTOBJS_DEBUG32 = $(addprefix $(OBJDIR)/testd32_,$(patsubst test_%.cpp,%.o,$(SRC_UNITTEST)))
49 UNITTESTOBJS_DEBUG64 = $(addprefix $(OBJDIR)/testd64_,$(patsubst test_%.cpp,%.o,$(SRC_UNITTEST)))
50 UNITTESTOBJS_RELEASE32 = $(addprefix $(OBJDIR)/test32_,$(patsubst test_%.cpp,%.o,$(SRC_UNITTEST)))
51 UNITTESTOBJS_RELEASE64 = $(addprefix $(OBJDIR)/test64_,$(patsubst test_%.cpp,%.o,$(SRC_UNITTEST)))
52 OBJPREFIX_SRC = $(addprefix $(OBJDIR)/,$(addsuffix src_,$(PREFIXES_LIBSRC)))
53 OBJPREFIX_X86 = $(addprefix $(OBJDIR)/,$(addsuffix x86_,$(PREFIXES_LIBSRC)))
54 OBJPREFIX_TEST = $(addprefix $(OBJDIR)/,$(PREFIXES_TESTSRC))
55 AS32_FILES = $(addprefix $(BINDATADIR)/,$(patsubst x86_%.ins,x86_32_%.as,$(X86_INS)))
56 AS64_FILES = $(addprefix $(BINDATADIR)/,$(patsubst x86_%.ins,x86_64_%.as,$(X86_INS)))
58 #all : debug release tests
59 all : lua debug tests
61 clean:
62 $(RM) $(subst /,$(SEP),_objs/*)
63 $(RM) $(subst /,$(SEP),_lib/*)
64 $(RM) $(subst /,$(SEP),_bin/*)
65 info:
66 rem info
67 debug : $(LIBDIR)/jitcs_debug32.a $(LIBDIR)/jitcs_debug64.a
69 release : $(LIBDIR)/jitcs_release32.a $(LIBDIR)/jitcs_release64.a
70 tests : $(BINDIR)/test_cpuinfo32.exe $(BINDIR)/test_cpuinfo64.exe \
71 $(AS32_FILES) $(AS64_FILES) \
72 $(BINDIR)/unittestsd32.exe $(BINDIR)/unittestsd64.exe \
73 $(BINDIR)/unittests32.exe $(BINDIR)/unittests64.exe
75 lua : include/jitcs_x86_32_cons.h include/jitcs_x86_64_cons.h \
76 include/jitcs_x86_32_insids.h include/jitcs_x86_64_insids.h \
77 include/jitcs_x86_32_regs.h include/jitcs_x86_64_regs.h \
78 include/jitcs_x86_32_machine.h include/jitcs_x86_64_machine.h \
79 src/x86/jitcs_int_x86_32_machine.h src/x86/jitcs_int_x86_64_machine.h \
80 src/x86/jitcs_int_x86_32_dumper.h src/x86/jitcs_int_x86_64_dumper.h \
81 src/x86/jitcs_int_x86_32_regs.h src/x86/jitcs_int_x86_64_regs.h \
82 src/x86/src/x86_32_callingconvention.cpp src/x86/src/x86_64_callingconvention.cpp \
83 src/x86/src/x86_32_codegen.cpp src/x86/src/x86_64_codegen.cpp \
84 src/x86/src/x86_32_dumper.cpp src/x86/src/x86_64_dumper.cpp \
85 src/x86/src/x86_32_ins2reg.cpp src/x86/src/x86_64_ins2reg.cpp \
86 src/x86/src/x86_32_insinfo.cpp src/x86/src/x86_64_insinfo.cpp \
87 src/x86/src/x86_32_machine.cpp src/x86/src/x86_64_machine.cpp \
88 src/x86/src/x86_32_regs.cpp src/x86/src/x86_64_regs.cpp
90 include/jitcs_x86_32_cons.h : include/jitcs_x86_xx_cons.lh \
91 src/data/x86_inslist.dat src/data/x86_insalias.dat \
92 tools/template2source.lua
93 $(LUA) tools/template2source.lua $< 32 $@
94 include/jitcs_x86_64_cons.h : include/jitcs_x86_xx_cons.lh \
95 src/data/x86_inslist.dat src/data/x86_insalias.dat \
96 tools/template2source.lua
97 $(LUA) tools/template2source.lua $< 64 $@
98 include/jitcs_x86_32_insids.h : include/jitcs_x86_xx_insids.lh \
99 src/data/x86_inslist.dat src/data/x86_insalias.dat \
100 tools/template2source.lua
101 $(LUA) tools/template2source.lua $< 32 $@
102 include/jitcs_x86_64_insids.h : include/jitcs_x86_xx_insids.lh \
103 src/data/x86_inslist.dat src/data/x86_insalias.dat \
104 tools/template2source.lua
105 $(LUA) tools/template2source.lua $< 64 $@
106 include/jitcs_x86_32_regs.h : include/jitcs_x86_xx_regs.lh src/data/x86_reglist.dat \
107 tools/template2source.lua
108 $(LUA) tools/template2source.lua $< 32 $@
109 include/jitcs_x86_64_regs.h : include/jitcs_x86_xx_regs.lh src/data/x86_reglist.dat \
110 tools/template2source.lua
111 $(LUA) tools/template2source.lua $< 64 $@
112 include/jitcs_x86_32_machine.h : include/jitcs_x86_xx_machine.lh \
113 tools/template2source.lua
114 $(LUA) tools/template2source.lua $< 32 $@
115 include/jitcs_x86_64_machine.h : include/jitcs_x86_xx_machine.lh \
116 tools/template2source.lua
117 $(LUA) tools/template2source.lua $< 64 $@
118 src/x86/jitcs_int_x86_32_machine.h : src/x86/jitcs_int_x86_xx_machine.lh \
119 tools/template2source.lua
120 $(LUA) tools/template2source.lua $< 32 $@
121 src/x86/jitcs_int_x86_64_machine.h : src/x86/jitcs_int_x86_xx_machine.lh \
122 tools/template2source.lua
123 $(LUA) tools/template2source.lua $< 64 $@
124 src/x86/jitcs_int_x86_32_regs.h : src/x86/jitcs_int_x86_xx_regs.lh src/data/x86_reglist.dat \
125 tools/template2source.lua
126 $(LUA) tools/template2source.lua $< 32 $@
127 src/x86/jitcs_int_x86_64_regs.h : src/x86/jitcs_int_x86_xx_regs.lh src/data/x86_reglist.dat \
128 tools/template2source.lua
129 $(LUA) tools/template2source.lua $< 64 $@
130 src/x86/jitcs_int_x86_32_dumper.h : src/x86/jitcs_int_x86_xx_dumper.lh \
131 tools/template2source.lua
132 $(LUA) tools/template2source.lua $< 32 $@
133 src/x86/jitcs_int_x86_64_dumper.h : src/x86/jitcs_int_x86_xx_dumper.lh \
134 tools/template2source.lua
135 $(LUA) tools/template2source.lua $< 64 $@
136 src/x86/src/x86_32_callingconvention.cpp : src/x86/src/x86_xx_callingconvention.lcpp \
137 src/data/x86_reglist.dat \
138 tools/template2source.lua
139 $(LUA) tools/template2source.lua $< 32 $@
140 src/x86/src/x86_64_callingconvention.cpp : src/x86/src/x86_xx_callingconvention.lcpp \
141 src/data/x86_reglist.dat \
142 tools/template2source.lua
143 $(LUA) tools/template2source.lua $< 64 $@
144 src/x86/src/x86_32_machine.cpp : src/x86/src/x86_xx_machine.lcpp src/data/x86_reglist.dat \
145 tools/template2source.lua
146 $(LUA) tools/template2source.lua $< 32 $@
147 src/x86/src/x86_64_machine.cpp : src/x86/src/x86_xx_machine.lcpp src/data/x86_reglist.dat \
148 tools/template2source.lua
149 $(LUA) tools/template2source.lua $< 64 $@
150 src/x86/src/x86_32_regs.cpp : src/x86/src/x86_xx_regs.lcpp src/data/x86_reglist.dat \
151 tools/template2source.lua
152 $(LUA) tools/template2source.lua $< 32 $@
153 src/x86/src/x86_64_regs.cpp : src/x86/src/x86_xx_regs.lcpp src/data/x86_reglist.dat \
154 tools/template2source.lua
155 $(LUA) tools/template2source.lua $< 64 $@
156 src/x86/src/x86_32_insinfo.cpp : src/x86/src/x86_xx_insinfo.lcpp src/data/x86_reglist.dat \
157 tools/template2source.lua src/data/x86_inslist.dat
158 $(LUA) tools/template2source.lua $< 32 $@
159 src/x86/src/x86_64_insinfo.cpp : src/x86/src/x86_xx_insinfo.lcpp src/data/x86_reglist.dat \
160 tools/template2source.lua src/data/x86_inslist.dat
161 $(LUA) tools/template2source.lua $< 64 $@
162 src/x86/src/x86_32_dumper.cpp : src/x86/src/x86_xx_dumper.lcpp src/data/x86_reglist.dat \
163 tools/template2source.lua src/data/x86_inslist.dat
164 $(LUA) tools/template2source.lua $< 32 $@
165 src/x86/src/x86_64_dumper.cpp : src/x86/src/x86_xx_dumper.lcpp src/data/x86_reglist.dat \
166 tools/template2source.lua src/data/x86_inslist.dat
167 $(LUA) tools/template2source.lua $< 64 $@
168 src/x86/src/x86_32_codegen.cpp : src/x86/src/x86_xx_codegen.lcpp src/data/x86_inslist.dat \
169 tools/template2source.lua
170 $(LUA) tools/template2source.lua $< 32 $@
171 src/x86/src/x86_64_codegen.cpp : src/x86/src/x86_xx_codegen.lcpp src/data/x86_inslist.dat \
172 tools/template2source.lua
173 $(LUA) tools/template2source.lua $< 64 $@
174 src/x86/src/x86_32_ins2reg.cpp : src/x86/src/x86_xx_ins2reg.lcpp src/data/x86_reglist.dat \
175 tools/template2source.lua src/data/x86_inslist.dat
176 $(LUA) tools/template2source.lua $< 32 $@
177 src/x86/src/x86_64_ins2reg.cpp : src/x86/src/x86_xx_ins2reg.lcpp src/data/x86_reglist.dat \
178 tools/template2source.lua src/data/x86_inslist.dat
179 $(LUA) tools/template2source.lua $< 64 $@
181 tests/test_asm_x86_32.h : tests/test_asm_x86_xx.lh \
182 tools/template2source.lua
183 $(LUA) tools/template2source.lua $< 32 $@
184 tests/test_asm_x86_64.h : tests/test_asm_x86_xx.lh \
185 tools/template2source.lua
186 $(LUA) tools/template2source.lua $< 64 $@
187 tests/test_asm_x86_32_reg.cpp : tests/test_asm_x86_xx_reg.lcpp \
188 src/data/x86_reglist.dat \
189 tools/template2source.lua
190 $(LUA) tools/template2source.lua $< 32 $@
191 tests/test_asm_x86_64_reg.cpp : tests/test_asm_x86_xx_reg.lcpp \
192 src/data/x86_reglist.dat \
193 tools/template2source.lua
194 $(LUA) tools/template2source.lua $< 64 $@
195 tests/test_asm_x86_32_ins.cpp : tests/test_asm_x86_xx_ins.lcpp \
196 src/data/x86_inslist.dat src/data/x86_reglist.dat \
197 src/data/x86_insalias.dat \
198 tools/template2source.lua
199 $(LUA) tools/template2source.lua $< 32 $@
200 tests/test_asm_x86_64_ins.cpp : tests/test_asm_x86_xx_ins.lcpp \
201 src/data/x86_inslist.dat src/data/x86_reglist.dat \
202 src/data/x86_insalias.dat \
203 tools/template2source.lua
204 $(LUA) tools/template2source.lua $< 64 $@
205 tests/test_asm_x86_32_ext.cpp : tests/test_asm_x86_xx_ext.lcpp \
206 tools/template2source.lua
207 $(LUA) tools/template2source.lua $< 32 $@
208 tests/test_asm_x86_64_ext.cpp : tests/test_asm_x86_xx_ext.lcpp \
209 tools/template2source.lua
210 $(LUA) tools/template2source.lua $< 64 $@
213 src/data/x86_inslist.dat : src/data/x86_inslist.ltxt tools/x86_inslist2data.lua
214 $(LUA) tools/x86_inslist2data.lua $< $@
215 src/data/x86_insalias.dat : src/data/x86_insalias.ltxt tools/x86_insalias2data.lua
216 $(LUA) tools/x86_insalias2data.lua $< $@
218 $(LIBDIR)/jitcs_debug32.a : $(LIBOBJS_DEBUG32) | $(LIBDIR)
219 ar r $@ $?
220 $(LIBDIR)/jitcs_release32.a : $(LIBOBJS_RELEASE32) | $(LIBDIR)
221 ar r $@ $?
222 $(LIBDIR)/jitcs_debug64.a : | $(LIBDIR)
223 rem --
224 $(LIBDIR)/jitcs_release64.a : | $(LIBDIR)
225 rem --
227 $(BINDIR)/test_cpuinfo32.exe : tests/cpuinfo.cpp $(LIBDIR)/jitcs_release32.a \
228 include/jitcs_cpu.h \
229 | $(BINDIR)
230 $(CC) -o $@ $(CFLAGS) $(CFLAGS_REL32) $< $(LIBDIR)/jitcs_release32.a
231 $(BINDIR)/test_cpuinfo64.exe : | $(BINDIR)
232 rem --
233 $(BINDIR)/unittests32.exe : $(UNITTESTOBJS_RELEASE32) $(LIBDIR)/jitcs_release32.a \
234 | $(BINDIR) $(BINDATADIR)
235 $(CC) -o $@ $(CFLAGS) $(CFLAGS_REL32) $(UNITTESTOBJS_RELEASE32) $(LIBDIR)/jitcs_release32.a
236 $(BINDIR)/unittestsd32.exe : $(UNITTESTOBJS_DEBUG32) $(LIBDIR)/jitcs_debug32.a \
237 | $(BINDIR) $(BINDATADIR)
238 $(CC) -o $@ $(CFLAGS) $(CFLAGS_DBG32) $(UNITTESTOBJS_DEBUG32) $(LIBDIR)/jitcs_debug32.a
239 $(BINDIR)/unittests64.exe : | $(BINDIR) $(BINDATADIR)
240 rem --
241 $(BINDIR)/unittestsd64.exe : | $(BINDIR) $(BINDATADIR)
242 rem --
244 $(OBJDIR)/dbg32_src_%.dep : src/src/%.cpp
245 $(CC) -o $@ -MM -MT $(patsubst %.dep,%.o,$@) -MT $@ -I ./src $(CFLAGS) $(CFLAGS_DBG32) $<
246 $(OBJDIR)/rel32_src_%.dep : src/src/%.cpp
247 $(CC) -o $@ -MM -MT $(patsubst %.dep,%.o,$@) -MT $@ -I ./src $(CFLAGS) $(CFLAGS_REL32) $<
248 $(OBJDIR)/dbg64_src_%.dep : src/src/%.cpp
249 $(CC) -o $@ -MM -MT $(patsubst %.dep,%.o,$@) -MT $@ -I ./src $(CFLAGS) $(CFLAGS_DBG64) $<
250 $(OBJDIR)/rel64_src_%.dep : src/src/%.cpp
251 $(CC) -o $@ -MM -MT $(patsubst %.dep,%.o,$@) -MT $@ -I ./src $(CFLAGS) $(CFLAGS_REL64) $<
252 $(OBJDIR)/dbg32_x86_%.dep : src/x86/src/%.cpp
253 $(CC) -o $@ -MM -MT $(patsubst %.dep,%.o,$@) -MT $@ -I ./src $(CFLAGS) $(CFLAGS_DBG32) $<
254 $(OBJDIR)/rel32_x86_%.dep : src/x86/src/%.cpp
255 $(CC) -o $@ -MM -MT $(patsubst %.dep,%.o,$@) -MT $@ -I ./src $(CFLAGS) $(CFLAGS_REL32) $<
256 $(OBJDIR)/dbg64_x86_%.dep : src/x86/src/%.cpp
257 $(CC) -o $@ -MM -MT $(patsubst %.dep,%.o,$@) -MT $@ -I ./src $(CFLAGS) $(CFLAGS_DBG64) $<
258 $(OBJDIR)/rel64_x86_%.dep : src/x86/src/%.cpp
259 $(CC) -o $@ -MM -MT $(patsubst %.dep,%.o,$@) -MT $@ -I ./src $(CFLAGS) $(CFLAGS_REL64) $<
260 $(OBJDIR)/test32_%.dep : tests/test_%.cpp
261 $(CC) -o $@ -MM -MT $(patsubst %.dep,%.o,$@) -MT $@ -I ./tests -I ./src $(CFLAGS) $(CFLAGS_REL32) $<
262 $(OBJDIR)/testd32_%.dep : tests/test_%.cpp
263 $(CC) -o $@ -MM -MT $(patsubst %.dep,%.o,$@) -MT $@ -I ./tests -I ./src $(CFLAGS) $(CFLAGS_DBG32) $<
264 $(OBJDIR)/test64_%.dep : tests/test_%.cpp
265 $(CC) -o $@ -MM -MT $(patsubst %.dep,%.o,$@) -MT $@ -I ./tests -I ./src $(CFLAGS) $(CFLAGS_REL64) $<
266 $(OBJDIR)/testd64_%.dep : tests/test_%.cpp
267 $(CC) -o $@ -MM -MT $(patsubst %.dep,%.o,$@) -MT $@ -I ./tests -I ./src $(CFLAGS) $(CFLAGS_DBG64) $<
269 ifneq ($(MAKECMDGOALS),clean)
270 include $(LIBOBJS_DEBUG32:.o=.dep)
271 include $(LIBOBJS_RELEASE32:.o=.dep)
272 include $(UNITTESTOBJS_DEBUG32:.o=.dep)
273 include $(UNITTESTOBJS_RELEASE32:.o=.dep)
274 endif
276 $(OBJDIR)/dbg32_src_%.o : src/src/%.cpp
277 $(CC) -o $@ -c -I ./src $(CFLAGS) $(CFLAGS_DBG32) $<
278 $(OBJDIR)/rel32_src_%.o : src/src/%.cpp
279 $(CC) -o $@ -c -I ./src $(CFLAGS) $(CFLAGS_REL32) $<
280 $(OBJDIR)/dbg64_src_%.o : src/src/%.cpp
281 $(CC) -o $@ -c -I ./src $(CFLAGS) $(CFLAGS_DBG64) $<
282 $(OBJDIR)/rel64_src_%.o : src/src/%.cpp
283 $(CC) -o $@ -c -I ./src $(CFLAGS) $(CFLAGS_REL64) $<
284 $(OBJDIR)/dbg32_x86_%.o : src/x86/src/%.cpp
285 $(CC) -o $@ -c -I ./src $(CFLAGS) $(CFLAGS_DBG32) $<
286 $(OBJDIR)/rel32_x86_%.o : src/x86/src/%.cpp
287 $(CC) -o $@ -c -I ./src $(CFLAGS) $(CFLAGS_REL32) $<
288 $(OBJDIR)/dbg64_x86_%.o : src/x86/src/%.cpp
289 $(CC) -o $@ -c -I ./src $(CFLAGS) $(CFLAGS_DBG64) $<
290 $(OBJDIR)/rel64_x86_%.o : src/x86/src/%.cpp
291 $(CC) -o $@ -c -I ./src $(CFLAGS) $(CFLAGS_REL64) $<
292 $(OBJDIR)/test32_%.o : tests/test_%.cpp
293 $(CC) -o $@ -c -I ./tests -I ./src $(CFLAGS) $(CFLAGS_REL32) $<
294 $(OBJDIR)/testd32_%.o : tests/test_%.cpp
295 $(CC) -o $@ -c -I ./tests -I ./src $(CFLAGS) $(CFLAGS_DBG32) $<
296 $(OBJDIR)/test64_%.o : tests/test_%.cpp
297 $(CC) -o $@ -c -I ./tests -I ./src $(CFLAGS) $(CFLAGS_REL64) $<
298 $(OBJDIR)/testd64_%.o : tests/test_%.cpp
299 $(CC) -o $@ -c -I ./tests -I ./src $(CFLAGS) $(CFLAGS_DBG64) $<
301 $(BINDATADIR)/x86_32_%.as : tests/x86/x86_%.ins tools/x86_instool.lua
302 $(LUA) tools/x86_instool.lua ins2nasm32 $< $(OBJDIR)/n32_$*.nasm
303 $(NASM) -o $(OBJDIR)/n32_$*.bin -l $(OBJDIR)/n32_$*.lst $(OBJDIR)/n32_$*.nasm
304 $(LUA) tools/x86_instool.lua nasm2as32 $< $(OBJDIR)/n32_$*.lst $@
305 $(BINDATADIR)/x86_64_%.as : tests/x86/x86_%.ins tools/x86_instool.lua
306 $(LUA) tools/x86_instool.lua ins2nasm64 $< $(OBJDIR)/n64_$*.nasm
307 $(NASM) -o $(OBJDIR)/n64_$*.bin -l $(OBJDIR)/n64_$*.lst $(OBJDIR)/n64_$*.nasm
308 $(LUA) tools/x86_instool.lua nasm2as64 $< $(OBJDIR)/n64_$*.lst $@
310 $(LIBOBJS_DEBUG32) $(LIBOBJS_RELEASE32) \
311 $(LIBOBJS_DEBUG64) $(LIBOBJS_RELEASE64) \
312 $(UNITTESTOBJS_RELEASE32) : | $(OBJDIR)
313 $(BINDATADIR): | $(BINDIR)
314 $(OBJDIR) $(LIBDIR) $(BINDIR) $(BINDATADIR):
315 mkdir $(subst /,$(SEP),$@)