################################  makevdi  ####################################
#
# $Revision: 3.0 $	$Source: /u/lozben/projects/vdi/mtaskvdi/RCS/makevdi,v $
# =============================================================================
# $Author: lozben $	$Date: 91/08/06 21:31:04 $     $Locker:  $
# =============================================================================
#
# $Log:	makevdi,v $
# Revision 3.0  91/08/06  21:31:04  lozben
# New generation VDI
# 
# Revision 2.11  91/07/26  12:08:28  lozben
# Made sbblit.s dependent on vdiincld.s.
# 
# Revision 2.10  91/07/08  16:37:19  lozben
# Added new files - sbscolog.s, sbsctlog.s sbsctran.s sbscopaq.s
# 
# Revision 2.9  90/06/13  18:06:32  lozben
# Added the -3 (68030 option) flag for the assembler.
# 
# Revision 2.8  90/03/01  12:38:02  lozben
# We now grep for comment "@check@" in relevant files before
# finishing the target. Also added "vdiincld.s" as one of the
# dependencies for some of the files.
# 
# Revision 2.7  90/02/28  11:41:19  lozben
# Fixed some typo errors.
# 
# Revision 2.6  90/02/27  16:20:53  lozben
# Made changes so that the makefile works for the ST and TT vdi.
# 
# Revision 2.5  90/02/20  12:33:18  lozben
# Added fnt16x32.c to the list of files.
# 
# Revision 2.4  90/01/29  18:40:21  lozben
# Added sbscrn.s to the list of .s files.
# 
# Revision 2.3  90/01/19  12:14:01  lozben
# Deleted sbtxt32.s from make file. It's a duplicate os sbtxtblt.s
# 
# Revision 2.2  90/01/19  11:57:15  lozben
# *** Initial Revision ***
# 
###############################################################################

.SUFFIXES: .o .c .s


# Where we should put the objects
DIR		=	..\objs


# Command for building an object file to be used in a TOS build
VDIOBJ		=	-p -s -v -u -y $(DIR) -o vdi.o


# Command for building an object file to be used in a TOS build
SMVDIOBJ	=	-p -s -v -u -y $(DIR) -o smvdi.o


# Command for building a stand alone vdi (screen.prg)
SCREEN		=	-l -v -u -y $(DIR) -o screen.prg jin.o alone.o vdivtg.o


# Command for building a stand alone vdi (screen.prg)
SMSCREEN	=	-l -v -u -y $(DIR) -o smscreen.prg jin.o alone.o vdivtg.o


SFILES	=	$(DIR)\alone.o    $(DIR)\blastman.o $(DIR)\blitinit.o \
		$(DIR)\copyrfm.o  $(DIR)\entry.o    $(DIR)\escape.o \
		$(DIR)\gsxasm1.o  $(DIR)\gsxasm2.o  $(DIR)\jin.o \
		$(DIR)\line1010.o $(DIR)\mono.o     $(DIR)\mouse.o \
		$(DIR)\sbblit.o   $(DIR)\sbescape.o $(DIR)\sbfrag.o \
		$(DIR)\sbhline.o  $(DIR)\sbmono.o   $(DIR)\sbscrn.o \
		$(DIR)\sbtxtblt.o $(DIR)\sbvline.o  $(DIR)\textblt.o \
		$(DIR)\vdivar.o   $(DIR)\xfrmform.o $(DIR)\sbsctran.o \
		$(DIR)\sbsctlog.o $(DIR)\sbscolog.o $(DIR)\sbscopaq.o \
		$(DIR)\allgem.o   $(DIR)\spxesc.o   $(DIR)\pxmouse.o \
		$(DIR)\palette.o  $(DIR)\blaster.o  $(DIR)\hbline.o \
		$(DIR)\hbmono.o   $(DIR)\hbtxtblt.o $(DIR)\hbrect.o \
		$(DIR)\hbbitblt.o $(DIR)\hbescape.o $(DIR)\routines.o \
                $(DIR)\colorep.o  $(DIR)\spxtblit.o $(DIR)\spxoblit.o \
		$(DIR)\spxvline.o $(DIR)\spxhline.o $(DIR)\pxabline.o \
		$(DIR)\pxrectfl.o $(DIR)\spxmono.o  $(DIR)\pxtform.o \
		$(DIR)\hard.o	  $(DIR)\hpxoblit.o

