HPCXX_PATH = /home/csi/sheehan/HPC++
HPCXX_LIB  = $(HPCXX_PATH)/lib/sgi64
HPCXX_INC  = -I$(HPCXX_PATH)/include -I$(HPCXX_PATH)/template 

NEXUS_PATH = /local64/apps/nexus-4.1.1
NEXUS_LIB  = $(NEXUS_PATH)/lib
NEXUS_INC  = -I$(NEXUS_PATH)/include

CXX = CC
AR  = /bin/ar
ARFLAGS = cr

DEFS = -DHAVE_CONFIG_H

LIBS = -lhpcxx_rts  -lnexus -lpthread -lm

IMPL_RUNTIME = Nexus
IMPL_THREADS = Nexus
TULIP_ARCH = sgi64

CXXFLAGS =  -64 -g  -no_auto_include -prelink
CPPFLAGS = $(HPCXX_INC)  $(NEXUS_INC)
LDFLAGS =  -L$(NEXUS_LIB) -64 -L$(HPCXX_LIB)

#### End of system configuration section. ####

SHELL = /bin/sh

SRCS =  tim_gp_server.C tim_gp_client.C


OBJS = $(SRCS:.C=.o)
EXE = $(SRCS:.C=)

# suffix rule for .C to .o conversion
.C.o:
	$(CXX) $(HPCXX_INC) $(NEXUS_INC) $(CXXFLAGS) $(CPPFLAGS) $(DEFS) -c $(@:.o=.C)

all: $(EXE)

tim_gp_client: tim_gp_client.o ClientServerAttach.o ToyClass.o
	$(CXX) -o $(@) $(@).o ClientServerAttach.o ToyClass.o $(LDFLAGS) $(LIBS)

tim_gp_server: tim_gp_server.o ClientServerAttach.o ToyClass.o
	$(CXX) -o $(@) $(@).o ClientServerAttach.o  ToyClass.o $(LDFLAGS) $(LIBS)

ToyClass.o: ToyClass.C ToyClass.h
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(DEFS) -c $(@:.o=.C) -o $(@)

ClientServerAttach.o: ClientServerAttach.C ClientServerAttach.h
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(DEFS) -c $(@:.o=.C) -o $(@)

clean:
	rm -rf ii_files
	rm -f ~* *~ $(EXE) $(OBJS) *.o src/ReadWriteLock.o 

fresh: clean all
