]> cloudbase.mooo.com Git - z180-stamp.git/blobdiff - stm32/Tupfile
Merge branch 'master' into cmdline_edit
[z180-stamp.git] / stm32 / Tupfile
index 8512bfe8e2800c5758d98cfb881e72371f70aaf9..1778623f37cfd4f29bb44a0181e6079ff4d977f2 100644 (file)
@@ -1,13 +1,8 @@
 include_rules
 
 PROG           = z180-stamp-stm32
-
 SRC            = z180-stamp-stm32.c serial.c z80-if.c
-
 SRC_Z          = ../z180/hdrom.c
-PREDEP         = ../z180/hdrom.h
-
-#SRC           += $(SRC_Z)
 #TARGETS       = $(PROG).elf
 
 FP_FLAGS       = -msoft-float
@@ -18,31 +13,62 @@ OPENCM3_DIR = $(TOP)/libopencm3
 LDSCRIPT       = stm32vl-discovery.ld
 
 ###############################################################################
+# Executables
 
 TOOLCHAINDIR   = /usr/local/gcc-arm-none-eabi-4_8-2014q2/bin
 TOOLCHAIN      = $(TOOLCHAINDIR)/arm-none-eabi
 
+CC     = $(TOOLCHAIN)-gcc
+LD     = $(TOOLCHAIN)-gcc
+AR     = $(TOOLCHAIN)-ar
+AS     = $(TOOLCHAIN)-as
+OBJCOPY        = $(TOOLCHAIN)-objcopy
+OBJDUMP        = $(TOOLCHAIN)-objdump
+SIZE   = $(TOOLCHAIN)-size
+GDB    = $(TOOLCHAIN)-gdb
+
 ###############################################################################
 
 INCLUDES += $(OPENCM3_DIR)/include 
 LIBDIRS  += $(OPENCM3_DIR)/lib
 
+SCRIPT_DIR = $(OPENCM3_DIR)/scripts
+
 
 ifdef DEBUG
 DEFS   += -DDEBUG=2
 endif
 
+CFLAGS += -g -Os
 CFLAGS += -mthumb -mcpu=cortex-m3 $(FP_FLAGS) -mfix-cortex-m3-ldrd
-
+CFLAGS += -std=gnu99
+CFLAGS += -Wall -Wextra -Wimplicit-function-declaration
+CFLAGS += -Wredundant-decls 
+#CFLAGS        += -fno-common -ffunction-sections -fdata-sections
 CFLAGS += -I $(INCLUDES)
 
 CPPFLAGS += $(DEFS)
 
 # Linker flags
 LDFLAGS        += --static -nostartfiles
+LDFLAGS        += -T$(LDSCRIPT)
+LDFLAGS        += -Wl,--gc-sections
+LDFLAGS        += -Wl,--cref
+
+LDLIBS         += -L$(LIBDIRS) -l$(LIBNAME)
+LDLIBS         += -Wl,--start-group -lc -lgcc -lnosys -Wl,--end-group
+
+
+!cc = |> ^ CC %f^ $(CC) $(CFLAGS) $(CPPFLAGS) -c %f -o %o |> %B.o
+!LINK = |> ^ LINK %o^ $(LD) $(CFLAGS) $(LDFLAGS) -Wl,-Map=%O.map %f $(LDLIBS) -o %o |> | %O.map
+!OBJCOPY= |> ^ OBJCOPY %o^ $(OBJCOPY) -Oihex %f %o |>
+!OBJDUMP= |> ^ OBJDUMP %o^ $(OBJDUMP) -h -S %f > %o |> %O.lss
+!SIZE = |> ^ SIZE^ $(SIZE) %f |> 
 
-LDLIBS += -L$(LIBDIRS) -l$(LIBNAME)
-LDLIBS += -Wl,--start-group -lc -lgcc -lnosys -Wl,--end-group
+: foreach $(SRC) $(SRC_Z) | ../z180/hdrom.h |> !cc |>  {objs}
 
+: {objs} |> !LINK |> $(PROG).elf
+: $(PROG).elf |> !OBJCOPY |> %B.hex
+: $(PROG).elf |> !OBJDUMP |> %B.lss
+: $(PROG).elf |> !SIZE |>
 
-include $(CONFIG)/gcc.tup