#######################################################################
##                  pC++/Sage++  Copyright (C) 1993,1995             ##
##  Indiana University  University of Oregon  University of Rennes   ##
#######################################################################
 
########### Automatically modified by the configure script ############
CONFIG_ARCH=sgi8k
CONFIG_CC=cc -64
CONFIG_CXX=CC -64
#PCXX_OPT=-g -cfront -64
PCXX_OPT=-g 
#USER_OPT=-g -cfront -ptused -64 
#USER_OPT=-g -w -ptused -32 
USER_OPT=-g -w -ptused
#######################################################################
 
############# Standard Defines ##############
CC = $(CONFIG_CC)
CXX = $(CONFIG_CXX)
INSTALL = /bin/cp
SHELL = /bin/sh
LSX = .a

#############################################
SAGEROOT   =/research/paraducks1/TAU-HPCXX-Demo/sg19
LINKER = $(CXX)


#############################################
# Makefile for SGI SMP computers (6/22/94 PHB)

#MIPSR4K#MIPSOPT=-mips2#ENDIF#
#MIPSOPT=-mips4#ENDIF##MIPSR8K#

PSTLROOT = /research/paraducks1/TAU-HPCXX-Demo/hpc++/PSTL
TULIPROOT = /research/paraducks1/TAU-HPCXX-Demo/hpc++/hpcxx_rts/Tulip
PROFILEROOT = /research/paraducks1/TAU-HPCXX-Demo/tau/lang_support/hpc++/prf

STLDIR = $(PSTLROOT)/include/stl

LIBDIR  = $(TULIPROOT)/sgimp/lib
PRFLIBDIR = $(PROFILEROOT)/lib
MPILIBDIR = $(TULIPROOT)/mpi/lib/sgi8k

INCLUDE = -I$(PSTLROOT)/include -I$(PSTLROOT)/include/pstl -I$(STLDIR) -I$(TULIPROOT)/include 

INSTALLDEST = $(PSTLROOT)/bin/sgimp
CFLAGS=$(INCLUDE) -D__SGIMP__ $(MIPSOPT) $(USER_OPT) $(CEXTRA) $(MEXTRA)
LDFLAGS=$(PCXX_OPT) -D__SGIMP__ $(MIPSOPT) $(USER_OPT) $(CEXTRA) $(MEXTRA)

##########################################################################
EXECUTABLES = trc_p_anagram rpl_p_anagram trc_prf rpl_prf p_anagram prf_p_anagram 
#all:	$(EXECUTABLES)
##########################################################################

KKPATH = .
PRFFLAGS = -DPROFILING_ON

#EXTRAO = 
#EXTRAC = 
#PRF_EXTRAO = 
#PRF_EXTRAC = 
#TRC_EXTRAO = 
#TRC_EXTRAC = 

SRC = p_anagram

# The rules for the extra objects

##########################################################################
# Standard Boilerplate


RTSHEADER = $(PSTLROOT)/include/future.h \
	$(PSTLROOT)/include/gptrBase.h \
	$(PSTLROOT)/include/rtsBase.h \
	$(PSTLROOT)/include/tulipRemoteAction.h 

PSTLHEADER = $(PSTLROOT)/include/pstl/par_algo.h \
	$(PSTLROOT)/include/pstl/par_iterator.h \
	$(PSTLROOT)/include/pstl/distributed_container.h

##########################################################################
all : rpl 


prf_p_anagram.o : $(KKPATH)/p_anagram.C $(RTSHEADER) $(PSTLHEADER) $(PSTLROOT)/include/pstl/distributed_vector.h
	$(CXX) $(CFLAGS) $(PRFFLAGS) -c $(KKPATH)/p_anagram.C -o $@

p_anagram.o: $(KKPATH)/p_anagram.C $(RTSHEADER) $(PSTLHEADER) $(PSTLROOT)/include/pstl/distributed_vector.h
	$(CXX) $(CFLAGS) -c $(KKPATH)/p_anagram.C

tulipRemoteAction.o: $(PSTLROOT)/include/tulipRemoteAction.C $(RTSHEADER) $(PSTLHEADER)
	$(CXX) $(CFLAGS) -c $(PSTLROOT)/include/tulipRemoteAction.C

trc_p_anagram.o: $(KKPATH)/$(SRC).C $(RTSHEADER) $(PSTLHEADER) $(PSTLROOT)/include/pstl/distributed_vector.h
	$(CXX) $(CFLAGS) -ptv -c -D__MPI__ -DTRACING_ON $(KKPATH)/$(SRC).C -o $@
