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