######################################################
#/*						Makefile				   */#
#/*				  created by Jochen V		       */#
#/*						24.03.2009				   */#
######################################################

# MCU name and submodel
MCU = arm7tdmi
SUBMDL = AT91SAM7X256

USE_THUMB_MODE = YES

## Create ROM-Image (final)
RUN_MODE=ROM_RUN

# Output format. (can be srec, ihex, binary)
FORMAT = binary

# Target file name (without extension).
TARGET = main

# Variable for all Object-files
OBJECTS = 	main.o \
			mmc.o \
			usart0_isr.o \
			Usart0.o \
			lowlevelinit.o \
			isrsupport.o \
			ff.o \
			crt.o

# Compiles .c files		
SRC = $(TARGET).c
SRC += mmc.c
SRC += usart0_isr.c
SRC += Usart0.c
SRC += isrsupport.c
SRC += ff.c

# Compiles .c files in ARM-mode
SRCARM = lowlevelinit.c

# Assembles files in ARM-mode
ASRCARM = crt.s

# Optimation level of Code
OPT = 0

# variables 
CC	= arm-elf-gcc
AS	= arm-elf-as
LD	= arm-elf-ld -v -lc -lgcc
CP	= arm-elf-objcopy
OD	= arm-elf-objdump

CFLAGS  = -mcpu=arm7tdmi -I./ -I./lib -c -fno-common -O0 -g -fomit-frame-pointer -Wcast-align
ASFLAGS  = -mapcs-32 -g
LFLAGS  =  -omain.out -Tdemo_sam7ex256.cmd -Map main.map --cref
CPFLAGS = --output-target=binary
ODFLAGS	= -x --syms

# ALL - make target called by Eclipse  (Project -> Build Project)
all: main.out
	@ echo "...create binary file"
	$(CP) $(CPFLAGS) main.out main.bin
	@ echo "...create dump file"
	$(OD) $(ODFLAGS) main.out > main.dmp
	
main.out: $(OBJECTS) 
	@ echo "...linking"
	$(LD) -o main.out $(OBJECTS) $(LFLAGS) libgcc.a	


# list of depencies for each file	
# crt.o:              crt.s
# main.o:             main.c at91sam7x256.h board.h lib\stdint.h lib\stdio.h lib\string.h ff.h diskio.h
# lowlevelinit.o:     lowlevelinit.c AT91SAM7X256.h Board.h
# usart0.o:     		usart0.c at91sam7x256.h Board.h lib\stdio.h
# mmc.o:		        mmc.c lib\stdio.h diskio.h ff.h Board.h
# usart0_isr.o:		usart0_isr.c at91sam7x256.h Board.h
# ff.o:       		ff.c lib\string.h ff.h diskio.h
# isrsupport.o:       isrsupport.c			

			
######################################################
# CLEAN - make target called by Eclipse (Project -> Clean ...)
clean:
	-rm $(OBJECTS) main.out main.bin main.map main.dmp

