AL=arm-elf-ld
AS=arm-elf-as
AR=arm-elf-ar
NM=arm-elf-nm
OB=arm-elf-objcopy
#CC=arm-elf-gcc -O0 -mcpu=arm920t
CC=arm-elf-gcc -O0 -march=armv4

DMP=arm-elf-objdump

OFLAGS  = -O binary
TOOLCHAIN 	=	/usr/cross/arm-elf
TCHAIN_DIRS	=	$(TOOLCHAIN)/arm-elf/lib/ \
				$(TOOLCHAIN)/lib/gcc/arm-elf/4.1.1/


all: 
	$(MAKE) Demo.bin
	
clean:
	rm -f _Uart.o ConsoleIf.o init.o HAL.o Dma.o MMU.o IIC.o WDT.o ADC.o _Uart.o ConsoleIf.o main.o TestDM9000.o  TestGPIO.o Timer.o RTC.o *.elf *.bin  *.map

init.o: init.s DRAMCfg.inc Addresses.inc ClkCfg.inc makefile
	$(AS) $< -mfpu=softfpa --gdwarf-2 -mcpu=arm920t -o $@
	
HAL.o: HAL.s DRAMCfg.inc Addresses.inc ClkCfg.inc makefile
	$(AS) $< -mfpu=softfpa --gdwarf-2 -mcpu=arm920t -o $@
	
	
main.o: main.c tests.h
	$(CC) -g  -c $< -o $@ 
	
TestDM9000.o: TestDM9000.c DM9000Regs.h
	$(CC) -g  -c $< -o $@ 

TestGPIO.o: TestGPIO.c GPIORegs.h
	$(CC) -g  -c $< -o $@ 
	
Timer.o: Timer.c PWMRegs.h INTRRegs.h INTRDefs.h
	$(CC) -g  -c $< -o $@ 
	
RTC.o: RTC.c RTCRegs.h INTRRegs.h INTRDefs.h
	$(CC) -g -march=armv4 -c $< -o $@ 
	
ADC.o: ADC.c ADCRegs.h
	$(CC) -g  -c $< -o $@ 

WDT.o: WDT.c WDTRegs.h
	$(CC) -g  -c $< -o $@ 
	
IIC.o: IIC.c IICRegs.h IICDefs.h
	$(CC) -g  -c $< -o $@ 

Dma.o: Dma.c Dma.h
	$(CC) -g  -c $< -o $@ 	
	
MMU.o: MMU_Table.c MMU_Table.h
	$(CC) -g  -c $< -o $@ 	
	
ConsoleIf.o: ConsoleIf.c  Uart.h
	$(CC) -g  -c $< -o $@ 	

_Uart.o: _Uart.c  _Uart.h
	$(CC) -g  -c $< -o $@ 	
	
	
#libclass.a: ConsoleIf.o _Uart.o 
#	arm-elf-ar crv  libclass.a  _Uart.o ConsoleIf.o 
	
#Demo.elf: Demo.lds MMU.o init.o main.o _Uart.o ConsoleIf.o IIC.o TestDM9000.o TestGPIO.o Timer.o RTC.o ADC.o WDT.o Dma.o makefile
#	$(AL) -T $< -L$(TOOLCHAIN)/arm-elf/lib/ -L$(TOOLCHAIN)/lib/gcc/arm-elf/4.1.1/   -Map Demo.map -o $@
	
Demo.elf: Demo.lds MMU.o init.o HAL.o main.o _Uart.o ConsoleIf.o IIC.o TestDM9000.o TestGPIO.o Timer.o RTC.o ADC.o WDT.o Dma.o makefile
	$(AL) -T $< -L$(TOOLCHAIN)/lib/gcc/arm-elf/4.1.1  -Map Demo.map -o $@
	
	
Demo.bin: Demo.elf
	$(OB) $< $(OFLAGS) $@
#	$(DMP) -S $< >Demo.dmp	
	@cp $@ u-boot.bin
	
	