#*****************************************************
#  CS225 General Makefile
#
#  File originally written by Matt Buchanan in Fall 1995
#
#*****************************************************


#**************************************************************************
# List of .o files that EXENAME depends on.  Edit as appropriate for MP.

OBJS = \
	asserts.o string.o singlist.o stack.o \
	hashbase.o closehash.o StringHash.o SymbolTable.o main.o 


#**************************************************************************
# Change this line if you don't like 'a.out'.

EXENAME = a.out


#**************************************************************************
# Macros defining the C/C++ compiler and linker.

CC = g++
CCOPTS = -g 
LINK = g++
LINKOPTS = -L/opt/SUNWspro/SC4.2/lib -g


#**************************************************************************
# Rules for building EXENAME from OBJS and OBJS from your source.

$(EXENAME):  $(OBJS)
	$(LINK) $(LINKOPTS) $(OBJS)

purified: $(OBJS)
	purify $(LINK) $(LINKOPTS) $(OBJS)

clean:
	-rm *.o $(EXENAME)
	-rm -r Templates.DB

asserts.o : asserts.h asserts.C
	$(CC) -c $(CCOPTS) asserts.C

string.o : string.h string.C asserts.h
	$(CC) -c $(CCOPTS) string.C

singlist.o : singlist.h singlist.C
	$(CC) -c $(CCOPTS) singlist.C

stack.o : stack.h singlist.h stack.C
	$(CC) -c $(CCOPTS) stack.C

hashbase.o : hashbase.h hashbase.C
	$(CC) -c $(CCOPTS) hashbase.C

closehash.o : closehash.h hashbase.h closehash.C
	$(CC) -c $(CCOPTS) closehash.C

StringHash.o : StringHash.h closehash.h string.h StringHash.C
	$(CC) -c $(CCOPTS) StringHash.C

SymbolTable.o : SymbolTable.h StringHash.h SymbolTable.C
	$(CC) -c $(CCOPTS) SymbolTable.C

main.o : main.C SymbolTable.h
	$(CC) -c $(CCOPTS) main.C
