
###############################################################################
#
#	makefile for lowlevel UltraSound libraries & example code
#
###############################################################################
#
#	This makefile will build the objects in sub-directories.
#	The libraries are built in the current directory from those objs.
#	Make sure these subdirs exist before making the particular model.
#
#	largem	- Microsoft large model
#	mediumm	- Microsoft medium model
#	smallm	- Microsoft small model
#	tinym	- Microsoft tiny model
#
###############################################################################

INCS=c:\c600\include -I..\incs
#DEBUG = /CO
COMPILER = m

!if $(SIZE) == 0
TYPE=large$(COMPILER)
MODEL=L
LIBMODEL=l

!elif $(SIZE) == 1
TYPE=medium$(COMPILER)
MODEL=M
LIBMODEL=m

!elif $(SIZE) == 2
TYPE=small$(COMPILER)
MODEL=S
LIBMODEL=s

!elif $(SIZE) == 3
TYPE=tiny$(COMPILER)
MODEL=T
LIBMODEL=s
!endif

###############################################################################
#            Transformation rules
# Compile all .c files with the Microsoft C compiler
# SOME MODEL .............
###############################################################################
.path.obj = .\$(TYPE)

.c.obj:
 cl  -Ox -Oi -Fa -Gs -FPi -A$(MODEL) -I$(INCS) /c /Fo$(TYPE)\$&.obj $&.c 
 @del $&.asm

.asm.obj:
 masm /MX /DMSIZE$(SIZE) $*.asm,$(TYPE)\$*.obj;

.autodepend

all: ultra0$(MODEL)$(COMPILER).lib\
       ultra1$(MODEL)$(COMPILER).lib

###############################################################################
#
# LEVEL 0 Stuff
#
###############################################################################
FILE01=	vars.obj open.obj irq.obj
FILE02= handle.obj joy.obj rock.obj
FILE03=	reset.obj dmadram.obj dma.obj 
FILE04= vocread.obj vocstop.obj vocfreq.obj 
FILE05= vocset.obj vocstart.obj vocend.obj 
FILE06= vocloop.obj vocstopd.obj balance.obj 
FILE07= sample.obj timer.obj midi.obj
FILE08= volset.obj volstop.obj vol0ramp.obj 
FILE09= volrate.obj volstopd.obj volread.obj
FILE10=	init.obj size.obj util0.obj peekpoke.obj
FILE11=	memalloc.obj memfree.obj meminit.obj icsmix.obj

###############################################################################
#
# LEVEL 1 Stuff
#
###############################################################################
FILE1a= voice1.obj vol1.obj vocaloc.obj

###############################################################################
# ANY MODEL .............
###############################################################################

ultra0$(MODEL)$(COMPILER).lib: $(FILE01) $(FILE02) $(FILE03) $(FILE04) $(FILE05) $(FILE06) $(FILE07) $(FILE08) $(FILE09) $(FILE10) $(FILE11) $(LIBOBJ)
	cd $(TYPE)
	c:\c600\binb\lib ..\ultra0$(MODEL)$(COMPILER).lib @..\ultra0.dat
	c:\c600\binb\lib ..\ultra0$(MODEL)$(COMPILER).lib -+peekpoke.obj,,;
	cd ..

ultra1$(MODEL)$(COMPILER).lib: $(FILE1a)
	cd $(TYPE)
	c:\c600\binb\lib ..\ultra1$(MODEL)$(COMPILER).lib @..\ultra1.dat
	cd ..

lint:
	del lint.tmp
	C:\LINT\LINT -e785 +v -iC:\LINT STD.LNT lint.lnt -od(proto.xxx) >lint.tmp

clean:
	del ultra0$(MODEL)$(COMPILER).lib
	del ultra1$(MODEL)$(COMPILER).lib
	cd $(TYPE)
	del *.obj
	cd ..
