

# To build under DOS
#
RASM86 = rasm86
LINK86 = link86

# To cross-build under Linux
#
# RASM86 = /home/jce/Emulators/EMU2/emu2-master/emu2 rasm86.exe
# LINK86 = /home/jce/Emulators/EMU2/emu2-master/emu2 link86.exe

SRCZIP= fpmentry.a86 fp2entry.a86 fp3entry.a86 axientry.a86 \
	dummy.a86 jmptbl0.a86 \
	monobj8.a86 monobj2.a86 monobj0.a86 \
	monout8.a86 monout2.a86 monout0.a86 monout4.a86 monout40.a86 \
	imouse.a86 imousexi.a86 externs.a86 \
	aprfdvsp.a86 aprfmre1.a86 aprfmre2.a86 \
	aprxdvsp.a86 aprxmre1.a86 aprxmre2.a86 \
	mblit.a86 rastop.a86 \
	mopttext.a86 mopttxt4.a86 scanxlt.a86 \
	opttext.a86 opttext4.a86 opttdraw.a86 lorespat.a86 \
	fmptdraw.a86 f2ptdraw.a86 f3ptdraw.a86 f1ptdraw.a86  axptdraw.a86 \
	fpm_drv0.a86 fp2_drv0.a86 fp3_drv0.a86 af1_drv0.a86  axi_drv0.a86 \
	fpmregs.a86  fp2regs.a86  fp3regs.a86  af1regs.a86   axiregs.a86 \
	fpmdev.a86   fp2dev.a86   fp3dev.a86   af1dev.a86    axidev.a86 \
	fpmpat.a86   fp2pat.a86   fp3pat.a86   af1pat.a86    axipat.a86 \
	fpmmblit.a86 fp2mblit.a86 fp3mblit.a86 af1mblit.a86  aximblit.a86 \
	fpmblit.a86  fp2blit.a86  fp3blit.a86  af1blit.a86   axiblit.a86 \
	hirespat.a86 isin.a86 enddseg.a86 \
	cgafont0.a86 fp2font0.a86 axifont0.a86 \
	sdfpm2.inp sdfp22.inp sdfp32.inp sdaf12.inp sdaxi4.inp \
	copying.txt readme.txt Makefile Makefile.linux

#
# Drivers I can compare byte-for-byte with the GEM 1.2 originals
#
GEM_DRIVERS=sdfpm2.cga sdfp22.cga sdfp32.cga sdaf12.cga sdaxi4.ega

BINZIP=$(GEM_DRIVERS)

all:	$(GEM_DRIVERS) 

diffs:	sdaxi4.ega aprxbwn4.0
	compare sdaxi4.ega aprxbwn4.0 > $@

