1 MPE (Multi-Processing Environment) 2 ---------------------------------- 3 4 Version 2.4.6. March, 2008 5 6 Mathematics and Computer Science Division 7 Argonne National Laboratory 8 9II. CONFIGURATION 10----------------- 11 12MPE can be configured and installed as an extension to most MPI standard 13-compliant MPI implementations, e.g. MPICH-2, MPICH, LAM/MPI, Open/MPI, 14SGI's MPI, HP-UX's MPI and IBM's MPI. It has been integrated seamlessly 15into MPICH and MPICH-2 distributions, so MPE will be installed automatically 16during MPICH-X's installation process. 17 18 19 20II. a) Configuration Model 21--------------------------- 22 23MPE is designed to be used as an extension to an existing MPI implementation, 24so its configuration model assumes a general MPI development environment. 25Here are the major variables that MPE configure reads, all can be read 26through environment variables or as variables as part of configure command. 27Some has --enable-xxx counterparts that can be read through configure command. 28 29CC : C compiler used to create serial executable, 30 e.g. xlc on BG/P MPI. 31CFLAGS : compiler flags for CC. 32 33MPI_CC : C compiler for MPI program, e.g. mpixlc_r for BG/P MPI, 34 or mpicc from MPICHx, Open-MPI, or LAM-MPI. Setting MPI_CC 35 to MPI wrapper means no need to set MPI_INC and MPI_LIBS. 36MPI_CFLAGS : MPI C compiler flags to compile MPI program. 37 38F77 : Fortran compiler used to create serial executable, 39 e.g. xlf on BG/P MPI. 40FFLAGS : compiler flags for F77. 41 42MPI_F77 : Fortran compiler for MPI program, e.g. mpixlf77_r for BG/P MPI, 43 or mpif77 from MPICHx, Open-MPI, or LAM-MPI. Setting MPI_F77 to 44 MPI wrapper means no need to set MPI_INC and MPI_LIBS. 45MPI_FFLAGS : MPI Fortran compiler flags to compile MPI Fortran program. 46 47MPI_INC : MPI include path prefixed with -I. It specifies MPI header files 48 location, where mpi.h and mpif.h are located, e.g. 49 -I/pkgs/MPI/include. This flag will be added to MPI_CFLAGS and 50 MPI_FFLAGS, i.e. the MPI include path can be explicitly set in 51 MPI_CFLAGS and MPI_FFLAGS without setting MPI_INC. 52MPI_LIBS : MPI library flags with -L and -l. It specifies the location of 53 the MPI libraries. The flags contains library path prefixed with 54 -L and MPI libraries name prefixed with -l, e.g. -L/opt/MPI/lib 55 -lpmpich -lmpich. 56F2CMPI_LIBS : compiler's library flag for Fortran to C MPI profiling wrapper 57 library, e.g. "-lfmpich" when MPI_CC=mpicc & MPI_F77=mpif77 58 for MPICH. 59 60MPERUN : MPI application launch command. This variable is necessary only 61 if user wants to run "make check", "make installcheck-all" or 62 "$sbindir/mpecheckinstall -run" and the default MPERUN value, 63 "$bindir/mpiexec -n 4", is not correct. This variable does 64 not launch the process manager if it is required to run 65 the MPI application. Therefore, user needs to make sure that 66 the MPI runtime environment has been set up correctly before 67 invoking "make check", "make installcheck-all" or 68 "$sbindir/mpecheckinstall -run". 69 70It is recommended that user set these variables through configure command, 71e.g mpe2/configure CC=xlc_r F77=xlf_r MPI_CC=mpixlc_r MPI_F77=mpixlf77_r. 72In some MPI implementations, like HP-UX's, MPI_CC and MPI_F77 may have 73been reserved for use by the MPI implementation, use the configure options, 74--enable-xxx, to set MPI_CC and MPI_F77 instead. 75 76For those who require Cross-Compilation support, please refer to the 77INSTALL.cross file. 78 79 80II. b) Build Options and Features 81---------------------------------- 82 83MPE's configure is written using autoconf 2, and supports VPATH style install 84process. It means the actual source directory and the building directory 85can be in 2 different locations. This allows the same source directory to be 86used to build multiple versions of MPE with different options and still won't 87mess up the original source. It is highly recommended that user should do a 88VPATH build. Also MPE involves several different independent packages, in 89order to create a tightly integrated environment for user, it is recommended 90that user should do a "make install" to install the MPE in a separate directory 91after the build is done. The benefit is that all utility programs will be in 92bin/, all libraries will be in lib/ and all graphic tools will be nicely 93organized in share/ ... Finally, to test if the MPE installation is working 94correctly, user is urged to do "make installcheck" or the demanding test 95"make installcheck-all MPERUN='<path_to_mpiexec> -n 4'" in the build directory. 96 97There are 2 types of configure options. 98 99 1) MPI implementation and User options 100 2) Generic configure flags supplied by autoconf 2 101 102For a list of flags/switches for type 1 (not type 2) in MPE, do 103"<mpe2>/configure --help=recursive". 104 105For a more concise list of command line arguments like 106--with-xxx and --enable-xxx, do 107"<mpe2>/configure --help=recursive | grep "^--" | sort - | uniq" 108 109The following is not a complete list but some of the more important ones. 110Generic flags: 111--prefix=INSTALL_DIR Specifies the final install directory for 112 "make install". All libraries, utility 113 programs, graphic programs and examples 114 are installed in a standard directory 115 structure without files created in the 116 building process. 117 118--x-includes=X_INC Specifies the directory where X include 119 files are located. This is used when 120 configure has trouble in locating X in 121 user system. 122 123--x-libraries=X_LIBS Specifies the directory where X libraries 124 are located. This is used when configure 125 has trouble in locating X in user system. 126 127 128MPI implementation Options: 129Besides the following command line options, the serial C and Fortran compilers 130can be specified through typical environment variables CC and F77. 131 132--with-mpicc=MPI_CC Specify MPI C compiler to generate parallel 133 executable, e.g. mpcc for AIX. This can be 134 specified through environmental parameter 135 MPI_CC. 136 137--with-mpif77=MPI_F77 Specify MPI F77 compiler to generate parallel 138 executable, e.g. mpxlf for AIX. This can be 139 specified through environmental parameter 140 MPI_F77. 141 142--with-mpiinc=MPI_INC Specify compiler's include flag for MPI 143 include directory, 144 e.g. "-I/pkgs/MPI/include" for mpi.h 145 146--with-mpilibs=MPI_LIBS Specify compiler's library flag for MPI 147 libraries, 148 e.g. "-L/pkgs/MPI/lib -lpmpich -lmpich" 149 150--enable-f77 Enable the compilation of routines that 151 require a Fortran compiler. If configuring 152 with MPICH, the configure in the top-level 153 MPICH directory will choose the appropriate 154 value for you. However, it can be overridden. 155 The default is yes, --enable-f77. 156 157--enable-f2cmpilib Enable the building of MPE's internal Fortran 158 to C MPI wrapper library. The default is yes, 159 --enable-f2cmpilib 160 161--with-f2cmpilibs=F2CMPI_LIBS Specify compiler's library flags for Fortran 162 to C MPI wrapper library. Using this option 163 will force --disable-f2cmpilib. 164 e.g. "-lfmpich" when configuring MPE for MPICH 165 166Other User Options: 167--enable-echo Turn on strong echoing. The default is no, 168 --disable-echo. 169 170--with-mpelibname=MPE_LIBNAME Specify the MPE library name instead of the 171 default 'mpe'. e.g. if MPE_LIBNAME="MPE", 172 then the libraries generated will be libMPE.a, 173 liblMPE.a, libtMPE.a, libaMPE.a and 174 libMPE_f2cmpi.a. This option is necessary 175 when configuring MPE for a existing and older 176 version of MPICH which has MPE installed. 177 178--enable-misc build MPE miscellaneous routines, e.g. 179 MPE_Errors_xxx(), MPE_Seq_xxx(), 180 MPE_xxxTags() and MPE_GetHostName().... 181 The default enable=yes. 182 183--enable-logging build MPE logging routines related to 184 CLOG-2, e.g. MPE_Log_xxx()... 185 The default enable=yes. 186 187--enable-wrappers build various MPI wrapper libraries. 188 MPI logging library, liblmpe.a; 189 MPI tracing library, libtmpe.a; 190 Fortran to C MPI library, libmpe_f2cmpi.a. 191 192--enable-graphics build MPE graphics routines. If disabled 193 then the MPE routines that make use of X11 194 graphics will NOT be built. This is 195 appropriate for systems that either do not 196 have the X11 include files or that do not 197 support X11 graphics. The default enable=yes. 198 199--enable-collchk bild MPI Collective and Datatype 200 checking library, libmpe_collchk.a 201 202--enable-slog2[=build] Configure all the SLOG-2 tools. 203 --enable-slog2 without any argument will 204 use the prebuilt jar files. 205 --enable-slog2=build will rebuild all the 206 jar files from the source code. 207 The default is enable=yes. 208 209--with-java=JAVA_HOME Specify the path of the top-level directory 210 of the Java, j2sdk, installation. If this 211 option or --with-java2 is not given, 212 slog2sdk configure will try to locate j2sdk 213 for you to build slog2 related tools. 214 215--with-java2=JAVA_HOME Specify the path of the top-level directory 216 of the Java, j2sdk, installation. If this 217 option or --with-java2 is not given, 218 slog2sdk configure will try to locate j2sdk 219 for you to build slog2 related tools. 220 221In order to achieve maximum performance benefit, it is recommended to 222use latest Java 2, i.e. JDK-1.4.x to build Jumpshot-4. 223 224 225 226 227III. INSTALLATION INSTRUCTIONS 228------------------------------- 229 230As noted earlier, the MPE library can be installed as part of the MPICH 231configure or as an extension of an existing MPI implementation. Below are 232instructions and examples for typical installation of MPE on popular MPI 233implementations. 234 235 236 237III. a) Configuring as part of the MPICH-X configure 238----------------------------------------------------- 239 240The configure in the MPICH directory will try to determine the necessary 241information and pass it to the MPE configure. If no options are given, 242the MPE will automatically be configured by default. However, the user 243can provide extra configuration information to MPE through old MPICH-1 244configure with the following options: 245 246 -mpe_opts=MPE_OPTS 247 248where MPE_OPTS is one or more of the choices in section II. Multiple 249instances of -mpe_opts are allowed to specify different options for 250the MPE configure. 251 252The MPICH-2 configure works seamlessly with MPE's, so MPE configure 253options can be passed down from MPICH-2 _without_ -mpe_opts. 254 255 256III. b) Configuring as part of an existing MPI implementation 257------------------------------------------------------------- 258 259The following are some examples for configuring MPE for an existing 260MPI implementation. 261 262For SGI MPI, e.g. denali.mcs.anl.gov, do the following for default ABI, -n32 263 264 setenv MAKE gmake 265 ${MPE_SRC_DIR}/configure --with-mpilibs=-lmpi \ 266 --with-java=/usr/java-1.1.6/usr/java 267 make 268 make install PREFIX=${MPE_INSTALL_DIR} 269 make installcheck PREFIX=${MPE_INSTALL_DIR} 270 271for 64 bits ABI, either set CC="cc -64" and F77="f77 -64" or add options 272CFLAGS=-64 and FFLAGS=-64 to the configure options. 273 274 275For IBM MPI, e.g. quad.mcs.anl.gov, do 276 277 setenv MPI_CC mpcc 278 setenv MPI_F77 mpxlf 279 ${MPE_SRC_DIR}/configure --with-java=/homes/chan/pkgs/java/J1.1.8 280 make 281 make install PREFIX=${MPE_INSTALL_DIR} 282 make installcheck PREFIX=${MPE_INSTALL_DIR} 283 284 285For SUN MPI CLuster Tools 7 and older versions, do 286 287 setenv MPI_CC mpcc 288 setenv MPI_F77 mpf90 289 ${MPE_SRC_DIR}/configure --with-mpilibs="-L${MPI_LIB_DIR} -lmpi" 290 make 291 make install PREFIX=${MPE_INSTALL_DIR} 292 make installcheck PREFIX=${MPE_INSTALL_DIR} 293 294 without -L${MPI_LIB_DIR} in --with-mpilibs, mpe2 configure may fail. 295 296 297For HP-UX's MPI implementation, 298 299 ${MPE_SRC_DIR}/configure --with-mpicc=mpicc \ 300 --with-mpif77=mpif77 \ 301 --with-flib_path_leader="-Wl,-L" 302 make 303 make install PREFIX=${MPE_INSTALL_DIR} 304 make installcheck PREFIX=${MPE_INSTALL_DIR} 305 306If MPE's Fortran support on HP-UX's MPI is NOT working, try using 307HP-UX's libfmpi.a if it is there. Here is the configure options. 308 309 ${MPE_SRC_DIR}/configure --with-mpicc=mpicc \ 310 --with-mpif77=mpif77 \ 311 --with-flib_path_leader="-Wl,-L" \ 312 --with-f2cmpilibs=-lfmpi 313 make 314 make install PREFIX=${MPE_INSTALL_DIR} 315 make installcheck PREFIX=${MPE_INSTALL_DIR} 316 317note: configure option --with-flib_path_leader="-Wl,-L" may not needed. 318 319 320For LAM/MPI implementation, do 321 322 setenv MPI_CC ${LAM_INSTALL_DIR}/bin/mpicc 323 setenv MPI_F77 ${LAM_INSTALL_DIR}/bin/mpif77 324 ${MPE_SRC_DIR}/configure --with-mpilibs="-L${LAM_INSTALL_DIR}/lib -lpmpi" \ 325 --with-java=/sandbox/jdk1.3.1 326 make 327 make install PREFIX=${MPE_INSTALL_DIR} 328 make installcheck PREFIX=${MPE_INSTALL_DIR} 329 330 optional tests: 331 "launch the process manager": e.g. lamboot. 332 make installcheck-all PREFIX=${MPE_INSTALL_DIR} \ 333 MPERUN="<path_to_mpirun> -np 4" 334 335Using MPE with LAM for fortran MPI program is not working until recently. 336Configure options listed above enable MPE's internal Fortran to C MPI library. 337To use LAM's Fortran to C MPI library in LAM 6.3.3 or later, liblamf77mpi.a, 338do 339 340 setenv MPI_CC ${LAM_INSTALL_DIR}/bin/mpicc 341 setenv MPI_F77 ${LAM_INSTALL_DIR}/bin/mpif77 342 ${MPE_SRC_DIR}/configure --with-mpilibs="-L${LAM_INSTALL_DIR}/lib -lpmpi" \ 343 --with-f2cmpilibs=-llamf77mpi \ 344 --with-java2=/sandbox/jdk1.3.1 345 make 346 make install PREFIX=${MPE_INSTALL_DIR} 347 make installcheck PREFIX=${MPE_INSTALL_DIR} 348 349LAM 6.5.6 to 6.5.9 has a bug on autoconf variable, WORDS_BIGENDIAN, that 350interferes with MPE's configure in the correct detection of endianiness 351of the machine, e.g. enabling byte swapping on little endian machine, 352e.g. intel box. For details, see 353 354http://www.lam-mpi.org/MailArchives/lam/2002/09/4893.php 355http://www.lam-mpi.org/MailArchives/lam/2002/09/4894.php 356http://www.lam-mpi.org/MailArchives/lam/2002/09/4895.php 357http://www.lam-mpi.org/MailArchives/lam/2002/09/4896.php 358 359Preferred Solution: Upgrade to newer version of LAM. 360 Or 361Temporary Solution: Hand edit src/logging/mpe_logging_conf.h to define 362 correct WORDS_BIGENDIAN. 363 364LAM 7.0 or later has included libpmpi.a into libmpi.a, so --with-mpilibs 365may not be needed. 366 367LAM 7.1.2b23 or older has a bug on MPI_*_c2f( MPI_*_NULL ) that causes 368seg. fault, see 369http://www.lam-mpi.org/MailArchives/lam/2005/08/11073.php 370So fortran LAM/MPI program that uses Isend/Irecv cannot use libmpe_f2cmpi.a, 371(the reason is that MPI_Wait on the request from Isend/Irecv returns 372MPI_REQUEST_NULL which could not be translated by MPI_Request_c2f() in 373libmpe_f2cmpi.a) 374 375Preferred Solution: Upgrade to newer version of LAM, 7.1.2b24 or later 376 Or 377Temporary Solution: Configured with --with-f2cmpilibs=-llamf77mpi. 378 379 380For OpenMPI, do 381 382 ${MPE_SRC_DIR}/configure MPI_CC=${OPENMPI_INSTALL_DIR}/bin/mpicc \ 383 CC=<C_COMPILER_used_to_build_OpenMPI> \ 384 MPI_F77=${OPENMPI_INSTALL_DIR}/bin/mpif77 \ 385 F77=<FORTRAN_COMPILER_used_to_build_OpenMPI> \ 386 --with-java2=/usr/local/j2sdk-1.4.2 387 --prefix=<MPE_INSTALL_DIR> 388 make 389 make install 390 make installcheck 391 make installcheck-all MPERUN="${OPENMPI_INSTALL_DIR}/bin/mpiexec -n 4" 392 393OpenMPI-1.0 does not instantiate MPI_F_STATUS(ES)_IGNORE, so fortran program 394may not be able to use MPI_STATUS(ES)_IGNORE with OpenMPI+MPE. 395 396See http://www.open-mpi.org/community/lists/users/2005/11/0380.php 397 398 399For prebuilt version of MPICH-1: Since old MPICH-1 comes with an older version 400of MPE. The MPI wrappers that come with MPICH-1 searches old MPE headers 401and link with old MPE libraries first. To avoid using incompatible MPE 402headers and libraries, MPE2 should be built with native compilers used in 403MPI wrappers (i.e. setting CC and F77 but NOT MPI_CC and MPI_F77) and use 404MPI_INC to specify MPI include path and MPI_LIBS to specify the MPI libraries. 405e.g. on NCSA's Turing Mac cluster, configuing MPE2 for mpich-gm (which is 406based on mpich-1.2.6): 407 408 ${MPE_SRC_DIR}/configure CC=cc F77="xlf90 -qnocommon -qextname -qfixed=72" \ 409 MPI_INC=-I/turing/software/mpich-gm/include \ 410 MPI_LIBS="-Wl,-multiply_defined,suppress \ 411 -Wl,-u,_gmpi_macosx_malloc_hack \ 412 -L/turing/software/mpich-gm/lib \ 413 -lpmpich -lmpich -lpmpich -lmpich \ 414 -L/turing/software/lib -lgm -lpthread" \ 415 --disable-safePMPI \ 416 --prefix=<MPE_INSTALL_DIR> 417 make 418 make install 419 make installcheck 420 make installcheck-all MPERUN="/turing/software/mpich-gm/bin/mpirun -n 4" 421 422MPE2 is careful in arranging its include files and libraries flags 423during compilation, i.e. MPE2's include path is always searched before MPI's 424and MPE's library path comes before MPI's, so to avoid conflicting headers 425and libraries from older MPE installation. 426 427For prebuilt version of MPICH-1.1.2 or MPICH-1.2.0, e.g. donner, do 428 429 setenv MPI_CC ${MPICH_INSTALL_DIR}/bin/mpicc 430 setenv MPI_F77 ${MPICH_INSTALL_DIR}/bin/mpif77 431 ${MPE_SRC_DIR}/configure --with-f2cmpilibs=-lfmpich \ 432 --with-mpelibname=newMPE \ 433 --with-java=/sandbox/j2sdk1.4.2 434 make 435 make install PREFIX=${MPE_INSTALL_DIR} 436 make installcheck PREFIX=${MPE_INSTALL_DIR} 437 438It is important to use the configure option --with-mpelibname to specify a 439different MPE library name than the default "mpe" when configuring MPE for 440older MPICH. Without this option, the linkage tests in MPE would most likely 441use the old MPE libraries in the MPICH instead of the newly built MPE 442libraries in resolving the MPE symbols. Also the option --with-f2cmpilibs 443forces MPE to use the Fortran to C MPI wrapper library in previous 444version of MPICH. Not using --with-f2cmpilibs would cause MPE to use 445its own Fortran to C MPI profiling wrapper library. 446 447 448For BlueGene/Light's MPI implementation: If the compilers are set up correctly 449 450 ${MPE_SRC_DIR}/configure \ 451 MPI_CC=blrts_xlc MPI_F77=blrts_xlf CC=xlc F77=xlf \ 452 MPI_INC="-I/bgl/BlueLight/ppcfloor/bglsys/include" \ 453 MPI_LIBS="-L/bgl/BlueLight/ppcfloor/bglsys/lib \ 454 -lmpich.rts -lmsglayer.rts -lrts.rts -ldevices.rts -lc" \ 455 CFLAGS=-O3 FFLAGS=-O3 \ 456 --with-java=/usr/lib/IBMJava2/jre \ 457 --disable-misc --disable-graphics --disable-sample --disable-rlog 458 459i.e. make sure that blrts_xlc uses the same xlc as listed in CC, the same 460 applies to blrts_xlf. 461 462If the above does not work, try the following: 463 464for older XL compilers, do 465 466 ${MPE_SRC_DIR}/configure \ 467 MPI_CC="/opt/ibmcmp/vac/7.0/bin/xlc \ 468 -F /etc/opt/ibmcmp/vac/7.0/blrts-vac.cfg" \ 469 MPI_F77="/opt/ibmcmp/xlf/9.1/bin/xlf \ 470 -F /etc/opt/ibmcmp/xlf/9.1/blrts-xlf.cfg" \ 471 CC="/opt/ibmcmp/vac/7.0/bin/xlc -F /etc/opt/ibmcmp/vac/7.0/vac.cfg" \ 472 F77="/opt/ibmcmp/xlf/9.1/bin/xlf -F /etc/opt/ibmcmp/xlf/9.1/xlf.cfg" \ 473 MPI_INC="-I/bgl/BlueLight/ppcfloor/bglsys/include" \ 474 MPI_LIBS="-L/bgl/BlueLight/ppcfloor/bglsys/lib \ 475 -lmpich.rts -lmsglayer.rts -lrts.rts -ldevices.rts -lc" \ 476 --with-java=/usr/lib/IBMJava2/jre \ 477 --disable-misc --disable-graphics --disable-sample --disable-rlog \ 478 CFLAGS=-O3 FFLAGS=-O3 479 480For newer XL compilers, do 481 482 ${MPE_SRC_DIR}/configure \ 483 CC="/soft/apps/ibmcmp-20050414/vac/7.0/bin/xlc \ 484 -F /soft/apps/ibmcmp-20050414/etc/opt/ibmcmp/vac/7.0/vac.cfg" \ 485 F77="/soft/apps/ibmcmp-20050414/xlf/9.1/bin/xlf \ 486 -F /soft/apps/ibmcmp-20050414/etc/opt/ibmcmp/xlf/9.1/xlf.cfg" \ 487 MPI_CC="/soft/apps/ibmcmp-20050414/vac/7.0/bin/xlc -F \ 488 /soft/apps/ibmcmp-20050414/etc/opt/ibmcmp/vac/7.0/blrts-vac.cfg" \ 489 MPI_F77="/soft/apps/ibmcmp-20050414/xlf/9.1/bin/xlf -F \ 490 /soft/apps/ibmcmp-20050414/etc/opt/ibmcmp/xlf/9.1/blrts-xlf.cfg" \ 491 MPI_INC="-I/bgl/BlueLight/DRV100_2005-050311PM/ppc/bglsys/include" \ 492 MPI_LIBS="-L/bgl/BlueLight/DRV100_2005-050311PM/ppc/bglsys/lib \ 493 -lmpich.rts -lmsglayer.rts -lrts.rts -ldevices.rts -lc" \ 494 CFLAGS=-O3 FFLAGS=-O3 \ 495 --with-java=/usr/lib/IBMJava2/jre \ 496 --disable-misc --disable-graphics --disable-sample --disable-rlog 497 498Preferred approach: MPI_INC and MPI_LIBS should be included in some kind of 499mpicc/mpif77 scripts, e.g. mpicc_ibm(or mpxlc) and mpif77_ibm(or mpxlf) 500wrappers 501 502 ${MPE_SRC_DIR}/configure \ 503 MPI_CC=/home/chan/bin/mpicc_ibm \ 504 MPI_F77=/home/chan/bin/mpif77_ibm \ 505 CC=/opt/ibmcmp/vac/7.0/bin/xlc \ 506 F77=/opt/ibmcmp/xlf/9.1/bin/xlf \ 507 --with-java=/usr/lib/IBMJava2/jre \ 508 --disable-misc --disable-graphics --disable-sample --disable-rlog 509 510After the successful configure, do make and make install. 511 512 make 513 make install PREFIX=${MPE_INSTALL_DIR} 514 515 516For older MacOSX's MPICH2 which is built with gcc and gfortran: 517 518 ${MPE_SRC_DIR}/configure MPI_CC=${MPICH2_INSTALL_DIR}/bin/mpicc \ 519 MPI_F77=${MPICH2_INSTALL_DIR}/bin/mpif77 \ 520 CC=gcc F77=gfortran \ 521 MPI_LIBS=" -lSystemStubs -lSystem -ldl" \ 522 --prefix=<MPE_INSTALL_DIR> 523 make 524 make install 525 make installcheck 526 make installcheck-all MPERUN="${MPICH2_INSTALL_DIR}/bin/mpiexec -n 4" 527 528where MPI_LIBS=" -lSystemStubs -lSystem -ldl" is needed to get fortran 529program to link correctly if the mpif77 does not have the linking flags. 530This seems to be necessary for some older gcc/gfortran combination on MaxOSX. 531 532 533III. c) Miscellaneous Info about the Build System. 534-------------------------------------------------- 535 5363 extra variables, MPE_COPTS, MPE_FOPTS, and MPE_LDOPTS, are included in 537almost all of MPE's Makefiles to mimic the usage of CFLAGS, FFLAGS and LDFLAGS. 538 MPE_COPTS is the CFLAGS equivalent, 539 MPE_FOPTS is the FFLAGS equivalent, 540 MPE_LDOPTS is the LDFLAGS equivalent. 541These variables are not set in configures and Makefiles. So it allows 542end-user to quickly set one of this variables in Makefile through environment 543variable without rerun configure. For instance, if user forgets to set 544CFLAGS=-g in configuring MPE, one can do "make MPE_COPTS=-g" instead and 545this can be done selectively in any subpackages. 546