# ==========================================
							 | 
						|
								#   Unity Project - A Test Framework for C
							 | 
						|
								#   Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
							 | 
						|
								#   [Released under MIT License. Please refer to license.txt for details]
							 | 
						|
								# ==========================================
							 | 
						|
								
							 | 
						|
								#We try to detect the OS we are running on, and adjust commands as needed
							 | 
						|
								ifeq ($(OS),Windows_NT)
							 | 
						|
									CLEANUP = del /F /Q
							 | 
						|
									MKDIR = mkdir
							 | 
						|
									TARGET_EXTENSION=.exe
							 | 
						|
								else
							 | 
						|
									CLEANUP = rm -rf
							 | 
						|
									MKDIR = mkdir -p
							 | 
						|
									TARGET_EXTENSION=
							 | 
						|
								endif
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								UNITY_ROOT=../../../../../Git/Unity
							 | 
						|
								C_COMPILER=gcc
							 | 
						|
								
							 | 
						|
								CFLAGS = -std=c11
							 | 
						|
								CFLAGS += -Wall
							 | 
						|
								CFLAGS += -Wextra
							 | 
						|
								CFLAGS += -Werror
							 | 
						|
								CFLAGS += -Wpointer-arith
							 | 
						|
								CFLAGS += -Wcast-align
							 | 
						|
								CFLAGS += -Wwrite-strings
							 | 
						|
								CFLAGS += -Wswitch-default
							 | 
						|
								CFLAGS += -Wunreachable-code
							 | 
						|
								CFLAGS += -Winit-self
							 | 
						|
								CFLAGS += -Wmissing-field-initializers
							 | 
						|
								CFLAGS += -Wno-unknown-pragmas
							 | 
						|
								CFLAGS += -Wstrict-prototypes
							 | 
						|
								CFLAGS += -Wundef
							 | 
						|
								CFLAGS += -Wold-style-definition
							 | 
						|
								CFLAGS += -Wmissing-prototypes
							 | 
						|
								CFLAGS += -Wmissing-declarations
							 | 
						|
								CFLAGS += -g
							 | 
						|
								CFLAGS += -ftest-coverage
							 | 
						|
								CFLAGS += -fprofile-arcs
							 | 
						|
								
							 | 
						|
								TARGET_BASE=test_sprintf
							 | 
						|
								TARGET = $(TARGET_BASE)$(TARGET_EXTENSION)
							 | 
						|
								SRC_FILES=\
							 | 
						|
									$(UNITY_ROOT)/extras/fixture/src/unity_fixture.c \
							 | 
						|
									$(UNITY_ROOT)/src/unity.c \
							 | 
						|
									../test/SprintfTest.c \
							 | 
						|
									../test/SprintfTestRunner.c \
							 | 
						|
									../test/AllTests.c
							 | 
						|
								INC_DIRS=-I$(UNITY_ROOT)/src -I$(UNITY_ROOT)/extras/fixture/src
							 | 
						|
								SYMBOLS=
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								all: clean tests
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								.PHONY: tests
							 | 
						|
								tests: build/$(TARGET)
							 | 
						|
								
							 | 
						|
								build/$(TARGET):	test/*.c
							 | 
						|
									@echo "Compiling"; cd build; $(C_COMPILER) $(CFLAGS) $(INC_DIRS) $(SYMBOLS) $(SRC_FILES) -o $(TARGET)
							 | 
						|
									@echo "Running tests"; ./build/$(TARGET)
							 | 
						|
									@echo "Preparing coverage"; cp build/*.gc* test/
							 | 
						|
									@echo "Running coverage"; cd test; gcovr -r . -b -p --html --html-details -o ../build/cover/$(TARGET).html
							 | 
						|
									@echo "Clearing intermediate files"; rm test/*.gc* build/*.gc*
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								.PHONY: clean
							 | 
						|
								clean:
							 | 
						|
									@echo "Cleaning $<"; $(CLEANUP) build/$(TARGET) build/cover/*
							 | 
						|
								
							 |