diff --git a/extras/fixture/test/Makefile b/extras/fixture/test/Makefile index 6e096ae088dcee1e00b72bb9fdd252456a400b33..14519d86d38713b317b088ecb8f94b568306f221 100644 --- a/extras/fixture/test/Makefile +++ b/extras/fixture/test/Makefile @@ -1,4 +1,7 @@ CC = gcc +ifeq ($(shell uname -s), Darwin) +CC = clang +endif #DEBUG = -O0 -g CFLAGS += -std=c99 CFLAGS += -pedantic @@ -15,21 +18,22 @@ SRC = ../src/unity_fixture.c \ main/AllTests.c INC_DIR = -I../src -I../../../src/ +BUILD_DIR = ../build TARGET = ../build/fixture_tests.exe all: default noStdlibMalloc 32bits -default: ../build/ - $(CC) $(CFLAGS) $(DEFINES) $(SRC) $(INC_DIR) -o $(TARGET) +default: $(BUILD_DIR) + $(CC) $(CFLAGS) $(DEFINES) $(SRC) $(INC_DIR) -o $(TARGET) -D UNITY_SUPPORT_64 @ echo "default build" ./$(TARGET) -32bits: ../build/ +32bits: $(BUILD_DIR) $(CC) $(CFLAGS) $(DEFINES) $(SRC) $(INC_DIR) -o $(TARGET) -m32 @ echo "32bits build" ./$(TARGET) -noStdlibMalloc: ../build/ +noStdlibMalloc: $(BUILD_DIR) $(CC) $(CFLAGS) $(DEFINES) $(SRC) $(INC_DIR) -o $(TARGET) -D UNITY_EXCLUDE_STDLIB_MALLOC @ echo "build with noStdlibMalloc" ./$(TARGET) @@ -40,13 +44,22 @@ clang89: ../build/ -D UNITY_EXCLUDE_STDLIB_MALLOC -std=c89 -Wno-comment ; ./$(TARGET) clangEverything: - clang $(CFLAGS) $(DEFINES) $(SRC) $(INC_DIR) -o $(TARGET) -m64 -Weverything + clang $(CFLAGS) $(DEFINES) $(SRC) $(INC_DIR) -o $(TARGET) -Weverything -../build : - mkdir -p ../build +$(BUILD_DIR): + mkdir -p $(BUILD_DIR) clean: - rm -f $(TARGET) + rm -f $(TARGET) $(BUILD_DIR)/*.gc* + +coverage: $(BUILD_DIR) + cd $(BUILD_DIR) && \ + $(CC) $(DEFINES) $(foreach i, $(SRC), ../test/$(i)) $(INC_DIR) -o $(TARGET) -fprofile-arcs -ftest-coverage + rm -f $(BUILD_DIR)/*.gcda + ./$(TARGET) > /dev/null ; ./$(TARGET) -v > /dev/null + cd $(BUILD_DIR) && \ + gcov unity_fixture.c | head -3 + grep '###' $(BUILD_DIR)/unity_fixture.c.gcov -C2 || true # Show uncovered lines # These extended flags DO get included before any target build runs CFLAGS += -Wbad-function-cast