#define "DEBUG" to 1 if you want to debug with the InterTools 360BDM
DEBUG = 0

ASM = asm68360
cc = c68360

DGNLST=..\lst\ 
LST=lst\ 
DGNOLS=..\ols\ 
OLS=ols\ 

!if $(DEBUG)
COPTS = -p -pw -do -pc -ps -d -os -err+ err
AOPTS = -d -bl -po -ps -s -g -P -err+ err
2OLS = 2.ols
2RMOLS = 2rm.ols
4OLS = 4.ols
4RMOLS = 4rm.ols
2FORMOPTS = $(OLS)main.abs -ec data usep -f pm -x 2.xdb -err+ -err 
2DEB_FORMOPTS = $(OLS)deb_main.abs -ec data usep -f pm -x 2rm.xdb -err+ -err
4FORMOPTS = $(OLS)main.abs -ec data usep -f pm -x 4.xdb -err+ -err 
4DEB_FORMOPTS = $(OLS)deb_main.abs -ec data usep -f pm -x 4rm.xdb -err+ -err
!else
COPTS= -p -pc -ps -pw -os -err+ err
AOPTS= -s -g -bl -P -po -ps -err+ err
2OLS = x2.ols
2RMOLS = x2rm.ols
4OLS = x4.ols
4RMOLS = x4rm.ols
2FORMOPTS = $(OLS)main.abs -ec data usep -f pm -err+ -err 
2DEB_FORMOPTS = $(OLS)deb_main.abs -ec data usep -f pm -err+ -err
4FORMOPTS = $(OLS)main.abs -ec data usep -f pm -err+ -err 
4DEB_FORMOPTS = $(OLS)deb_main.abs -ec data usep -f pm -err+ -err
!endif

all: deler 2main.bin deb2main.bin 4main.bin deb4main.bin

clean :
	del ols
	del lst
	del *.map
	del *.hex
	del err
	del diag\err

2main.bin: $(OLS)rmain.ol $(OLS)smc.ol $(OLS)cutils.ol $(OLS)flwrite.ol \
	$(OLS)downldr.ol $(OLS)lzvx.ol $(OLS)2main.ol $(OLS)timer.ol \
	$(OLS)scc1diag.ol $(OLS)scc2diag.ol $(OLS)scc3diag.ol  \
	$(OLS)scc4diag.ol $(OLS)diagsup.ol $(OLS)quote.ol
	llink -i $(2OLS) -o $(OLS)main.abs -c loc.cmd -v -err+ -err
	form $(2FORMOPTS)  	 
	gsmap $(OLS)main.abs -n -o 2.map
	\hilo\hexbin2 main.hex 2main.bin m 08000000 ffffffff 0
	del main.hex
	del $(OLS)main.abs

deb2main.bin: $(OLS)debrmain.ol $(OLS)smc.ol $(OLS)cutils.ol $(OLS)flwrite.ol \
	$(OLS)downldr.ol $(OLS)lzvx.ol $(OLS)2main.ol $(OLS)timer.ol \
	$(OLS)scc1diag.ol $(OLS)scc2diag.ol $(OLS)scc3diag.ol  \
	$(OLS)scc4diag.ol $(OLS)diagsup.ol $(OLS)quote.ol
	llink -i $(2RMOLS) -o $(OLS)deb_main.abs -c deb_loc.cmd -v -err+ -err
	form $(2DEB_FORMOPTS)  	 
	gsmap $(OLS)deb_main.abs -n -o 2rm.map
	\hilo\hexbin2 deb_main.hex deb2main.bin m 0800DF00 ffffffff 0
	del main.hex
	del $(OLS)deb_main.abs

4main.bin: $(OLS)rmain.ol $(OLS)smc.ol $(OLS)cutils.ol $(OLS)flwrite.ol \
	$(OLS)downldr.ol $(OLS)lzvx.ol $(OLS)4main.ol $(OLS)timer.ol \
	$(OLS)scc1diag.ol $(OLS)scc2diag.ol $(OLS)scc3diag.ol  \
	$(OLS)scc4diag.ol $(OLS)diagsup.ol $(OLS)quote.ol
	llink -i $(4OLS) -o $(OLS)main.abs -c loc.cmd -v -err+ -err
	form $(4FORMOPTS)  	 
	gsmap $(OLS)main.abs -n -o 4.map
	\hilo\hexbin2 main.hex 4main.bin m 08000000 ffffffff 0
	del main.hex
	del $(OLS)main.abs

