
##### User configurable options #####

MAKE                 = make --no-print-directory

CPP                  = x86_64-momonga-linux-gcc -E
MPI_CC               = /usr/bin/mpicc
MPI_F77              = /usr/bin/mpif77
MPI_CLINKER          = $(MPI_CC)
MPI_FLINKER          = $(MPI_F77)
#
DEBUG_LIBS           = 
MPI_INC              = 
MPI_LIBS             = 
CFLAGS               = -O2 -mtune=generic -fPIC -fstack-protector 
FFLAGS               = -O2 -mtune=generic -fPIC -fstack-protector 
MPE_INCDIR           = /usr/include/mpich2
MPE_LIBDIR           = /usr/lib64/mpich2
MPE_SBINDIR          = /usr/sbin
PROF_LIBS            = -L$(MPE_LIBDIR) -lmpe $(MPI_LIBS)
LOG_LIBS             = -L$(MPE_LIBDIR) -llmpe -lmpe $(MPI_LIBS)
TRACE_LIBS           = -L$(MPE_LIBDIR) -ltmpe $(MPI_LIBS)
F2CMPI_LIBS          = -lmpe_f2cmpi
PROF_FLIBS           = -L$(MPE_LIBDIR) \
                       $(F2CMPI_LIBS) -lmpe \
                       $(MPI_LIBS)
LOG_FLIBS            = -L$(MPE_LIBDIR) \
                       $(F2CMPI_LIBS) -llmpe -lmpe \
                       $(MPI_LIBS)
#
C_INCS               = -I$(MPE_INCDIR) $(MPI_INC)
F_INCS               = -I$(MPE_INCDIR) $(MPI_INC)
LDFLAGS              = 
MPE_BUILD_FORTRAN2C  = yes

### End User configurable options ###

SHELL         = /bin/sh
RM            = rm

VPATH=.:$(srcdir)

srcdir        = /home/builduser/svn-x86_64/pkgs/mpich2/BUILD/mpich2-1.0.4p1/src/mpe2/src/wrappers/test

CC_FLAGS      = $(CFLAGS) $(C_INCS) $(MPE_COPTS)
FC_FLAGS      = $(FFLAGS) $(F_INCS) $(MPE_FOPTS)
CC_LDFLAGS    = $(LDFLAGS) $(CFLAGS) $(MPE_LDOPTS)
FC_LDFLAGS    = $(LDFLAGS) $(FFLAGS) $(MPE_LDOPTS)
C_EXECS       = cpilog cpilog_pack srtest comm1_isr
EXTRA_C_EXECS = cpi_trace cpi_log ncpilog ncpilog_pack iotest comm1_isr_loop 
F_EXECS       = fpilog fpilog_pack fcomm1_isr
EXTRA_F_EXECS = nfpilog_pack

.SUFFIXES: .c .f .no .o 

.c.o:
	$(MPI_CC) $(CC_FLAGS) -c $<

.f.o:
	$(MPI_F77) $(FC_FLAGS) -c $<

.c.no:
	$(MPI_CC) -DNO_MPI_LOGGING $(CC_FLAGS) -c $<
	mv -f $*.o $*.no

.F.o:
	rm -f mpe2tmp.f mpe2tmp.o
	$(CPP) $< > mpe2tmp.f && \
	$(MPI_F77) $(FC_FLAGS) -c mpe2tmp.f
	mv -f mpe2tmp.o $*.o

.F.no:
	rm -f mpe2tmp.f mpe2tmp.o
	$(CPP) -DNO_MPI_LOGGING $< > mpe2tmp.f && \
	$(MPI_F77) $(FC_FLAGS) -c mpe2tmp.f
	mv -f mpe2tmp.o $*.no

default: $(C_EXECS)
	@-if [ "$(MPE_BUILD_FORTRAN2C)" = "yes" ] ; then \
	      for pgm in $(F_EXECS) ; do \
	          $(MAKE) $$pgm ; \
	      done ; \
	  fi

all: default $(EXTRA_C_EXECS)
	@-if [ "$(MPE_BUILD_FORTRAN2C)" = "yes" ] ; then \
	      for pgm in $(EXTRA_F_EXECS) ; do \
	          $(MAKE) $$pgm ; \
	      done ; \
	  fi

cpi_trace: cpi.o
	$(MPI_CLINKER) $(CC_LDFLAGS) -o $@ $? $(TRACE_LIBS) $(DEBUG_LIBS) -lm

cpi_log: cpi.o
	$(MPI_CLINKER) $(CC_LDFLAGS) -o $@ $? $(LOG_LIBS) $(DEBUG_LIBS) -lm

cpilog: cpilog.o
	$(MPI_CLINKER) $(CC_LDFLAGS)  -o $@ $? $(LOG_LIBS) $(DEBUG_LIBS) -lm 

