diff --git a/tests/Makefile b/tests/Makefile index 8c4e9d578d3a0cbb108b7ca1f0c8582683011713..e4977c44f052281309370f316f2ee0b9da4462af 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -1,5 +1,7 @@ +SYSROOT?=../sysroot + # Binaries that should generate the same output every time -EXPECT_BINS=\ +EXPECT_NAMES=\ alloca \ args \ arpainet \ @@ -94,8 +96,8 @@ EXPECT_BINS=\ # signal (TODO: Fix) # Binaries that may generate varied output -BINS=\ - $(EXPECT_BINS) \ +NAMES=\ + $(EXPECT_NAMES) \ dirent/main \ pwd \ stdio/tempnam \ @@ -118,42 +120,43 @@ BINS=\ # resource/getrusage # time/times -.PHONY: all $(BINS) clean run expected verify +BINS=$(patsubst %,bins/%,$(NAMES)) +EXPECT_BINS=$(patsubst %,bins/%,$(EXPECT_NAMES)) -all: $(BINS) +.PHONY: all clean run expected verify -$(BINS): %: bins/% +all: $(BINS) clean: rm -rf bins gen *.out -run: | ../sysroot all - for bin in $(BINS); \ +run: | $(SYSROOT) $(BINS) + for name in $(NAMES); \ do \ - echo "# $${bin} #"; \ - "bins/$${bin}" test args || exit $$?; \ + echo "# $${name} #"; \ + "bins/$${name}" test args || exit $$?; \ done -expected: | ../sysroot $(EXPECT_BINS) +expected: | $(SYSROOT) $(EXPECT_BINS) rm -rf expected mkdir -p expected - for bin in $(EXPECT_BINS); \ + for name in $(EXPECT_NAMES); \ do \ - echo "# $${bin} #"; \ - mkdir -p expected/`dirname $${bin}`; \ - "bins/$${bin}" test args > "expected/$${bin}.stdout" 2> "expected/$${bin}.stderr" || exit $$?; \ + echo "# $${name} #"; \ + mkdir -p expected/`dirname $${name}`; \ + "bins/$${name}" test args > "expected/$${name}.stdout" 2> "expected/$${name}.stderr" || exit $$?; \ done -verify: | ../sysroot $(EXPECT_BINS) +verify: | $(SYSROOT) $(EXPECT_BINS) rm -rf gen mkdir -p gen - for bin in $(EXPECT_BINS); \ + for name in $(EXPECT_NAMES); \ do \ - echo "# $${bin} #"; \ - mkdir -p gen/`dirname $${bin}`; \ - "bins/$${bin}" test args > "gen/$${bin}.stdout" 2> "gen/$${bin}.stderr" || exit $$?; \ - diff -u "gen/$${bin}.stdout" "expected/$${bin}.stdout" || exit $$?; \ - diff -u "gen/$${bin}.stderr" "expected/$${bin}.stderr" || exit $$?; \ + echo "# $${name} #"; \ + mkdir -p gen/`dirname $${name}`; \ + "bins/$${name}" test args > "gen/$${name}.stdout" 2> "gen/$${name}.stderr" || exit $$?; \ + diff -u "gen/$${name}.stdout" "expected/$${name}.stdout" || exit $$?; \ + diff -u "gen/$${name}.stderr" "expected/$${name}.stderr" || exit $$?; \ done CFLAGS=\ @@ -166,20 +169,20 @@ CFLAGS=\ -g \ -nostdinc \ -nostdlib \ - -isystem ../sysroot/include \ + -isystem $(SYSROOT)/include \ -I . HEADLIBS=\ - ../sysroot/lib/crt0.o \ - ../sysroot/lib/crti.o + $(SYSROOT)/lib/crt0.o \ + $(SYSROOT)/lib/crti.o TAILLIBS=\ - ../sysroot/lib/libc.a \ - ../sysroot/lib/crtn.o + $(SYSROOT)/lib/libc.a \ + $(SYSROOT)/lib/crtn.o ../sysroot: - make -C .. sysroot + $(MAKE) -C .. sysroot -bins/%: %.c ../sysroot +bins/%: %.c $(SYSROOT) mkdir -p "$$(dirname "$@")" $(CC) $(CFLAGS) $(HEADLIBS) "$<" $(TAILLIBS) -o "$@"