1 # ========================================== 2 # Unity Project - A Test Framework for C 3 # Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams 4 # [Released under MIT License. Please refer to license.txt for details] 5 # ========================================== 6 7 #We try to detect the OS we are running on, and adjust commands as needed 8 ifeq ($(OS),Windows_NT) 9 ifeq ($(shell uname -s),) # not in a bash-like shell 10 CLEANUP = del /F /Q 11 MKDIR = mkdir 12 else # in a bash-like shell, like msys 13 CLEANUP = rm -f 14 MKDIR = mkdir -p 15 endif 16 TARGET_EXTENSION=.exe 17 else 18 CLEANUP = rm -f 19 MKDIR = mkdir -p 20 TARGET_EXTENSION=.out 21 endif 22 23 C_COMPILER=gcc 24 ifeq ($(shell uname -s), Darwin) 25 C_COMPILER=clang 26 endif 27 28 UNITY_ROOT=../.. 29 30 CFLAGS=-std=c99 31 CFLAGS += -Wall 32 CFLAGS += -Wextra 33 CFLAGS += -Wpointer-arith 34 CFLAGS += -Wcast-align 35 CFLAGS += -Wwrite-strings 36 CFLAGS += -Wswitch-default 37 CFLAGS += -Wunreachable-code 38 CFLAGS += -Winit-self 39 CFLAGS += -Wmissing-field-initializers 40 CFLAGS += -Wno-unknown-pragmas 41 CFLAGS += -Wstrict-prototypes 42 CFLAGS += -Wundef 43 CFLAGS += -Wold-style-definition 44 #CFLAGS += -Wno-misleading-indentation 45 46 TARGET_BASE1=all_tests 47 TARGET1 = $(TARGET_BASE1)$(TARGET_EXTENSION) 48 SRC_FILES1=\ 49 $(UNITY_ROOT)/src/unity.c \ 50 $(UNITY_ROOT)/extras/fixture/src/unity_fixture.c \ 51 src/ProductionCode.c \ 52 src/ProductionCode2.c \ 53 test/TestProductionCode.c \ 54 test/TestProductionCode2.c \ 55 test/test_runners/TestProductionCode_Runner.c \ 56 test/test_runners/TestProductionCode2_Runner.c \ 57 test/test_runners/all_tests.c 58 INC_DIRS=-Isrc -I$(UNITY_ROOT)/src -I$(UNITY_ROOT)/extras/fixture/src 59 SYMBOLS=-DUNITY_FIXTURE_NO_EXTRAS 60 61 all: clean default 62 63 default: 64 $(C_COMPILER) $(CFLAGS) $(INC_DIRS) $(SYMBOLS) $(SRC_FILES1) -o $(TARGET1) 65 - ./$(TARGET1) -v 66 67 clean: 68 $(CLEANUP) $(TARGET1) 69 70 ci: CFLAGS += -Werror 71 ci: default 72