19750e409Sopenharmony_ciCC = gcc 29750e409Sopenharmony_ciifeq ($(shell uname -s), Darwin) 39750e409Sopenharmony_ciCC = clang 49750e409Sopenharmony_ciendif 59750e409Sopenharmony_ciifeq ($(findstring clang, $(CC)), clang) 69750e409Sopenharmony_ciE = -Weverything 79750e409Sopenharmony_ciCFLAGS += $E -Wno-unknown-warning-option -Wno-missing-prototypes 89750e409Sopenharmony_ciCFLAGS += -Wno-unused-macros -Wno-padded -Wno-missing-noreturn 99750e409Sopenharmony_ciendif 109750e409Sopenharmony_ciCFLAGS += -std=c99 -pedantic -Wall -Wextra -Wconversion -Werror 119750e409Sopenharmony_ciCFLAGS += -Wno-switch-enum -Wno-double-promotion 129750e409Sopenharmony_ciCFLAGS += -Wbad-function-cast -Wcast-qual -Wold-style-definition -Wshadow -Wstrict-overflow \ 139750e409Sopenharmony_ci -Wstrict-prototypes -Wswitch-default -Wundef 149750e409Sopenharmony_ci#DEBUG = -O0 -g 159750e409Sopenharmony_ciCFLAGS += $(DEBUG) 169750e409Sopenharmony_ciDEFINES = -D UNITY_OUTPUT_CHAR=putcharSpy 179750e409Sopenharmony_ciDEFINES += -D UNITY_OUTPUT_CHAR_HEADER_DECLARATION=putcharSpy\(int\) 189750e409Sopenharmony_ciDEFINES += $(UNITY_SUPPORT_64) $(UNITY_INCLUDE_DOUBLE) 199750e409Sopenharmony_ciUNITY_SUPPORT_64 = -D UNITY_SUPPORT_64 209750e409Sopenharmony_ciUNITY_INCLUDE_DOUBLE = -D UNITY_INCLUDE_DOUBLE 219750e409Sopenharmony_ciSRC = ../src/unity.c tests/testunity.c build/testunityRunner.c 229750e409Sopenharmony_ciINC_DIR = -I ../src 239750e409Sopenharmony_ciCOV_FLAGS = -fprofile-arcs -ftest-coverage -I ../../src 249750e409Sopenharmony_ciBUILD_DIR = build 259750e409Sopenharmony_ciTARGET = build/testunity-cov.exe 269750e409Sopenharmony_ci 279750e409Sopenharmony_ci# To generate coverage, call 'make -s', the default target runs. 289750e409Sopenharmony_ci# For verbose output of all the tests, run 'make test'. 299750e409Sopenharmony_cidefault: coverage 309750e409Sopenharmony_ci.PHONY: default coverage test clean 319750e409Sopenharmony_cicoverage: DEFINES += -D UNITY_NO_WEAK 329750e409Sopenharmony_cicoverage: $(BUILD_DIR)/testunityRunner.c 339750e409Sopenharmony_ci cd $(BUILD_DIR) && \ 349750e409Sopenharmony_ci $(CC) $(CFLAGS) $(DEFINES) $(foreach i,$(SRC), ../$i) $(COV_FLAGS) -o ../$(TARGET) 359750e409Sopenharmony_ci rm -f $(BUILD_DIR)/*.gcda 369750e409Sopenharmony_ci ./$(TARGET) | grep 'Tests\|]]]' -A1 379750e409Sopenharmony_ci cd $(BUILD_DIR) && \ 389750e409Sopenharmony_ci gcov unity.c | head -3 399750e409Sopenharmony_ci grep '###' $(BUILD_DIR)/unity.c.gcov -C2 || true 409750e409Sopenharmony_ci 419750e409Sopenharmony_citest: $(BUILD_DIR)/testunityRunner.c 429750e409Sopenharmony_ci $(CC) $(CFLAGS) $(DEFINES) $(INC_DIR) $(SRC) -o $(TARGET) 439750e409Sopenharmony_ci ./$(TARGET) 449750e409Sopenharmony_ci 459750e409Sopenharmony_ci# Compile only, for testing that preprocessor detection works 469750e409Sopenharmony_ciUNITY_C_ONLY =-c ../src/unity.c -o $(BUILD_DIR)/unity.o 479750e409Sopenharmony_ciintDetection: 489750e409Sopenharmony_ci $(CC) $(CFLAGS) $(INC_DIR) $(UNITY_C_ONLY) -D UNITY_EXCLUDE_STDINT_H 499750e409Sopenharmony_ci $(CC) $(CFLAGS) $(INC_DIR) $(UNITY_C_ONLY) -D UNITY_EXCLUDE_LIMITS_H 509750e409Sopenharmony_ci 519750e409Sopenharmony_ci$(BUILD_DIR)/testunityRunner.c: tests/testunity.c | $(BUILD_DIR) 529750e409Sopenharmony_ci awk $(AWK_SCRIPT) tests/testunity.c > $@ 539750e409Sopenharmony_ci 549750e409Sopenharmony_ciAWK_SCRIPT=\ 559750e409Sopenharmony_ci '/^void test/{ declarations[d++]=$$0; gsub(/\(?void\)? ?/,""); tests[t++]=$$0; line[u++]=NR } \ 569750e409Sopenharmony_ci END{ print "\#include \"unity.h\" /* Autogenerated by awk in Makefile */" ; \ 579750e409Sopenharmony_ci for (i=0; i<d; i++) { print declarations[i] ";" } \ 589750e409Sopenharmony_ci print "int main(void)\n{\n UnityBegin(\"" FILENAME "\");" ; \ 599750e409Sopenharmony_ci for (i=0; i<t; i++) { print " RUN_TEST(" tests[i] ", " line[i] ");" } \ 609750e409Sopenharmony_ci print " return UNITY_END();\n}" }' 619750e409Sopenharmony_ci 629750e409Sopenharmony_ci$(BUILD_DIR): 639750e409Sopenharmony_ci mkdir -p $(BUILD_DIR) 649750e409Sopenharmony_ci 659750e409Sopenharmony_ciclean: 669750e409Sopenharmony_ci rm -f $(TARGET) $(BUILD_DIR)/*.gc* $(BUILD_DIR)/testunityRunner.c 67