xref: /netbsd-src/external/apache2/llvm/dist/clang/utils/ABITest/layout/Makefile (revision 7330f729ccf0bd976a06f95fad452fe774fc7fd1)
1*7330f729Sjoerg# Usage: make test.N.report
2*7330f729Sjoerg#
3*7330f729Sjoerg# COUNT can be over-ridden to change the number of tests generated per
4*7330f729Sjoerg# file, and TESTARGS is used to change the type generation. Make sure
5*7330f729Sjoerg# to 'make clean' after changing either of these parameters.
6*7330f729Sjoerg
7*7330f729SjoergABITESTGEN := ../ABITestGen.py
8*7330f729SjoergTESTARGS := --max-args 0 --test-layout
9*7330f729SjoergCOUNT := 1000
10*7330f729SjoergTIMEOUT := 5
11*7330f729Sjoerg
12*7330f729SjoergCFLAGS := -std=gnu99
13*7330f729Sjoerg
14*7330f729SjoergX_COMPILER := llvm-gcc
15*7330f729SjoergY_COMPILER := clang
16*7330f729SjoergCC := gcc
17*7330f729Sjoerg
18*7330f729Sjoergifeq (0, 0)
19*7330f729SjoergX_CFLAGS := -m32
20*7330f729SjoergY_CFLAGS := -m32
21*7330f729SjoergCC_CFLAGS := -m32
22*7330f729Sjoergelse
23*7330f729SjoergX_CFLAGS := -m64
24*7330f729SjoergY_CFLAGS := -m64
25*7330f729SjoergCC_CFLAGS := -m64
26*7330f729Sjoergendif
27*7330f729Sjoerg
28*7330f729Sjoerg.PHONY: test.%.report
29*7330f729Sjoergtest.%.report: test.%.x.diff test.%.y.diff
30*7330f729Sjoerg	@for t in $^; do \
31*7330f729Sjoerg		if [ -s $$t ]; then \
32*7330f729Sjoerg			echo "TEST $*: $$t failed"; \
33*7330f729Sjoerg		fi; \
34*7330f729Sjoerg	done
35*7330f729Sjoerg
36*7330f729Sjoerg.PHONY: test.%.build
37*7330f729Sjoergtest.%.build: test.%.ref test.%.x test.%.y
38*7330f729Sjoerg	@true
39*7330f729Sjoerg
40*7330f729Sjoerg###
41*7330f729Sjoerg
42*7330f729Sjoerg.PRECIOUS: test.%.x.diff
43*7330f729Sjoergtest.%.x.diff: test.%.ref.out test.%.x.out
44*7330f729Sjoerg	-diff $^ > $@
45*7330f729Sjoerg.PRECIOUS: test.%.y.diff
46*7330f729Sjoergtest.%.y.diff: test.%.ref.out test.%.y.out
47*7330f729Sjoerg	-diff $^ > $@
48*7330f729Sjoerg
49*7330f729Sjoerg.PRECIOUS: test.%.out
50*7330f729Sjoergtest.%.out: test.%
51*7330f729Sjoerg	-./$< > $@
52*7330f729Sjoerg
53*7330f729Sjoerg.PRECIOUS: test.%.ref
54*7330f729Sjoergtest.%.ref: test.%.c
55*7330f729Sjoerg	$(CC) $(CFLAGS) $(CC_CFLAGS) -o $@ $^
56*7330f729Sjoerg.PRECIOUS: test.%.x
57*7330f729Sjoergtest.%.x: test.%.c
58*7330f729Sjoerg	$(X_COMPILER) $(CFLAGS) $(X_CFLAGS) -o $@ $^
59*7330f729Sjoerg.PRECIOUS: test.%.y
60*7330f729Sjoergtest.%.y: test.%.c
61*7330f729Sjoerg	$(Y_COMPILER) $(CFLAGS) $(Y_CFLAGS) -o $@ $^
62*7330f729Sjoerg
63*7330f729Sjoerg.PRECIOUS: test.%.c
64*7330f729Sjoergtest.%.c: $(ABITESTGEN)
65*7330f729Sjoerg	$(ABITESTGEN) $(TESTARGS) -o $@ --min=$(shell expr $* '*' $(COUNT))  --count=$(COUNT)
66*7330f729Sjoerg
67*7330f729Sjoergclean:
68*7330f729Sjoerg	rm -f test.* *~
69