19750e409Sopenharmony_ciCC = gcc
29750e409Sopenharmony_ciifeq ($(shell uname -s), Darwin)
39750e409Sopenharmony_ciCC = clang
49750e409Sopenharmony_ciendif
59750e409Sopenharmony_ci#DEBUG = -O0 -g
69750e409Sopenharmony_ciCFLAGS += -std=c99 -pedantic -Wall -Wextra -Werror
79750e409Sopenharmony_ciCFLAGS += $(DEBUG)
89750e409Sopenharmony_ciDEFINES = -D UNITY_OUTPUT_CHAR=UnityOutputCharSpy_OutputChar
99750e409Sopenharmony_ciDEFINES += -D UNITY_OUTPUT_CHAR_HEADER_DECLARATION=UnityOutputCharSpy_OutputChar\(int\)
109750e409Sopenharmony_ciSRC = ../src/unity_fixture.c \
119750e409Sopenharmony_ci      ../../../src/unity.c   \
129750e409Sopenharmony_ci      unity_fixture_Test.c   \
139750e409Sopenharmony_ci      unity_fixture_TestRunner.c \
149750e409Sopenharmony_ci      unity_output_Spy.c     \
159750e409Sopenharmony_ci      main/AllTests.c
169750e409Sopenharmony_ci
179750e409Sopenharmony_ciINC_DIR = -I../src -I../../../src/
189750e409Sopenharmony_ciBUILD_DIR = ../build
199750e409Sopenharmony_ciTARGET = ../build/fixture_tests.exe
209750e409Sopenharmony_ci
219750e409Sopenharmony_ciall: default noStdlibMalloc 32bits
229750e409Sopenharmony_ci
239750e409Sopenharmony_cidefault: $(BUILD_DIR)
249750e409Sopenharmony_ci	$(CC) $(CFLAGS) $(DEFINES) $(SRC) $(INC_DIR) -o $(TARGET) -D UNITY_SUPPORT_64
259750e409Sopenharmony_ci	@ echo "default build"
269750e409Sopenharmony_ci	./$(TARGET)
279750e409Sopenharmony_ci
289750e409Sopenharmony_ci32bits: $(BUILD_DIR)
299750e409Sopenharmony_ci	$(CC) $(CFLAGS) $(DEFINES) $(SRC) $(INC_DIR) -o $(TARGET) -m32
309750e409Sopenharmony_ci	@ echo "32bits build"
319750e409Sopenharmony_ci	./$(TARGET)
329750e409Sopenharmony_ci
339750e409Sopenharmony_cinoStdlibMalloc: $(BUILD_DIR)
349750e409Sopenharmony_ci	$(CC) $(CFLAGS) $(DEFINES) $(SRC) $(INC_DIR) -o $(TARGET) -D UNITY_EXCLUDE_STDLIB_MALLOC
359750e409Sopenharmony_ci	@ echo "build with noStdlibMalloc"
369750e409Sopenharmony_ci	./$(TARGET)
379750e409Sopenharmony_ci
389750e409Sopenharmony_ciC89: CFLAGS += -D UNITY_EXCLUDE_STDINT_H # C89 did not have type 'long long', <stdint.h>
399750e409Sopenharmony_ciC89: $(BUILD_DIR)
409750e409Sopenharmony_ci	$(CC) $(CFLAGS) $(DEFINES) $(SRC) $(INC_DIR) -o $(TARGET) -std=c89 && ./$(TARGET)
419750e409Sopenharmony_ci	$(CC) $(CFLAGS) $(DEFINES) $(SRC) $(INC_DIR) -o $(TARGET) -D UNITY_EXCLUDE_STDLIB_MALLOC -std=c89
429750e409Sopenharmony_ci	./$(TARGET)
439750e409Sopenharmony_ci
449750e409Sopenharmony_ci$(BUILD_DIR):
459750e409Sopenharmony_ci	mkdir -p $(BUILD_DIR)
469750e409Sopenharmony_ci
479750e409Sopenharmony_ciclean:
489750e409Sopenharmony_ci	rm -f $(TARGET) $(BUILD_DIR)/*.gc*
499750e409Sopenharmony_ci
509750e409Sopenharmony_cicov: $(BUILD_DIR)
519750e409Sopenharmony_ci	cd $(BUILD_DIR) && \
529750e409Sopenharmony_ci	$(CC) $(DEFINES) $(foreach i, $(SRC), ../test/$(i)) $(INC_DIR) -o $(TARGET) -fprofile-arcs -ftest-coverage
539750e409Sopenharmony_ci	rm -f $(BUILD_DIR)/*.gcda
549750e409Sopenharmony_ci	./$(TARGET) > /dev/null ; ./$(TARGET) -v > /dev/null
559750e409Sopenharmony_ci	cd $(BUILD_DIR) && \
569750e409Sopenharmony_ci	gcov unity_fixture.c | head -3
579750e409Sopenharmony_ci	grep '###' $(BUILD_DIR)/unity_fixture.c.gcov -C2 || true # Show uncovered lines
589750e409Sopenharmony_ci
599750e409Sopenharmony_ci# These extended flags DO get included before any target build runs
609750e409Sopenharmony_ciCFLAGS += -Wbad-function-cast
619750e409Sopenharmony_ciCFLAGS += -Wcast-qual
629750e409Sopenharmony_ciCFLAGS += -Wconversion
639750e409Sopenharmony_ciCFLAGS += -Wformat=2
649750e409Sopenharmony_ciCFLAGS += -Wmissing-prototypes
659750e409Sopenharmony_ciCFLAGS += -Wold-style-definition
669750e409Sopenharmony_ciCFLAGS += -Wpointer-arith
679750e409Sopenharmony_ciCFLAGS += -Wshadow
689750e409Sopenharmony_ciCFLAGS += -Wstrict-overflow=5
699750e409Sopenharmony_ciCFLAGS += -Wstrict-prototypes
709750e409Sopenharmony_ciCFLAGS += -Wswitch-default
719750e409Sopenharmony_ciCFLAGS += -Wundef
729750e409Sopenharmony_ciCFLAGS += -Wno-error=undef  # Warning only, this should not stop the build
739750e409Sopenharmony_ciCFLAGS += -Wunreachable-code
749750e409Sopenharmony_ciCFLAGS += -Wunused
759750e409Sopenharmony_ciCFLAGS += -fstrict-aliasing
76