rpl_p_anagram.o: $(KKPATH)/$(SRC).C $(RTSHEADER) $(PSTLHEADER) $(PSTLROOT)/include/pstl/distributed_vector.h
	$(CXX) $(CFLAGS) -ptv -c -D__MPI__ -D_AA_REPLAY $(KKPATH)/$(SRC).C -o $@

trc_prf.o: $(KKPATH)/$(SRC).C $(RTSHEADER) $(PSTLHEADER) $(PSTLROOT)/include/pstl/distributed_vector.h
	$(CXX) $(CFLAGS) -ptv -c -D__MPI__ $(PRFFLAGS) -DTRACING_ON $(KKPATH)/$(SRC).C -o $@
rpl_prf.o: $(KKPATH)/$(SRC).C $(RTSHEADER) $(PSTLHEADER) $(PSTLROOT)/include/pstl/distributed_vector.h
	$(CXX) $(CFLAGS) -ptv -c -D__MPI__ $(PRFFLAGS) -D_AA_REPLAY $(KKPATH)/$(SRC).C -o $@


##########################################################################
prf_p_anagram: prf_p_anagram.o tulipRemoteAction.o profile.o
	$(LINKER) $(LDFLAGS) -o prf_p_anagram prf_p_anagram.o tulipRemoteAction.o profile.o -L$(MPILIBDIR) -ltulip -ll -lm  -lmpi

profile.o : $(PSTLROOT)/include/pstl/pstl_profile.h $(PROFILEROOT)/src/profile.C
	$(CXX) $(CFLAGS) $(PRFFLAGS) -c $(PROFILEROOT)/src/profile.C 
p_anagram: p_anagram.o tulipRemoteAction.o 
	$(LINKER) $(LDFLAGS) -o p_anagram p_anagram.o tulipRemoteAction.o -L$(MPILIBDIR) -ltulip -ll -lm  -lmpi

trc_p_anagram: trc_p_anagram.o tulipRemoteAction.o
	$(LINKER) $(LDFLAGS) -o $@  trc_p_anagram.o tulipRemoteAction.o -L$(MPILIBDIR) -ltrc-tulip -ll -lm -lmpi
rpl_p_anagram: rpl_p_anagram.o tulipRemoteAction.o
	$(LINKER) $(LDFLAGS) -o $@  rpl_p_anagram.o tulipRemoteAction.o -L$(MPILIBDIR) -lrpl-tulip -ll -lm -lmpi

trc_prf: trc_prf.o tulipRemoteAction.o profile.o
	$(LINKER) $(LDFLAGS) -o $@  trc_prf.o profile.o tulipRemoteAction.o -L$(MPILIBDIR) -ltrc-tulip -ll -lm -lmpi
rpl_prf: rpl_prf.o tulipRemoteAction.o profile.o
	$(LINKER) $(LDFLAGS) -o $@  rpl_prf.o profile.o tulipRemoteAction.o -L$(MPILIBDIR) -lrpl-tulip -ll -lm -lmpi
##########################################################################

# Other choice VER = p_anagram  without profiling
VER = prf
rpl     : rpl_$(VER) pcxx_aa0.trace
	rpl_$(VER)
pcxx_aa0.trace : p_anagram.trace
	ar2pcxx p_anagram.trace
p_anagram.trace : MPI.trc
	pcxx2ar MPI.trc newbic.edf p_anagram.trace
MPI.trc : mpi.0000.trc
	pcxx_merge -a mpi.0*.trc MPI.trc
mpi.0000.trc : trc_$(VER)
	trc_$(VER)  -hpcxx_EVENTCLASS G

##########################################################################

TRACES = *.trc *.trace profile.? profile.ctab

clean:
	-/bin/rm -f a.out core ii_file/* *.o *.a $(EXECUTABLES) $(TRACES) 

cleaninstall:	clean
	-/bin/rm -f $(INSTALLDEST)/*

install: $(INSTALLDEST)/p_anagram 

$(INSTALLDEST)/p_anagram : p_anagram
		@echo Installing $? in $(INSTALLDEST)
		if [ -d $(INSTALLDEST) ] ; then true; \
		else mkdir $(INSTALLDEST) ;fi
		@$(INSTALL) $? $(INSTALLDEST)

# eof