deb4main.bin: $(OLS)debrmain.ol $(OLS)smc.ol $(OLS)cutils.ol $(OLS)flwrite.ol \
	$(OLS)downldr.ol $(OLS)lzvx.ol $(OLS)4main.ol $(OLS)timer.ol \
	$(OLS)scc1diag.ol $(OLS)scc2diag.ol $(OLS)scc3diag.ol  \
	$(OLS)scc4diag.ol $(OLS)diagsup.ol $(OLS)quote.ol
	llink -i $(4RMOLS) -o $(OLS)deb_main.abs -c deb_loc.cmd -v -err+ -err
	form $(4DEB_FORMOPTS)  	 
	gsmap $(OLS)deb_main.abs -n -o 4rm.map
	\hilo\hexbin2 deb_main.hex deb4main.bin m 0800DF00 ffffffff 0
	del deb_main.hex
	del $(OLS)deb_main.abs

deler:
	del err
	del ols\main.ol

$(OLS)debrmain.ol: debrmain.68k a360boot.inc
	$(ASM) debrmain.68k $(AOPTS) -o $(OLS)debrmain.ol -l $(LST)debrmain.lst

$(OLS)rmain.ol: rmain.68k a360boot.inc
	$(ASM) rmain.68k $(AOPTS) -o $(OLS)rmain.ol -l $(LST)rmain.lst

$(OLS)smc.ol: smc.68k ..\include\smc.inc a360boot.inc
	$(ASM) smc.68k $(AOPTS) -o $(OLS)smc.ol -l $(LST)smc.lst

$(OLS)quote.ol: quote.68k ..\include\offset.inc a360boot.inc
	$(ASM) quote.68k $(AOPTS) -o $(OLS)quote.ol -l $(LST)quote.lst

$(OLS)timer.ol: timer.68k a360boot.inc
	$(ASM) timer.68k $(AOPTS) -o $(OLS)timer.ol -l $(LST)timer.lst

$(OLS)cutils.ol: ..\src\cutils.c ..\include\mctypes.h ..\include\boot.h ..\include\downldr.h
	$(cc) ..\src\cutils.c $(COPTS) -o $(OLS)cutils.ol -l $(LST)cutils.lst

$(OLS)2main.ol: main.c ..\include\boot.h ..\include\mctypes.h ..\include\downldr.h ..\include\quote.h ..\include\utils.h
	$(cc) main.c $(COPTS) -o $(OLS)2main.ol -l $(LST)2main.lst

$(OLS)4main.ol: main.c ..\include\boot.h ..\include\mctypes.h ..\include\downldr.h ..\include\quote.h ..\include\utils.h
	$(cc) main.c -P PORTS_4 $(COPTS) -o $(OLS)4main.ol -l $(LST)4main.lst

$(OLS)downldr.ol: ..\src\downldr.c ..\include\boot.h ..\include\downldr.h ..\include\mctypes.h ..\include\quote.h ..\include\utils.h
	$(cc) ..\src\downldr.c $(COPTS) -o $(OLS)downldr.ol -l $(LST)downldr.lst

$(OLS)lzvx.ol: ..\src\lzvx.c ..\include\mctypes.h ..\include\downldr.h ..\include\boot.h
	$(cc) ..\src\lzvx.c $(COPTS) -D s2s -o $(OLS)lzvx.ol -l $(LST)lzvx.lst -i -pack 1

$(OLS)scc1diag.ol:diag\scc1diag.68k a360boot.inc ..\include\offset.inc		
	cd diag
	del err
	$(ASM) scc1diag.68k $(AOPTS) -o $(DGNOLS)scc1diag.ol -l $(DGNLST)scc1diag.lst
	cd..

$(OLS)scc2diag.ol:diag\scc2diag.68k a360boot.inc ..\include\offset.inc
	cd diag
	$(ASM) scc2diag.68k $(AOPTS) -o $(DGNOLS)scc2diag.ol -l $(DGNLST)scc2diag.lst
	cd..

$(OLS)scc3diag.ol:diag\scc3diag.68k a360boot.inc ..\include\offset.inc
	cd diag
	$(ASM) scc3diag.68k $(AOPTS) -o $(DGNOLS)scc3diag.ol -l $(DGNLST)scc3diag.lst
	cd..

$(OLS)scc4diag.ol:diag\scc4diag.68k a360boot.inc ..\include\offset.inc
	cd diag
	$(ASM) scc4diag.68k $(AOPTS) -o $(DGNOLS)scc4diag.ol -l $(DGNLST)scc4diag.lst
	cd..

$(OLS)diagsup.ol:diag\diagsup.c ..\include\mctypes.h
	cd diag
	$(cc) diagsup.c $(COPTS) -o $(DGNOLS)diagsup.ol -l $(DGNLST)diagsup.lst
	cd..

$(OLS)flwrite.ol: flwrite.68k 
	$(ASM) flwrite.68k $(AOPTS) -o $(OLS)flwrite.ol -l $(LST)flwrite.lst


