PROJECT = HLDI
LINKERCMDFILE = RAM.SCT

INC	= \DEVELOP\BIN\Keil\ARM
CBIN	= $(INC)\ARMCC\bin
BINDIR = BIN
OBJDIR = OBJ
LISTDIR = LST
SOURCES = $(PROJECT).c
OBJECTS = $(PROJECT).o
OUTFILE = $(PROJECT).axf
STARTUP = startup_stm32f10x_md.s
DEVCLASS =  STM32F10X_MD

# Debugging format.
#DEBUG = stabs
#DEBUG = dwarf-2
#DEBUG= gdb
#DEBUG= 3

# Optimization level, can be [0, 1, 2, 3, s].
# 0 = turn off optimization. s = optimize for size.
OPT = 0

AS      = $(CBIN)\ArmAsm
CC      = $(CBIN)\ArmCC
LD      = $(CBIN)\ArmLink
CP      = $(CBIN)\fromelf


CFLAGS  =  -c --cpu Cortex-M3\
-D __MICROLIB -g -O3 --apcs=interwork --asm --interleave --asm_dir ".//Lst//"\
--list_dir ".\\Lst\\" --list

AFLAGS  = --cpu Cortex-M3 -g --apcs=interwork --pd "__MICROLIB SETA 1"

LFLAGS  = --cpu Cortex-M3 --library_type=microlib --strict\
--summary_stderr --info summarysizes --map --xref --symbols\
--info sizes --info totals --info unused --info veneers --scatter 

CPFLAGS = --bin --output
CHEXFLAGS = --i32 --output

CORESUPPORT=CMSIS/CM3/CoreSupport
DEVSUPPORT=CMSIS/CM3/DeviceSupport/ST/STM32F10x
ASMSRC = $(INC)/STARTUP/ST/STM32F10x/$(STARTUP)

#CFLAGS += -g$(DEBUG)
CFLAGS += -O$(OPT)
CFLAGS += -I $(INC)\STARTUP\ST\STM32F10x
CFLAGS += -I $(INC)\RV31\INC
CFLAGS += -I $(INC)\CMSIS\Include
CFLAGS += -I $(INC)\CMSIS\Inc\ST\STM32F10x
CFLAGS += -I $(INC)\Inc\ST\STM32F10x
CFLAGS += -D$(DEVCLASS)

all: test

clean:
	-rm *.o *.lst *.bin *.out *.map *.hex

test:$(BINDIR)/$(PROJECT).bin

$(BINDIR)/$(PROJECT).bin $(BINDIR)/$(PROJECT).hex:  $(BINDIR)/$(OUTFILE)
	@ echo "...generate"
	$(CP) $(BINDIR)/$(OUTFILE) $(CPFLAGS) $(BINDIR)/$(PROJECT).bin
	$(CP) $(BINDIR)/$(OUTFILE) $(CHEXFLAGS) $(BINDIR)/$(PROJECT).hex
	
$(BINDIR)/$(OUTFILE):  $(OBJDIR)/$(OBJECTS) $(OBJDIR)/startup.o
	@ echo "..linking"
	$(LD) $(LFLAGS) $(LINKERCMDFILE) --list $(LISTDIR)/$(PROJECT).map -o $(BINDIR)/$(OUTFILE) $(OBJDIR)/startup.o $(OBJDIR)/$(OBJECTS)

$(OBJDIR)/$(OBJECTS):
	@ echo "..compile"
	$(CC) $(CFLAGS) -o $(OBJDIR)/$(OBJECTS) $(SOURCES)

$(OBJDIR)/startup.o :
	$(AS) $(AFLAGS) -o $(OBJDIR)/startup.o $(ASMSRC)
	