CFILES	=	$(DIR)\cbssdefs.o $(DIR)\font6x6.o  $(DIR)\font8x16.o \
		$(DIR)\font8x8.o  $(DIR)\fnt16x32.o $(DIR)\isin.o \
		$(DIR)\jmptbl.o   $(DIR)\monobj.o   $(DIR)\monout.o \
		$(DIR)\seedfill.o $(DIR)\tables.o   $(DIR)\text.o \
		$(DIR)\devices.o  $(DIR)\opnwk.o    $(DIR)\init.o \
		$(DIR)\ttcolor.o  $(DIR)\spcolor.o  $(DIR)\spxtxtbl.o \
		$(DIR)\trucolor.o


HFILES	=	portab.h fontdef.h attrdef.h scrndev.h lineavar.h \
		vardefs.h gsxdef.h gsxextrn.h



###############################################################################
#                        These are our targets.                               #
#     Any target aside from vdi.o must be specified on the command line       #
#			i.e. make -f makevdi "targetname"		      #
###############################################################################
#
# First target. This file is linked in with tos.
#
vdi.o:			$(SFILES) $(CFILES)
			egrep @check@ vdiincld.s gsxdef.h
			aln $(VDIOBJ) -c vdi.aln
			@echo "VDI.O created"

#
# Second target. If you want it done specify it on the command line.
# This is stand alone vdi.
#
screen.prg:		$(SFILES) $(CFILES)
			egrep @check@ vdiincld.s gsxdef.h
			aln $(SCREEN) -c vdi.aln
			@echo "SCREEN.PRG created"

#
# Third target. If you want it done specify it on the command line.
# This file has no soft blit code and should be linked in with tos.
#
smvdi.o:		$(SFILES) $(CFILES)
			egrep @check@ vdiincld.s gsxdef.h
			aln $(SMVDIOBJ) -c nosftvdi.aln
			@echo "SMVDI.O created"

#
# Fourth target. If you want it done specify it on the command line.
# This is stand alone vdi which also has no soft blit code.
#
smscreen.prg:		$(SFILES) $(CFILES)
			egrep @check@ vdiincld.s gsxdef.h
			aln $(SMSCREEN) -c nosftvdi.aln
			@echo "SMSCREEN.PRG created"

###############################################################################


$(DIR)\alone.o:		alone.s  lineaequ.s
			mas -SU3  alone.s 
			mv alone.o $(DIR)\alone.o


$(DIR)\blaster.o:	blaster.s lineaequ.s
			mas -SU3  blaster.s 
			mv blaster.o $(DIR)\blaster.o


$(DIR)\blastman.o:	blastman.s lineaequ.s
			mas -SU3  blastman.s
			mv blastman.o $(DIR)\blastman.o


$(DIR)\blitinit.o:	blitinit.s vdiincld.s lineaequ.s
			mas -SU3  blitinit.s
			mv blitinit.o $(DIR)\blitinit.o


$(DIR)\colorep.o:	colorep.s vdiincld.s lineaequ.s
			mas -SU3 colorep.s
			mv colorep.o $(DIR)\colorep.o


$(DIR)\copyrfm.o:	copyrfm.s lineaequ.s
			mas -SU3 copyrfm.s
			mv copyrfm.o $(DIR)\copyrfm.o


$(DIR)\entry.o:		entry.s lineaequ.s
			mas -SU3  entry.s
			mv entry.o $(DIR)\entry.o


$(DIR)\escape.o:	escape.s lineaequ.s devequ.s
			mas -SU3  escape.s
			mv escape.o $(DIR)\escape.o


$(DIR)\gsxasm1.o:	gsxasm1.s vdiincld.s lineaequ.s
			mas -SU3  gsxasm1.s
			mv gsxasm1.o $(DIR)\gsxasm1.o


$(DIR)\gsxasm2.o:	gsxasm2.s lineaequ.s
			mas -SU3  gsxasm2.s
			mv gsxasm2.o $(DIR)\gsxasm2.o


$(DIR)\hbescape.o:	hbescape.s lineaequ.s
			mas -SU3  hbescape.s
			mv hbescape.o $(DIR)\hbescape.o


