summaryrefslogtreecommitdiff
path: root/tests/common/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'tests/common/Makefile')
-rw-r--r--tests/common/Makefile91
1 files changed, 91 insertions, 0 deletions
diff --git a/tests/common/Makefile b/tests/common/Makefile
new file mode 100644
index 000000000..2810fbae0
--- /dev/null
+++ b/tests/common/Makefile
@@ -0,0 +1,91 @@
+ifeq ($(OS),Windows_NT)
+ ifeq ($(shell uname -s),) # not in a bash-like shell
+ CLEANUP = del /F /Q
+ MKDIR = mkdir
+ else # in a bash-like shell, like msys
+ CLEANUP = rm -f
+ MKDIR = mkdir -p
+ endif
+ TARGET_EXTENSION=.exe
+else
+ CLEANUP = rm -f
+ MKDIR = mkdir -p
+ TARGET_EXTENSION=out
+endif
+
+.PHONY: clean
+.PHONY: test
+
+PATHU = ../vendor/unity/src/
+PATHS = ../../src/
+PATHT = test/
+PATHB = build/
+PATHD = build/depends/
+PATHO = build/objs/
+PATHR = build/results/
+
+BUILD_PATHS = $(PATHB) $(PATHD) $(PATHO) $(PATHR)
+
+SRCT = $(wildcard $(PATHT)*.c)
+
+$(info $(SRCT))
+
+COMPILE=gcc -c
+LINK=gcc
+DEPEND=gcc -MM -MG -MF
+CFLAGS=-I. -I$(PATHU) -I$(PATHS) -DTEST
+
+RESULTS = $(patsubst $(PATHT)test%.c,$(PATHR)test%.txt,$(SRCT) )
+
+PASSED = `grep -s PASS $(PATHR)*.txt`
+FAIL = `grep -s FAIL $(PATHR)*.txt`
+IGNORE = `grep -s IGNORE $(PATHR)*.txt`
+
+test: $(BUILD_PATHS) $(RESULTS)
+ @echo "-----------------------\nIGNORES:\n-----------------------"
+ @echo "$(IGNORE)"
+ @echo "-----------------------\nFAILURES:\n-----------------------"
+ @echo "$(FAIL)"
+ @echo "-----------------------\nPASSED:\n-----------------------"
+ @echo "$(PASSED)"
+ @echo "\nDONE"
+
+$(PATHR)%.txt: $(PATHB)%.$(TARGET_EXTENSION)
+ -./$< > $@ 2>&1
+
+$(PATHB)test_%.$(TARGET_EXTENSION): $(PATHO)test_%.o $(PATHO)tusb_%.o $(PATHU)unity.o #$(PATHD)test%.d
+ $(LINK) -o $@ $^
+
+$(PATHO)%.o:: $(PATHT)%.c
+ $(COMPILE) $(CFLAGS) $< -o $@
+
+$(PATHO)%.o:: $(PATHS)common/%.c
+ $(COMPILE) $(CFLAGS) $< -o $@
+
+$(PATHO)%.o:: $(PATHU)%.c $(PATHU)%.h
+ $(COMPILE) $(CFLAGS) $< -o $@
+
+$(PATHD)%.d:: $(PATHT)%.c
+ $(DEPEND) $@ $<
+
+$(PATHB):
+ $(MKDIR) $(PATHB)
+
+$(PATHD):
+ $(MKDIR) $(PATHD)
+
+$(PATHO):
+ $(MKDIR) $(PATHO)
+
+$(PATHR):
+ $(MKDIR) $(PATHR)
+
+clean:
+ $(CLEANUP) $(PATHO)*.o
+ $(CLEANUP) $(PATHB)*.$(TARGET_EXTENSION)
+ $(CLEANUP) $(PATHR)*.txt
+
+.PRECIOUS: $(PATHB)test%.$(TARGET_EXTENSION)
+.PRECIOUS: $(PATHD)%.d
+.PRECIOUS: $(PATHO)%.o
+.PRECIOUS: $(PATHR)%.txt