#
# OSLab module 6: process makefile
#
# Choice of compiler (1 - Engineering network or 2 - stand alone)

COMPILER=1

# COM - the compiler to use (bcc)
# DIR - the directory to use (either borlandc or campus bc45)
 
!if $(COMPILER) == 1
COM=bcc
DIR=g:\apps\bc45
!elif $(COMPILER) == 2
COM=bcc
DIR=\borlandc
!else
!error Unknown compiler
!endif

#

obj: m6.exe

#

hwdata.obj: hwdata.c
    $(DIR)\$(COM) -mc -c hwdata.c

mainline.obj: mainline.c
    $(DIR)\$(COM) -mc -c mainline.c

srvrcomm.obj: srvrcomm.c
    $(DIR)\$(COM) -mc -c srvrcomm.c

#
# Processes
#

window.obj: window.c mstruct.h
    $(DIR)\$(COM) -mc -c window.c
    $(DIR)\tlib module6 -+window.obj

timemgr.obj: timemgr.c mstruct.h
    $(DIR)\$(COM) -mc -c timemgr.c
    $(DIR)\tlib module6 -+timemgr.obj

proc0.obj: proc0.c process.h mstruct.h
    $(DIR)\$(COM) -mc -c proc0.c
    $(DIR)\tlib module6 -+proc0.obj

proc1.obj: proc1.c process.h mstruct.h
    $(DIR)\$(COM) -mc -c proc1.c
    $(DIR)\tlib module6 -+proc1.obj

proc2.obj: proc2.c process.h mstruct.h
    $(DIR)\$(COM) -mc -c proc2.c
    $(DIR)\tlib module6 -+proc2.obj

#
# Create m6 kernel and processes
#

m6.exe: m6.obj hwdata.obj srvrcomm.obj window.obj proc0.obj proc1.obj \
	proc2.obj timemgr.obj mainline.obj ..\oslab.lib
    $(DIR)\tlink $(DIR)\lib\c0c hwdata mainline srvrcomm m6, m6, m6, \
    ..\oslab module6 $(DIR)\lib\cc

m6.obj: m6.c
    $(DIR)\$(COM) -mc -c m6.c
