#	Makefile to cross compile and assemble for Motorola EVM board
#	with a MC68HC11 processor using the GNU compiler package.
#	Harry Broeders 2 December 2005

# list all object files here:
OBJECTS    = nulmodem.o

# List all compiler options here:
# For maximum debug capacities no optimalisation is used:
GCC_OPTIONS =
# optimize for minimal memory usage: 
#GCC_OPTIONS = -Os -fomit-frame-pointer
# e.g. optimize for maximum speed:
#GCC_OPTIONS = -O3 -fomit-frame-pointer
LD_OPTIONS =
AS_OPTIONS = -mlong

LDSCRIPT   = evm.ld

GCCBINDIR    = C:/PROGRAM FILES/THRSIM11/gcc/bin
UTILSDIR     = C:/PROGRAM FILES/THRSIM11/utils
OBJCOPY      = $(GCCBINDIR)/m6811-elf-objcopy.exe
OBJDUMP      = $(GCCBINDIR)/m6811-elf-objdump.exe
GCC          = $(GCCBINDIR)/m6811-elf-gcc.exe
AS           = $(GCCBINDIR)/m6811-elf-as.exe
RM           = $(UTILSDIR)/rm.exe
MAKE         = $(UTILSDIR)/make.exe

.PHONY : all
all : a.s19 a.out

.PHONY : build
build :
	$(MAKE) clean
	$(MAKE)

.PHONY : help
help :
	@echo "Usage:"
	@echo "make            make all (output to a.out)"
	@echo "make list       make (demangled) listing (output to stdout)"
	@echo "make map        make link map (output to stdout)"
	@echo "make clean      remove remakeable files"

.PHONY : list
list : a.out
	$(OBJDUMP) -S -C a.out

.PHONY : map
map : $(SCRIPT) $(OBJECTS)
	$(GCC) -m68hc11 -Wl,-M $(LD_OPTIONS) -T $(LDSCRIPT) $(OBJECTS) $(LIBS)

.PHONY : clean
clean :
	$(RM) -f $(OBJECTS) a.s19 a.out

a.s19 : a.out
	$(OBJCOPY) -O srec a.out a.s19

a.out : $(SCRIPT) $(OBJECTS)
	$(GCC) -m68hc11 $(LD_OPTIONS) -T $(LDSCRIPT) $(OBJECTS) $(LIBS)

%.o : %.c
	$(GCC) -g -c -m68hc11 -Wall $(GCC_OPTIONS) $<

%.o : %.cpp
	$(GCC) -g -c -m68hc11 -Wall $(GCC_OPTIONS) $<

%.o : %.s
	$(AS) --gdwarf2 -m68hc11 $(AS_OPTIONS) -o $*.o $<
