#
# tftpnaive makefile
#

VPATH := ../src:$VPATH

BASELIBDIR = ../../baselib
BASELIBINCDIR = ../../baselib/include
BASELIB = $(BASELIBDIR)/lib/libbaselib.a

#
# Compilation environment
#
TARGET  = m68k-elf
ARCH    = -m68000
LSCRIPT = ram.ld

# Compiler and associated tools filenames.
CC = $(TARGET)-gcc
LD = $(TARGET)-ld
OBJCOPY = $(TARGET)-objcopy

# Board setting
BOARD = CONFIG_UCDIMM

# Flags.
AFLAGS = $(ARCH) -Wall -D$(BOARD)
CFLAGS = $(ARCH) -Wall -O2 --omit-frame-pointer -D$(BOARD) -I../src -I ../include -I$(BASELIBINCDIR)
LFLAGS = $(ARCH) -nostdlib -T $(LSCRIPT) -Wl,-Map=$(basename $@).map

#
# Targets
#

OBJECTS = \
	cs89x.o \
	arp.o \
	ip.o \
	icmp.o \
	udp.o \
	bootp.o \
	tftp.o \
	net.o \
	main.o

all: prog.bin

crt0.o: crt0.S
	$(CC) $(AFLAGS) -o $@ -c $+

$(BASELIB):
	make -C $(BASELIBDIR)

prog.out: crt0.o ${OBJECTS} $(BASELIB)
	$(CC) $(LFLAGS) -o $@ ${OBJECTS} $(BASELIB)

prog.bin: prog.out
	$(OBJCOPY) -O binary -j .text -j .data $< $@

clean:
	rm -f *.o *.map *.srec *.disasm *.brec *.out *.bin *~ *.s