$(DIR)\hbline.o:	hbline.s lineaequ.s
			mas -SU3  hbline.s
			mv hbline.o $(DIR)\hbline.o


$(DIR)\hbmono.o:	hbmono.s lineaequ.s
			mas -SU3  hbmono.s
			mv hbmono.o $(DIR)\hbmono.o


$(DIR)\hbbitblt.o:	hbbitblt.s lineaequ.s
			mas -SU3  hbbitblt.s
			mv hbbitblt.o $(DIR)\hbbitblt.o


$(DIR)\hbrect.o:	hbrect.s lineaequ.s
			mas -SU3  hbrect.s
			mv hbrect.o $(DIR)\hbrect.o


$(DIR)\hbtxtblt.o:	hbtxtblt.s lineaequ.s
			mas -SU3  hbtxtblt.s
			mv hbtxtblt.o $(DIR)\hbtxtblt.o


$(DIR)\jin.o:		jin.s vdiincld.s lineaequ.s
			mas -SU3  jin.s
			mv jin.o $(DIR)\jin.o


$(DIR)\line1010.o:	line1010.s lineaequ.s
			mas -SU3  line1010.s
			mv line1010.o $(DIR)\line1010.o


$(DIR)\palette.o:	palette.s lineaequ.s
			mas -SU3  palette.s
			mv palette.o $(DIR)\palette.o


$(DIR)\mono.o:		mono.s lineaequ.s
			mas -SU3  mono.s
			mv mono.o $(DIR)\mono.o


$(DIR)\mouse.o:		mouse.s lineaequ.s
			mas -SU3  mouse.s
			mv mouse.o $(DIR)\mouse.o


$(DIR)\allgem.o:	allgem.s devequ.s lineaequ.s
			mas -SU3  allgem.s
			mv allgem.o $(DIR)\allgem.o



$(DIR)\sbblit.o:	sbblit.s vdiincld.s lineaequ.s
			mas -SU3  sbblit.s 
			mv sbblit.o $(DIR)\sbblit.o


$(DIR)\sbescape.o:	sbescape.s lineaequ.s
			mas -SU3  sbescape.s
			mv sbescape.o $(DIR)\sbescape.o


$(DIR)\sbfrag.o:	sbfrag.s lineaequ.s
			mas -SU3  sbfrag.s  
			mv sbfrag.o $(DIR)\sbfrag.o


$(DIR)\sbhline.o:	sbhline.s lineaequ.s
			mas -SU3  sbhline.s 
			mv sbhline.o $(DIR)\sbhline.o


$(DIR)\sbmono.o:	sbmono.s lineaequ.s
			mas -SU3  sbmono.s  
			mv sbmono.o $(DIR)\sbmono.o


$(DIR)\sbsctlog.o:	sbsctlog.s lineaequ.s
			mas -SU3  sbsctlog.s 
			mv sbsctlog.o $(DIR)\sbsctlog.o


$(DIR)\sbscolog.o:	sbscolog.s lineaequ.s
			mas -SU3  sbscolog.s 
			mv sbscolog.o $(DIR)\sbscolog.o


$(DIR)\sbscrn.o:	sbscrn.s lineaequ.s
			mas -SU3  sbscrn.s 
			mv sbscrn.o $(DIR)\sbscrn.o


$(DIR)\sbsctran.o:	sbsctran.s lineaequ.s
			mas -SU3  sbsctran.s 
			mv sbsctran.o $(DIR)\sbsctran.o


$(DIR)\sbscopaq.o:	sbscopaq.s lineaequ.s
			mas -SU3  sbscopaq.s 
			mv sbscopaq.o $(DIR)\sbscopaq.o


$(DIR)\sbtxtblt.o:	sbtxtblt.s lineaequ.s
			mas -SU3  sbtxtblt.s
			mv sbtxtblt.o $(DIR)\sbtxtblt.o


$(DIR)\sbvline.o:	sbvline.s lineaequ.s
			mas -SU3  sbvline.s 
			mv sbvline.o $(DIR)\sbvline.o


$(DIR)\spxesc.o:	spxesc.s lineaequ.s
			mas -SU3  spxesc.s 
			mv spxesc.o $(DIR)\spxesc.o


