ARCH=sgi8k
COMPILER=CC
LINKER=CC

CC=$(COMPILER)
LD=$(LINKER)
SAGEROOT   = /home/grads/sameer/sg19
SAGELIB = $(SAGEROOT)/lib/$(ARCH)
PSTLROOT   = ..
OPT =
DEBUG = 
CCOPTS= -D__SGIMP__ 
GCCOPTS=  
COMPOPTS=$(CCOPTS) # one of DCC/ CC/ GCC
LDOPTIONS=  
ARCHOPTS=
INCLUDE= -I$(PSTLROOT)/include -I$(SAGEROOT)/tulip/include -I$(PSTLROOT)/include/pstl/stl -I$(PSTLROOT)/include/pstl
CPLUSLIBDIR= $(SAGEROOT)/tulip/sgimp/lib
COPTIONS= -c  $(INCLUDE) $(COMPOPTS)
OPTIONS=  $(COMPOPTS)  $(ARCHOPTS) $(COPTIONS)
ARCHLIBOPTS=
LIBS=  
TARGET= 
HEADERS = $(PSTLROOT)/include/tulipRemoteAction.h $(PSTLROOT)/include/distributed_vector.h  \
	$(PSTLROOT)/include/rtsBase.h $(PSTLROOT)/include/gptrBase.h  $(PSTLROOT)/include/future.h \
	$(PSTLROOT)/include/pstl/pstl.h
TARGETS = cg_transp cgsparse  mpi-cgtransp trc-mpi-cgtransp rpl-mpi-cgtransp snzrpl-mpi-cgtransp  mpi-cgsparse trc-mpi-cgsparse rpl-mpi-cgsparse snzrpl-mpi-cgsparse
OBJECTS = cg_transp.o cgsparse.o 
LIBDIR  = $(SAGEROOT)/tulip/sgimp/lib
MPILIBDIR = $(SAGEROOT)/tulip/mpi/lib/$(ARCH)

all :  $(TARGETS)
cgsparse.o:  $(HEADERS) cgsparse.C
	$(CC) $(DEBUG) $(COMPOPTS) $(INCLUDE) -ptv -c $< 

cgsparse: cgsparse.o
	$(LD) $(DEBUG) $(COMPOPTS) $(LDOPTIONS) -o cgsparse cgsparse.o -L$(PSTLROOT)/lib -L$(LIBDIR) -ltulip -ll -lm 

cg_transp.o:  $(HEADERS) cg_transp.C
	$(CC) $(DEBUG) $(COMPOPTS) $(INCLUDE) -ptv -c $< 

cg_transp: cg_transp.o
	$(LD) $(DEBUG) $(COMPOPTS) $(LDOPTIONS) -o cg_transp cg_transp.o -L$(PSTLROOT)/lib -L$(LIBDIR) -ltulip -ll -lm 

mpi-cgtransp : mpi-cgtransp.o
	$(LD) $(DEBUG)  $(LDOPTIONS) -o mpi-cgtransp mpi-cgtransp.o -L$(PSTLROOT)/lib -L$(MPILIBDIR) -ltulip -ll -lm -lmpi
mpi-cgtransp.o : cg_transp.C
	$(CC) $(DEBUG)  $(INCLUDE) -ptv -c -D__MPI__ -o mpi-cgtransp.o cg_transp.C
trc-mpi-cgtransp : trc-mpi-cgtransp.o
	$(LD) $(DEBUG)  $(LDOPTIONS) -o trc-mpi-cgtransp trc-mpi-cgtransp.o -L$(PSTLROOT)/lib -L$(MPILIBDIR) -ltrc-tulip -ll -lm -lmpi
trc-mpi-cgtransp.o : cg_transp.C
	$(CC) $(DEBUG)  $(INCLUDE) -ptv -c -D__MPI__ -DTRACING_ON -o trc-mpi-cgtransp.o cg_transp.C
rpl-mpi-cgtransp : rpl-mpi-cgtransp.o
	$(LD) $(DEBUG)  $(LDOPTIONS) -o rpl-mpi-cgtransp rpl-mpi-cgtransp.o -L$(PSTLROOT)/lib -L$(MPILIBDIR) -lrpl-tulip -ll -lm -lmpi
