PRG            = UsbHostDemo

APP_DIR        = app
CONFIG_DIR     = config
HARDWARE_DIR   = hardware
HOSTINC_DIR    = Host/Include
HOST_DIR       = Host/Host
MS_DIR         = Host/MassStorage
FAT_DIR        = Host/Fat
ADCDAC_DIR     = ADCDAC
CQBBEL_DIR     = CQBBEL

OBJ            = \
				$(HARDWARE_DIR)/boot.o \
				$(APP_DIR)/main.o \
				$(HARDWARE_DIR)/hardware.o \
				$(HOST_DIR)/usbhost_lpc2388.o \
				$(MS_DIR)/usbhost_ms.o \
				$(FAT_DIR)/usbhost_fat.o \
				$(ADCDAC_DIR)/adc.o \
				$(ADCDAC_DIR)/dac.o \
				$(CQBBEL_DIR)/cqbbel.o

OPTIMIZE       = -g

LDSCRIPT       = $(CONFIG_DIR)/lpc2338-rom.ld
DEFS           =
LIBS           =

# You should not have to change anything below here.
CC             = arm-elf-gcc
AS             = arm-elf-as
OBJCOPY        = arm-elf-objcopy
OBJDUMP        = arm-elf-objdump
ARCH           = arm-elf-ar

CFLAGS = -Wall -I. -I$(APP_DIR) -I$(HARDWARE_DIR) -I$(HOSTINC_DIR) -I$(HOST_DIR) -I$(MS_DIR) -I$(FAT_DIR) -I$(ADCDAC_DIR) -I$(CQBBEL_DIR) \
		$(DEBUG) -mcpu=arm7tdmi -nostartfiles -T$(LDSCRIPT) \
		-Wcast-align $(OPTIMIZE) $(DEFS)

ASFLAGS=

$(PRG).elf: $(OBJ) $(LDSCRIPT) makefile
	$(CC) $(CFLAGS) $(LDFLAGS) $(LIBS) $(OBJ) -o $@

clean:
	rm -rf *.o *.lst $(PRG).elf $(PRG).hex $(PRG).bin $(OBJ)

lst:  $(PRG).lst

%.lst: %.elf
	$(OBJDUMP) -h -S $< > $@

%.o : %.s makefile
	$(AS) -c $(ASFLAGS) $< -o $@

%.o : %.c makefile
	$(CC) -c $(CFLAGS) $< -o $@

hex:  $(PRG).hex

%.hex: %.elf
	$(OBJCOPY) -O ihex $< $@

bin: $(PRG).bin

%.bin: %.elf
	$(OBJCOPY) -O binary $< $@
