--- /dev/null
+
+# prompt> make
+# builds everything and links in test program test_rb
+#
+# prompt> make mem_check
+# Rebuilds everything using dmalloc and does memory testing.
+# Only works if you have dmalloc installed (see http://dmalloc.com).
+
+SRCS = test_red_black_tree.c red_black_tree.c stack.c misc.c
+
+HDRS = red_black_tree.h stack.h misc.h
+
+OBJS = red_black_tree.o stack.o test_red_black_tree.o misc.o
+
+CC = gcc
+
+CFLAGS = -g -Wall -pedantic
+
+PROGRAM = test_rb
+
+.PHONY: mem_check clean
+
+all: $(PROGRAM)
+
+$(PROGRAM): $(OBJS)
+ $(CC) $(CFLAGS) $(OBJS) -o $(PROGRAM) $(DMALLOC_LIB)
+
+mem_check:
+ @if [ -e makefile.txt ] ; then \
+ echo "Using makefile.txt" ; \
+ $(MAKE) clean -f makefile.txt ; \
+ $(MAKE) $(PROGRAM) "CFLAGS=$(CFLAGS) -DDMALLOC" "DMALLOC_LIB=-ldmalloc" -f makefile.txt ; \
+ else \
+ echo "Using default makefile (i.e. no -f flag)." ; \
+ $(MAKE) clean ; \
+ $(MAKE) $(PROGRAM) "CFLAGS=$(CFLAGS) -DDMALLOC" "DMALLOC_LIB=-ldmalloc" ; \
+ fi
+ ./simple_test.sh
+ @if [ -s unfreed.txt ] ; then \
+ echo " " ; \
+ echo "Leaked some memory. See logfile for details." ;\
+ else \
+ echo " " ; \
+ echo "No memory leaks detected. " ;\
+ echo " " ; \
+ echo "Test passed. " ; \
+ echo " " ; \
+ fi
+
+
+test_red_black_tree.o: test_red_black_tree.c red_black_tree.c stack.c stack.h red_black_tree.h misc.h
+
+red_black_tree.o: red_black_tree.h stack.h red_black_tree.c stack.c misc.h misc.c
+
+stack.o: stack.c stack.h misc.h misc.c
+
+clean:
+ rm -f *.o *~ $(PROGRAM)
+
+
+
+
+
+