$(DIR)\spxvline.o:	spxvline.s lineaequ.s
			mas -SU3  spxvline.s 
			mv spxvline.o $(DIR)\spxvline.o


$(DIR)\spxtxtbl.o:	spxtxtbl.s lineaequ.s
			mas -SU3  spxtxtbl.s 
			mv spxtxtbl.o $(DIR)\spxtxtbl.o


$(DIR)\spxmono.o:	spxmono.s lineaequ.s
			mas -SU3  spxmono.s 
			mv spxmono.o $(DIR)\spxmono.o


$(DIR)\spxhline.o:	spxhline.s lineaequ.s
			mas -SU3  spxhline.s 
			mv spxhline.o $(DIR)\spxhline.o


$(DIR)\pxabline.o:	pxabline.s lineaequ.s
			mas -SU3  pxabline.s 
			mv pxabline.o $(DIR)\pxabline.o


$(DIR)\pxrectfl.o:	pxrectfl.s lineaequ.s
			mas -SU3  pxrectfl.s 
			mv pxrectfl.o $(DIR)\pxrectfl.o


$(DIR)\textblt.o:	textblt.s lineaequ.s
			mas -SU3  textblt.s
			mv textblt.o $(DIR)\textblt.o


$(DIR)\vdivar.o:	vdivar.s lineaequ.s
			mas -SU3  vdivar.s  
			mv vdivar.o $(DIR)\vdivar.o


$(DIR)\xfrmform.o:	xfrmform.s lineaequ.s
			mas -SU3  xfrmform.s
			mv xfrmform.o $(DIR)\xfrmform.o


$(DIR)\pxmouse.o:	pxmouse.s lineaequ.s
			mas -SU3  pxmouse.s
			mv pxmouse.o $(DIR)\pxmouse.o


$(DIR)\pxtform.o:	pxtform.s lineaequ.s
			mas -SU3  pxtform.s
			mv pxtform.o $(DIR)\pxtform.o


$(DIR)\routines.o:	routines.s vdiincld.s lineaequ.s
			mas -SU3  routines.s
			mv routines.o $(DIR)\routines.o


$(DIR)\spxtblit.o:	spxtblit.s lineaequ.s
			mas -SU3  spxtblit.s
			mv spxtblit.o $(DIR)\spxtblit.o


$(DIR)\spxoblit.o:	spxoblit.s lineaequ.s
			mas -SU3  spxoblit.s
			mv spxoblit.o $(DIR)\spxoblit.o


$(DIR)\hard.o:		hard.s lineaequ.s
			mas -SU3  hard.s
			mv hard.o $(DIR)\hard.o


$(DIR)\hpxoblit.o:	hpxoblit.s lineaequ.s
			mas -SU3  hpxoblit.s
			mv hpxoblit.o $(DIR)\hpxoblit.o


$(DIR)\cbssdefs.o:	cbssdefs.c portab.h gsxdef.h fontdef.h attrdef.h
			cp68 cbssdefs.c m:cbssdefs.i
			c068 m:cbssdefs.i m:cbssdefs.1 m:cbssdefs.2 m:cbssdefs.3 -f
			rm m:cbssdefs.i
			c168 m:cbssdefs.1 m:cbssdefs.2 cbssdefs.s
			rm m:cbssdefs.1
			rm m:cbssdefs.2
			optimize cbssdefs.s
			as68 -s m: -l -u -f m: cbssdefs.s
			rm cbssdefs.s
			mv cbssdefs.o $(DIR)\cbssdefs.o



$(DIR)\font6x6.o:	font6x6.c portab.h fontdef.h
			cp68 font6x6.c m:font6x6.i
			c068 m:font6x6.i m:font6x6.1 m:font6x6.2 m:font6x6.3 -f
			rm m:font6x6.i
			c168 m:font6x6.1 m:font6x6.2 font6x6.s
			rm m:font6x6.1
			rm m:font6x6.2
			optimize font6x6.s
			as68 -s m: -l -u -f m: font6x6.s
			rm font6x6.s
			mv font6x6.o $(DIR)\font6x6.o