rpl-mpi-cgtransp.o : cg_transp.C
	$(CC) $(DEBUG)  $(INCLUDE) -ptv -c -D__MPI__ -D_AA_REPLAY -o rpl-mpi-cgtransp.o cg_transp.C
snzrpl-mpi-cgtransp : snzrpl-mpi-cgtransp.o
	$(LD) $(DEBUG)  $(LDOPTIONS) -o snzrpl-mpi-cgtransp snzrpl-mpi-cgtransp.o -L$(PSTLROOT)/lib -L$(MPILIBDIR) -L$(SAGELIB) -lsnzrpl-tulip -lproxy-sock -lserver -ll -lm -lmpi
snzrpl-mpi-cgtransp.o : cg_transp.C
	$(CC) $(DEBUG)  $(INCLUDE) -ptv -c -DSNEEZY -D__MPI__ -D_AA_REPLAY -o snzrpl-mpi-cgtransp.o cg_transp.C
# Now for cgsparse

mpi-cgsparse : mpi-cgsparse.o
	$(LD) $(DEBUG)  $(LDOPTIONS) -o mpi-cgsparse mpi-cgsparse.o -L$(PSTLROOT)/lib -L$(MPILIBDIR) -ltulip -ll -lm -lmpi
mpi-cgsparse.o : cgsparse.C
	$(CC) $(DEBUG)  $(INCLUDE) -ptv -c -D__MPI__ -o mpi-cgsparse.o cgsparse.C
trc-mpi-cgsparse : trc-mpi-cgsparse.o
	$(LD) $(DEBUG)  $(LDOPTIONS) -o trc-mpi-cgsparse trc-mpi-cgsparse.o -L$(PSTLROOT)/lib -L$(MPILIBDIR) -ltrc-tulip -ll -lm -lmpi
trc-mpi-cgsparse.o : cgsparse.C
	$(CC) $(DEBUG)  $(INCLUDE) -ptv -c -D__MPI__ -DTRACING_ON -o trc-mpi-cgsparse.o cgsparse.C
rpl-mpi-cgsparse : rpl-mpi-cgsparse.o
	$(LD) $(DEBUG)  $(LDOPTIONS) -o rpl-mpi-cgsparse rpl-mpi-cgsparse.o -L$(PSTLROOT)/lib -L$(MPILIBDIR) -lrpl-tulip -ll -lm -lmpi
rpl-mpi-cgsparse.o : cgsparse.C
	$(CC) $(DEBUG)  $(INCLUDE) -ptv -c -D__MPI__ -D_AA_REPLAY -o rpl-mpi-cgsparse.o cgsparse.C
snzrpl-mpi-cgsparse : snzrpl-mpi-cgsparse.o
	$(LD) $(DEBUG)  $(LDOPTIONS) -o snzrpl-mpi-cgsparse snzrpl-mpi-cgsparse.o -L$(PSTLROOT)/lib -L$(MPILIBDIR) -L$(SAGELIB) -lsnzrpl-tulip -lproxy-sock -lserver -ll -lm -lmpi
snzrpl-mpi-cgsparse.o : cgsparse.C
	$(CC) $(DEBUG)  $(INCLUDE) -ptv -c -DSNEEZY -D__MPI__ -D_AA_REPLAY -o snzrpl-mpi-cgsparse.o cgsparse.C
clean : 
	rm -f $(OBJECTS) $(TARGETS) core  *.trc *.o *.trace 
rpl	: rpl-mpi-cgtransp pcxx_aa0.trace
	rpl-mpi-cgtransp
pcxx_aa0.trace : cgtransp.trace
	ar2pcxx cgtransp.trace
cgtransp.trace : MPI.trc
	pcxx2ar MPI.trc newbic.edf cgtransp.trace
MPI.trc : mpi.0000.trc
	pcxx_merge -a mpi.0*.trc MPI.trc
mpi.0000.trc : trc-mpi-cgtransp
	trc-mpi-cgtransp  -pcxx_EVENTCLASS G









