# ========================================== # Unity Project - A Test Framework for C # Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams # [Released under MIT License. Please refer to license.txt for details] # ========================================== #We try to detect the OS we are running on, and adjust commands as needed ifeq ($(OS),Windows_NT) CLEANUP := del /F /Q MKDIR := mkdir TARGET_EXTENSION := .exe else CLEANUP := rm -rf MKDIR := mkdir -p TARGET_EXTENSION := endif UNITY_ROOT := ../../../../Unity C_COMPILER := gcc CFLAGS = -std=c11 CFLAGS += -Wall #CFLAGS += -Wextra CFLAGS += -Werror CFLAGS += -Wpointer-arith CFLAGS += -Wcast-align CFLAGS += -Wwrite-strings CFLAGS += -Wswitch-default CFLAGS += -Wunreachable-code CFLAGS += -Winit-self CFLAGS += -Wmissing-field-initializers CFLAGS += -Wno-unknown-pragmas CFLAGS += -Wstrict-prototypes CFLAGS += -Wundef CFLAGS += -Wold-style-definition CFLAGS += -Wmissing-prototypes CFLAGS += -Wmissing-declarations CFLAGS += -g CFLAGS += -ftest-coverage CFLAGS += -fprofile-arcs TARGET_BASE := test_leddriver TARGET = $(TARGET_BASE)$(TARGET_EXTENSION) SRC_FILES = \ $(UNITY_ROOT)/extras/fixture/src/unity_fixture.c \ $(UNITY_ROOT)/src/unity.c \ ../test/LedDriverTest.c \ ../test/LedDriverTestRunner.c \ ../test/AllTests.c \ ../src/LedDriver.c INC_DIRS = -I$(UNITY_ROOT)/src -I$(UNITY_ROOT)/extras/fixture/src SYMBOLS = all: clean tests cover build/$(TARGET): test/*.c src/*.h src/*.c @$(MKDIR) build @$(MKDIR) build/cover @echo "Compiling"; cd build; $(C_COMPILER) $(CFLAGS) $(INC_DIRS) $(SYMBOLS) $(SRC_FILES) -o $(TARGET) .PHONY: tests tests: build/$(TARGET) @echo "Running tests"; ./build/$(TARGET) .PHONY: cover cover: tests @echo "Preparing coverage"; cp build/LedDriver.gc* src/ @echo "Running coverage"; cd src; gcovr -r . -b -p --html --html-details -o ../build/cover/test.html @echo "Clearing intermediate files"; rm src/*.gc* build/*.gc* .PHONY: clean clean: @echo "Cleaning $<"; $(CLEANUP) build