$(DIR)\font8x8.o: 	font8x8.c portab.h fontdef.h
			cp68 font8x8.c m:font8x8.i
			c068 m:font8x8.i m:font8x8.1 m:font8x8.2 m:font8x8.3 -f
			rm m:font8x8.i
			c168 m:font8x8.1 m:font8x8.2 font8x8.s
			rm m:font8x8.1
			rm m:font8x8.2
			optimize font8x8.s
			as68 -s m: -l -u -f m: font8x8.s
			rm font8x8.s
                        mv font8x8.o $(DIR)\font8x8.o



$(DIR)\font8x16.o:	font8x16.c portab.h fontdef.h
			cp68 font8x16.c m:font8x16.i
			c068 m:font8x16.i m:font8x16.1 m:font8x16.2 m:font8x16.3 -f
			rm m:font8x16.i
			c168 m:font8x16.1 m:font8x16.2 font8x16.s
			rm m:font8x16.1
			rm m:font8x16.2
			optimize font8x16.s
			as68 -s m: -l -u -f m: font8x16.s
			rm font8x16.s
			mv font8x16.o $(DIR)\font8x16.o



$(DIR)\fnt16x32.o:	fnt16x32.c portab.h fontdef.h
			cp68 fnt16x32.c m:fnt16x32.i
			c068 m:fnt16x32.i m:fnt16x32.1 m:fnt16x32.2 m:fnt16x32.3 -f
			rm m:fnt16x32.i
			c168 m:fnt16x32.1 m:fnt16x32.2 fnt16x32.s
			rm m:fnt16x32.1
			rm m:fnt16x32.2
			optimize fnt16x32.s
			as68 -s m: -l -u -f m: fnt16x32.s
			rm fnt16x32.s
			mv fnt16x32.o $(DIR)\fnt16x32.o



$(DIR)\isin.o:		isin.c portab.h
			cp68 isin.c m:isin.i
			c068 m:isin.i m:isin.1 m:isin.2 m:isin.3 -f
			rm m:isin.i
			c168 m:isin.1 m:isin.2 isin.s
			rm m:isin.1
			rm m:isin.2
			optimize isin.s
			as68 -s m: -l -u -f m: isin.s
			rm isin.s
			mv isin.o $(DIR)\isin.o



$(DIR)\jmptbl.o:	jmptbl.c gsxdef.h portab.h gsxextrn.h jmptbl.h
			cp68 jmptbl.c m:jmptbl.i
			c068 m:jmptbl.i m:jmptbl.1 m:jmptbl.2 m:jmptbl.3 -f
			rm m:jmptbl.i
			c168 m:jmptbl.1 m:jmptbl.2 jmptbl.s
			rm m:jmptbl.1
			rm m:jmptbl.2
			optimize jmptbl.s
			as68 -s m: -l -u -f m: jmptbl.s
			rm jmptbl.s
			mv jmptbl.o $(DIR)\jmptbl.o



$(DIR)\monobj.o:	monobj.c portab.h gsxdef.h gsxextrn.h
			cp68 monobj.c m:monobj.i
			c068 m:monobj.i m:monobj.1 m:monobj.2 m:monobj.3 -f
			rm m:monobj.i
			c168 m:monobj.1 m:monobj.2 monobj.s
			rm m:monobj.1
			rm m:monobj.2
			optimize monobj.s
			as68 -s m: -l -u -f m: monobj.s
			rm monobj.s
			mv monobj.o $(DIR)\monobj.o



$(DIR)\monout.o:	monout.c $(HFILES)
			cp68 monout.c m:monout.i
			c068 m:monout.i m:monout.1 m:monout.2 m:monout.3 -f
			rm  m:monout.i
			c168 m:monout.1 m:monout.2 monout.s
			rm m:monout.1
			rm m:monout.2
			optimize monout.s
			as68 -s m: -l -u -f m: monout.s
			rm monout.s
			mv monout.o $(DIR)\monout.o



$(DIR)\seedfill.o:	seedfill.c portab.h gsxdef.h gsxextrn.h
			cp68 seedfill.c m:seedfill.i
			c068 m:seedfill.i m:seedfill.1 m:seedfill.2 m:seedfill.3 -f
			rm m:seedfill.i
			c168 m:seedfill.1 m:seedfill.2 seedfill.s
			rm m:seedfill.1
			rm m:seedfill.2
			optimize seedfill.s
			as68 -s m: -l -u -f m: seedfill.s
			rm seedfill.s
			mv seedfill.o $(DIR)\seedfill.o



