69 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Makefile
		
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Makefile
		
	
	
	
| # Usage: make test.N.report 
 | |
| #
 | |
| # COUNT can be over-ridden to change the number of tests generated per
 | |
| # file, and TESTARGS is used to change the type generation. Make sure
 | |
| # to 'make clean' after changing either of these parameters.
 | |
| 
 | |
| ABITESTGEN := ../ABITestGen.py
 | |
| TESTARGS := --max-args 0 --test-layout
 | |
| COUNT := 1000
 | |
| TIMEOUT := 5
 | |
| 
 | |
| CFLAGS := -std=gnu99
 | |
| 
 | |
| X_COMPILER := llvm-gcc
 | |
| Y_COMPILER := clang
 | |
| CC := gcc
 | |
| 
 | |
| ifeq (0, 0)
 | |
| X_CFLAGS := -m32
 | |
| Y_CFLAGS := -m32
 | |
| CC_CFLAGS := -m32
 | |
| else
 | |
| X_CFLAGS := -m64
 | |
| Y_CFLAGS := -m64
 | |
| CC_CFLAGS := -m64
 | |
| endif
 | |
| 
 | |
| .PHONY: test.%.report
 | |
| test.%.report: test.%.x.diff test.%.y.diff
 | |
| 	@for t in $^; do \
 | |
| 		if [ -s $$t ]; then \
 | |
| 			echo "TEST $*: $$t failed"; \
 | |
| 		fi; \
 | |
| 	done
 | |
| 
 | |
| .PHONY: test.%.build
 | |
| test.%.build: test.%.ref test.%.x test.%.y
 | |
| 	@true
 | |
| 
 | |
| ###
 | |
| 
 | |
| .PRECIOUS: test.%.x.diff
 | |
| test.%.x.diff: test.%.ref.out test.%.x.out
 | |
| 	-diff $^ > $@
 | |
| .PRECIOUS: test.%.y.diff
 | |
| test.%.y.diff: test.%.ref.out test.%.y.out
 | |
| 	-diff $^ > $@
 | |
| 
 | |
| .PRECIOUS: test.%.out
 | |
| test.%.out: test.%
 | |
| 	-./$< > $@
 | |
| 
 | |
| .PRECIOUS: test.%.ref
 | |
| test.%.ref: test.%.c
 | |
| 	$(CC) $(CFLAGS) $(CC_CFLAGS) -o $@ $^
 | |
| .PRECIOUS: test.%.x
 | |
| test.%.x: test.%.c
 | |
| 	$(X_COMPILER) $(CFLAGS) $(X_CFLAGS) -o $@ $^
 | |
| .PRECIOUS: test.%.y
 | |
| test.%.y: test.%.c
 | |
| 	$(Y_COMPILER) $(CFLAGS) $(Y_CFLAGS) -o $@ $^
 | |
| 
 | |
| .PRECIOUS: test.%.c
 | |
| test.%.c: $(ABITESTGEN)
 | |
| 	$(ABITESTGEN) $(TESTARGS) -o $@ --min=$(shell expr $* '*' $(COUNT))  --count=$(COUNT)
 | |
| 
 | |
| clean:	
 | |
| 	rm -f test.* *~
 |