CC	= g++
CFLAGS	= -g -Wall
INC	=
LIBS	=
OBJS	= ConsoleOutputStream.o MudObject.o OutputStream.o StringBag.o \
          ObjectFactory.o PersistentObject.o InputStream.o FileInputStream.o \
          VariableStore.o

target : Mud

Mud: $(OBJS) Main.cc
	$(CC) -I$(INC) $(CFLAGS) $(OBJS) Main.cc $(LIBS) -o Mud

VariableStore.o : VariableStore.cc VariableStore.h
	$(CC) -I$(INC) $(CFLAGS) -c VariableStore.cc

ObjectFactory.o : ObjectFactory.cc ObjectFactory.h
	$(CC) -I$(INC) $(CFLAGS) -c ObjectFactory.cc

InputStream.o : InputStream.cc InputStream.h
	$(CC) -I$(INC) $(CFLAGS) -c InputStream.cc

FileInputStream.o : FileInputStream.cc FileInputStream.h
	$(CC) -I$(INC) $(CFLAGS) -c FileInputStream.cc

PersistentObject.o : PersistentObject.cc PersistentObject.h
	$(CC) -I$(INC) $(CFLAGS) -c PersistentObject.cc

ConsoleOutputStream.o : ConsoleOutputStream.cc ConsoleOutputStream.h
	$(CC) -I$(INC) $(CFLAGS) -c ConsoleOutputStream.cc

MudObject.o : MudObject.cc MudObject.h
	$(CC) -I$(INC) $(CFLAGS) -c MudObject.cc

OutputStream.o : OutputStream.cc OutputStream.h
	$(CC) -I$(INC) $(CFLAGS) -c OutputStream.cc

StringBag.o : StringBag.cc StringBag.h
	$(CC) -I$(INC) $(CFLAGS) -c StringBag.cc

clean:

	rm Mud *.o
