######################################################################
## BC++ 3.1
## C++ makefile for
## DiskTutor class library
######################################################################
## Usage Notes:
## To build dt.lib:
##     make
##          or
##     make all
##
## To install dt.lib and *.h files:
##     make install
##
## To clean intermediate *.obj files:
##     make clean
######################################################################
DEBUG =        # defines DEBUG

!if $d(DEBUG)
CCDEBUG = -v
!else
CCDEBUG =
!endif

MODEL = s       # C small memory model
USR_INCLUDE_DIR = ..\include
USR_LIB_DIR     = ..\lib
USRLIB=dt.lib

CC = bcc
I = c:\borlandc\include
CFLAGS = $(CCDEBUG) -m$(MODEL)
LFLAGS = $(CCDEBUG) -m$(MODEL)

######################################################################
## Library dependents list (object files placed in dt.lib)
######################################################################
oopsOBJS = \
            arrayob.obj  \
            assoc.obj    \
            assocint.obj \
            bag.obj      \
            collect.obj  \
            date.obj     \
            dict.obj     \
            identdic.obj \
            integer.obj  \
            iterator.obj \
            link.obj     \
            linkob.obj   \
            list.obj     \
            lookupke.obj \
            nil.obj      \
            object.obj   \
            ordcltn.obj  \
            point.obj    \
            queue.obj    \
            random.obj   \
            range.obj    \
            rect.obj     \
            seqcltn.obj  \
            set.obj      \
            sortcltn.obj \
            stack.obj    \
            strclass.obj \
            timecls.obj     


######################################################################
## Explicit rule to build library
## First builds all objects in dependency list $(oopsOBJS)
######################################################################
$(USRLIB): $(oopsOBJS)
    del $(USRLIB)
    tlib /E $(USRLIB) @&&!
            + arrayob.obj &
            + assoc.obj &
            + assocint.obj &
            + bag.obj &
            + collect.obj &
            + date.obj &
            + dict.obj &
            + identdic.obj &
            + integer.obj &
            + iterator.obj &
            + link.obj &
            + linkob.obj &
            + list.obj &
            + lookupke.obj &
            + nil.obj &
            + object.obj &
            + ordcltn.obj &
            + point.obj &
            + queue.obj &
            + random.obj &
            + range.obj &
            + rect.obj &
            + seqcltn.obj &
            + set.obj &
            + sortcltn.obj &
            + stack.obj &
            + strclass.obj &
            + timecls.obj &
        , oops_lib.lst
!
    @echo dt.lib created.
    @echo Now install by running 
    @echo make install


######################################################################
## Rules
######################################################################
.obj.exe:
    $(CC) $(LFLAGS)  $<

.cpp.obj:
    $(CC) $(CFLAGS) -c $<


######################################################################
## Default target
######################################################################
all: dt.lib

clean:
    del *.obj


######################################################################
## Install *.h files in ../include and lib file in ../lib
######################################################################
install:
    -md               $(USR_INCLUDE_DIR)
    -copy *.h         $(USR_INCLUDE_DIR)
    -md               $(USR_LIB_DIR)
    -copy dt.lib      $(USR_LIB_DIR)

