###############################################################################
#
# 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 ..