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

MAKE                 = make --no-print-directory

MPI_CC               = /proj/tpfimos/larour/Libraries/linux/mpich2-1.0.2p1/bin/mpicc
MPI_F77              = /proj/tpfimos/larour/Libraries/linux/mpich2-1.0.2p1/bin/mpif77
MPI_CLINKER          = $(MPI_CC)
MPI_FLINKER          = $(MPI_F77)
#
DEBUG_LIBS           = 
MPI_INC              = 
MPI_LIBS             = 
CFLAGS               =  -DUSE_STDARG -DHAVE_PROTOTYPES
FFLAGS               = 
MPE_INCDIR           = /proj/tpfimos/larour/Libraries/linux/mpich2-1.0.2p1/src/mpe2/include
MPE_LIBDIR           = /proj/tpfimos/larour/Libraries/linux/mpich2-1.0.2p1/src/mpe2/lib
LOG_LIBS             = -L$(MPE_LIBDIR) -llmpe -lmpe $(MPI_LIBS)
TRACE_LIBS           = -L$(MPE_LIBDIR) -ltmpe $(MPI_LIBS)
F2CMPI_LIBS          = -lmpe_f2cmpi
FLIB_PATH            = -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
RM                   = rm

### End User configurable options ###

VPATH=.:$(srcdir)

srcdir        = /proj/tpfimos/larour/Libraries/linux/mpich2-1.0.2p1/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)
EXECS         = cpilog cpilog_pack srtest

.SUFFIXES: .c .f .o 

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

default: $(EXECS)
	@-if [ "$(MPE_BUILD_FORTRAN2C)" = "yes" ] ; then \
	     $(MAKE) fpilog ; \
	     $(MAKE) fpilog_pack ; \
	 fi

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

cpi_trace: cpi.o
	$(MPI_CLINKER) $(CC_LDFLAGS) -o $@ $? $(TRACE_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 

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

fpilog_pack: fpilog_pack.o
	$(MPI_FLINKER) $(FC_LDFLAGS) -o $@ $? $(FLIB_PATH) $(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

linktest: linktest_C

linktest_C: 
	@-echo ; \
	echo "** Testing if C application can be linked with logging library" ; \
	$(RM) -f cpi_log ; \
	$(MAKE) cpi_log ; \
	if test -x cpi_log ; then \
	    echo "** C application can be linked with logging library" ; \
	    $(RM) -f cpi_log ; \
	else \
	    echo "** C application CANNOT be linked with logging library" ; \
	fi 
	@-echo ; \
	echo "** Testing if C application can be linked with tracing library" ; \
	$(RM) -f cpi_trace ; \
	$(MAKE) cpi_trace ; \
	if test -x cpi_trace ; then \
	    echo "** C application can be linked with tracing library" ; \
	    $(RM) -f cpi_trace ; \
	else \
	    echo "** C application CANNOT be linked with tracing library" ; \
	fi 
	@-echo ; \
	echo "** Testing if C application can use both automatic and manual logging together" ; \
	$(RM) -f cpilog ; \
	$(MAKE) cpilog ; \
	if test -x cpilog ; then \
	    echo "** C application can use both automatic and manual logging together" ; \
	    $(RM) -f cpilog ; \
	else \
	    echo "** C application CANNOT use both automatic and manual logging together" ; \
	fi ; \
	echo
	@-$(MAKE) clean

linktest_F77: 
	@-if [ "$(MPE_BUILD_FORTRAN2C)" = "yes" ] ; then \
	    echo ; \
	    echo "** Testing if Fortran77 application can be linked with logging library" ; \
	    $(RM) -f fpilog ; \
	    $(MAKE) fpilog ; \
	    if test -x fpilog ; then \
	        echo "** Fortran77 application can be linked with logging library" ; \
	        $(RM) -f fpilog ; \
	    else \
	        echo "** Fortran77 application CANNOT be linked with logging library" ; \
	    fi ; \
	    echo ; \
	    $(MAKE) clean ; \
	  fi

clean:
	@-$(RM) -f work.pc work.pcl
	@-$(RM) -f *.o *~ PI* $(EXECS)
	@-$(RM) -f cpi_log cpi_trace cpilog fpilog fpilog_pack srtest
	@-$(RM) -f *.clog2 *.slog2

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