#********************************************************
#  Makes the following file:
#
# 	logheap.lib -- library that logs all heap accesses
#	safeheap.lib -- library that logs heap errors
#
#	bad_free.exe -- test program that free's too much memory
#	bad_null.exe -- test program that assignes to NULL
#	kill_it.exe  -- kill the heap chain
#	use_free.exe -- use freed memory
#	leak -- memory leaker
#	h_check.exe -- program to read "MEM.LOG" and 
#		match "malloc" and "free" calls.
#********************************************************
# Uncomment one of the following CFLAGS definitions
# for a C or C++ compilation
#
# CFLAGS for C compliation 
CFLAGS = -ml -v -w+ -y -M -lv -ls 
# CFLAGS for C++ compliation 
#CFLAGS = -ml -v -w+ -y -M -lv -ls -P

all: logheap.lib logheap.lib h_check.exe  leak.exe \
	bad_free.exe bad_null.exe kill_it.exe use_free.exe

h_check.exe: h_check.c
	bcc  -mh -v -w+ -y -M -lv -ls -eh_check.exe h_check.c

bad_free.exe: safeheap.lib bad_free.c
	bcc $(CFLAGS) -ebad_free.exe bad_free.c safeheap.lib

use_free.exe: safeheap.lib use_free.c
	bcc $(CFLAGS) -euse_free.exe use_free.c safeheap.lib

leak.exe: logheap.lib leak.c
	bcc $(CFLAGS) -eleak.exe leak.c logheap.lib

kill_it.exe: safeheap.lib kill_it.c
	bcc $(CFLAGS) -ekill_it.exe kill_it.c safeheap.lib

bad_null.exe: safeheap.lib bad_null.c
	bcc $(CFLAGS) -ebad_null.exe bad_null.c safeheap.lib

safeheap.lib: safeheap.obj farheap.obj
	tlib safeheap/e +- safeheap.obj +- farheap.obj

logheap.lib: logheap.obj farheap.obj
	tlib logheap/e +- logheap.obj +- farheap.obj

farheap.obj: farheap.asm
	tasm/la/mx/w2/w+/zi/d__LARGE__ farheap,,

safeheap.obj: safeheap.c
	bcc -c $(CFLAGS) safeheap.c

logheap.obj: logheap.c
	bcc -c $(CFLAGS) logheap.c

