# @(#)makefile for SUN/MCC68K version of Cdemon demonstration program

# development tools
CC=mcc68k
AS=asm68k
LD=lnk68k

# compiler options.  -g produces debugging output in the object file
# -nOc disables stack pop optimizations
# -nOl disables local optimizations such as code hoisting
# -nOR disables use of registers for variables
# -c tells the compiler not to link
# -nQ displays any informational messages
CCFLG=-g -nOc -nOl -nOR -c -nQ

# build all as default
all : cdemon.x

# IEEE/MRI extended code, data, and symbol file
cdemon.x : alib.o cdemon.o clib.o com.o data.o ieee.cmd
	$(LD) -c ieee.cmd -o cdemon.x -m >cdemon.map

# loader command file to produce IEEE/MRI extended output file
ieee.cmd : makefile
	echo CHIP	68000		>ieee.cmd
	echo FORMAT	IEEE		>>ieee.cmd
	echo NAME	CDEMON		>>ieee.cmd
	echo LIST 	d,s,t,x		>>ieee.cmd
	echo PUBLIC	STACKTOP=08000h >>ieee.cmd
	echo order	startup,code,strings,zerovars,vars >>ieee.cmd
	echo sect	MMIO_LO=3000h	>>ieee.cmd
	echo sect	MMIO_HI=0a000h	>>ieee.cmd
	echo sect	VECTORS=0	>>ieee.cmd
	echo sect	startup=4000h	>>ieee.cmd
	echo LOAD	alib		>>ieee.cmd
	echo LOAD	cdemon		>>ieee.cmd
	echo LOAD	clib		>>ieee.cmd
	echo LOAD	com		>>ieee.cmd
	echo LOAD	data		>>ieee.cmd

# loader command file to produce Motorola S record output file
ascii.cmd : makefile
	echo CHIP	68000		>ascii.cmd
	echo FORMAT	S		>>ascii.cmd
	echo NAME	CDEMON		>>ascii.cmd
	echo LIST 	d,s,t,x		>>ascii.cmd
	echo PUBLIC	STACKTOP=08000h >>ascii.cmd
	echo order	startup,code,strings,zerovars,vars >>ascii.cmd
	echo sect	MMIO_LO=3000h	>>ascii.cmd
	echo sect	MMIO_HI=0a000h	>>ascii.cmd
	echo sect	VECTORS=0	>>ascii.cmd
	echo sect	startup=4000h	>>ascii.cmd
	echo LOAD	alib		>>ascii.cmd
	echo LOAD	cdemon		>>ascii.cmd
	echo LOAD	clib		>>ascii.cmd
	echo LOAD	com		>>ascii.cmd
	echo LOAD	data		>>ascii.cmd

# main application module
cdemon.o : cdemon.c cdemon.h
	$(CC) $(CCFLG) cdemon.c 

# common c code application functions module
clib.o : clib.c cdemon.h
	$(CC) $(CCFLG) clib.c

# comport support communications module
com.o : com.c cdemon.h
	$(CC) $(CCFLG) com.c

# simple blackjack cardgame module
data.o : data.c cdemon.h
	$(CC) $(CCFLG) data.c

# common assembly code application functions module
alib.o : alib.s
	$(CC) $(CCFLG) alib.s
