]> Pileus Git - ~andy/csm213a-hw/blobdiff - common.mk
Fix whitespace error
[~andy/csm213a-hw] / common.mk
index 710c64504f16a2389493ef5b842450c150f71c0c..1a1adf22cfb2462bd8ff0937eb4df7a744f61984 100644 (file)
--- a/common.mk
+++ b/common.mk
@@ -6,8 +6,8 @@ GXX      ?= arm-none-eabi-g++
 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
@@ -15,13 +15,17 @@ 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
+all: $(addsuffix .bin,$(PROG))
 
 info: all
        @echo "LS   $(PROG).bin $(PROG).elf"
@@ -47,22 +51,29 @@ openocd: all
                -f board/frdm-kl46z.cfg
 
 clean:
-       @echo "RM   $(PROG).bin $(PROG).elf $(OBJS)"
-       @rm -f $(PROG).bin $(PROG).elf $(OBJS)
+       @echo "RM   *.bin *.elf *.o $(CLEAN)"
+       @rm -f *.bin *.elf *.o $(CLEAN)
+
+# Defaults
+$(PROG).elf: $(OJBS)
 
 # Rules
-%.o: %.c makefile ../common.mk ../config.mk
+%.o: %.c $(wildcard *.h) makefile ../common.mk ../config.mk
        @echo "CC   $<"
        @$(GCC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
 
-%.o: %.cc makefile ../common.mk ../config.mk
+%.o: %.cc $(wildcard *.h) makefile ../common.mk ../config.mk
+       @echo "CXX  $<"
+       @$(GXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $<
+
+%.o: %.cpp $(wildcard *.h) makefile ../common.mk ../config.mk
        @echo "CXX  $<"
        @$(GXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $<
 
-$(PROG).elf: $(OBJS)
+%.elf:
        @echo "LD   $+"
        @$(GLD) $(CFLAGS) -o $@ $^ $(LDFLAGS)
 
-$(PROG).bin: $(PROG).elf
+%.bin: %.elf
        @echo "BIN  $+"
        @$(OBJCOPY) -O binary $< $@