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 8ifeq ($(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 17else 18 CLEANUP = rm -f 19 MKDIR = mkdir -p 20 TARGET_EXTENSION=.out 21endif 22 23C_COMPILER=gcc 24ifeq ($(shell uname -s), Darwin) 25C_COMPILER=clang 26endif 27 28UNITY_ROOT=../.. 29 30CFLAGS=-std=c99 31CFLAGS += -Wall 32CFLAGS += -Wextra 33CFLAGS += -Wpointer-arith 34CFLAGS += -Wcast-align 35CFLAGS += -Wwrite-strings 36CFLAGS += -Wswitch-default 37CFLAGS += -Wunreachable-code 38CFLAGS += -Winit-self 39CFLAGS += -Wmissing-field-initializers 40CFLAGS += -Wno-unknown-pragmas 41CFLAGS += -Wstrict-prototypes 42CFLAGS += -Wundef 43CFLAGS += -Wold-style-definition 44 45TARGET_BASE1=all_tests 46TARGET1 = $(TARGET_BASE1)$(TARGET_EXTENSION) 47SRC_FILES1=\ 48 $(UNITY_ROOT)/src/unity.c \ 49 $(UNITY_ROOT)/extras/fixture/src/unity_fixture.c \ 50 src/ProductionCode.c \ 51 src/ProductionCode2.c \ 52 test/TestProductionCode.c \ 53 test/TestProductionCode2.c \ 54 test/test_runners/TestProductionCode_Runner.c \ 55 test/test_runners/TestProductionCode2_Runner.c \ 56 test/test_runners/all_tests.c 57INC_DIRS=-Isrc -I$(UNITY_ROOT)/src -I$(UNITY_ROOT)/extras/fixture/src 58SYMBOLS= 59 60all: clean default 61 62default: 63 $(C_COMPILER) $(CFLAGS) $(INC_DIRS) $(SYMBOLS) $(SRC_FILES1) -o $(TARGET1) 64 - ./$(TARGET1) -v 65 66clean: 67 $(CLEANUP) $(TARGET1) 68 69ci: CFLAGS += -Werror 70ci: default 71