#
# Ensure that the linker INP file is big enough - if it isn't you get 
# strange "Syntax error" messages. To be safe add 128 extra spaces to the
# end; LINK86 only reads up to the last multiple of 128 bytes.
#
sdfpm2.cga:	fpmentry.obj jmptbl0.obj monobj2.obj  \
		monout2.obj cgafont0.obj \
		mopttext.obj isin.obj dummy.obj fpm_drv0.obj \
		fpmmblit.obj fpmblit.obj \
		fmptdraw.obj fpmpat.obj enddseg.obj
	$(LINK86) sdfpm2[i

sdfp22.cga:	fp2entry.obj jmptbl0.obj monobj2.obj  \
		monout2.obj fp2font0.obj \
		mopttext.obj isin.obj dummy.obj fp2_drv0.obj \
		fp2mblit.obj fp2blit.obj \
		f2ptdraw.obj fp2pat.obj enddseg.obj
	$(LINK86) sdfp22[i

sdfp32.cga:	fp3entry.obj jmptbl0.obj monobj8.obj  \
		monout8.obj fp2font0.obj \
		mopttext.obj isin.obj dummy.obj fp3_drv0.obj \
		fp3mblit.obj fp3blit.obj \
		f3ptdraw.obj fp3pat.obj enddseg.obj
	$(LINK86) sdfp32[i

sdaf12.cga:	fp2entry.obj jmptbl0.obj monobj8.obj  \
		monout8.obj fp2font0.obj \
		mopttext.obj isin.obj dummy.obj af1_drv0.obj \
		af1mblit.obj af1blit.obj \
		f1ptdraw.obj af1pat.obj enddseg.obj
	$(LINK86) sdaf12[i

sdaxi4.ega:	axientry.obj jmptbl0.obj monobj2.obj  \
		monout4.obj axifont0.obj \
		mopttxt4.obj isin.obj dummy.obj axi_drv0.obj \
		aximblit.obj axiblit.obj \
		axptdraw.obj axipat.obj enddseg.obj
	$(LINK86) sdaxi4[i

%.obj:	%.a86 externs.a86
	$(RASM86) $< $$pzsz

fpm_drv0.obj:	fpm_drv0.a86 fpmregs.a86 externs.a86 aprfdvsp.a86 imouse.a86 \
		aprfmre1.a86 aprfmre2.a86 fpmdev.a86 scanxlt.a86

fp2_drv0.obj:	fp2_drv0.a86 fp2regs.a86 externs.a86 aprfdvsp.a86 imouse.a86 \
		aprfmre1.a86 aprfmre2.a86 fp2dev.a86 scanxlt.a86

fp3_drv0.obj:	fp3_drv0.a86 fp3regs.a86 externs.a86 aprfdvsp.a86 imouse.a86 \
		aprfmre1.a86 aprfmre2.a86 fp3dev.a86 scanxlt.a86

af1_drv0.obj:	af1_drv0.a86 af1regs.a86 externs.a86 aprfdvsp.a86 imouse.a86 \
		aprfmre1.a86 aprfmre2.a86 af1dev.a86 scanxlt.a86

axi_drv0.obj:	axi_drv0.a86 axiregs.a86 externs.a86 aprxdvsp.a86 imousexi.a86 \
		aprxmre1.a86 aprxmre2.a86 axidev.a86 scanxlt.a86


aprfblit.obj:	aprfblit.a86 mblit.a86
fpmblit.obj:	fpmblit.a86 rastop.a86
fmptdraw.obj:	fmptdraw.a86 opttdraw.a86
fpmpat.obj:	fpmpat.a86 lorespat.a86

fp2mblit.obj:	fp2mblit.a86 mblit.a86
fp2blit.obj:	fp2blit.a86 rastop.a86
f2ptdraw.obj:	f2ptdraw.a86 opttdraw.a86
fp2pat.obj:	fp2pat.a86 lorespat.a86

fp3mblit.obj:	fp3mblit.a86 mblit.a86
fp3blit.obj:	fp3blit.a86 rastop.a86
f3ptdraw.obj:	f3ptdraw.a86 opttdraw.a86
fp3pat.obj:	fp3pat.a86 lorespat.a86

af1mblit.obj:	af1mblit.a86 mblit.a86
af1blit.obj:	af1blit.a86 rastop.a86
f1ptdraw.obj:	f1ptdraw.a86 opttdraw.a86
af1pat.obj:	af1pat.a86 lorespat.a86

monobj16.obj:	monobj16.a86 monobj0.a86
monobj8.obj:	monobj8.a86 monobj0.a86
monobj2.obj:	monobj2.a86 monobj0.a86

monout16.obj:	monout16.a86 monout0.a86
monout8.obj:	monout8.a86 monout0.a86
monout2.obj:	monout2.a86 monout0.a86

mopttext.obj:	mopttext.a86 opttext.a86
mopttxt4.obj:	mopttxt4.a86 opttext4.a86

zip:	$(SRCZIP) $(BINZIP)
	zip apricot12.zip $(SRCZIP) $(BINZIP)
