GLD ?= arm-none-eabi-gcc
OBJCOPY ?= arm-none-eabi-objcopy
-CFLAGS ?= -Wall -Os -g --std=gnu99
-CXXFLAGS ?= -Wall -Os -g --std=gnu++98
+CFLAGS ?= -Wall -g --std=gnu99
+CXXFLAGS ?= -Wall -g --std=gnu++98
# Cross compiler flags
CPPFLAGS += -I$(MBED) -I$(MBED)/TARGET_KL46Z
CFLAGS += -mthumb -mcpu=cortex-m0plus
CXXFLAGS += -mthumb -mcpu=cortex-m0plus -fno-exceptions
-LDFLAGS += --specs=nano.specs -Wl,--gc-sections \
+LDFLAGS += --specs=nano.specs -Wl,-u_printf_float -Wl,--gc-sections \
-T$(MBED)/TARGET_KL46Z/TOOLCHAIN_GCC_ARM/MKL46Z4.ld \
-L$(MBED)/TARGET_KL46Z/TOOLCHAIN_GCC_ARM \
- -Wl,--start-group -lmbed -lstartup -lio -lc_s -Wl,--end-group
+ $(MBED)/TARGET_KL46Z/TOOLCHAIN_GCC_ARM/cmsis_nvic.o \
+ $(MBED)/TARGET_KL46Z/TOOLCHAIN_GCC_ARM/retarget.o \
+ $(MBED)/TARGET_KL46Z/TOOLCHAIN_GCC_ARM/startup_MKL46Z4.o \
+ $(MBED)/TARGET_KL46Z/TOOLCHAIN_GCC_ARM/system_MKL46Z4.o \
+ -Wl,--start-group -lmbed -lc_s -lstdc++_s -Wl,--end-group
# Targets
all: $(PROG).bin
@echo "CXX $<"
@$(GXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $<
+%.o: %.cpp makefile ../common.mk ../config.mk
+ @echo "CXX $<"
+ @$(GXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $<
+
$(PROG).elf: $(OBJS)
@echo "LD $+"
@$(GLD) $(CFLAGS) -o $@ $^ $(LDFLAGS)