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
-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"
-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 makefile ../common.mk ../config.mk
+%.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 $< $@