###############################################################################
#
#	BORLAND C++
#
#	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.
#
#	largeb	- Borlandc large model
#	mediumb	- Borlandc medium model
#	smallb	- Borlandc small model
#	tinyb	- Borlandc tiny model
#
###############################################################################
INCS =c:\bc\include;..\incs
#DEBUG = -v
COMPILER = b

!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 Borland C++ compiler
# SOME MODEL .............
###############################################################################
.path.obj = .\$(TYPE)

.c.obj:
	bcc -c +bcc.cfg { $*.c}
#	bcc -S -c +bcc.cfg { $*.c}
#	tasm -q -t -l -ml $(TYPE)\$*.asm
#	mv $*.obj $(TYPE)

.asm.obj:
	bcc $(DEBUG) -k- -Z -c -O -j7 -B -m$(MODEL) -TdMSIZE$(SIZE) $&.asm
	@copy $&.obj $(TYPE)\$&.obj
	@del $&.obj

.autodepend

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

bcc.cfg:
  copy &&|
$(DEBUG)
-I$(INCS)
-k-
-Z
-O
-j12
-m$(MODEL)
-n$(TYPE)
| bcc.cfg
#!if $(SIZE) >= 2
!if $(SIZE) == 3
  echo -zGDGROUP -zPDGROUP -zSDGROUP >> bcc.cfg
!endif

###############################################################################
#
# 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)
	tlib ..\ultra0$(MODEL)$(COMPILER).lib @..\ultra0.dat
	tlib ..\ultra0$(MODEL)$(COMPILER).lib -+peekpoke.obj,,;
	cd ..

ultra1$(MODEL)$(COMPILER).lib: $(FILE1a)
	cd $(TYPE)
	tlib ..\ultra1$(MODEL)$(COMPILER).lib @..\ultra1.dat
	cd ..

lint:
	del lint.tmp
	C:\LINT\LINT +fxc -e252 -e537 -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 ..
