######################################################################
## BC++ 3.1
## C++ makefile for example programs
## Windows Tech Journal, OOP Alley, July 1993
## Demonstrates DiskTutor collection class library
## Greg Voss
######################################################################
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:    \
        bag.exe     \
        set.exe     \
        array.exe   \
        oc.exe      \
        sc.exe      \
        dict1.exe   \
        dict2.exe   \
        dict3.exe


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

set.exe: set.obj
    $(CC) $(LFLAGS) $*.obj $(USRLIB)
            
## Indexed Collection
array.exe: array.obj
    $(CC) $(LFLAGS) $*.obj $(USRLIB)

## Ordered Collection
oc.exe: oc.obj
    $(CC) $(LFLAGS) $*.obj $(USRLIB)

## Sorted Collection
sc.exe: sc.obj
    $(CC) $(LFLAGS) $*.obj $(USRLIB)

## Dictionary (simple phone book)
dict1.exe: dict1.obj
    $(CC) $(LFLAGS) $*.obj $(USRLIB)

## Dictionary (of Address objects)
dict2.exe: dict2.obj
    $(CC) $(LFLAGS) $*.obj $(USRLIB)
  
## Dictionary (simple symbol table)
dict3.exe: dict3.obj
    $(CC) $(LFLAGS) $*.obj $(USRLIB)


######################################################################
## Verification Test Suite
## Requires diff.exe (installed in ..\dtlibv)
######################################################################
DIFF_DIR=..\dtlibv              ## source directory for diff.exe
verify:
        -bag.exe     >out.v
            -$(DIFF_DIR)\diff out.v  bag.v
        -set.exe     >out.v
            -$(DIFF_DIR)\diff out.v  set.v
        -array.exe   >out.v
            -$(DIFF_DIR)\diff out.v  array.v
        -oc.exe      >out.v
            -$(DIFF_DIR)\diff out.v  oc.v
        -sc.exe      >out.v
            -$(DIFF_DIR)\diff out.v  sc.v
        -dict1.exe   >out.v
            -$(DIFF_DIR)\diff out.v  dict1.v
        -dict2.exe   >out.v
            -$(DIFF_DIR)\diff out.v  dict2.v
        -dict3.exe   >out.v
            -$(DIFF_DIR)\diff out.v  dict3.v
        -del out.v

clean:
    del *.obj

