SRC    = Console.cpp T1Demo.cpp T1.cpp T1EventManager.cpp T1NetStream.cpp T1Game.cpp bitStream.cpp
OBJ    = $(SRC:.cpp=.o)
EXE    = t1netcode

# Compiler, Linker Defines
CXX     = g++
LIBPATH = -L.
LDFLAGS = $(LIBPATH)
SOLARIS = -lsocket -lnsl
CFLAGS  = -Wall -Wno-parentheses -O3 -fomit-frame-pointer
RM      = rm -f

# Compile and Assemble C Source Files into Object Files
%.o: %.cpp
	$(CXX) -c $(CFLAGS) $*.cpp

# Link all Object Files with external Libraries into Binaries
$(EXE): $(OBJ) main.cpp
	$(CXX) -c $(CFLAGS) main.cpp
	$(CXX) $(LDFLAGS) main.o $(OBJ)  -o $(EXE)

solaris: $(OBJ) main.cpp
	$(CXX) -c $(CFLAGS) main.cpp
	$(CXX) $(LDFLAGS) $(SOLARIS) main.o $(OBJ)  -o $(EXE)

# Clean Up Objects, Exectuables, Dumps out of source directory
clean:
	$(RM) $(OBJ) $(EXE)