# Makefile for Borland C++ 4.5 on NT
# For Borland 5.0, replace bc45 by bc5.
# If you have the Borland assembler, remove "-DUSE_GENERIC"
#
bc=        c:\bc45
bcbin=     $(bc)\bin
bclib=     $(bc)\lib
bcinclude= $(bc)\include

cc=      $(bcbin)\bcc32
rc=      $(bcbin)\brc32
lib=     $(bcbin)\tlib
link=    $(bcbin)\tlink32
cflags=  -R -v -vi -H -H=gc.csm -I$(bcinclude);cord -L$(bclib) \
         -w-pro -w-aus -w-par -w-ccc -w-rch -a4 -D__STDC__=0
#defines= -DSILENT
defines= -DSMALL_CONFIG -DSILENT -DALL_INTERIOR_POINTERS -DUSE_GENERIC

.c.obj:
	$(cc) @&&|
        $(cdebug) $(cflags) $(cvars) $(defines) -o$* -c $*.c
|

.cpp.obj:
	$(cc) @&&|
        $(cdebug) $(cflags) $(cvars) $(defines) -o$* -c $*.cpp
|

.rc.res:
    $(rc) -i$(bcinclude) -r -fo$* $*.rc

XXXOBJS= XXXalloc.obj XXXreclaim.obj XXXallchblk.obj XXXmisc.obj \
    XXXmach_dep.obj XXXos_dep.obj XXXmark_rts.obj XXXheaders.obj XXXmark.obj \
    XXXobj_map.obj XXXblacklst.obj XXXfinalize.obj XXXnew_hblk.obj \
    XXXdbg_mlc.obj XXXmalloc.obj XXXstubborn.obj XXXdyn_load.obj \
    XXXtypd_mlc.obj XXXptr_chck.obj XXXgc_cpp.obj XXXmallocx.obj

OBJS= $(XXXOBJS:XXX=)

all: gctest.exe cord\de.exe test_cpp.exe

$(OBJS) test.obj: gc_priv.h gc_hdrs.h gc.h gcconfig.h MAKEFILE

gc.lib: $(OBJS)
    -del gc.lib
	tlib $* @&&|
        $(XXXOBJS:XXX=+)
|

gctest.exe: tests\test.obj gc.lib
    $(cc) @&&|
        $(cflags) -W -e$* tests\test.obj gc.lib
|

cord\de.obj cord\de_win.obj: cord\cord.h cord\private\cord_pos.h cord\de_win.h \
    cord\de_cmds.h

cord\de.exe: cord\cordbscs.obj cord\cordxtra.obj cord\de.obj cord\de_win.obj \
        cord\de_win.res gc.lib
	$(cc) @&&|
        $(cflags) -W -e$* cord\cordbscs.obj cord\cordxtra.obj \
        cord\de.obj cord\de_win.obj gc.lib
|
    $(rc) cord\de_win.res cord\de.exe

gc_cpp.obj: gc_cpp.h gc.h

gc_cpp.cpp: gc_cpp.cc
	copy gc_cpp.cc gc_cpp.cpp

test_cpp.cpp: tests\test_cpp.cc
	copy tests\test_cpp.cc test_cpp.cpp

test_cpp.exe: test_cpp.obj gc_cpp.h gc.h gc.lib
    $(cc) @&&|
        $(cflags) -W -e$* test_cpp.obj gc.lib
|

scratch:
    -del *.obj *.res *.exe *.csm cord\*.obj cord\*.res cord\*.exe cord\*.csm