cpilog_pack: cpilog_pack.o
	$(MPI_CLINKER) $(CC_LDFLAGS)  -o $@ $? $(LOG_LIBS) $(DEBUG_LIBS) -lm 

ncpilog: cpilog.no
	$(MPI_CLINKER) $(CC_LDFLAGS)  -o $@ $? $(PROF_LIBS) $(DEBUG_LIBS) -lm 

ncpilog_pack: cpilog_pack.no
	$(MPI_CLINKER) $(CC_LDFLAGS)  -o $@ $? $(PROF_LIBS) $(DEBUG_LIBS) -lm 

fpilog: fpilog.o
	$(MPI_FLINKER) $(FC_LDFLAGS) -o $@ $? $(LOG_FLIBS) $(DEBUG_LIBS) -lm

fpilog_pack: fpilog_pack.o
	$(MPI_FLINKER) $(FC_LDFLAGS) -o $@ $? $(LOG_FLIBS) $(DEBUG_LIBS) -lm

nfpilog_pack: fpilog_pack.no
	$(MPI_FLINKER) $(FC_LDFLAGS) -o $@ $? $(PROF_FLIBS) $(DEBUG_LIBS) -lm

srtest: srtest.o
	$(MPI_CLINKER) $(CC_LDFLAGS)  -o $@ $? $(LOG_LIBS) $(DEBUG_LIBS) -lm

iotest: iotest.o
	$(MPI_CLINKER) $(CC_LDFLAGS)  -o $@ $? $(LOG_LIBS) $(DEBUG_LIBS) -lm

comm1_isr: comm1_isr.o
	$(MPI_CLINKER) $(CC_LDFLAGS)  -o $@ $? $(LOG_LIBS) $(DEBUG_LIBS) -lm

comm1_isr_loop: comm1_isr_loop.o
	$(MPI_CLINKER) $(CC_LDFLAGS)  -o $@ $? $(LOG_LIBS) $(DEBUG_LIBS) -lm

fcomm1_isr: fcomm1_isr.o
	$(MPI_FLINKER) $(FC_LDFLAGS) -o $@ $? $(LOG_FLIBS) $(DEBUG_LIBS) -lm

comm2_connect_accept: comm2_connect_accept.o
	$(MPI_CLINKER) $(CC_LDFLAGS)  -o $@ $? $(LOG_LIBS) $(DEBUG_LIBS) -lm

comm2_join: comm2_join.o
	$(MPI_CLINKER) $(CC_LDFLAGS)  -o $@ $? $(LOG_LIBS) $(DEBUG_LIBS) -lm

linktest: linktest_C

linktest_C: 
	@-$(MPE_SBINDIR)/mpetestlink cpi_trace \
	  "*** Link C program with the MPI tracing library .........................."
	@-$(MPE_SBINDIR)/mpetestlink cpi_log \
	  "*** Link C program with the MPI logging library .........................."
	@-$(MPE_SBINDIR)/mpetestlink cpilog \
	  "*** Link C program with the MPI and manual logging libraries ............."
	@-echo ; $(MAKE) clean

linktest_F77: 
	@-if [ "$(MPE_BUILD_FORTRAN2C)" = "yes" ] ; then \
	    $(MPE_SBINDIR)/mpetestlink fpilog \
	    "*** Link F77 program with the MPI and manual logging libraries ..........." ; \
	    $(MAKE) clean ; \
	    echo ; \
	  fi


runtest_C: 
	@-$(MPE_SBINDIR)/mpetestexec cpi_trace \
	  "*** Test C program with the MPI tracing library .........................."
	@-$(MPE_SBINDIR)/mpetestexeclog cpi_log \
	  "*** Test C program with the MPI logging library .........................."
	@-$(MPE_SBINDIR)/mpetestexeclog cpilog \
	  "*** Test C program with the MPI and manual logging libraries ............."
	@-echo ; $(MAKE) clean

runtest_F77: 
	@-if [ "$(MPE_BUILD_FORTRAN2C)" = "yes" ] ; then \
	      $(MPE_SBINDIR)/mpetestexeclog fpilog \
	      "*** Test F77 program with the MPI and manual logging libraries ..........." ; \
	      $(MAKE) clean ; \
	      echo ; \
	  fi

clean:
	@-$(RM) -f work.pc work.pcl
	@-$(RM) -f *.o *.no *~ PI*
	@-$(RM) -f mpe2tmp.f
	@-$(RM) -f $(C_EXECS) $(F_EXECS)
	@-$(RM) -f $(EXTRA_C_EXECS) $(EXTRA_F_EXECS)
	@-$(RM) -f *.clog2 *.slog2

distclean: clean
	@-$(RM) -f Makefile
