# make16: build 16-bit color version of project

#-gcoff3 generates debugging info for a coff format output file
#-g generates debugging info in the operating systems native format
#-O6 optimises code

target=	pluto5
script= lnkram.x

output= video
outputcof= vid
imagedir= images16
fontdir= fonts

lhdw=	../../libs/hardware/$(target)/lib/81-16082/81-16082-39
lper=	../../libs/peripherals/$(target)/lib/81-16083/81-16083-49
lint=	../../libs/interface/$(target)/lib/81-16178/81-16178-12
ihdw=	../../libs/hardware/$(target)/lib/81-16082/81-16082-39
iper=	../../libs/peripherals/$(target)/lib/81-16083/81-16083-49
iint=	../../libs/interface/$(target)/lib/81-16178/81-16178-12

#lhdw=	../../libs/hardware/$(target)
#lper=	../../libs/peripherals/$(target)
#lint=	../../libs/interface/$(target)
#ihdw=	../../libs/hardware/$(target)
#iper=	../../libs/peripherals/$(target)
#iint=	../../libs/interface/$(target)

lstd=	../../libs/gnu/$(target)/egcs-2.91.66
FLAGS=   -fno-inline -Wcast-align -Wcast-qual
CFLAGS=  -O6 -mcpu32 -msoft-float -D__mod2__=void -DIN_GCC=1 -nostdinc -gcoff3
CNFLAGS= -mcpu32 -msoft-float -D__mod2__=void -DIN_GCC=1 -nostdinc -ggcoff3
IFLAGS=	 -I. -I$(iint) -I$(iper) -I$(ihdw)
lib=  -linterface -lperipherals -lpluto5 
gnu=  -lnew -lc -lgcc -lbcc 
pp		= cproto
as		= m68k-coff-as
cc		= m68k-coff-gcc
ld 		= m68k-coff-ld
ar		= m68k-coff-ar
oc		= m68k-coff-objcopy
objects = game.o config.o devices.o custom.o idram.o \
sysram.o fpga.o vdemo.o \
$(fontdir)/tempo16_0.o \
$(fontdir)/alphdemo16_0.o $(fontdir)/alphdemo16_80.o $(fontdir)/alphdemo16_100.o \
$(fontdir)/alphdemo16_180.o $(fontdir)/alphdemo16_200.o $(fontdir)/alphdemo16_380.o \
$(fontdir)/alphdemo16_400.o \
$(imagedir)/palette.o \
images8/bgnd.o \
$(imagedir)/queen.o \
$(imagedir)/dice1.o $(imagedir)/dice2.o $(imagedir)/dice3.o $(imagedir)/dice4.o $(imagedir)/dice5.o \
$(imagedir)/dice6.o $(imagedir)/dice7.o $(imagedir)/dice8.o $(imagedir)/dice9.o $(imagedir)/dice10.o \
$(imagedir)/dice11.o $(imagedir)/dice12.o $(imagedir)/dice13.o $(imagedir)/dice14.o $(imagedir)/dice15.o 

#Pattern rule to generate a dependancy file from a 'C' file
%.d : %.c
	$(cc) -E -MD $(IFLAGS) $< -o $@

#Pattern rule to generate a prototype file from a 'C' file
%.p : %.c
	$(pp) $(IFLAGS) -e -v -o $@ $<

#Pattern rule to generate a prototype file from a 'C' file
%.sp : %.c
	$(pp) $(IFLAGS) -S -v -o $@ $<

#Pattern rule to generate an object file from a 'C' file
%.o : %.c
	$(cc) -c $(IFLAGS) $(FLAGS) $(CFLAGS) $< -o $@

#Pattern rule to generate an object file from an assembly file
%.o : %.s
	$(as) $< -mcpu32 -o $@

$(output).s19:	$(objects) $(deps) make16
	$(ld)   -L$(lint) -L$(lper) -L$(lhdw) -L$(lstd) -Map link.map -o$(output).cof --script=$(script) $(objects) $(lib) $(gnu)  
	$(oc) -O coff-m68k  -R .id -R .system -R .images $(output).cof $(outputcof).cof
	$(oc) -O srec -R .id -R .system $(output).cof $(output).s19
	touch vdemo.c

include	*.d
