Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
mbed-client/mbed-client-mbed-tls/toolchain_rules.mk@0:06ee5f8a484a, 2017-03-18 (annotated)
- Committer:
- djmeyers
- Date:
- Sat Mar 18 22:37:16 2017 +0000
- Revision:
- 0:06ee5f8a484a
Initial commit
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| djmeyers | 0:06ee5f8a484a | 1 | # |
| djmeyers | 0:06ee5f8a484a | 2 | # Toolchain rules for building libraries |
| djmeyers | 0:06ee5f8a484a | 3 | # |
| djmeyers | 0:06ee5f8a484a | 4 | # Support multi-platform builds |
| djmeyers | 0:06ee5f8a484a | 5 | # You may define PLATFORM=.. prefix for compiler |
| djmeyers | 0:06ee5f8a484a | 6 | # if PLATFORM is defined it will owerride CC and AR |
| djmeyers | 0:06ee5f8a484a | 7 | # You may also specify CC and AR separately. |
| djmeyers | 0:06ee5f8a484a | 8 | # example: Compile with KEIL |
| djmeyers | 0:06ee5f8a484a | 9 | # make CC=ArmCC AR=ArmAR |
| djmeyers | 0:06ee5f8a484a | 10 | # |
| djmeyers | 0:06ee5f8a484a | 11 | # example: Cross Compile with Gnu toolchain, for embedded Linux |
| djmeyers | 0:06ee5f8a484a | 12 | # make PLATFORM=arm-linux-gnueabi- |
| djmeyers | 0:06ee5f8a484a | 13 | # |
| djmeyers | 0:06ee5f8a484a | 14 | # Special rules for IAR-ARM toolchains added, AR tool on that does not follow common arquements. |
| djmeyers | 0:06ee5f8a484a | 15 | # make CC=iccarm uses iarchive.exe for creating a archive. |
| djmeyers | 0:06ee5f8a484a | 16 | # |
| djmeyers | 0:06ee5f8a484a | 17 | # Special rules for IAR-RL78 toolchain added, uses own AR and compiler requires specific flags |
| djmeyers | 0:06ee5f8a484a | 18 | # make CC=iccrl78 |
| djmeyers | 0:06ee5f8a484a | 19 | # |
| djmeyers | 0:06ee5f8a484a | 20 | # When using ArmCC, Select CPU by defining one of following supported values |
| djmeyers | 0:06ee5f8a484a | 21 | # CPU=Cortex-M0 |
| djmeyers | 0:06ee5f8a484a | 22 | # CPU=Cortex-M3 |
| djmeyers | 0:06ee5f8a484a | 23 | # CPU=Cortex-M4 |
| djmeyers | 0:06ee5f8a484a | 24 | # |
| djmeyers | 0:06ee5f8a484a | 25 | # example: |
| djmeyers | 0:06ee5f8a484a | 26 | # make CC=armcc CPU=Cortex-M4 |
| djmeyers | 0:06ee5f8a484a | 27 | |
| djmeyers | 0:06ee5f8a484a | 28 | # |
| djmeyers | 0:06ee5f8a484a | 29 | # If PLATFORM prefix is defined, |
| djmeyers | 0:06ee5f8a484a | 30 | # generate CC and AR accordingly |
| djmeyers | 0:06ee5f8a484a | 31 | # |
| djmeyers | 0:06ee5f8a484a | 32 | ifneq ($(strip $(PLATFORM)),) |
| djmeyers | 0:06ee5f8a484a | 33 | CC:=$(PLATFORM)gcc |
| djmeyers | 0:06ee5f8a484a | 34 | AR:=$(PLATFORM)ar |
| djmeyers | 0:06ee5f8a484a | 35 | endif |
| djmeyers | 0:06ee5f8a484a | 36 | |
| djmeyers | 0:06ee5f8a484a | 37 | # |
| djmeyers | 0:06ee5f8a484a | 38 | # Windows specific tweaks for echo and mkdir to work |
| djmeyers | 0:06ee5f8a484a | 39 | # |
| djmeyers | 0:06ee5f8a484a | 40 | ifeq ($(OS),Windows_NT) |
| djmeyers | 0:06ee5f8a484a | 41 | SHELL := cmd.exe |
| djmeyers | 0:06ee5f8a484a | 42 | mkdir = if not exist $(1) md $(subst /,\,$(1)) |
| djmeyers | 0:06ee5f8a484a | 43 | else |
| djmeyers | 0:06ee5f8a484a | 44 | mkdir = mkdir -p $(1) |
| djmeyers | 0:06ee5f8a484a | 45 | endif |
| djmeyers | 0:06ee5f8a484a | 46 | |
| djmeyers | 0:06ee5f8a484a | 47 | # |
| djmeyers | 0:06ee5f8a484a | 48 | # Append CC and CPU to library names |
| djmeyers | 0:06ee5f8a484a | 49 | # |
| djmeyers | 0:06ee5f8a484a | 50 | LIB:=$(LIB:%.a=%_$(CC).a) |
| djmeyers | 0:06ee5f8a484a | 51 | ifneq (,$(CPU)) |
| djmeyers | 0:06ee5f8a484a | 52 | LIB:=$(LIB:%.a=%_$(CPU).a) |
| djmeyers | 0:06ee5f8a484a | 53 | endif |
| djmeyers | 0:06ee5f8a484a | 54 | |
| djmeyers | 0:06ee5f8a484a | 55 | ########################################################## |
| djmeyers | 0:06ee5f8a484a | 56 | # TOOLCHAIN SPECIFIC RULES AND FLAGS # |
| djmeyers | 0:06ee5f8a484a | 57 | ########################################################## |
| djmeyers | 0:06ee5f8a484a | 58 | |
| djmeyers | 0:06ee5f8a484a | 59 | # |
| djmeyers | 0:06ee5f8a484a | 60 | # GCC toolchains |
| djmeyers | 0:06ee5f8a484a | 61 | # |
| djmeyers | 0:06ee5f8a484a | 62 | ifneq (,$(findstring gcc,$(CC))) |
| djmeyers | 0:06ee5f8a484a | 63 | # Flags for common toolchain, usually GCC or CC |
| djmeyers | 0:06ee5f8a484a | 64 | AROPTS=-rsc $@ $^ |
| djmeyers | 0:06ee5f8a484a | 65 | override CFLAGS += -Wall -pedantic-errors |
| djmeyers | 0:06ee5f8a484a | 66 | # Dependency generation |
| djmeyers | 0:06ee5f8a484a | 67 | override CFLAGS += -MMD -MP |
| djmeyers | 0:06ee5f8a484a | 68 | ifneq (,$(CPU)) |
| djmeyers | 0:06ee5f8a484a | 69 | # CPU must be lowercase on GCC |
| djmeyers | 0:06ee5f8a484a | 70 | CPU_L:=$(shell echo $(CPU) | tr A-Z a-z) |
| djmeyers | 0:06ee5f8a484a | 71 | override CFLAGS += -mcpu=$(CPU_L) |
| djmeyers | 0:06ee5f8a484a | 72 | # Use THUMB instructions of Cortex-M cores |
| djmeyers | 0:06ee5f8a484a | 73 | ifeq (cortex-m,$(findstring cortex-m,$(CPU_L))) |
| djmeyers | 0:06ee5f8a484a | 74 | override CFLAGS += -mthumb |
| djmeyers | 0:06ee5f8a484a | 75 | endif |
| djmeyers | 0:06ee5f8a484a | 76 | endif |
| djmeyers | 0:06ee5f8a484a | 77 | # Debug |
| djmeyers | 0:06ee5f8a484a | 78 | ifeq ($(DEBUG),1) |
| djmeyers | 0:06ee5f8a484a | 79 | override CFLAGS += -g -O0 |
| djmeyers | 0:06ee5f8a484a | 80 | else |
| djmeyers | 0:06ee5f8a484a | 81 | override CFLAGS += -O2 |
| djmeyers | 0:06ee5f8a484a | 82 | endif |
| djmeyers | 0:06ee5f8a484a | 83 | # Enable Coverage generation |
| djmeyers | 0:06ee5f8a484a | 84 | ifeq ($(COVERAGE),1) |
| djmeyers | 0:06ee5f8a484a | 85 | override CFLAGS += -ftest-coverage -fprofile-arcs |
| djmeyers | 0:06ee5f8a484a | 86 | override LDFLAGS += -ftest-coverage -fprofile-arcs |
| djmeyers | 0:06ee5f8a484a | 87 | endif |
| djmeyers | 0:06ee5f8a484a | 88 | COMPILE = $(CC) -std=gnu99 -c -o $@ |
| djmeyers | 0:06ee5f8a484a | 89 | CXXCOMPILE = $(CC) -std=c++11 -c -o $@ |
| djmeyers | 0:06ee5f8a484a | 90 | |
| djmeyers | 0:06ee5f8a484a | 91 | # |
| djmeyers | 0:06ee5f8a484a | 92 | # IAR-ARM toolchain |
| djmeyers | 0:06ee5f8a484a | 93 | # |
| djmeyers | 0:06ee5f8a484a | 94 | else ifneq (,$(findstring iccarm,$(CC))) |
| djmeyers | 0:06ee5f8a484a | 95 | AR:=iarchive |
| djmeyers | 0:06ee5f8a484a | 96 | AROPTS=$^ --create -o $@ |
| djmeyers | 0:06ee5f8a484a | 97 | DLIB_FILE=$(subst bin\iccarm.exe,inc\c\DLib_Config_Full.h,$(shell where iccarm)) |
| djmeyers | 0:06ee5f8a484a | 98 | override CFLAGS += --dlib_config '$(DLIB_FILE)' --cpu Cortex-M4 --vla --diag_suppress Pa50 |
| djmeyers | 0:06ee5f8a484a | 99 | # Dependency generation |
| djmeyers | 0:06ee5f8a484a | 100 | override CFLAGS += --dependencies=m $(basename $@).d |
| djmeyers | 0:06ee5f8a484a | 101 | # Debug |
| djmeyers | 0:06ee5f8a484a | 102 | ifeq ($(DEBUG),1) |
| djmeyers | 0:06ee5f8a484a | 103 | override CFLAGS += --debug -On |
| djmeyers | 0:06ee5f8a484a | 104 | else |
| djmeyers | 0:06ee5f8a484a | 105 | override CFLAGS += -Om |
| djmeyers | 0:06ee5f8a484a | 106 | endif |
| djmeyers | 0:06ee5f8a484a | 107 | COMPILE = $(CC) -c -o $@ |
| djmeyers | 0:06ee5f8a484a | 108 | |
| djmeyers | 0:06ee5f8a484a | 109 | # |
| djmeyers | 0:06ee5f8a484a | 110 | # ArmCC toolchain (Used by Keil) |
| djmeyers | 0:06ee5f8a484a | 111 | # |
| djmeyers | 0:06ee5f8a484a | 112 | else ifneq (,$(findstring armcc,$(CC))) |
| djmeyers | 0:06ee5f8a484a | 113 | AR:=armar |
| djmeyers | 0:06ee5f8a484a | 114 | AROPTS=-rsc $@ $^ |
| djmeyers | 0:06ee5f8a484a | 115 | override CFLAGS += --c99 --no_wrap_diagnostics |
| djmeyers | 0:06ee5f8a484a | 116 | # Dependency generation |
| djmeyers | 0:06ee5f8a484a | 117 | override CFLAGS += --depend $(basename $@).d --phony_targets |
| djmeyers | 0:06ee5f8a484a | 118 | LIB:=$(LIB:%.a=%.lib) |
| djmeyers | 0:06ee5f8a484a | 119 | ifneq (,$(CPU)) |
| djmeyers | 0:06ee5f8a484a | 120 | override CFLAGS += --cpu=$(CPU) |
| djmeyers | 0:06ee5f8a484a | 121 | endif |
| djmeyers | 0:06ee5f8a484a | 122 | # Debug |
| djmeyers | 0:06ee5f8a484a | 123 | ifeq ($(DEBUG),1) |
| djmeyers | 0:06ee5f8a484a | 124 | override CFLAGS += -g -O0 |
| djmeyers | 0:06ee5f8a484a | 125 | else |
| djmeyers | 0:06ee5f8a484a | 126 | override CFLAGS += -O2 |
| djmeyers | 0:06ee5f8a484a | 127 | endif |
| djmeyers | 0:06ee5f8a484a | 128 | COMPILE = $(CC) -c -o $@ |
| djmeyers | 0:06ee5f8a484a | 129 | |
| djmeyers | 0:06ee5f8a484a | 130 | # |
| djmeyers | 0:06ee5f8a484a | 131 | # IAR Renesas78 toolchain |
| djmeyers | 0:06ee5f8a484a | 132 | # |
| djmeyers | 0:06ee5f8a484a | 133 | else ifneq (,$(findstring iccrl78,$(CC))) |
| djmeyers | 0:06ee5f8a484a | 134 | AR:=xar |
| djmeyers | 0:06ee5f8a484a | 135 | AROPTS=$@ $^ |
| djmeyers | 0:06ee5f8a484a | 136 | # Hack to get \lib include path which contains dlib config headers for compiler |
| djmeyers | 0:06ee5f8a484a | 137 | DIR=$(subst iccrl78.exe,..\lib\,$(shell where iccrl78)) |
| djmeyers | 0:06ee5f8a484a | 138 | override CFLAGS += --core rl78_1 --code_model far --data_model far --dlib_config full --vla --no_wrap_diagnostics -I'$(DIR)' |
| djmeyers | 0:06ee5f8a484a | 139 | # Dependency generation |
| djmeyers | 0:06ee5f8a484a | 140 | LIB:=$(LIB:%.a=%.lib) |
| djmeyers | 0:06ee5f8a484a | 141 | override CFLAGS += --dependencies=m $(basename $@).d |
| djmeyers | 0:06ee5f8a484a | 142 | # Debug |
| djmeyers | 0:06ee5f8a484a | 143 | ifeq ($(DEBUG),1) |
| djmeyers | 0:06ee5f8a484a | 144 | override CFLAGS += --debug -Oh |
| djmeyers | 0:06ee5f8a484a | 145 | else |
| djmeyers | 0:06ee5f8a484a | 146 | override CFLAGS += -Ohz |
| djmeyers | 0:06ee5f8a484a | 147 | endif |
| djmeyers | 0:06ee5f8a484a | 148 | COMPILE = $(CC) -o $@ |
| djmeyers | 0:06ee5f8a484a | 149 | |
| djmeyers | 0:06ee5f8a484a | 150 | # |
| djmeyers | 0:06ee5f8a484a | 151 | # IAR MSP430 toolchain |
| djmeyers | 0:06ee5f8a484a | 152 | # |
| djmeyers | 0:06ee5f8a484a | 153 | else ifneq (,$(findstring icc430,$(CC))) |
| djmeyers | 0:06ee5f8a484a | 154 | AR:=xar |
| djmeyers | 0:06ee5f8a484a | 155 | AROPTS=$@ $^ |
| djmeyers | 0:06ee5f8a484a | 156 | # Hack to get \lib include path which contains dlib config headers for compiler |
| djmeyers | 0:06ee5f8a484a | 157 | DIR=$(subst bin\icc430.exe,lib,$(shell where icc430)) |
| djmeyers | 0:06ee5f8a484a | 158 | DLIB_FILE=$(subst bin\icc430.exe,lib\dlib\dl430xllff.h,$(shell where icc430)) |
| djmeyers | 0:06ee5f8a484a | 159 | override CFLAGS += --dlib_config '$(DLIB_FILE)' --vla --core 430X --data_model large --no_wrap_diagnostics -I'$(DIR)' |
| djmeyers | 0:06ee5f8a484a | 160 | # Dependency generation |
| djmeyers | 0:06ee5f8a484a | 161 | LIB:=$(LIB:%.a=%.lib) |
| djmeyers | 0:06ee5f8a484a | 162 | override CFLAGS += --dependencies=m $(basename $@).d |
| djmeyers | 0:06ee5f8a484a | 163 | # Debug |
| djmeyers | 0:06ee5f8a484a | 164 | ifeq ($(DEBUG),1) |
| djmeyers | 0:06ee5f8a484a | 165 | override CFLAGS += --debug -On |
| djmeyers | 0:06ee5f8a484a | 166 | else |
| djmeyers | 0:06ee5f8a484a | 167 | override CFLAGS += -Ohz |
| djmeyers | 0:06ee5f8a484a | 168 | endif |
| djmeyers | 0:06ee5f8a484a | 169 | COMPILE = $(CC) -o $@ |
| djmeyers | 0:06ee5f8a484a | 170 | |
| djmeyers | 0:06ee5f8a484a | 171 | # |
| djmeyers | 0:06ee5f8a484a | 172 | # CppCheck toolchain |
| djmeyers | 0:06ee5f8a484a | 173 | # This is used only for static testing the code. |
| djmeyers | 0:06ee5f8a484a | 174 | # cppcheck is used in place of compiler and linker phase is ignored |
| djmeyers | 0:06ee5f8a484a | 175 | else ifneq (,$(findstring cppcheck,$(CC))) |
| djmeyers | 0:06ee5f8a484a | 176 | AR = cppcheck -q --enable=warning --enable=style --std=c99 --inline-suppr -DCPPCHECK $(CPPCHECK_OPTS) $(CFLAGS) $(SRCS) |
| djmeyers | 0:06ee5f8a484a | 177 | COMPILE = true |
| djmeyers | 0:06ee5f8a484a | 178 | CPPCHECK = 1 |
| djmeyers | 0:06ee5f8a484a | 179 | LIB:= "ignored_with_cppcheck" |
| djmeyers | 0:06ee5f8a484a | 180 | |
| djmeyers | 0:06ee5f8a484a | 181 | |
| djmeyers | 0:06ee5f8a484a | 182 | ################################### |
| djmeyers | 0:06ee5f8a484a | 183 | # End of toolchain specific rules # |
| djmeyers | 0:06ee5f8a484a | 184 | ################################### |
| djmeyers | 0:06ee5f8a484a | 185 | endif |
| djmeyers | 0:06ee5f8a484a | 186 | |
| djmeyers | 0:06ee5f8a484a | 187 | # |
| djmeyers | 0:06ee5f8a484a | 188 | # Generate VERSION tag |
| djmeyers | 0:06ee5f8a484a | 189 | # |
| djmeyers | 0:06ee5f8a484a | 190 | ifeq (,$(CPPCHECK)) |
| djmeyers | 0:06ee5f8a484a | 191 | VERSION := $(shell git describe --tags --long --dirty --always) |
| djmeyers | 0:06ee5f8a484a | 192 | CFLAGS += -DVERSION='"$(VERSION)"' |
| djmeyers | 0:06ee5f8a484a | 193 | endif |
| djmeyers | 0:06ee5f8a484a | 194 | |
| djmeyers | 0:06ee5f8a484a | 195 | ############################################################ |
| djmeyers | 0:06ee5f8a484a | 196 | # AUTOMATICALLY GENERATE LIBRARY COMPILATION RULES # |
| djmeyers | 0:06ee5f8a484a | 197 | # # |
| djmeyers | 0:06ee5f8a484a | 198 | # Use: # |
| djmeyers | 0:06ee5f8a484a | 199 | # $(eval $(call generate_rules,$(OUTPUT_LIB),$(SRCS))) # |
| djmeyers | 0:06ee5f8a484a | 200 | # at the end of your Makefile # |
| djmeyers | 0:06ee5f8a484a | 201 | # # |
| djmeyers | 0:06ee5f8a484a | 202 | ############################################################ |
| djmeyers | 0:06ee5f8a484a | 203 | |
| djmeyers | 0:06ee5f8a484a | 204 | define generate_rules |
| djmeyers | 0:06ee5f8a484a | 205 | |
| djmeyers | 0:06ee5f8a484a | 206 | DEST_LIB := $(1) |
| djmeyers | 0:06ee5f8a484a | 207 | LIB_SRCS := $(2) |
| djmeyers | 0:06ee5f8a484a | 208 | C_SRCS := $$(filter %.c,$$(LIB_SRCS)) |
| djmeyers | 0:06ee5f8a484a | 209 | CXX_SRCS := $$(filter %.cpp,$$(LIB_SRCS)) |
| djmeyers | 0:06ee5f8a484a | 210 | all: $$(DEST_LIB) |
| djmeyers | 0:06ee5f8a484a | 211 | |
| djmeyers | 0:06ee5f8a484a | 212 | # |
| djmeyers | 0:06ee5f8a484a | 213 | # Define build dir outside from src folders |
| djmeyers | 0:06ee5f8a484a | 214 | # |
| djmeyers | 0:06ee5f8a484a | 215 | BUILD_DIR := output/$$(CC) |
| djmeyers | 0:06ee5f8a484a | 216 | ifneq (,$$(CPU)) |
| djmeyers | 0:06ee5f8a484a | 217 | BUILD_DIR := $$(BUILD_DIR)_$$(CPU) |
| djmeyers | 0:06ee5f8a484a | 218 | endif |
| djmeyers | 0:06ee5f8a484a | 219 | ifneq (generic,$$(CONFIG)) |
| djmeyers | 0:06ee5f8a484a | 220 | BUILD_DIR := $$(BUILD_DIR)_$$(CONFIG) |
| djmeyers | 0:06ee5f8a484a | 221 | endif |
| djmeyers | 0:06ee5f8a484a | 222 | OBJS := $$(C_SRCS:%.c=$$(BUILD_DIR)/%.o) $$(CXX_SRCS:%.cpp=$$(BUILD_DIR)/%.o) |
| djmeyers | 0:06ee5f8a484a | 223 | |
| djmeyers | 0:06ee5f8a484a | 224 | # Include auto-dependencies |
| djmeyers | 0:06ee5f8a484a | 225 | -include $$(OBJS:.o=.d) |
| djmeyers | 0:06ee5f8a484a | 226 | |
| djmeyers | 0:06ee5f8a484a | 227 | # Create list of output directories. |
| djmeyers | 0:06ee5f8a484a | 228 | OBJ_DIRS := $$(sort $$(dir $$(OBJS))) |
| djmeyers | 0:06ee5f8a484a | 229 | |
| djmeyers | 0:06ee5f8a484a | 230 | # requires directories to be created before build. |
| djmeyers | 0:06ee5f8a484a | 231 | # '|' means do not care about timestamps of requisities |
| djmeyers | 0:06ee5f8a484a | 232 | $$(OBJS): | $$(OBJ_DIRS) |
| djmeyers | 0:06ee5f8a484a | 233 | |
| djmeyers | 0:06ee5f8a484a | 234 | # Need to redefine build rule to find the sources |
| djmeyers | 0:06ee5f8a484a | 235 | # from correct folder. |
| djmeyers | 0:06ee5f8a484a | 236 | $$(BUILD_DIR)/%.o: %.c |
| djmeyers | 0:06ee5f8a484a | 237 | ifeq ($(V),1) |
| djmeyers | 0:06ee5f8a484a | 238 | $$(COMPILE) $$(CFLAGS) $$< |
| djmeyers | 0:06ee5f8a484a | 239 | else ifeq (1,$(CPPCHECK)) |
| djmeyers | 0:06ee5f8a484a | 240 | @$$(COMPILE) $$(CFLAGS) $$< |
| djmeyers | 0:06ee5f8a484a | 241 | else ifeq (1,$(UNITTEST)) |
| djmeyers | 0:06ee5f8a484a | 242 | @echo Building unittest $$< |
| djmeyers | 0:06ee5f8a484a | 243 | ifneq ($(OS),Windows_NT) |
| djmeyers | 0:06ee5f8a484a | 244 | ruby $(UNIT_TEST_BASE)/../auto/generate_test_runner.rb Test.c Test_Runner.c |
| djmeyers | 0:06ee5f8a484a | 245 | endif |
| djmeyers | 0:06ee5f8a484a | 246 | @gcc $$(CFLAGS) $$(SRCS) -o $$(OUTPUT_LIB) |
| djmeyers | 0:06ee5f8a484a | 247 | else |
| djmeyers | 0:06ee5f8a484a | 248 | @echo Building $$< |
| djmeyers | 0:06ee5f8a484a | 249 | @$$(COMPILE) $$(CFLAGS) $$< |
| djmeyers | 0:06ee5f8a484a | 250 | endif |
| djmeyers | 0:06ee5f8a484a | 251 | |
| djmeyers | 0:06ee5f8a484a | 252 | # Same again for C++ |
| djmeyers | 0:06ee5f8a484a | 253 | $$(BUILD_DIR)/%.o: %.cpp |
| djmeyers | 0:06ee5f8a484a | 254 | ifeq ($(V),1) |
| djmeyers | 0:06ee5f8a484a | 255 | $$(CXXCOMPILE) $$(CFLAGS) $$< |
| djmeyers | 0:06ee5f8a484a | 256 | else ifeq (1,$(CPPCHECK)) |
| djmeyers | 0:06ee5f8a484a | 257 | @$$(CXXCOMPILE) $$(CFLAGS) $$< |
| djmeyers | 0:06ee5f8a484a | 258 | else |
| djmeyers | 0:06ee5f8a484a | 259 | @echo Building $$< |
| djmeyers | 0:06ee5f8a484a | 260 | @$$(CXXCOMPILE) $$(CFLAGS) $$< |
| djmeyers | 0:06ee5f8a484a | 261 | endif |
| djmeyers | 0:06ee5f8a484a | 262 | |
| djmeyers | 0:06ee5f8a484a | 263 | # Rule to create a object directory |
| djmeyers | 0:06ee5f8a484a | 264 | $$(OBJ_DIRS): |
| djmeyers | 0:06ee5f8a484a | 265 | @-$$(call mkdir,$$@) |
| djmeyers | 0:06ee5f8a484a | 266 | |
| djmeyers | 0:06ee5f8a484a | 267 | $$(DEST_LIB): $$(OBJS) |
| djmeyers | 0:06ee5f8a484a | 268 | ifeq ($(V),1) |
| djmeyers | 0:06ee5f8a484a | 269 | -$$(addprefix $$(RM) ,$$(wildcard $$@)) |
| djmeyers | 0:06ee5f8a484a | 270 | $$(AR) $$(AROPTS) |
| djmeyers | 0:06ee5f8a484a | 271 | else ifeq (1,$(CPPCHECK)) |
| djmeyers | 0:06ee5f8a484a | 272 | @$$(AR) $$(AROPTS) |
| djmeyers | 0:06ee5f8a484a | 273 | else ifeq (1,$(UNITTEST)) |
| djmeyers | 0:06ee5f8a484a | 274 | #ifneq ($(OS),Windows_NT) |
| djmeyers | 0:06ee5f8a484a | 275 | # lcov -q --capture -i --directory $(CURDIR) --output-file lib_base.info |
| djmeyers | 0:06ee5f8a484a | 276 | # ./$$@ |
| djmeyers | 0:06ee5f8a484a | 277 | # lcov -q --capture --directory $(CURDIR) --output-file lib_test.info |
| djmeyers | 0:06ee5f8a484a | 278 | # lcov -a lib_base.info -a lib_test.info -o coverage.info |
| djmeyers | 0:06ee5f8a484a | 279 | #endif |
| djmeyers | 0:06ee5f8a484a | 280 | else |
| djmeyers | 0:06ee5f8a484a | 281 | @echo Linking $$(notdir $$@) |
| djmeyers | 0:06ee5f8a484a | 282 | @-$$(addprefix $$(RM) ,$$(wildcard $$@)) |
| djmeyers | 0:06ee5f8a484a | 283 | @$$(AR) $$(AROPTS) |
| djmeyers | 0:06ee5f8a484a | 284 | endif |
| djmeyers | 0:06ee5f8a484a | 285 | |
| djmeyers | 0:06ee5f8a484a | 286 | clean: |
| djmeyers | 0:06ee5f8a484a | 287 | @$(RM) -r $$(BUILD_DIR) |
| djmeyers | 0:06ee5f8a484a | 288 | @$(RM) $$(DEST_LIB) |
| djmeyers | 0:06ee5f8a484a | 289 | |
| djmeyers | 0:06ee5f8a484a | 290 | clean-all: |
| djmeyers | 0:06ee5f8a484a | 291 | @$(RM) -r output *.a |
| djmeyers | 0:06ee5f8a484a | 292 | |
| djmeyers | 0:06ee5f8a484a | 293 | endef |