######################################################################
## BC++ 3.1
## C++ Makefile for
## DiskTutor class library
## Verification Test Suite
######################################################################
## Usage Notes:
## To build test suite:
##     make 
##          or
##     make all
##
## To run test suite
##     make verify
##
## To clean intermediate *.obj files:
##     make clean
######################################################################
DEBUG =        # defines DEBUG

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


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

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


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

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

.cpp.exe:
    bcc $*.cpp


######################################################################
## Default targets
######################################################################
all:    \
        xarray.exe \
        xbag.exe \
        xidentdi.exe \
        xlist.exe \
        xordcltn.exe \
        xpoint.exe \
        xqueue.exe \
        xrect.exe \
        xset.exe \
        xsortclt.exe \
        xstack.exe \


######################################################################
## Explicit rules
######################################################################
xarray.exe: xarray.obj
    $(CC) $(LFLAGS) $*.obj $(USRLIB)

xbag.exe: xbag.obj
    $(CC) $(LFLAGS) $*.obj $(USRLIB)

xidentdi.exe: xidentdi.obj
    $(CC) $(LFLAGS) $*.obj $(USRLIB)

xlist.exe: xlist.obj
    $(CC) $(LFLAGS) $*.obj $(USRLIB)

xordcltn.exe: xordcltn.obj
    $(CC) $(LFLAGS) $*.obj $(USRLIB)

xpoint.exe: xpoint.obj 
    $(CC) $(LFLAGS) $*.obj $(USRLIB)

xqueue.exe: xqueue.obj
    $(CC) $(LFLAGS) $*.obj $(USRLIB)

xrect.exe: xrect.obj
    $(CC) $(LFLAGS) $*.obj $(USRLIB)

xsortclt.exe: xsortclt.obj
    $(CC) $(LFLAGS) $*.obj $(USRLIB)

xstack.exe: xstack.obj
    $(CC) $(LFLAGS) $*.obj $(USRLIB)

xrandom.exe: xrandom.obj
    $(CC) $(LFLAGS) $*.obj $(USRLIB)

xset.exe: xset.obj
    $(CC) $(LFLAGS) $*.obj $(USRLIB)

xtime.exe: xtime.obj
    $(CC) $(LFLAGS) $*.obj $(USRLIB)


######################################################################
## Verification Test Suite
## Requires diff.exe (installed in ..\dtlibv)
##
## NOTE:    The last test (xstack) should print an error message
##          to stderr when pop is performed on an empty stack.
######################################################################
verify:
    -xset >out.v 
        -diff out.v set.v
    -xarray >out.v
        -diff out.v array.v
    -xbag >out.v
        -diff out.v bag.v
    -xidentdi >out.v
        -diff out.v identdic.v
    -xlist >out.v
        -diff out.v list.v
    -xordcltn >out.v
        -diff out.v ordcltn.v
    -xpoint >out.v
        -diff out.v point.v
    -xqueue >out.v
        -diff out.v queue.v
    -xrect >out.v
        -diff out.v rect.v
    -xsortclt >out.v
        -diff out.v sortcltn.v2
    -xstack >out.v
        -diff out.v stack.v
    -del out.v

clean:
    del *.obj