$(DIR)\tables.o:	tables.c portab.h gsxdef.h styles.h
			cp68 tables.c m:tables.i
			c068 m:tables.i m:tables.1 m:tables.2 m:tables.3 -f
			rm m:tables.i
			c168 m:tables.1 m:tables.2 tables.s
			rm m:tables.1
			rm m:tables.2
			optimize tables.s
			as68 -s m: -l -u -f m: tables.s
			rm tables.s
			mv tables.o $(DIR)\tables.o



$(DIR)\text.o:		text.c portab.h gsxdef.h gsxextrn.h
			cp68 text.c m:text.i
			c068 m:text.i m:text.1 m:text.2 m:text.3 -f
			rm m:text.i
			c168 m:text.1 m:text.2 text.s
			rm m:text.1
			rm m:text.2
			optimize text.s
			as68 -s m: -l -u -f m: text.s
			rm text.s
			mv text.o $(DIR)\text.o



$(DIR)\opnwk.o:		opnwk.c $(HFILES)
			cp68 opnwk.c m:opnwk.i
			c068 m:opnwk.i m:opnwk.1 m:opnwk.2 m:opnwk.3 -f
			rm m:opnwk.i
			c168 m:opnwk.1 m:opnwk.2 opnwk.s
			rm m:opnwk.1
			rm m:opnwk.2
			optimize opnwk.s
			as68 -s m: -l -u -f m: opnwk.s
			rm opnwk.s
			mv opnwk.o $(DIR)\opnwk.o



$(DIR)\ttcolor.o:	ttcolor.c portab.h gsxdef.h fontdef.h attrdef.h
			cp68 ttcolor.c m:ttcolor.i
			c068 m:ttcolor.i m:ttcolor.1 m:ttcolor.2 m:ttcolor.3 -f
			rm m:ttcolor.i
			c168 m:ttcolor.1 m:ttcolor.2 ttcolor.s
			rm m:ttcolor.1
			rm m:ttcolor.2
			optimize ttcolor.s
			as68 -s m: -l -u -f m: ttcolor.s
			rm ttcolor.s
			mv ttcolor.o $(DIR)\ttcolor.o


$(DIR)\devices.o:	devices.c portab.h scrndev.h
			cp68 devices.c m:devices.i
			c068 m:devices.i m:devices.1 m:devices.2 m:devices.3 -f
			rm m:devices.i
			c168 m:devices.1 m:devices.2 devices.s
			rm m:devices.1
			rm m:devices.2
			optimize devices.s
			as68 -s m: -l -u -f m: devices.s
			rm devices.s
			mv devices.o $(DIR)\devices.o


$(DIR)\init.o:		init.c $(HFILES)
			cp68 init.c m:init.i
			c068 m:init.i m:init.1 m:init.2 m:init.3 -f
			rm m:init.i
			c168 m:init.1 m:init.2 init.s
			rm m:init.1
			rm m:init.2
			optimize init.s
			as68 -s m: -l -u -f m: init.s
			rm init.s
			mv init.o $(DIR)\init.o


$(DIR)\spcolor.o:	spcolor.c $(HFILES)
			cp68 spcolor.c m:spcolor.i
			c068 m:spcolor.i m:spcolor.1 m:spcolor.2 m:spcolor.3 -f
			rm m:spcolor.i
			c168 m:spcolor.1 m:spcolor.2 spcolor.s
			rm m:spcolor.1
			rm m:spcolor.2
			optimize spcolor.s
			as68 -s m: -l -u -f m: spcolor.s
			rm spcolor.s
			mv spcolor.o $(DIR)\spcolor.o


$(DIR)\trucolor.o:	trucolor.c $(HFILES)
			cp68 trucolor.c m:trucolor.i
			c068 m:trucolor.i m:trucolor.1 m:trucolor.2 m:trucolor.3 -f
			rm m:trucolor.i
			c168 m:trucolor.1 m:trucolor.2 trucolor.s
			rm m:trucolor.1
			rm m:trucolor.2
			optimize trucolor.s
			as68 -s m: -l -u -f m: trucolor.s
			rm trucolor.s
			mv trucolor.o $(DIR)\trucolor.o

