Makefile NT

# Makefile for the a parallel program on NTs using MPI.
#
# Note: This file is written for the gnu version of make, and it may not be compatible
# with other versions.

# Make configuration variables
VPATH = Object_MPI:Include:../bin

# Preprocessor variables
CPP = fpp

# CPP directive -DWPRNG (/DWPRNG on NT).
# When using PRNG and NAG, LIBS should include the correct libraries.
# Note (10/8/99) PRNG code for NT version (using integer*4) included with the code.
CPPFLAGS = /P /DWINNT /DMP /DMPI /DWPRNG

# Fortran compiler variables change for MPI-Pro on NT, 7-22-99
FC = mpif77

# FFLAGS = /define:MPI_VIA_proto /debug:full /optimize:0 -IInclude
FFLAGS = /debug:full /optimize:0 -IInclude -IC:\PROGRA~1\MPIPro\include

# Linker/loader variables
LDFLAGS = /link /out:mypackage-${MYPACKAGE_ARCH}.exe
#
# Do not set LIB = without including the previously defined LIB, as LIB is set by the system.
# Without LIB, things will be missing from the path.
#
# PRNG is not installed on the Velocity Cluster. To build PRNG, retrieve it from
# ftp://ftp.tc.cornell.edu/pub/utilities/prng.tar.Z. The makefile is for unix and must be
# converted for Velocity.
#
# The IMSL libs listed are set to LINK_F90.
# The specific files are "IMSL.LIB IMSLMPISTUB.LIB IMSLS_ERR.LIB"
LIBS = "javascript:void(null);"

# Suffix rule definitions # All three of these need to be here. ".F.f" is necessary for working
# with RCS and GNU make, and ".f.o" and ".F.o" are always necessary.

# change for NT, .f-->.for, .o-->.obj
.SUFFIXES: .obj .for .F

.F.for: 
 ${CPP} ${CPPFLAGS} $*.F > $*.for 
 cp $*.for f_FILES_MPI/ 
.for.obj: ${FC} -c ${FFLAGS} $<
 mv $*.obj Object_MPI 
.F.obj: 
 ${CPP} ${CPPFLAGS} $*.F > $*.for 
 cp $*.for f_FILES_MPI/ 
 ${FC} -c ${FFLAGS} $*.for 
 mv $*.obj Object_MPI 
 rm $*.for 
objects = a.obj   b.obj  c.obj  d.obj  prng.obj 
# All rules go below here 
mypackage-${MYPACKAGE_ARCH}.exe: ${objects} 
 cd Object_MPI; ${FC} ${LDFLAGS} ${objects} ${LIBS}; \ 
 mv $(@F) ${MYPACKAGE_ROOT}/bin
clean:
 rm -f Object_MPI/*.obj *.obj f_FILES_MPI/*.for