2 # Copyright 2012-2023 Free Software Foundation, Inc.
4 # This file is part of GNU lightning.
6 # GNU lightning is free software; you can redistribute it and/or modify it
7 # under the terms of the GNU Lesser General Public License as published
8 # by the Free Software Foundation; either version 3, or (at your option)
11 # GNU lightning is distributed in the hope that it will be useful, but
12 # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
14 # License for more details.
17 AM_CFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include \
18 -D_GNU_SOURCE $(LIGHTNING_CFLAGS)
20 check_PROGRAMS = lightning ccall self setcode nodata ctramp carg cva_list \
21 catomic protect riprel
23 lightning_LDADD = $(top_builddir)/lib/liblightning.la -lm $(SHLIB)
24 lightning_SOURCES = lightning.c
26 ccall_LDADD = $(top_builddir)/lib/liblightning.la -lm $(SHLIB)
27 ccall_SOURCES = ccall.c
29 self_LDADD = $(top_builddir)/lib/liblightning.la -lm $(SHLIB)
32 setcode_LDADD = $(top_builddir)/lib/liblightning.la -lm $(SHLIB)
33 setcode_SOURCES = setcode.c
35 nodata_LDADD = $(top_builddir)/lib/liblightning.la -lm $(SHLIB)
36 nodata_SOURCES = nodata.c
38 ctramp_LDADD = $(top_builddir)/lib/liblightning.la -lm $(SHLIB)
39 ctramp_SOURCES = ctramp.c
41 carg_LDADD = $(top_builddir)/lib/liblightning.la -lm $(SHLIB)
44 cva_list_LDADD = $(top_builddir)/lib/liblightning.la -lm $(SHLIB)
45 cva_list_SOURCES = cva_list.c
47 catomic_LDADD = $(top_builddir)/lib/liblightning.la -lm -lpthread $(SHLIB)
48 catomic_SOURCES = catomic.c
50 protect_LDADD = $(top_builddir)/lib/liblightning.la -lm $(SHLIB)
51 protect_SOURCES = protect.c
53 riprel_LDADD = $(top_builddir)/lib/liblightning.la -lm $(SHLIB)
54 riprel_SOURCES = riprel.c
56 $(top_builddir)/lib/liblightning.la:
57 cd $(top_builddir)/lib; $(MAKE) $(AM_MAKEFLAGS) liblightning.la
63 allocai.tst allocai.ok \
64 allocar.tst allocar.ok \
72 ldstxr.tst ldstxr.ok \
73 ldstxi.tst ldstxi.ok \
74 ldstr-c.tst ldstr-c.ok \
75 ldstxr-c.tst ldstxr-c.ok \
76 ldstxi-c.tst ldstxi-c.ok \
80 branch.tst branch.ok \
82 alu_add.tst alu_add.ok \
83 alux_add.tst alux_add.ok \
84 alu_sub.tst alu_sub.ok \
85 alux_sub.tst alux_sub.ok \
86 alu_rsb.tst alu_rsb.ok \
87 alu_mul.tst alu_mul.ok \
88 alu_div.tst alu_div.ok \
89 alu_rem.tst alu_rem.ok \
90 alu_and.tst alu_and.ok \
91 alu_or.tst alu_or.ok \
92 alu_xor.tst alu_xor.ok \
93 alu_lsh.tst alu_lsh.ok \
94 alu_rsh.tst alu_rsh.ok \
95 alu_com.tst alu_com.ok \
96 alu_neg.tst alu_neg.ok \
98 fop_abs.tst fop_abs.ok \
99 fop_sqrt.tst fop_sqrt.ok \
100 varargs.tst varargs.ok \
102 clobber.tst clobber.ok \
110 qalu_mul.tst qalu_mul.ok \
111 qalu_div.tst qalu_div.ok \
113 ranger.tst ranger.ok \
117 va_list.tst va_list.ok \
121 check.arm.sh check.swf.sh \
125 check.x87.nodata.sh \
127 collatz.tst factorial.tst
130 3to2 add align allocai \
131 allocar bp divi fib rpn \
134 ldstr-c ldstxr-c ldstxi-c \
135 cvt hton bswap branch \
137 alu_sub alux_sub alu_rsb \
138 alu_mul alu_div alu_rem \
139 alu_and alu_or alu_xor \
146 float jmpr live put \
148 range ranger ret skip tramp \
151 $(base_TESTS): check.sh
152 $(LN_S) $(srcdir)/check.sh $@
154 TESTS = $(base_TESTS)
157 #x87_TESTS = $(addsuffix .x87, $(base_TESTS))
159 3to2.x87 add.x87 allocai.x87 \
160 allocar.x87 bp.x87 divi.x87 fib.x87 \
161 rpn.x87 ldstr.x87 ldsti.x87 \
162 ldstxr.x87 ldstxi.x87 \
163 ldstr-c.x87 ldstxr-c.x87 ldstxi-c.x87 \
165 alu_add.x87 alux_add.x87 \
166 alu_sub.x87 alux_sub.x87 alu_rsb.x87 \
167 alu_mul.x87 alu_div.x87 alu_rem.x87 \
168 alu_and.x87 alu_or.x87 alu_xor.x87 \
169 alu_lsh.x87 alu_rsh.x87 \
170 alu_com.x87 alu_neg.x87 \
172 fop_abs.x87 fop_sqrt.x87 \
173 varargs.x87 stack.x87 \
174 clobber.x87 carry.x87 call.x87 \
175 float.x87 jmpr.x87 put.x87 \
177 $(x87_TESTS): check.x87.sh
178 $(LN_S) $(srcdir)/check.x87.sh $@
179 TESTS += $(x87_TESTS)
181 #x87_nodata_TESTS = $(addsuffix .x87.nodata, $(base_TESTS))
183 3to2.x87.nodata add.x87.nodata allocai.x87.nodata \
184 allocar.x87.nodata bp.x87.nodata divi.x87.nodata fib.x87.nodata \
185 rpn.x87.nodata ldstr.x87.nodata ldsti.x87.nodata \
186 ldstxr.x87.nodata ldstxi.x87.nodata \
187 ldstr-c.x87.nodata ldstxr-c.x87.nodata ldstxi-c.x87.nodata \
188 cvt.x87.nodata branch.x87.nodata \
189 alu_add.x87.nodata alux_add.x87.nodata \
190 alu_sub.x87.nodata alux_sub.x87.nodata alu_rsb.x87.nodata \
191 alu_mul.x87.nodata alu_div.x87.nodata alu_rem.x87.nodata \
192 alu_and.x87.nodata alu_or.x87.nodata alu_xor.x87.nodata \
193 alu_lsh.x87.nodata alu_rsh.x87.nodata \
194 alu_com.x87.nodata alu_neg.x87.nodata \
196 fop_abs.x87.nodata fop_sqrt.x87.nodata \
197 varargs.x87.nodata stack.x87.nodata \
198 clobber.x87.nodata carry.x87.nodata call.x87.nodata \
199 float.x87.nodata jmpr.x87.nodata put.x87.nodata \
201 $(x87_nodata_TESTS): check.x87.nodata.sh
202 $(LN_S) $(srcdir)/check.x87.nodata.sh $@
203 TESTS += $(x87_nodata_TESTS)
207 #arm_TESTS = $(addsuffix .arm, $(base_TESTS))
209 3to2.arm add.arm align.arm allocai.arm \
210 allocar.arm bp.arm divi.arm fib.arm \
211 rpn.arm ldstr.arm ldsti.arm \
212 ldstxr.arm ldstxi.arm \
213 ldstr-c.arm ldstxr-c.arm ldstxi-c.arm \
214 cvt.arm hton.arm bswap.arm branch.arm \
215 alu_add.arm alux_add.arm \
216 alu_sub.arm alux_sub.arm alu_rsb.arm \
217 alu_mul.arm alu_div.arm alu_rem.arm \
218 alu_and.arm alu_or.arm alu_xor.arm \
219 alu_lsh.arm alu_rsh.arm \
220 alu_com.arm alu_neg.arm \
222 fop_abs.arm fop_sqrt.arm \
223 varargs.arm stack.arm \
224 clobber.arm carry.arm call.arm \
225 float.arm jmpr.arm tramp.arm range.arm \
226 ranger.arm put.arm va_list.arm
227 $(arm_TESTS): check.arm.sh
228 $(LN_S) $(srcdir)/check.arm.sh $@
229 TESTS += $(arm_TESTS)
233 #swf_TESTS = $(addsuffix .swf, $(base_TESTS))
235 3to2.swf add.swf allocai.swf \
236 allocar.swf bp.swf divi.swf fib.swf \
237 rpn.swf ldstr.swf ldsti.swf \
238 ldstxr.swf ldstxi.swf \
239 ldstr-c.swf ldstxr-c.swf ldstxi-c.swf \
240 cvt.swf hton.swf bswap.swf branch.swf \
241 alu_add.swf alux_add.swf \
242 alu_sub.swf alux_sub.swf alu_rsb.swf \
243 alu_mul.swf alu_div.swf alu_rem.swf \
244 alu_and.swf alu_or.swf alu_xor.swf \
245 alu_lsh.swf alu_rsh.swf \
246 alu_com.swf alu_neg.swf \
248 fop_abs.swf fop_sqrt.swf \
249 varargs.swf stack.swf \
250 clobber.swf carry.swf call.swf \
251 float.swf jmpr.swf tramp.swf range.swf \
252 ranger.swf put.swf va_list.swf
253 $(swf_TESTS): check.swf.sh
254 $(LN_S) $(srcdir)/check.swf.sh $@
255 TESTS += $(swf_TESTS)
257 #arm_swf_TESTS = $(addsuffix .arm.swf, $(base_TESTS))
259 3to2.arm.swf add.arm.swf allocai.arm.swf \
260 allocar.arm.swf bp.arm.swf divi.arm.swf fib.arm.swf \
261 rpn.arm.swf ldstr.arm.swf ldsti.arm.swf \
262 ldstxr.arm.swf ldstxi.arm.swf \
263 ldstr-c.arm.swf ldstxr-c.arm.swf ldstxi-c.arm.swf \
264 cvt.arm.swf hton.arm.swf bswap.arm.swf branch.arm.swf \
265 alu_add.arm.swf alux_add.arm.swf \
266 alu_sub.arm.swf alux_sub.arm.swf alu_rsb.arm.swf \
267 alu_mul.arm.swf alu_div.arm.swf alu_rem.arm.swf \
268 alu_and.arm.swf alu_or.arm.swf alu_xor.arm.swf \
269 alu_lsh.arm.swf alu_rsh.arm.swf \
270 alu_com.arm.swf alu_neg.arm.swf \
272 fop_abs.arm.swf fop_sqrt.arm.swf \
273 varargs.arm.swf stack.arm.swf \
274 clobber.arm.swf carry.arm.swf call.arm.swf \
275 float.arm.swf jmpr.arm.swf tramp.arm.swf range.arm.swf \
276 ranger.arm.swf put.arm.swf va_list.arm.swf
277 $(arm_swf_TESTS): check.arm.swf.sh
278 $(LN_S) $(srcdir)/check.arm.swf.sh $@
279 TESTS += $(arm_swf_TESTS)
282 #arm4_swf_TESTS = $(addsuffix .arm4.swf, $(base_TESTS))
284 3to2.arm4.swf add.arm4.swf allocai.arm4.swf \
285 allocar.arm4.swf bp.arm4.swf divi.arm4.swf fib.arm4.swf \
286 rpn.arm4.swf ldstr.arm4.swf ldsti.arm4.swf \
287 ldstxr.arm4.swf ldstxi.arm4.swf \
288 ldstr-c.arm4.swf ldstxr-c.arm4.swf ldstxi-c.arm4.swf \
289 cvt.arm4.swf hton.arm4.swf bswap.arm4.swf \
290 branch.arm4.swf alu_add.arm4.swf alux_add.arm4.swf \
291 alu_sub.arm4.swf alux_sub.arm4.swf alu_rsb.arm4.swf \
292 alu_mul.arm4.swf alu_div.arm4.swf alu_rem.arm4.swf \
293 alu_and.arm4.swf alu_or.arm4.swf alu_xor.arm4.swf \
294 alu_lsh.arm4.swf alu_rsh.arm4.swf \
295 alu_com.arm4.swf alu_neg.arm4.swf \
297 fop_abs.arm4.swf fop_sqrt.arm4.swf \
298 varargs.arm4.swf stack.arm4.swf \
299 clobber.arm4.swf carry.arm4.swf call.arm4.swf \
300 float.arm4.swf jmpr.arm4.swf tramp.arm4.swf \
301 range.arm4.swf ranger.arm4.swf put.arm4.swf \
303 $(arm4_swf_TESTS): check.arm4.swf.sh
304 $(LN_S) $(srcdir)/check.arm4.swf.sh $@
305 TESTS += $(arm4_swf_TESTS)
310 #nodata_TESTS = $(addsuffix .nodata, $(base_TESTS))
312 3to2.nodata add.nodata allocai.nodata \
313 allocar.nodata bp.nodata divi.nodata fib.nodata \
314 rpn.nodata ldstr.nodata ldsti.nodata \
315 ldstxr.nodata ldstxi.nodata \
316 ldstr-c.nodata ldstxr-c.nodata ldstxi-c.nodata \
317 cvt.nodata branch.nodata \
318 alu_add.nodata alux_add.nodata \
319 alu_sub.nodata alux_sub.nodata alu_rsb.nodata \
320 alu_mul.nodata alu_div.nodata alu_rem.nodata \
321 alu_and.nodata alu_or.nodata alu_xor.nodata \
322 alu_lsh.nodata alu_rsh.nodata \
323 alu_com.nodata alu_neg.nodata \
325 fop_abs.nodata fop_sqrt.nodata \
326 varargs.nodata stack.nodata \
327 clobber.nodata carry.nodata call.nodata \
328 float.nodata jmpr.nodata tramp.nodata \
329 range.nodata ranger.nodata put.nodata \
330 va_list.nodata bit.nodata
331 $(nodata_TESTS): check.nodata.sh
332 $(LN_S) $(srcdir)/check.nodata.sh $@
333 TESTS += $(nodata_TESTS)
336 TESTS += ccall self setcode nodata ctramp carg cva_list catomic \
338 CLEANFILES = $(TESTS)
340 #TESTS_ENVIRONMENT=$(srcdir)/run-test;
343 $(LIBTOOL) --mode=execute gdb lightning