[mpich] MPICH primary repository branch, master, updated. v3.1-173-g4e5f84a
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "MPICH primary repository". The branch, master has been updated via 4e5f84a5b7e3475a5c4db19bd0f4272fdae1e850 (commit) via 16dceb60384235cb8bc051eabd69c606866054d8 (commit) via 1a9fb56e76e1d734457adb3e0e7962e689af3bc6 (commit) via ef8b243a589c3ba80f601b31428dba59890625a8 (commit) via 13ebb2138c123c3e92f08440816b9d29e1f01530 (commit) via df013e531005449aed76ff0d86b975e724a8d14a (commit) via dd261276add8f0fb69fb99fd73f20694eadf3aa4 (commit) via e405c7109ca9dbce9455dae5384197d4ed37a026 (commit) via 998d9c677c7fdc4a4e89d5d726a35bdb80867b0d (commit) via 41ecf98e10a6e47c852a64b3b20f94d4b09ec53c (commit) via 3276739f61e24724d3f31413250e482868beb73e (commit) via 8341cd2e906e0a3602a0ef60ea94f891dd9d74cb (commit) via 4a7b31f84d5e15aae94f03189dff4533d17e37d5 (commit) from 7d7a9039036a4763a813f4c6789eb86f2826cca8 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://git.mpich.org/mpich.git/commitdiff/4e5f84a5b7e3475a5c4db19bd0f4272fda... commit 4e5f84a5b7e3475a5c4db19bd0f4272fdae1e850 Author: Pavan Balaji <[email protected]> Date: Wed Apr 16 14:38:05 2014 -0500 Make "F77" an expert-level setting. The user can now enable/disable fortran using the --enable-fortran option, instead of separate --enable-f77 and --enable-fc. Expert users can control specific Fortran standards to use with --enable-fortran=f77,f90 (and f08 in the future). Also allow the user to specify only "FC". If "F77" is not specified, we use the same compiler as FC. We now use mpifort as the primary Fortran wrapper, with mpif90 as a symlink to it for backward compatibility. If the user specifies a different F77 compiler than the FC compiler, or if FFLAGS and FCFLAGS are different, then a separate mpif77 is generated. Otherwise, mpif77 is a symlink to mpifort. Signed-off-by: Ken Raffenetti <[email protected]> diff --git a/Makefile.am b/Makefile.am index baf94d1..4d206a6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -231,6 +231,8 @@ install-exec-hook: cd ${DESTDIR}${bindir} && ln -f -s mpicxx mpic++ ; fi ; \ if test -e ${DESTDIR}${bindir}/mpifort ; then \ cd ${DESTDIR}${bindir} && ln -f -s mpifort mpif90 ; fi ; \ + if test -e ${DESTDIR}${bindir}/mpifort -a ! -e ${DESTDIR}${bindir}/mpif77 ; then \ + cd ${DESTDIR}${bindir} && ln -f -s mpifort mpif77 ; fi ; \ if test -e ${DESTDIR}${libdir}/lib@MPILIBNAME@@SHLIB_EXT@ ; then \ cd ${DESTDIR}${libdir} && ln -f -s lib@MPILIBNAME@@SHLIB_EXT@ libmpl@SHLIB_EXT@ ; \ cd ${DESTDIR}${libdir} && ln -f -s lib@MPILIBNAME@@SHLIB_EXT@ libopa@SHLIB_EXT@ ; \ diff --git a/configure.ac b/configure.ac index 6e3eae2..9593e68 100644 --- a/configure.ac +++ b/configure.ac @@ -411,18 +411,36 @@ AC_ARG_ENABLE(check-compiler-flags, dnl We enable f77 and fc if we can find compilers for them. dnl In addition, we check whether f77 and fc can work together. -AC_ARG_ENABLE(f77, - AC_HELP_STRING([--enable-f77], [Enable Fortran 77 bindings]),,enable_f77=yes) +AC_ARG_ENABLE(fortran, +[ --enable-fortran=option - Control the level of Fortran support in the MPICH implementation. + yes|all - Enable all available Fortran implementations (F77, F90) + f77 - Enable Fortran 77 support + f90 - Enable Fortran 90 support + no|none - No Fortran support +],,enable_fortran=all) -AC_ARG_ENABLE(fc, - AC_HELP_STRING([--enable-fc], [Enable Fortran 90 bindings]),,enable_fc=yes) +AC_ARG_ENABLE(f77, + AC_HELP_STRING([--enable-f77], + [Obsolete option: Use --enable-fortran or --disable-fortran instead]), + [AC_MSG_ERROR([ +--enable-f77 and --disable-f77 are NO longer valid configure options, +use --enable-fortran or --disable-fortran instead])] +) AC_ARG_ENABLE(f90, AC_HELP_STRING([--enable-f90], - [Obsolete option: Use --enable-fc or --disable-fc instead]), + [Obsolete option: Use --enable-fortran or --disable-fortran instead]), [AC_MSG_ERROR([ --enable-f90 and --disable-f90 are NO longer valid configure options, -use --enable-fc or --disable-fc instead])] +use --enable-fortran or --disable-fortran instead])] +) + +AC_ARG_ENABLE(fc, + AC_HELP_STRING([--enable-fc], + [Obsolete option: Use --enable-fortran or --disable-fortran instead]), + [AC_MSG_ERROR([ +--enable-fc and --disable-fc are NO longer valid configure options, +use --enable-fortran or --disable-fortran instead])] ) AC_ARG_ENABLE(cxx, @@ -537,7 +555,7 @@ AC_ARG_ENABLE(weak-symbols, AC_ARG_ENABLE([two-level-namespace], [AS_HELP_STRING([--enable-two-level-namespace], [(Darwin only) Build shared libraries and programs - built with the mpicc/mpif77/etc. compiler + built with the mpicc/mpifort/etc. compiler wrappers with '-Wl,-commons,use_dylibs' and without '-Wl,-flat_namespace'. This may make the MPICH installation and MPI programs more @@ -672,6 +690,49 @@ AC_PROG_F77([PAC_F77_SEARCH_LIST]) : ${FCFLAGS=""} AC_PROG_FC([PAC_FC_SEARCH_LIST]) +save_IFS="$IFS" +IFS="," +enable_f77=no +enable_fc=no +for option in $enable_fortran ; do + case "$option" in + yes|all) + enable_f77=yes + enable_fc=yes + ;; + no|none) + enable_f77=no + enable_fc=no + ;; + f77) + enable_f77=yes + ;; + f90) + enable_fc=yes + ;; + *) + IFS="$save_IFS" + AC_MSG_WARN([Unknown value $option for --enable-fortran]) + IFS="," + ;; + esac +done +IFS="$save_IFS" + +if test "$enable_f77" = "no" ; then + if test "$enable_f90" = "yes" ; then + AC_MSG_ERROR([Fortran 90 support requires enabling Fortran 77]) + fi +fi + +if test ! -z "$FC" -a -z "$F77" ; then + F77=$FC + if test ! -z "$FCFLAGS" -a -z "$FFLAGS" ; then + FFLAGS=$FCFLAGS + fi +fi + +AM_CONDITIONAL([INSTALL_MPIF77],[test "$F77" != "$FC" -a "$FFLAGS" != "$FCFLAGS"]) # compute canonical system types AC_CANONICAL_BUILD diff --git a/doc/refman/refcmd.tex b/doc/refman/refcmd.tex index 20405e6..a65b934 100644 --- a/doc/refman/refcmd.tex +++ b/doc/refman/refcmd.tex @@ -10,7 +10,6 @@ \input mpicc.tex \input mpicxx.tex -\input mpif77.tex \openin\availtest mpifort.tex \ifeof\availtest diff --git a/doc/userguide/user.tex.vin b/doc/userguide/user.tex.vin index 6471220..1a36308 100644 --- a/doc/userguide/user.tex.vin +++ b/doc/userguide/user.tex.vin @@ -113,7 +113,7 @@ command line arguments in all application programs, including Fortran ones, and MPICH1's \texttt{configure} devoted some effort to finding the libraries that contained the right versions of \texttt{iargc} and \texttt{getarg} and including those libraries with which the -\texttt{mpif77} script linked MPI programs. Since MPICH does not +\texttt{mpifort} script linked MPI programs. Since MPICH does not require access to command line arguments to applications, these functions are optional, and \texttt{configure} does nothing special with them. If you need them in your applications, you will have to @@ -167,8 +167,8 @@ MPICH and have run an MPI program. A convenient way to compile and link your program is by using scripts that use the same compiler that MPICH was built with. These are -\texttt{mpicc}, \texttt{mpicxx}, \texttt{mpif77}, and \texttt{mpifort}, -for C, C++, Fortran 77, and Fortran 90 programs, respectively. If any +\texttt{mpicc}, \texttt{mpicxx}, and \texttt{mpifort}, +for C, C++, and Fortran programs, respectively. If any of these commands are missing, it means that MPICH was configured without support for that particular language. diff --git a/maint/checkbuilds.in b/maint/checkbuilds.in index b1d1402..d2b0ce9 100644 --- a/maint/checkbuilds.in +++ b/maint/checkbuilds.in @@ -285,14 +285,14 @@ sub RunTest { # but we should only do that if explicitly requested (we could # *require* an empty directory for the tests instead) if (-d "$instdir/lib") { - system "rm -f $instdir/lib/libmpi*.* $instdir/lib/libmpif77*.*"; + system "rm -f $instdir/lib/libmpi*.* $instdir/lib/libmpifort*.*"; system "rm -f $instdir/lib/libmpe*.a"; } if (-d "$instdir/bin") { system "rm -f $instdir/bin/mpi* $instdir/bin/mpd*"; } if (-d "$builddir/lib") { - system "rm -f $builddir/lib/libmpi*.* $builddir/lib/libmpif77*.*"; + system "rm -f $builddir/lib/libmpi*.* $builddir/lib/libmpifort*.*"; system "rm -f $builddir/lib/libmpe*.a"; } # @@ -670,8 +670,8 @@ sub RunMpichTestSuite { else { $config[$nargs++] = "-cc=$ccname -I$instdir/include -L$instdir/lib"; } - if (-x "$instdir/bin/mpif77" ) { - $config[$nargs++] = "-fc=$instdir/bin/mpif77"; + if (-x "$instdir/bin/mpifort" ) { + $config[$nargs++] = "-fc=$instdir/bin/mpifort"; } else { $config[$nargs++] = "-fc=$fcname -I$instdir/include -L$instdir/lib"; diff --git a/maint/clmake.in b/maint/clmake.in index 22f35af..27f6260 100644 --- a/maint/clmake.in +++ b/maint/clmake.in @@ -19,7 +19,6 @@ $rootSrcDir = ""; "rm", "mv", "cp", "chmod", "if", "make", "gnumake", "[A-Za-z0-9_\/\.-]*\/mpicc", - "[A-Za-z0-9_\/\.-]*\/mpif77", "[A-Za-z0-9_\/\.-]*\/mpifort", "[A-Za-z0-9_\/\.-]*\/mpicxx", "cleaning", "sleep", "date", "g77", "f77", "f90", "f95", "pgCC", diff --git a/maint/createcoverage.in b/maint/createcoverage.in index fcf67c4..91b904c 100644 --- a/maint/createcoverage.in +++ b/maint/createcoverage.in @@ -372,7 +372,7 @@ if [ $test_mpich1 = yes ] ; then MPITEST_IGNORE_RUNTEST=yes export MPITEST_IGNORE_RUNTEST $mpich1srcdir/configure --enable-coverage -cc=$mpiinstalldir/bin/mpicc \ - -fc=$mpiinstalldir/bin/mpif77 --enable-io \ + -fc=$mpiinstalldir/bin/mpifort --enable-io \ -mpilibname=mpich \ -prefix=$mpiinstalldir >&6 2>&6 make clean >&6 2>&6 diff --git a/maint/samplebuilds b/maint/samplebuilds index 8f1b363..e5db277 100755 --- a/maint/samplebuilds +++ b/maint/samplebuilds @@ -78,8 +78,8 @@ if $srcdir/configure --prefix=$instdir $config_args ; then echo "</CONFIG>" echo "<MAKE>" # Remove any lingering libraries - rm -f lib/libmpi*.a lib/libpmpi*.a lib/libmpif77*.a - rm -f lib/libmpi*.so lib/libpmpi*.so lib/libmpif77*.so + rm -f lib/libmpi*.a lib/libpmpi*.a lib/libmpifort*.a + rm -f lib/libmpi*.so lib/libpmpi*.so lib/libmpifort*.so if make ; then echo "</MAKE>" echo "<MAKEINST>" diff --git a/src/binding/fortran/mpif_h/buildiface b/src/binding/fortran/mpif_h/buildiface index 43fb3e6..1a90554 100755 --- a/src/binding/fortran/mpif_h/buildiface +++ b/src/binding/fortran/mpif_h/buildiface @@ -1039,13 +1039,6 @@ noinst_HEADERS += src/binding/fortran/mpif_h/fproto.h src/binding/fortran/mpif_h DISTCLEANFILES += src/binding/fortran/mpif_h/mpif.h src/include/mpif.h nodist_include_HEADERS += src/binding/fortran/mpif_h/mpif.h -# FIXME disabled for now, need to re-enable it the "autotools way" -## Documentation sources -#doc_sources = mpif77.txt -#DOCDESTDIRS = html:www/www1,man:man/man1,latex:doc/refman -#doc_HTML_SOURCES = \${doc_sources} -#doc_MAN_SOURCES = \${doc_sources} -#doc_LATEX_SOURCES = \${doc_sources} EOT ## XXX DJG I think this can go away, but maybe we need to do something special @@ -1054,15 +1047,6 @@ EOT ##maint-clean:\ ##\trm -f \${mpi_sources} $prototype_header_file\n"; - ## XXX DJG FIXME consider not copying the mpif.h over to src/include, but - ## leaving it where it is - ## # Since configure copies mpif.h to the include dir, we need to remove it - ## # in a distclean step. Ditto for mpif77; add the generated files. - ## print MAKEFD "distclean-local:\n"; - ## print MAKEFD "\trm -f mpif_bottom.h\n"; - ## print MAKEFD "\trm -f ../../../src/include/mpif.h\n"; - ## print MAKEFD "\trm -f ../../../bin/mpif77\n"; - # XXX DJG I think this is all handled correctly by automake ## Add the generated files to the maintainer clean target #print MAKEFD "maintainerclean-local:\n"; diff --git a/src/env/Makefile.mk b/src/env/Makefile.mk index fd37cf1..69ce5ae 100644 --- a/src/env/Makefile.mk +++ b/src/env/Makefile.mk @@ -28,7 +28,9 @@ src_env_mpivars_LDADD += lib/lib@[email protected] endif BUILD_PROFILING_LIB if BUILD_F77_BINDING +if INSTALL_MPIF77 bin_SCRIPTS += src/env/mpif77 +endif INSTALL_MPIF77 endif BUILD_F77_BINDING if BUILD_FC_BINDING diff --git a/src/env/mpicc.txt b/src/env/mpicc.txt index 89a4b2e..99e1bc0 100644 --- a/src/env/mpicc.txt +++ b/src/env/mpicc.txt @@ -103,5 +103,5 @@ is a convenient way to build simple programs. argument '\-profile=myprof' will cause these definitions to be added to the relevant compile commands. -.seealso: mpif77, mpicxx, mpifort, mpiexec +.seealso: mpicxx, mpifort, mpiexec D*/ diff --git a/src/env/mpicxx.txt b/src/env/mpicxx.txt index a32243d..3cf0be4 100644 --- a/src/env/mpicxx.txt +++ b/src/env/mpicxx.txt @@ -103,5 +103,5 @@ is a convenient way to build simple programs. argument '\-profile=myprof' will cause these definitions to be added to the relevant compile commands. -.seealso: mpif77, mpicc, mpifort, mpiexec +.seealso: mpicc, mpifort, mpiexec D*/ diff --git a/src/env/mpifort.bash.in b/src/env/mpifort.bash.in index 1853694..45a191d 100644 --- a/src/env/mpifort.bash.in +++ b/src/env/mpifort.bash.in @@ -282,7 +282,7 @@ if [ -z "${FCINC}" ] ; then if [ ! -r mpif.h ] ; then #echo "Adding a symbolic link for mpif.h" trap "$Show rm -f mpif.h" 0 - # This should really be the (related) f77includedir (see mpif77). + # This should really be the (related) f77includedir. $Show ln -s ${includedir}/mpif.h mpif.h # Remember to remove this file rmfiles="$rmfiles mpif.h" diff --git a/src/env/mpifort.sh.in b/src/env/mpifort.sh.in index 999c9c2..263e696 100644 --- a/src/env/mpifort.sh.in +++ b/src/env/mpifort.sh.in @@ -299,7 +299,7 @@ if [ -z "${FCINC}" ] ; then if [ ! -r mpif.h ] ; then #echo "Adding a symbolic link for mpif.h" trap "$Show rm -f mpif.h" 0 - # This should really be the (related) f77includedir (see mpif77). + # This should really be the (related) f77includedir. $Show ln -s ${includedir}/mpif.h mpif.h # Remember to remove this file rmfiles="$rmfiles mpif.h" diff --git a/src/mpi/romio/configure.ac b/src/mpi/romio/configure.ac index 30b2f92..874d382 100644 --- a/src/mpi/romio/configure.ac +++ b/src/mpi/romio/configure.ac @@ -395,7 +395,7 @@ if test -z "$MPI_IMPL" ; then fi if test $MPI_IMPL = "mpich" ; then TEST_CC=mpicc - TEST_F77=mpif77 + TEST_F77=mpifort else TEST_CC="$CC" TEST_F77="$F77" @@ -1534,7 +1534,7 @@ if test $FROM_OMPI = yes ; then # Used in the tests/ subdirectory for after ROMIO is built TEST_CC=mpicc - TEST_F77=mpif77 + TEST_F77=mpifort MPIRUN=mpirun MPI_LIB= NOPROFILE=1 @@ -1553,7 +1553,7 @@ elif test $FROM_LAM = yes ; then # Used in the tests/ subdirectory for after ROMIO is built TEST_CC=mpicc - TEST_F77=mpif77 + TEST_F77=mpifort MPIRUN=mpirun MPI_LIB= ROMIO_INCLUDE= @@ -1580,7 +1580,7 @@ elif test $FROM_MPICH = yes ; then # # set the compilers to the ones in MPICH bin directory (master_top_builddir/bin) TEST_CC='$(bindir)/mpicc' - TEST_F77='$(bindir)/mpif77' + TEST_F77='$(bindir)/mpifort' MPI_H_INCLUDE="-I${master_top_builddir}/src/include" ROMIO_INCLUDE="" USER_CFLAGS="" diff --git a/src/mpi/romio/doc/users-guide.tex b/src/mpi/romio/doc/users-guide.tex index 8c81536..b33d483 100644 --- a/src/mpi/romio/doc/users-guide.tex +++ b/src/mpi/romio/doc/users-guide.tex @@ -807,19 +807,13 @@ to include the file {\tt mpio.h} for C or {\tt mpiof.h} for Fortran in your MPI-IO program. Note that on HP machines running HPUX and on NEC SX-4, you need to -compile Fortran programs with {\tt mpifort}, becuase {\tt mpif77} does -not support 8-byte integers. +compile Fortran programs with {\tt mpifort}. With MPICH, HP MPI, or NEC MPI, you can compile MPI-IO programs as \\ \hspace*{.4in} {\tt mpicc foo.c}\\ or \\ -\hspace*{.4in} {\tt mpif77 foo.f }\\ -or\\ \hspace*{.4in} {\tt mpifort foo.f}\\ -As mentioned above, mpifort is preferred over mpif77 on HPUX and NEC -because the f77 compilers on those machines do not support 8-byte integers. - With SGI MPI, you can compile MPI-IO programs as \\ \hspace*{.4in} {\tt cc foo.c -lmpi}\\ or \\ @@ -869,8 +863,7 @@ file systems because they don't support {\tt fcntl} file locks, and ROMIO uses that feature to implement shared file pointers. \item On HP machines running HPUX and on NEC SX-4, you need to compile -Fortran programs with {\tt mpifort} instead of {\tt mpif77}, because -the {\tt f77} compilers on these machines don't support 8-byte integers. +Fortran programs with {\tt mpifort}. \item The file-open mode {\tt MPI\_MODE\_EXCL} does not work on Intel PFS file system, due to a bug in PFS. diff --git a/test/mpi/configure.ac b/test/mpi/configure.ac index b0f55a8..6384c32 100644 --- a/test/mpi/configure.ac +++ b/test/mpi/configure.ac @@ -90,11 +90,43 @@ AC_ARG_ENABLE(echo, [AC_HELP_STRING([--enable-echo],[Turn on strong echoing. The default is enable=no.])], [set -x]) -AC_ARG_ENABLE(f77, - [AC_HELP_STRING([--enable-f77],[Turn on Fortran 77 tests (default)])],,[enable_f77=yes]) -AC_ARG_ENABLE(fc, - [AC_HELP_STRING([--enable-fc],[Turn on Fortran 90 tests (if f90 available)])],, - [enable_fc=yes]) +AC_ARG_ENABLE(fortran, +[ --enable-fortran=option - Control the level of Fortran support in the MPICH implementation. + yes|all - Enable all available Fortran implementations (F77, F90) + f77 - Enable Fortran 77 support + f90 - Enable Fortran 90 support + no|none - No Fortran support +],,enable_fortran=all) + +save_IFS="$IFS" +IFS="," +enable_f77=no +enable_fc=no +for option in $enable_fortran ; do + case "$option" in + yes|all) + enable_f77=yes + enable_fc=yes + ;; + no|none) + enable_f77=no + enable_fc=no + ;; + f77) + enable_f77=yes + ;; + f90) + enable_fc=yes + ;; + *) + IFS="$save_IFS" + AC_MSG_WARN([Unknown value $option for --enable-fortran]) + IFS="," + ;; + esac +done +IFS="$save_IFS" + AC_ARG_ENABLE(cxx, [AC_HELP_STRING([--enable-cxx],[Turn on C++ tests (default)])],,[enable_cxx=yes]) @@ -185,7 +217,7 @@ AC_ARG_ENABLE(xfail, AC_ARG_WITH(mpi, [AC_HELP_STRING([--with-mpi=dir], [Use the selected MPI; compilation scripts for mpicc, - mpif77 and mpicxx should be in dir/bin])],,) + mpifort and mpicxx should be in dir/bin])],,) AC_ARG_WITH(pm, AC_HELP_STRING([--with-pm=name], http://git.mpich.org/mpich.git/commitdiff/16dceb60384235cb8bc051eabd69c60686... commit 16dceb60384235cb8bc051eabd69c606866054d8 Author: Pavan Balaji <[email protected]> Date: Wed Apr 16 13:56:42 2014 -0500 Add a symlink for mpif90 to maintain backward compatibility. Signed-off-by: Ken Raffenetti <[email protected]> diff --git a/Makefile.am b/Makefile.am index 53148b8..baf94d1 100644 --- a/Makefile.am +++ b/Makefile.am @@ -229,6 +229,8 @@ install-exec-hook: done ; \ if test -e ${DESTDIR}${bindir}/mpicxx ; then \ cd ${DESTDIR}${bindir} && ln -f -s mpicxx mpic++ ; fi ; \ + if test -e ${DESTDIR}${bindir}/mpifort ; then \ + cd ${DESTDIR}${bindir} && ln -f -s mpifort mpif90 ; fi ; \ if test -e ${DESTDIR}${libdir}/lib@MPILIBNAME@@SHLIB_EXT@ ; then \ cd ${DESTDIR}${libdir} && ln -f -s lib@MPILIBNAME@@SHLIB_EXT@ libmpl@SHLIB_EXT@ ; \ cd ${DESTDIR}${libdir} && ln -f -s lib@MPILIBNAME@@SHLIB_EXT@ libopa@SHLIB_EXT@ ; \ http://git.mpich.org/mpich.git/commitdiff/1a9fb56e76e1d734457adb3e0e7962e689... commit 1a9fb56e76e1d734457adb3e0e7962e689af3bc6 Author: Pavan Balaji <[email protected]> Date: Wed Apr 16 12:53:07 2014 -0500 Move mpif90 to mpifort and manf90.txt to manfort.txt. Also squash bad white space changes in the move and replace f90 references with fc. Signed-off-by: Ken Raffenetti <[email protected]> diff --git a/Makefile.am b/Makefile.am index 4cc7abb..53148b8 100644 --- a/Makefile.am +++ b/Makefile.am @@ -216,7 +216,7 @@ CLEAN_LOCAL_TARGETS += test-clean ## common set of rules. install-exec-hook: for e in ${DESTDIR}${bindir}/mpicc ${DESTDIR}${bindir}/mpicxx \ - ${DESTDIR}${bindir}/mpif77 ${DESTDIR}${bindir}/mpif90 ; do \ + ${DESTDIR}${bindir}/mpif77 ${DESTDIR}${bindir}/mpifort ; do \ if test -e $${e} ; then \ sed -e 's|__PREFIX_TO_BE_FILLED_AT_INSTALL_TIME__|${prefix}|g' \ -e 's|__EXEC_PREFIX_TO_BE_FILLED_AT_INSTALL_TIME__|${exec_prefix}|g' \ diff --git a/configure.ac b/configure.ac index 19e5fda..6e3eae2 100644 --- a/configure.ac +++ b/configure.ac @@ -6024,8 +6024,8 @@ AC_OUTPUT(Makefile \ src/env/mpicxx.bash \ src/env/mpif77.sh \ src/env/mpif77.bash \ - src/env/mpif90.sh \ - src/env/mpif90.bash \ + src/env/mpifort.sh \ + src/env/mpifort.bash \ src/env/parkill \ src/util/dbg/getfuncstack \ src/include/mpi.h \ diff --git a/doc/refman/refcmd.tex b/doc/refman/refcmd.tex index b2d333b..20405e6 100644 --- a/doc/refman/refcmd.tex +++ b/doc/refman/refcmd.tex @@ -12,9 +12,9 @@ \input mpicxx.tex \input mpif77.tex -\openin\availtest mpif90.tex +\openin\availtest mpifort.tex \ifeof\availtest \else -\input mpif90.tex +\input mpifort.tex \fi \closein\availtest diff --git a/doc/userguide/user.tex.vin b/doc/userguide/user.tex.vin index 21b2b89..6471220 100644 --- a/doc/userguide/user.tex.vin +++ b/doc/userguide/user.tex.vin @@ -167,7 +167,7 @@ MPICH and have run an MPI program. A convenient way to compile and link your program is by using scripts that use the same compiler that MPICH was built with. These are -\texttt{mpicc}, \texttt{mpicxx}, \texttt{mpif77}, and \texttt{mpif90}, +\texttt{mpicc}, \texttt{mpicxx}, \texttt{mpif77}, and \texttt{mpifort}, for C, C++, Fortran 77, and Fortran 90 programs, respectively. If any of these commands are missing, it means that MPICH was configured without support for that particular language. diff --git a/maint/clmake.in b/maint/clmake.in index 3891735..22f35af 100644 --- a/maint/clmake.in +++ b/maint/clmake.in @@ -20,7 +20,7 @@ $rootSrcDir = ""; "if", "make", "gnumake", "[A-Za-z0-9_\/\.-]*\/mpicc", "[A-Za-z0-9_\/\.-]*\/mpif77", - "[A-Za-z0-9_\/\.-]*\/mpif90", + "[A-Za-z0-9_\/\.-]*\/mpifort", "[A-Za-z0-9_\/\.-]*\/mpicxx", "cleaning", "sleep", "date", "g77", "f77", "f90", "f95", "pgCC", "pgf77", "pgf90", "CC", "g95", "g\\+\\+", "c\\+\\+", diff --git a/src/binding/fortran/use_mpi/buildiface b/src/binding/fortran/use_mpi/buildiface index 83cefba..ada480c 100755 --- a/src/binding/fortran/use_mpi/buildiface +++ b/src/binding/fortran/use_mpi/buildiface @@ -1045,11 +1045,11 @@ print MAKEFD "MAINTAINERCLEANFILES += \$(mpi_sources) fproto.h\n"; print MAKEFD "CLEANFILES += \$(mpi_f90_modules)\n"; print MAKEFD "\n"; -#print MAKEFD "install_BIN = mpif90\n"; -#print MAKEFD "install_ETC = mpif90.conf\n"; +#print MAKEFD "install_BIN = mpifort\n"; +#print MAKEFD "install_ETC = mpifort.conf\n"; # Add the documentation -#doc_sources = mpif90.txt manf90.txt +#doc_sources = mpifort.txt manfort.txt print MAKEFD "# Documentation sources # FIXME disabled for now until we sort out how to handle docs correctly in the # new build system diff --git a/src/binding/fortran/use_mpi/manf90.txt b/src/binding/fortran/use_mpi/manfort.txt similarity index 89% rename from src/binding/fortran/use_mpi/manf90.txt rename to src/binding/fortran/use_mpi/manfort.txt index bc162a5..7b739cd 100644 --- a/src/binding/fortran/use_mpi/manf90.txt +++ b/src/binding/fortran/use_mpi/manfort.txt @@ -4,15 +4,15 @@ MPI_SIZEOF) that exist only in F90, and on the F90 extended support) /*N FortranExtended Extended Fortran Support: - + This routine is part of the extended Fortran support, described in Sections 10.2.4 and 10.2.5 in the MPI-2 Standard. Full support for these - features `cannot` be efficiently implemented within the Fortran 90 - language and would require a nonportable interation with specific + features `cannot` be efficiently implemented within the Fortran 90 + language and would require a nonportable interation with specific Fortran 90 compilers. MPICH has chosen to offer many of the features - of the extended Fortran support, but there are limitations. - For example, some routines may accept only scalars or one-dimensional - arrays. + of the extended Fortran support, but there are limitations. + For example, some routines may accept only scalars or one-dimensional + arrays. N*/ @@ -26,12 +26,12 @@ N*/ Notes: This routine returns the size of a basic element, in bytes, of the - item passed in the first argument. + item passed in the first argument. Implementation limitations: - MPICH only supports scalars and one-dimensional arrays for the + MPICH only supports scalars and one-dimensional arrays for the first parameter. Supporting higher-dimensional arrays greatly increases - the size of the library and the executable without adding any new + the size of the library and the executable without adding any new functionality. If you have a multi-dimensional array, simply pass any element to 'MPI_SIZEOF'. diff --git a/src/env/Makefile.mk b/src/env/Makefile.mk index 53cc117..fd37cf1 100644 --- a/src/env/Makefile.mk +++ b/src/env/Makefile.mk @@ -32,7 +32,7 @@ bin_SCRIPTS += src/env/mpif77 endif BUILD_F77_BINDING if BUILD_FC_BINDING -bin_SCRIPTS += src/env/mpif90 +bin_SCRIPTS += src/env/mpifort endif BUILD_FC_BINDING if BUILD_CXX_BINDING @@ -47,7 +47,7 @@ src/env/mpicxx: $(top_builddir)/src/env/mpicxx.bash cp -p $? $@ src/env/mpif77: $(top_builddir)/src/env/mpif77.bash cp -p $? $@ -src/env/mpif90: $(top_builddir)/src/env/mpif90.bash +src/env/mpifort: $(top_builddir)/src/env/mpifort.bash cp -p $? $@ else !BUILD_BASH_SCRIPTS src/env/mpicc: $(top_builddir)/src/env/mpicc.sh @@ -56,7 +56,7 @@ src/env/mpicxx: $(top_builddir)/src/env/mpicxx.sh cp -p $? $@ src/env/mpif77: $(top_builddir)/src/env/mpif77.sh cp -p $? $@ -src/env/mpif90: $(top_builddir)/src/env/mpif90.sh +src/env/mpifort: $(top_builddir)/src/env/mpifort.sh cp -p $? $@ endif !BUILD_BASH_SCRIPTS @@ -67,12 +67,12 @@ DISTCLEANFILES += $(top_builddir)/src/env/cc_shlib.conf \ $(top_builddir)/src/env/mpicc \ $(top_builddir)/src/env/mpicxx \ $(top_builddir)/src/env/mpif77 \ - $(top_builddir)/src/env/mpif90 + $(top_builddir)/src/env/mpifort wrapper_doc_src = src/env/mpicc.txt \ src/env/mpif77.txt \ src/env/mpicxx.txt \ - src/env/mpif90.txt \ + src/env/mpifort.txt \ src/env/mpiexec.txt doc1_src_txt += $(wrapper_doc_src) EXTRA_DIST += $(wrapper_doc_src) diff --git a/src/env/mpicc.txt b/src/env/mpicc.txt index bd8e517..89a4b2e 100644 --- a/src/env/mpicc.txt +++ b/src/env/mpicc.txt @@ -103,5 +103,5 @@ is a convenient way to build simple programs. argument '\-profile=myprof' will cause these definitions to be added to the relevant compile commands. -.seealso: mpif77, mpicxx, mpif90, mpiexec +.seealso: mpif77, mpicxx, mpifort, mpiexec D*/ diff --git a/src/env/mpicxx.txt b/src/env/mpicxx.txt index d920672..a32243d 100644 --- a/src/env/mpicxx.txt +++ b/src/env/mpicxx.txt @@ -103,5 +103,5 @@ is a convenient way to build simple programs. argument '\-profile=myprof' will cause these definitions to be added to the relevant compile commands. -.seealso: mpif77, mpicc, mpif90, mpiexec +.seealso: mpif77, mpicc, mpifort, mpiexec D*/ diff --git a/src/env/mpif77.txt b/src/env/mpif77.txt index 639dcf0..dde707c 100644 --- a/src/env/mpif77.txt +++ b/src/env/mpif77.txt @@ -98,5 +98,5 @@ is a convenient way to build simple programs. argument '\-profile=myprof' will cause these definitions to be added to the relevant compile commands. -.seealso: mpicc, mpicxx, mpif90, mpiexec +.seealso: mpicc, mpicxx, mpifort, mpiexec D*/ diff --git a/src/env/mpif90.bash.in b/src/env/mpifort.bash.in similarity index 86% rename from src/env/mpif90.bash.in rename to src/env/mpifort.bash.in index b0af684..1853694 100644 --- a/src/env/mpif90.bash.in +++ b/src/env/mpifort.bash.in @@ -3,7 +3,7 @@ # (C) 2006 by Argonne National Laboratory. # See COPYRIGHT in top-level directory. # -# mpif90 +# mpifort # Simple script to compile and/or link MPI programs. # This script knows the default flags and libraries, and can handle # alternative C compilers and the associated flags and libraries. @@ -11,11 +11,11 @@ # includedir, libdir - Directories containing an *installed* mpich # prefix, execprefix - Often used to define includedir and libdir # FC - Fortran 90 compiler -# WRAPPER_FCFLAGS - Any special flags needed to compile +# WRAPPER_FCFLAGS - Any special flags needed to compile # WRAPPER_LDFLAGS - Any special flags needed to link # WRAPPER_LIBS - Any special libraries needed in order to link # FC_OTHER_LIBS - Yet more libraries, needed just with FC -# +# # We assume that (a) the C compiler can both compile and link programs # # Handling of command-line options: @@ -44,8 +44,8 @@ FCCPP="@FCCPP@" # Fortran 90 Compiler characteristics FCINC="@FCINC@" # f90modinc specifies how to add a directory to the search path for modules. -# Some compilers (Intel ifc version 5) do not support this concept, and -# instead need +# Some compilers (Intel ifc version 5) do not support this concept, and +# instead need # a specific list of files that contain module names and directories. # The FCMODINCSPEC is a more general approach that uses <dir> and <file> # for the directory and file respectively. @@ -59,42 +59,42 @@ enable_wrapper_rpath="@enable_wrapper_rpath@" @fc_shlib_conf@ # Internal variables -# Show is set to echo to cause the compilation command to be echoed instead +# Show is set to echo to cause the compilation command to be echoed instead # of executed. Show= # # End of initialization of variables #--------------------------------------------------------------------- # Environment Variables. -# The environment variables MPICH_F90 may be used to override the +# The environment variables MPICH_FC may be used to override the # default choices. -# In addition, if there is a file $sysconfdir/mpif90-$FCname.conf, +# In addition, if there is a file $sysconfdir/mpifort-$FCname.conf, # where FCname is the name of the compiler with all spaces replaced by hyphens -# (e.g., "f90 -64" becomes "f90--64", that file is sources, allowing other -# changes to the compilation environment. See the variables used by the +# (e.g., "fc -64" becomes "fc--64", that file is sources, allowing other +# changes to the compilation environment. See the variables used by the # script (defined above) -# Added MPICH_F90_OLD, MPICH_F90 can be used to prefix FC with external utility, -# e.g. setenv MPICH_F90 'eval linkcache $MPICH_F90_OLD' -if [ -n "$MPICH_F90" ] ; then - MPICH_F90_OLD="$FC" - FC="$MPICH_F90" +# Added MPICH_FC_OLD, MPICH_FC can be used to prefix FC with external utility, +# e.g. setenv MPICH_FC 'eval linkcache $MPICH_FC_OLD' +if [ -n "$MPICH_FC" ] ; then + MPICH_FC_OLD="$FC" + FC="$MPICH_FC" FCname=`echo $FC | sed 's/ /-/g'` - if [ -s $sysconfdir/mpif90-$FCname.conf ] ; then - . $sysconfdir/mpif90-$FCname.conf + if [ -s $sysconfdir/mpifort-$FCname.conf ] ; then + . $sysconfdir/mpifort-$FCname.conf fi fi # Allow a profiling option to be selected through an environment variable -if [ -n "$MPIF90_PROFILE" ] ; then - profConf=$MPIF90_PROFILE +if [ -n "$MPIFORT_PROFILE" ] ; then + profConf=$MPIFORT_PROFILE fi # # ------------------------------------------------------------------------ # Argument processing. # This is somewhat awkward because of the handling of arguments within -# the shell. We want to handle arguments that include spaces without +# the shell. We want to handle arguments that include spaces without # loosing the spacing (an alternative would be to use a more powerful -# scripting language that would allow us to retain the array of values, -# which the basic (rather than enhanced) Bourne shell does not. +# scripting language that would allow us to retain the array of values, +# which the basic (rather than enhanced) Bourne shell does not. # # Look through the arguments for arguments that indicate compile only. # If these are *not* found, add the library options @@ -106,22 +106,22 @@ cppflags=() for arg in "$@" ; do # Set addarg to no if this arg should be ignored by the C compiler addarg=yes - case "$arg" in - # ---------------------------------------------------------------- + case "$arg" in + # ---------------------------------------------------------------- # Compiler options that affect whether we are linking or no -c|-S|-E|-M|-MM) # The compiler links by default linking=no ;; # ---------------------------------------------------------------- - # Options that control how we use mpif90 (e.g., -show, - # -f90=* -config=* + # Options that control how we use mpifort (e.g., -show, + # -fc=* -config=* -echo) addarg=no set -x ;; - -f90=*) - FC=`echo A$arg | sed -e 's/A-f90=//g'` + -fc=*) + FC=`echo A$arg | sed -e 's/A-fc=//g'` addarg=no ;; -fc=*) @@ -135,10 +135,10 @@ for arg in "$@" ; do -config=*) addarg=no FCname=`echo A$arg | sed -e 's/A-config=//g'` - if [ -s "$sysconfdir/mpif90-$FCname.conf" ] ; then - . "$sysconfdir/mpif90-$FCname.conf" + if [ -s "$sysconfdir/mpifort-$FCname.conf" ] ; then + . "$sysconfdir/mpifort-$FCname.conf" else - echo "Configuration file mpif90-$FCname.conf not found" + echo "Configuration file mpifort-$FCname.conf not found" fi ;; -compile-info|-compile_info) @@ -153,7 +153,7 @@ for arg in "$@" ; do ;; -v) # Pass this argument to the compiler as well. - echo "mpif90 for MPICH version $MPICH_VERSION" + echo "mpifort for MPICH version $MPICH_VERSION" # if there is only 1 argument, it must be -v. if [ "$#" -eq "1" ] ; then linking=no @@ -176,12 +176,10 @@ for arg in "$@" ; do NC=`echo "$FC" | sed 's%\/% %g' | awk '{print $NF}' -` if [ -f "$sysconfdir/mpixxx_opts.conf" ] ; then . $sysconfdir/mpixxx_opts.conf - echo " -f90=xxx - Reset the native compiler to xxx." echo " -fc=xxx - Reset the native compiler to xxx." else if [ -f "./mpixxx_opts.conf" ] ; then . ./mpixxx_opts.conf - echo " -f90=xxx - Reset the native compiler to xxx." echo " -fc=xxx - Reset the native compiler to xxx." fi fi @@ -197,14 +195,14 @@ for arg in "$@" ; do ;; *.F|*.F90|.fpp|.FPP) # If FCCPP is not empty, then we need to do the following: -# If any input files have the .F or .F90 extension, then +# If any input files have the .F or .F90 extension, then # If FCCPP = false, then # generate an error message and exit -# Use FCCPP to convert the file from .F to .f, using +# Use FCCPP to convert the file from .F to .f, using # $TMPDIR/f$$-$count.f as the output file name # Replace the input file with this name in the args # This is needed only for very broken systems -# +# if [ -n "$FCCPP" ] ; then if [ "$FCCPP" = "false" ] ; then echo "This Fortran compiler does not accept .F or .F90 files" @@ -214,7 +212,7 @@ for arg in "$@" ; do # Remove and directory names and extension $ext=`expr "$arg" : '.*\(\..*\)'` bfile=`basename $arg $ext` - # + # TMPDIR=${TMPDIR:-/tmp} # Make sure that we use a valid extension for the temp file. tmpfile=$TMPDIR/f$$-$bfile.$FCEXT @@ -253,9 +251,9 @@ fi # options (if any) # -# The library lib${MPILIBNAME}f90 contains the f90-specific features, +# The library lib${MPILIBNAME}fort contains the f90-specific (or later) features, # such as the module objects and the routines defined by them -# (MPI_SIZEOF is handled in lib${MPILIBNAME)f90, for example). +# (MPI_SIZEOF is handled in lib${MPILIBNAME)fort, for example). PROFILE_FOO= # Handle the case of a profile switch @@ -275,7 +273,7 @@ if [ -n "$profConf" ] ; then fi fi -# Construct the line to add the include directory (not all compilers +# Construct the line to add the include directory (not all compilers # use -I, unfortunately) if [ -z "${FCINC}" ] ; then # If there is no path, add a link to the mpif.h file. @@ -307,7 +305,7 @@ fi # A temporary statement to invoke the compiler # Place the -L before any args incase there are any mpi libraries in there. -# Eventually, we'll want to move this after any non-MPI implementation +# Eventually, we'll want to move this after any non-MPI implementation # libraries if [ "$linking" = yes ] ; then @@ -338,7 +336,7 @@ if [ -n "$rmfiles" ] ; then for file in $rmfiles ; do objfile=`basename $file .f` if [ -s "${objfile}.o" ] ; then - # Rename + # Rename destfile=`echo $objfile | sed -e "s/.*$$-//"` mv -f ${objfile}.o ${destfile}.o fi diff --git a/src/env/mpif90.sh.in b/src/env/mpifort.sh.in similarity index 85% rename from src/env/mpif90.sh.in rename to src/env/mpifort.sh.in index c2bfee1..999c9c2 100644 --- a/src/env/mpif90.sh.in +++ b/src/env/mpifort.sh.in @@ -3,7 +3,7 @@ # (C) 2006 by Argonne National Laboratory. # See COPYRIGHT in top-level directory. # -# mpif90 +# mpifort # Simple script to compile and/or link MPI programs. # This script knows the default flags and libraries, and can handle # alternative C compilers and the associated flags and libraries. @@ -11,11 +11,11 @@ # includedir, libdir - Directories containing an *installed* mpich # prefix, execprefix - Often used to define includedir and libdir # FC - Fortran 90 compiler -# WRAPPER_FCFLAGS - Any special flags needed to compile +# WRAPPER_FCFLAGS - Any special flags needed to compile # WRAPPER_LDFLAGS - Any special flags needed to link # WRAPPER_LIBS - Any special libraries needed in order to link # FC_OTHER_LIBS - Yet more libraries, needed just with FC -# +# # We assume that (a) the C compiler can both compile and link programs # # Handling of command-line options: @@ -44,8 +44,8 @@ FCCPP="@FCCPP@" # Fortran 90 Compiler characteristics FCINC="@FCINC@" # f90modinc specifies how to add a directory to the search path for modules. -# Some compilers (Intel ifc version 5) do not support this concept, and -# instead need +# Some compilers (Intel ifc version 5) do not support this concept, and +# instead need # a specific list of files that contain module names and directories. # The FCMODINCSPEC is a more general approach that uses <dir> and <file> # for the directory and file respectively. @@ -59,42 +59,42 @@ enable_wrapper_rpath="@enable_wrapper_rpath@" @fc_shlib_conf@ # Internal variables -# Show is set to echo to cause the compilation command to be echoed instead +# Show is set to echo to cause the compilation command to be echoed instead # of executed. Show=eval # # End of initialization of variables #--------------------------------------------------------------------- # Environment Variables. -# The environment variables MPICH_F90 may be used to override the +# The environment variables MPICH_FC may be used to override the # default choices. -# In addition, if there is a file $sysconfdir/mpif90-$FCname.conf, +# In addition, if there is a file $sysconfdir/mpifort-$FCname.conf, # where FCname is the name of the compiler with all spaces replaced by hyphens -# (e.g., "f90 -64" becomes "f90--64", that file is sources, allowing other -# changes to the compilation environment. See the variables used by the +# (e.g., "fc -64" becomes "fc--64", that file is sources, allowing other +# changes to the compilation environment. See the variables used by the # script (defined above) -# Added MPICH_F90_OLD, MPICH_F90 can be used to prefix FC with external utility, -# e.g. setenv MPICH_F90 'eval linkcache $MPICH_F90_OLD' -if [ -n "$MPICH_F90" ] ; then - MPICH_F90_OLD="$FC" - FC="$MPICH_F90" +# Added MPICH_FC_OLD, MPICH_FC can be used to prefix FC with external utility, +# e.g. setenv MPICH_FC 'eval linkcache $MPICH_FC_OLD' +if [ -n "$MPICH_FC" ] ; then + MPICH_FC_OLD="$FC" + FC="$MPICH_FC" FCname=`echo $FC | sed 's/ /-/g'` - if [ -s $sysconfdir/mpif90-$FCname.conf ] ; then - . $sysconfdir/mpif90-$FCname.conf + if [ -s $sysconfdir/mpifort-$FCname.conf ] ; then + . $sysconfdir/mpifort-$FCname.conf fi fi # Allow a profiling option to be selected through an environment variable -if [ -n "$MPIF90_PROFILE" ] ; then - profConf=$MPIF90_PROFILE +if [ -n "$MPIFORT_PROFILE" ] ; then + profConf=$MPIFORT_PROFILE fi # # ------------------------------------------------------------------------ # Argument processing. # This is somewhat awkward because of the handling of arguments within -# the shell. We want to handle arguments that include spaces without +# the shell. We want to handle arguments that include spaces without # loosing the spacing (an alternative would be to use a more powerful -# scripting language that would allow us to retain the array of values, -# which the basic (rather than enhanced) Bourne shell does not. +# scripting language that would allow us to retain the array of values, +# which the basic (rather than enhanced) Bourne shell does not. # # Look through the arguments for arguments that indicate compile only. # If these are *not* found, add the library options @@ -105,22 +105,22 @@ for arg in "$@" ; do # Set addarg to no if this arg should be ignored by the C compiler addarg=yes qarg=$arg - case $arg in - # ---------------------------------------------------------------- + case $arg in + # ---------------------------------------------------------------- # Compiler options that affect whether we are linking or no -c|-S|-E|-M|-MM) # The compiler links by default linking=no ;; # ---------------------------------------------------------------- - # Options that control how we use mpif90 (e.g., -show, - # -f90=* -config=* + # Options that control how we use mpifort (e.g., -show, + # -fc=* -config=* -echo) addarg=no set -x ;; - -f90=*) - FC=`echo A$arg | sed -e 's/A-f90=//g'` + -fc=*) + FC=`echo A$arg | sed -e 's/A-fc=//g'` addarg=no ;; -fc=*) @@ -134,10 +134,10 @@ for arg in "$@" ; do -config=*) addarg=no FCname=`echo A$arg | sed -e 's/A-config=//g'` - if [ -s "$sysconfdir/mpif90-$FCname.conf" ] ; then - . "$sysconfdir/mpif90-$FCname.conf" + if [ -s "$sysconfdir/mpifort-$FCname.conf" ] ; then + . "$sysconfdir/mpifort-$FCname.conf" else - echo "Configuration file mpif90-$FCname.conf not found" + echo "Configuration file mpifort-$FCname.conf not found" fi ;; -compile-info|-compile_info) @@ -152,7 +152,7 @@ for arg in "$@" ; do ;; -v) # Pass this argument to the compiler as well. - echo "mpif90 for MPICH version $MPICH_VERSION" + echo "mpifort for MPICH version $MPICH_VERSION" # if there is only 1 argument, it must be -v. if [ "$#" -eq "1" ] ; then linking=no @@ -175,32 +175,30 @@ for arg in "$@" ; do NC=`echo "$FC" | sed 's%\/% %g' | awk '{print $NF}' -` if [ -f "$sysconfdir/mpixxx_opts.conf" ] ; then . $sysconfdir/mpixxx_opts.conf - echo " -f90=xxx - Reset the native compiler to xxx." echo " -fc=xxx - Reset the native compiler to xxx." else if [ -f "./mpixxx_opts.conf" ] ; then . ./mpixxx_opts.conf - echo " -f90=xxx - Reset the native compiler to xxx." echo " -fc=xxx - Reset the native compiler to xxx." fi fi exit 0 ;; # ----------------------------------------------------------------- - # Other arguments. We are careful to handle arguments with - # quotes (we try to quote all arguments in case they include + # Other arguments. We are careful to handle arguments with + # quotes (we try to quote all arguments in case they include # any spaces) - *\"*) + *\"*) qarg="'"$arg"'" - case $arg in + case $arg in -D*) cppflags="$cppflags $qarg" ;; esac ;; - *\'*) + *\'*) qarg='\"'"$arg"'\"' - case $arg in + case $arg in -D*) cppflags="$cppflags $qarg" ;; @@ -216,14 +214,14 @@ for arg in "$@" ; do ;; *.F|*.F90|.fpp|.FPP) # If FCCPP is not empty, then we need to do the following: -# If any input files have the .F or .F90 extension, then +# If any input files have the .F or .F90 extension, then # If FCCPP = false, then # generate an error message and exit -# Use FCCPP to convert the file from .F to .f, using +# Use FCCPP to convert the file from .F to .f, using # $TMPDIR/f$$-$count.f as the output file name # Replace the input file with this name in the args # This is needed only for very broken systems -# +# if [ -n "$FCCPP" ] ; then if [ "$FCCPP" = "false" ] ; then echo "This Fortran compiler does not accept .F or .F90 files" @@ -292,7 +290,7 @@ if [ -n "$profConf" ] ; then fi fi -# Construct the line to add the include directory (not all compilers +# Construct the line to add the include directory (not all compilers # use -I, unfortunately) if [ -z "${FCINC}" ] ; then # If there is no path, add a link to the mpif.h file. @@ -324,7 +322,7 @@ fi # A temporary statement to invoke the compiler # Place the -L before any args incase there are any mpi libraries in there. -# Eventually, we'll want to move this after any non-MPI implementation +# Eventually, we'll want to move this after any non-MPI implementation # libraries if [ "$linking" = yes ] ; then @@ -354,7 +352,7 @@ if [ -n "$rmfiles" ] ; then for file in $rmfiles ; do objfile=`basename $file .f` if [ -s "${objfile}.o" ] ; then - # Rename + # Rename destfile=`echo $objfile | sed -e "s/.*$$-//"` mv -f ${objfile}.o ${destfile}.o fi diff --git a/src/env/mpif90.txt b/src/env/mpifort.txt similarity index 82% rename from src/env/mpif90.txt rename to src/env/mpifort.txt index fe7cf5f..e91935b 100644 --- a/src/env/mpif90.txt +++ b/src/env/mpifort.txt @@ -1,30 +1,30 @@ /*D - mpif90 - Compiles and links MPI programs written in Fortran 90 + mpifort - Compiles and links MPI programs written in Fortran 90 Description: This command can be used to compile and link MPI programs written in Fortran. It provides the options and any special libraries that are - needed to compile and link MPI programs. + needed to compile and link MPI programs. - It is important to use this command, particularly when linking programs, - as it provides the necessary libraries. + It is important to use this command, particularly when linking programs, + as it provides the necessary libraries. Command line arguments: + \-show - Show the commands that would be used without running them . \-help - Give short help -. \-f90=name - Use compiler 'name' instead of the default choice. Use +. \-fc=name - Use compiler 'name' instead of the default choice. Use this only if the compiler is compatible with the MPICH library (see below) . \-config=name - Load a configuration file for a particular compiler. - This allows a single 'mpif90' command to be used with + This allows a single 'mpifort' command to be used with multiple compilers. . \-compile_info - Show the steps for compiling a program. This option can be used to see what options and include paths are - used by mpif90. + used by mpifort. . \-link_info - Show the steps for linking a program. This option can be used to see what options and libraries are used by - mpif90. + mpifort. . \-profile=name - Use the MPI profiling given by name. See below for details . \-echo - Show exactly what this program is doing. @@ -35,36 +35,36 @@ with the output executable given the name 'name'. Environment Variables: - The environment variables 'MPICH_F90' may be used + The environment variables 'MPICH_FC' may be used to select different Fortran compiler and linker. Note that since MPICH is built with a particular C and Fortran compiler, change the compilers used can cause problems. Use this only if you could intermix code compiled with the different compilers. Compatible Compilers: - The MPI library may be used with any compiler that uses the same - lengths for basic data objects (such as 'long double') and that + The MPI library may be used with any compiler that uses the same + lengths for basic data objects (such as 'long double') and that uses compatible run-time libraries. On many systems, the various - compilers are compatible and may be used interchangably. There are - exceptions; if you use the 'MPICH_F90' environment variable or the - '\-f90=name' command-line argument to override the choice of compiler - and encounter problems, try reconfiguring MPICH with the new compiler - and installing MPICH in a separate location. See the installation manual + compilers are compatible and may be used interchangably. There are + exceptions; if you use the 'MPICH_FC' environment variable or the + '\-fc=name' command-line argument to override the choice of compiler + and encounter problems, try reconfiguring MPICH with the new compiler + and installing MPICH in a separate location. See the installation manual for more details. Examples: To compile a single file 'foo.f', use .vb - mpif90 \-c foo.f + mpifort \-c foo.f .ve To link the output and make an executable, use .vb - mpif90 \-o foo foo.o + mpifort \-o foo foo.o .ve Combining compilation and linking in a single command .vb - mpif90 \-o foo foo.f + mpifort \-o foo foo.f .ve is a convenient way to build simple programs. @@ -72,12 +72,12 @@ is a convenient way to build simple programs. The '\-profile=name' argument allows you to specify an MPI profiling library to be used. 'name' can have two forms\: -.n A library in the same directory as the MPI library +.n A library in the same directory as the MPI library .n The name of a profile configuration file .n - If 'name' is a library, then this library is included before the MPI + If 'name' is a library, then this library is included before the MPI library. This allows the simple use of libraries that make use of the - MPI profiling interface and that are installed in the same directory as + MPI profiling interface and that are installed in the same directory as the MPI library. If 'name.conf' is the name of a file in the sysconfdir directory, then this @@ -86,7 +86,7 @@ is a convenient way to build simple programs. . PROFILE_POSTLIB - Libraries to include after the MPI library - PROFILE_INCPATHS - C preprocessor arguments for any include files For example, to add '/usr/local/myprof/include' to the include path and - the library 'libmyprof.a' in '/usr/local/myprof/lib' to the link step, + the library 'libmyprof.a' in '/usr/local/myprof/lib' to the link step, you could create the file 'myprof.conf' with the lines .vb @@ -94,9 +94,9 @@ is a convenient way to build simple programs. PROFILE_INCPATHS="\-I/usr/local/myprof/include" .ve and place it in the sysconfdir directory (this directory is set at - configure time when MPICH is built). Then using the command-line + configure time when MPICH is built). Then using the command-line argument '\-profile=myprof' will cause these definitions to be added to the relevant compile commands. -.seealso: mpicc, mpicxx, mpif90, mpiexec +.seealso: mpicc, mpicxx, mpifort, mpiexec D*/ diff --git a/src/mpi/romio/README b/src/mpi/romio/README index 35886ce..a6fb25a 100644 --- a/src/mpi/romio/README +++ b/src/mpi/romio/README @@ -492,7 +492,7 @@ to include the file mpio.h for C or mpiof.h for Fortran in your MPI-IO program. Note that on HP machines running HPUX and on NEC SX-4, you need to -compile Fortran programs with mpif90, because the f77 compilers on +compile Fortran programs with mpifort, because the f77 compilers on these machines don't support 8-byte integers. With MPICH, HP MPI, or NEC MPI, you can compile MPI-IO programs as @@ -500,9 +500,9 @@ With MPICH, HP MPI, or NEC MPI, you can compile MPI-IO programs as or mpif77 foo.f or - mpif90 foo.f + mpifort foo.f -As mentioned above, mpif90 is preferred over mpif77 on HPUX and NEC +As mentioned above, mpifort is preferred over mpif77 on HPUX and NEC because the f77 compilers on those machines do not support 8-byte integers. With SGI MPI, you can compile MPI-IO programs as @@ -566,7 +566,7 @@ systems because they don't support fcntl file locks, and ROMIO uses that feature to implement shared file pointers. * On HP machines running HPUX and on NEC SX-4, you need to compile -Fortran programs with mpif90 instead of mpif77, because the f77 +Fortran programs with mpifort instead of mpif77, because the f77 compilers on these machines don't support 8-byte integers. * The file-open mode MPI_MODE_EXCL does not work on Intel PFS file system, diff --git a/src/mpi/romio/doc/users-guide.tex b/src/mpi/romio/doc/users-guide.tex index 2fc893e..8c81536 100644 --- a/src/mpi/romio/doc/users-guide.tex +++ b/src/mpi/romio/doc/users-guide.tex @@ -807,7 +807,7 @@ to include the file {\tt mpio.h} for C or {\tt mpiof.h} for Fortran in your MPI-IO program. Note that on HP machines running HPUX and on NEC SX-4, you need to -compile Fortran programs with {\tt mpif90}, becuase {\tt mpif77} does +compile Fortran programs with {\tt mpifort}, becuase {\tt mpif77} does not support 8-byte integers. With MPICH, HP MPI, or NEC MPI, you can compile MPI-IO programs as \\ @@ -815,9 +815,9 @@ With MPICH, HP MPI, or NEC MPI, you can compile MPI-IO programs as \\ or \\ \hspace*{.4in} {\tt mpif77 foo.f }\\ or\\ -\hspace*{.4in} {\tt mpif90 foo.f}\\ +\hspace*{.4in} {\tt mpifort foo.f}\\ -As mentioned above, mpif90 is preferred over mpif77 on HPUX and NEC +As mentioned above, mpifort is preferred over mpif77 on HPUX and NEC because the f77 compilers on those machines do not support 8-byte integers. With SGI MPI, you can compile MPI-IO programs as \\ @@ -869,7 +869,7 @@ file systems because they don't support {\tt fcntl} file locks, and ROMIO uses that feature to implement shared file pointers. \item On HP machines running HPUX and on NEC SX-4, you need to compile -Fortran programs with {\tt mpif90} instead of {\tt mpif77}, because +Fortran programs with {\tt mpifort} instead of {\tt mpif77}, because the {\tt f77} compilers on these machines don't support 8-byte integers. \item The file-open mode {\tt MPI\_MODE\_EXCL} does not work on Intel diff --git a/test/commands/Makefile.am b/test/commands/Makefile.am index 7f7a7df..fb96fcd 100644 --- a/test/commands/Makefile.am +++ b/test/commands/Makefile.am @@ -8,13 +8,13 @@ MPICC = $(bindir)/mpicc MPICXX = $(bindir)/mpicxx MPIF77 = $(bindir)/mpif77 -MPIF90 = $(bindir)/mpif90 +MPIFORT = $(bindir)/mpifort ## violate all automake standards and force CC and friends to be MPICC and friends CC=$(MPICC) CXX=$(MPICXX) F77=$(MPIF77) -FC=$(MPIF90) +FC=$(MPIFORT) noinst_PROGRAMS = stdiotest stdintest stdintest2 checkenv1 rtest rtestf rtestx \ testout diff --git a/test/mpi/configure.ac b/test/mpi/configure.ac index c1c51d8..b0f55a8 100644 --- a/test/mpi/configure.ac +++ b/test/mpi/configure.ac @@ -439,7 +439,7 @@ AC_ARG_VAR([WRAPPER_CXXFLAGS],[]) # Attach program prefix and suffix to executable names PAC_GET_EXENAME("mpicc", MPICC_NAME) PAC_GET_EXENAME("mpif77", MPIF77_NAME) -PAC_GET_EXENAME("mpif90", MPIF90_NAME) +PAC_GET_EXENAME("mpifort", MPIFORT_NAME) PAC_GET_EXENAME("mpicxx", MPICXX_NAME) PAC_GET_EXENAME("mpiexec", MPIEXEC_NAME) @@ -472,7 +472,7 @@ elif test -n "$with_mpi" ; then F77=$MPIF77 fi if test -z "$MPIFC" ; then - FC=$with_mpi/bin/$MPIF90_NAME + FC=$with_mpi/bin/$MPIFORT_NAME else FC=$MPIFC fi @@ -499,7 +499,7 @@ else F77=$MPIF77 fi if test -z "$MPIFC" ; then - AC_PATH_PROG(MPIFC,$MPIF90_NAME mpftn) + AC_PATH_PROG(MPIFC,$MPIFORT_NAME mpftn) fi if test "x$MPIFC" != "x" ; then FC=$MPIFC @@ -1401,7 +1401,7 @@ if test "$FROM_MPICH" = yes ; then # installed compiler wrappers for actually building the tests CC=$mpibindir/$MPICC_NAME F77=$mpibindir/$MPIF77_NAME - FC=$mpibindir/$MPIF90_NAME + FC=$mpibindir/$MPIFORT_NAME CXX=$mpibindir/$MPICXX_NAME MPIEXEC=$mpibindir/$MPIEXEC_NAME http://git.mpich.org/mpich.git/commitdiff/ef8b243a589c3ba80f601b31428dba5989... commit ef8b243a589c3ba80f601b31428dba59890625a8 Author: Pavan Balaji <[email protected]> Date: Fri Apr 18 19:27:06 2014 -0500 Remove unnecessary static linking code. This was added when we were playing with inter-library dependencies. Since we don't use it anymore, we can remove this code. Signed-off-by: Ken Raffenetti <[email protected]> diff --git a/src/env/mpicc.bash.in b/src/env/mpicc.bash.in index 402086e..eaceecc 100644 --- a/src/env/mpicc.bash.in +++ b/src/env/mpicc.bash.in @@ -86,7 +86,6 @@ fi linking=yes allargs=("$@") argno=0 -static_libs=no for arg in "$@" ; do # Set addarg to no if this arg should be ignored by the C compiler addarg=yes @@ -112,13 +111,6 @@ for arg in "$@" ; do addarg=no Show=echo ;; - -static) - static_libs=yes - ;; - -mpich-alllibs) - addarg=no - static_libs=yes - ;; -config=*) addarg=no CCname=`echo A$arg | sed -e 's/A-config=//g'` diff --git a/src/env/mpicc.sh.in b/src/env/mpicc.sh.in index be1725a..51bbfb4 100644 --- a/src/env/mpicc.sh.in +++ b/src/env/mpicc.sh.in @@ -85,7 +85,6 @@ fi linking=yes allargs="" -static_libs=no for arg in "$@" ; do # Set addarg to no if this arg should be ignored by the C compiler addarg=yes @@ -112,13 +111,6 @@ for arg in "$@" ; do addarg=no Show=echo ;; - -static) - static_libs=yes - ;; - -mpich-alllibs) - addarg=no - static_libs=yes - ;; -config=*) addarg=no CCname=`echo A$arg | sed -e 's/A-config=//g'` diff --git a/src/env/mpicxx.bash.in b/src/env/mpicxx.bash.in index 9550532..25179dd 100644 --- a/src/env/mpicxx.bash.in +++ b/src/env/mpicxx.bash.in @@ -83,7 +83,6 @@ fi linking=yes allargs=("$@") argno=0 -static_libs=no for arg in "$@" ; do # Set addarg to no if this arg should be ignored by the C compiler addarg=yes @@ -114,13 +113,6 @@ for arg in "$@" ; do addarg=no Show=echo ;; - -static) - static_libs=yes - ;; - -mpich-alllibs) - addarg=no - static_libs=yes - ;; -config=*) addarg=no CXXname=`echo A$arg | sed -e 's/A-config=//g'` diff --git a/src/env/mpicxx.sh.in b/src/env/mpicxx.sh.in index af6e49c..36b9330 100644 --- a/src/env/mpicxx.sh.in +++ b/src/env/mpicxx.sh.in @@ -82,7 +82,6 @@ fi linking=yes allargs="" -static_libs=no for arg in "$@" ; do # Set addarg to no if this arg should be ignored by the C compiler addarg=yes @@ -114,13 +113,6 @@ for arg in "$@" ; do addarg=no Show=echo ;; - -static) - static_libs=yes - ;; - -mpich-alllibs) - addarg=no - static_libs=yes - ;; -config=*) addarg=no CXXname=`echo A$arg | sed -e 's/A-config=//g'` diff --git a/src/env/mpif77.bash.in b/src/env/mpif77.bash.in index 9c07665..8d2a602 100644 --- a/src/env/mpif77.bash.in +++ b/src/env/mpif77.bash.in @@ -90,7 +90,6 @@ linking=yes allargs=("$@") argno=0 cppflags=() -static_libs=no for arg in "$@" ; do # Set addarg to no if this arg should be ignored by the C compiler addarg=yes @@ -122,13 +121,6 @@ for arg in "$@" ; do addarg=no Show=echo ;; - -static) - static_libs=yes - ;; - -mpich-alllibs) - addarg=no - static_libs=yes - ;; -config=*) addarg=no F77name=`echo A$arg | sed -e 's/A-config=//g'` diff --git a/src/env/mpif77.sh.in b/src/env/mpif77.sh.in index 2a3dcf4..1fd760d 100644 --- a/src/env/mpif77.sh.in +++ b/src/env/mpif77.sh.in @@ -88,7 +88,6 @@ fi linking=yes allargs="" -static_libs=no for arg in "$@" ; do # Set addarg to no if this arg should be ignored by the C compiler addarg=yes @@ -121,13 +120,6 @@ for arg in "$@" ; do addarg=no Show=echo ;; - -static) - static_libs=yes - ;; - -mpich-alllibs) - addarg=no - static_libs=yes - ;; -config=*) addarg=no F77name=`echo A$arg | sed -e 's/A-config=//g'` diff --git a/src/env/mpif90.bash.in b/src/env/mpif90.bash.in index d77fbb4..b0af684 100644 --- a/src/env/mpif90.bash.in +++ b/src/env/mpif90.bash.in @@ -103,7 +103,6 @@ linking=yes allargs=("$@") argno=0 cppflags=() -static_libs=no for arg in "$@" ; do # Set addarg to no if this arg should be ignored by the C compiler addarg=yes @@ -133,13 +132,6 @@ for arg in "$@" ; do addarg=no Show=echo ;; - -static) - static_libs=yes - ;; - -mpich-alllibs) - addarg=no - static_libs=yes - ;; -config=*) addarg=no FCname=`echo A$arg | sed -e 's/A-config=//g'` diff --git a/src/env/mpif90.sh.in b/src/env/mpif90.sh.in index a4a9d93..c2bfee1 100644 --- a/src/env/mpif90.sh.in +++ b/src/env/mpif90.sh.in @@ -101,7 +101,6 @@ fi # linking=yes allargs="" -static_libs=no for arg in "$@" ; do # Set addarg to no if this arg should be ignored by the C compiler addarg=yes @@ -132,13 +131,6 @@ for arg in "$@" ; do addarg=no Show=echo ;; - -static) - static_libs=yes - ;; - -mpich-alllibs) - addarg=no - static_libs=yes - ;; -config=*) addarg=no FCname=`echo A$arg | sed -e 's/A-config=//g'` http://git.mpich.org/mpich.git/commitdiff/13ebb2138c123c3e92f08440816b9d29e1... commit 13ebb2138c123c3e92f08440816b9d29e1f01530 Author: Pavan Balaji <[email protected]> Date: Wed Apr 16 12:30:17 2014 -0500 Added backward compatible links for mpl and opa. Signed-off-by: Ken Raffenetti <[email protected]> diff --git a/Makefile.am b/Makefile.am index b6b3f90..4cc7abb 100644 --- a/Makefile.am +++ b/Makefile.am @@ -230,6 +230,8 @@ install-exec-hook: if test -e ${DESTDIR}${bindir}/mpicxx ; then \ cd ${DESTDIR}${bindir} && ln -f -s mpicxx mpic++ ; fi ; \ if test -e ${DESTDIR}${libdir}/lib@MPILIBNAME@@SHLIB_EXT@ ; then \ + cd ${DESTDIR}${libdir} && ln -f -s lib@MPILIBNAME@@SHLIB_EXT@ libmpl@SHLIB_EXT@ ; \ + cd ${DESTDIR}${libdir} && ln -f -s lib@MPILIBNAME@@SHLIB_EXT@ libopa@SHLIB_EXT@ ; \ cd ${DESTDIR}${libdir} && ln -f -s lib@MPILIBNAME@@SHLIB_EXT@ libmpich@SHLIB_EXT@ ; fi ; \ if test -e ${DESTDIR}${libdir}/lib@MPIFCLIBNAME@@SHLIB_EXT@ ; then \ cd ${DESTDIR}${libdir} && ln -f -s lib@MPIFCLIBNAME@@SHLIB_EXT@ libfmpich@SHLIB_EXT@ ; \ http://git.mpich.org/mpich.git/commitdiff/df013e531005449aed76ff0d86b975e724... commit df013e531005449aed76ff0d86b975e724a8d14a Author: Pavan Balaji <[email protected]> Date: Wed Apr 16 08:10:42 2014 -0500 Allow libmpl/opa to be merged into libmpi (or libpmpi). When we are using the embedded version of libmpl/opa, we can merge it into libmpi or libpmpi. It doesn't need to be maintained as a separate library. Signed-off-by: Ken Raffenetti <[email protected]> diff --git a/Makefile.am b/Makefile.am index 16b070b..b6b3f90 100644 --- a/Makefile.am +++ b/Makefile.am @@ -49,7 +49,7 @@ errnames_txt_files = external_subdirs = @mplsrcdir@ @opasrcdir@ external_ldflags = -L@mpllibdir@ -L@opalibdir@ -external_libs = -l@MPLLIBNAME@ -l@OPALIBNAME@ +external_libs = @mpllib@ @opalib@ mpi_convenience_libs = pmpi_convenience_libs = diff --git a/configure.ac b/configure.ac index 8e1471a..19e5fda 100644 --- a/configure.ac +++ b/configure.ac @@ -284,7 +284,6 @@ WRAPPER_FFLAGS="$FFLAGS $MPICH_MPIF77_FLAGS" WRAPPER_FCFLAGS="$FCFLAGS $MPICH_MPIFC_FLAGS" WRAPPER_LDFLAGS="$MPICH_LDFLAGS" WRAPPER_LIBS="$MPICH_LIBS" -WRAPPER_EXTRA_LIBS="" # Add MPICHLIB_* to the appropriate flags AC_ARG_VAR(MPICHLIB_CFLAGS, @@ -1111,29 +1110,30 @@ AC_ARG_WITH([mpl-prefix], distributed with MPICH2.])], [],dnl action-if-given [with_mpl_prefix=embedded]) dnl action-if-not-given -mpldir="" -AC_SUBST([mpldir]) mplsrcdir="" AC_SUBST([mplsrcdir]) mpllibdir="" AC_SUBST([mpllibdir]) +mpllib="" +AC_SUBST([mpllib]) if test "$with_mpl_prefix" = "embedded" ; then PAC_CONFIG_SUBDIR(src/mpl,,AC_MSG_ERROR(MPL configure failed)) - PAC_PREPEND_FLAG([-l${MPLLIBNAME}], [WRAPPER_EXTRA_LIBS]) PAC_APPEND_FLAG([-I${master_top_builddir}/src/mpl/include], [CPPFLAGS]) PAC_APPEND_FLAG([-I${use_top_srcdir}/src/mpl/include], [CPPFLAGS]) mpllibdir="${master_top_builddir}/src/mpl" mplsrcdir="${master_top_builddir}/src/mpl" + mpllib="src/mpl/lib${MPLLIBNAME}.la" else # The user specified an already-installed MPL; just sanity check, don't # subconfigure it AS_IF([test -s "${with_mpl_prefix}/include/mplconfig.h"], [:],[AC_MSG_ERROR([the MPL installation in "${with_mpl_prefix}" appears broken])]) PAC_APPEND_FLAG([-I${with_mpl_prefix}/include],[CPPFLAGS]) - PAC_PREPEND_FLAG([-l${MPLLIBNAME}],[WRAPPER_EXTRA_LIBS]) + PAC_PREPEND_FLAG([-l${MPLLIBNAME}],[WRAPPER_LIBS]) PAC_APPEND_FLAG([-L${with_mpl_prefix}/lib],[WRAPPER_LDFLAGS]) mpllibdir="${with_mpl_prefix}/lib" + mpllib="-l${MPLLIBNAME}" fi # OpenPA @@ -1167,11 +1167,14 @@ opasrcdir="" AC_SUBST([opasrcdir]) opalibdir="" AC_SUBST([opalibdir]) +opalib="" +AC_SUBST([opalib]) if test "$with_openpa_prefix" = "embedded" ; then if test -e "${use_top_srcdir}/src/openpa" ; then opasrcdir="${master_top_builddir}/src/openpa" opalibdir="${master_top_builddir}/src/openpa/src" + opalib="${master_top_builddir}/src/openpa/src/lib${OPALIBNAME}.la" PAC_APPEND_FLAG([-I${use_top_srcdir}/src/openpa/src],[CPPFLAGS]) PAC_APPEND_FLAG([-I${master_top_builddir}/src/openpa/src],[CPPFLAGS]) @@ -1188,12 +1191,12 @@ if test "$with_openpa_prefix" = "embedded" ; then opa_subdir_args="--with-atomic-primitives=auto_allow_emulation" fi PAC_CONFIG_SUBDIR_ARGS([src/openpa],[$opa_subdir_args],[],[AC_MSG_ERROR([OpenPA configure failed])]) - PAC_PREPEND_FLAG([-l${OPALIBNAME}],[WRAPPER_EXTRA_LIBS]) else AC_MSG_WARN([Attempted to use the embedded OpenPA source tree in "src/openpa", but it is missing. Configuration or compilation may fail later.]) fi elif test "$with_openpa_prefix" = "system" ; then - PAC_PREPEND_FLAG([-l${OPALIBNAME}],[WRAPPER_EXTRA_LIBS]) + PAC_PREPEND_FLAG([-l${OPALIBNAME}],[WRAPPER_LIBS]) + opalib="-l${OPALIBNAME}" elif test "$with_openpa_prefix" = "no" ; then # The user doesn't want to use OPA. This may or may not cause MPICH to # fail to configure/build, depending on many other factors. @@ -1204,7 +1207,8 @@ else AS_IF([test -s "${with_openpa_prefix}/include/opa_primitives.h" -a -s "${with_openpa_prefix}/include/opa_config.h"], [:],[AC_MSG_ERROR([the OpenPA installation in "${with_openpa_prefix}" appears broken])]) PAC_APPEND_FLAG([-I${with_openpa_prefix}/include],[CPPFLAGS]) - PAC_PREPEND_FLAG([-l${OPALIBNAME}],[WRAPPER_EXTRA_LIBS]) + PAC_PREPEND_FLAG([-l${OPALIBNAME}],[WRAPPER_LIBS]) + opalib="-l${OPALIBNAME}" if test -d ${with_openpa_prefix}/lib64 ; then PAC_APPEND_FLAG([-L${with_openpa_prefix}/lib64],[WRAPPER_LDFLAGS]) opalibdir="${with_openpa_prefix}/lib64" diff --git a/src/env/mpicc.bash.in b/src/env/mpicc.bash.in index 8db9aca..402086e 100644 --- a/src/env/mpicc.bash.in +++ b/src/env/mpicc.bash.in @@ -212,10 +212,6 @@ if [ -n "$profConf" ] ; then fi fi -if test "@INTERLIB_DEPS@" = "no" -o "$static_libs" = "yes" ; then - extra_libs="@WRAPPER_EXTRA_LIBS@" -fi - # ----------------------------------------------------------------------- # # A temporary statement to invoke the compiler @@ -244,7 +240,7 @@ if [ "$linking" = yes ] ; then $Show $CC @WRAPPER_CPPFLAGS@ $PROFILE_INCPATHS @WRAPPER_CFLAGS@ @WRAPPER_LDFLAGS@ "${allargs[@]}" -I$includedir rc=$? else - $Show $CC @WRAPPER_CPPFLAGS@ $PROFILE_INCPATHS @WRAPPER_CFLAGS@ @WRAPPER_LDFLAGS@ "${allargs[@]}" -I$includedir -L$libdir $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $extra_libs $PROFILE_POSTLIB @WRAPPER_LIBS@ + $Show $CC @WRAPPER_CPPFLAGS@ $PROFILE_INCPATHS @WRAPPER_CFLAGS@ @WRAPPER_LDFLAGS@ "${allargs[@]}" -I$includedir -L$libdir $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $PROFILE_POSTLIB @WRAPPER_LIBS@ rc=$? fi else diff --git a/src/env/mpicc.sh.in b/src/env/mpicc.sh.in index e1d307f..be1725a 100644 --- a/src/env/mpicc.sh.in +++ b/src/env/mpicc.sh.in @@ -221,10 +221,6 @@ if [ -n "$profConf" ] ; then fi fi -if test "@INTERLIB_DEPS@" = "no" -o "$static_libs" = "yes" ; then - extra_libs="@WRAPPER_EXTRA_LIBS@" -fi - # ----------------------------------------------------------------------- # # A temporary statement to invoke the compiler @@ -253,7 +249,7 @@ if [ "$linking" = yes ] ; then $Show $CC @WRAPPER_CPPFLAGS@ $PROFILE_INCPATHS @WRAPPER_CFLAGS@ @WRAPPER_LDFLAGS@ $allargs -I$includedir rc=$? else - $Show $CC @WRAPPER_CPPFLAGS@ $PROFILE_INCPATHS @WRAPPER_CFLAGS@ @WRAPPER_LDFLAGS@ $allargs -I$includedir -L$libdir $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $extra_libs $PROFILE_POSTLIB @WRAPPER_LIBS@ + $Show $CC @WRAPPER_CPPFLAGS@ $PROFILE_INCPATHS @WRAPPER_CFLAGS@ @WRAPPER_LDFLAGS@ $allargs -I$includedir -L$libdir $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $PROFILE_POSTLIB @WRAPPER_LIBS@ rc=$? fi else diff --git a/src/env/mpicxx.bash.in b/src/env/mpicxx.bash.in index 0e8784e..9550532 100644 --- a/src/env/mpicxx.bash.in +++ b/src/env/mpicxx.bash.in @@ -218,10 +218,6 @@ if [ -n "$profConf" ] ; then fi fi -if test "@INTERLIB_DEPS@" = "no" -o "$static_libs" = "yes" ; then - extra_libs="@WRAPPER_EXTRA_LIBS@" -fi - # A temporary statement to invoke the compiler # Place the -L before any args incase there are any mpi libraries in there. # Eventually, we'll want to move this after any non-MPI implementation @@ -242,7 +238,7 @@ if [ "$linking" = yes ] ; then $Show $CXX $PROFILE_INCPATHS @WRAPPER_CXXFLAGS@ @WRAPPER_LDFLAGS@ "${allargs[@]}" -I$includedir rc=$? else - $Show $CXX $PROFILE_INCPATHS @WRAPPER_CXXFLAGS@ @WRAPPER_LDFLAGS@ "${allargs[@]}" -I$includedir -L$libdir $cxxlibs $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $extra_libs $PROFILE_POSTLIB @WRAPPER_LIBS@ + $Show $CXX $PROFILE_INCPATHS @WRAPPER_CXXFLAGS@ @WRAPPER_LDFLAGS@ "${allargs[@]}" -I$includedir -L$libdir $cxxlibs $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $PROFILE_POSTLIB @WRAPPER_LIBS@ rc=$? fi else diff --git a/src/env/mpicxx.sh.in b/src/env/mpicxx.sh.in index a7992b2..af6e49c 100644 --- a/src/env/mpicxx.sh.in +++ b/src/env/mpicxx.sh.in @@ -227,10 +227,6 @@ if [ -n "$profConf" ] ; then fi fi -if test "@INTERLIB_DEPS@" = "no" -o "$static_libs" = "yes" ; then - extra_libs="@WRAPPER_EXTRA_LIBS@" -fi - # A temporary statement to invoke the compiler # Place the -L before any args incase there are any mpi libraries in there. # Eventually, we'll want to move this after any non-MPI implementation @@ -251,7 +247,7 @@ if [ "$linking" = yes ] ; then $Show $CXX $PROFILE_INCPATHS @WRAPPER_CXXFLAGS@ @WRAPPER_LDFLAGS@ $allargs -I$includedir rc=$? else - $Show $CXX $PROFILE_INCPATHS @WRAPPER_CXXFLAGS@ @WRAPPER_LDFLAGS@ $allargs -I$includedir -L$libdir $cxxlibs $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $extra_libs $PROFILE_POSTLIB @WRAPPER_LIBS@ + $Show $CXX $PROFILE_INCPATHS @WRAPPER_CXXFLAGS@ @WRAPPER_LDFLAGS@ $allargs -I$includedir -L$libdir $cxxlibs $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $PROFILE_POSTLIB @WRAPPER_LIBS@ rc=$? fi else diff --git a/src/env/mpif77.bash.in b/src/env/mpif77.bash.in index 5bde7f7..9c07665 100644 --- a/src/env/mpif77.bash.in +++ b/src/env/mpif77.bash.in @@ -270,10 +270,6 @@ if [ -n "$profConf" ] ; then fi fi -if test "@INTERLIB_DEPS@" = "no" -o "$static_libs" = "yes" ; then - extra_libs="@WRAPPER_EXTRA_LIBS@" -fi - # A temporary statement to invoke the compiler # Place the -L before any args incase there are any mpi libraries in there. # Eventually, we'll want to move this after any non-MPI implementation @@ -295,7 +291,7 @@ if [ "$linking" = yes ] ; then $Show $F77 $PROFILE_INCPATHS @WRAPPER_FFLAGS@ @WRAPPER_LDFLAGS@ "${allargs[@]}" -I$includedir rc=$? else - $Show $F77 $PROFILE_INCPATHS @WRAPPER_FFLAGS@ @WRAPPER_LDFLAGS@ "${allargs[@]}" -I$includedir -L$libdir $f77libs $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $extra_libs $PROFILE_POSTLIB @WRAPPER_LIBS@ @F77_OTHER_LIBS@ + $Show $F77 $PROFILE_INCPATHS @WRAPPER_FFLAGS@ @WRAPPER_LDFLAGS@ "${allargs[@]}" -I$includedir -L$libdir $f77libs $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $PROFILE_POSTLIB @WRAPPER_LIBS@ @F77_OTHER_LIBS@ rc=$? fi else diff --git a/src/env/mpif77.sh.in b/src/env/mpif77.sh.in index 4ee849b..2a3dcf4 100644 --- a/src/env/mpif77.sh.in +++ b/src/env/mpif77.sh.in @@ -292,10 +292,6 @@ if [ -n "$profConf" ] ; then fi fi -if test "@INTERLIB_DEPS@" = "no" -o "$static_libs" = "yes" ; then - extra_libs="@WRAPPER_EXTRA_LIBS@" -fi - # A temporary statement to invoke the compiler # Place the -L before any args incase there are any mpi libraries in there. # Eventually, we'll want to move this after any non-MPI implementation @@ -317,7 +313,7 @@ if [ "$linking" = yes ] ; then $Show $F77 $PROFILE_INCPATHS @WRAPPER_FFLAGS@ @WRAPPER_LDFLAGS@ $allargs -I$includedir rc=$? else - $Show $F77 $PROFILE_INCPATHS @WRAPPER_FFLAGS@ @WRAPPER_LDFLAGS@ $allargs -I$includedir -L$libdir $f77libs $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $extra_libs $PROFILE_POSTLIB @WRAPPER_LIBS@ @F77_OTHER_LIBS@ + $Show $F77 $PROFILE_INCPATHS @WRAPPER_FFLAGS@ @WRAPPER_LDFLAGS@ $allargs -I$includedir -L$libdir $f77libs $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $PROFILE_POSTLIB @WRAPPER_LIBS@ @F77_OTHER_LIBS@ rc=$? fi else diff --git a/src/env/mpif90.bash.in b/src/env/mpif90.bash.in index e22d28e..d77fbb4 100644 --- a/src/env/mpif90.bash.in +++ b/src/env/mpif90.bash.in @@ -313,10 +313,6 @@ elif [ -n "$FCMODINC" ] ; then FCMODDIRS="${FCMODINC}$modincdir" fi -if test "@INTERLIB_DEPS@" = "no" -o "$static_libs" = "yes" ; then - extra_libs="@WRAPPER_EXTRA_LIBS@" -fi - # A temporary statement to invoke the compiler # Place the -L before any args incase there are any mpi libraries in there. # Eventually, we'll want to move this after any non-MPI implementation @@ -339,7 +335,7 @@ if [ "$linking" = yes ] ; then $Show $FC $PROFILE_INCPATHS @WRAPPER_FCFLAGS@ @WRAPPER_LDFLAGS@ "${allargs[@]}" rc=$? else - $Show $FC $PROFILE_INCPATHS @WRAPPER_FCFLAGS@ @WRAPPER_LDFLAGS@ "${allargs[@]}" $FCINCDIRS $FCMODDIRS -L$libdir -l@MPIFCLIBNAME@ $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $extra_libs $PROFILE_POSTLIB @WRAPPER_LIBS@ @FC_OTHER_LIBS@ + $Show $FC $PROFILE_INCPATHS @WRAPPER_FCFLAGS@ @WRAPPER_LDFLAGS@ "${allargs[@]}" $FCINCDIRS $FCMODDIRS -L$libdir -l@MPIFCLIBNAME@ $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $PROFILE_POSTLIB @WRAPPER_LIBS@ @FC_OTHER_LIBS@ rc=$? fi else diff --git a/src/env/mpif90.sh.in b/src/env/mpif90.sh.in index e164055..a4a9d93 100644 --- a/src/env/mpif90.sh.in +++ b/src/env/mpif90.sh.in @@ -330,10 +330,6 @@ elif [ -n "$FCMODINC" ] ; then FCMODDIRS="${FCMODINC}$modincdir" fi -if test "@INTERLIB_DEPS@" = "no" -o "$static_libs" = "yes" ; then - extra_libs="@WRAPPER_EXTRA_LIBS@" -fi - # A temporary statement to invoke the compiler # Place the -L before any args incase there are any mpi libraries in there. # Eventually, we'll want to move this after any non-MPI implementation @@ -355,7 +351,7 @@ if [ "$linking" = yes ] ; then $Show $FC $PROFILE_INCPATHS @WRAPPER_FCFLAGS@ @WRAPPER_LDFLAGS@ $allargs rc=$? else - $Show $FC $PROFILE_INCPATHS @WRAPPER_FCFLAGS@ @WRAPPER_LDFLAGS@ $allargs $FCINCDIRS $FCMODDIRS -L$libdir -l@MPIFCLIBNAME@ $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $extra_libs $PROFILE_POSTLIB @WRAPPER_LIBS@ @FC_OTHER_LIBS@ + $Show $FC $PROFILE_INCPATHS @WRAPPER_FCFLAGS@ @WRAPPER_LDFLAGS@ $allargs $FCINCDIRS $FCMODDIRS -L$libdir -l@MPIFCLIBNAME@ $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $PROFILE_POSTLIB @WRAPPER_LIBS@ @FC_OTHER_LIBS@ rc=$? fi else diff --git a/src/mpl/Makefile.am b/src/mpl/Makefile.am index 5800349..355f102 100644 --- a/src/mpl/Makefile.am +++ b/src/mpl/Makefile.am @@ -7,7 +7,7 @@ ACLOCAL_AMFLAGS = -I confdb AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include -lib_LTLIBRARIES = lib@[email protected] +noinst_LTLIBRARIES = lib@[email protected] lib@MPLLIBNAME@_la_SOURCES = src/mplstr.c src/mpltrmem.c src/mplenv.c src/mplsock.c lib@MPLLIBNAME@_la_LDFLAGS = ${lib@MPLLIBNAME@_so_versionflags} diff --git a/src/openpa/src/Makefile.am b/src/openpa/src/Makefile.am index 2283681..255ef12 100644 --- a/src/openpa/src/Makefile.am +++ b/src/openpa/src/Makefile.am @@ -3,7 +3,7 @@ # (C) 2008 by Argonne National Laboratory. # See COPYRIGHT in top-level directory. -lib_LTLIBRARIES = lib@[email protected] +noinst_LTLIBRARIES = lib@[email protected] lib@OPALIBNAME@_la_SOURCES = opa_primitives.c opa_queue.c lib@OPALIBNAME@_la_LDFLAGS = ${lib@OPALIBNAME@_so_versionflags} diff --git a/src/packaging/pkgconfig/mpich.pc.in b/src/packaging/pkgconfig/mpich.pc.in index 6091e19..3ba6962 100644 --- a/src/packaging/pkgconfig/mpich.pc.in +++ b/src/packaging/pkgconfig/mpich.pc.in @@ -9,7 +9,7 @@ Description: High Performance and portable MPI Version: @MPICH_VERSION@ URL: http://www.mcs.anl.gov/research/projects/mpich Requires: -Libs: @WRAPPER_RPATH_LDFLAGS@ @WRAPPER_LDFLAGS@ -L${libdir} -l@MPILIBNAME@ @LPMPILIBNAME@ @WRAPPER_EXTRA_LIBS@ @WRAPPER_LIBS@ +Libs: @WRAPPER_RPATH_LDFLAGS@ @WRAPPER_LDFLAGS@ -L${libdir} -l@MPILIBNAME@ @LPMPILIBNAME@ @WRAPPER_LIBS@ Cflags: @WRAPPER_CPPFLAGS@ @WRAPPER_CFLAGS@ -I${includedir} # pkg-config does not understand Cxxflags, etc. So we allow users to http://git.mpich.org/mpich.git/commitdiff/dd261276add8f0fb69fb99fd73f20694ea... commit dd261276add8f0fb69fb99fd73f20694eadf3aa4 Author: Pavan Balaji <[email protected]> Date: Wed Apr 16 18:16:59 2014 -0500 Correct README for the library name changes in MPICH. Now that we have decided on consistent library names, we don't need to do any special setting for ABI compatibility. Just set the LD_LIBRARY_PATH and run. Signed-off-by: Ken Raffenetti <[email protected]> diff --git a/README.vin b/README.vin index ba0f586..a298090 100644 --- a/README.vin +++ b/README.vin @@ -797,72 +797,29 @@ shall be running fine. The MPICH ABI compatibility initiative was announced at SC 2014 (http://www.mpich.org/abi). As a part of this initiative, Argonne, -Intel, IBM and Cray, have committed to maintaining ABI compatibility +Intel, IBM and Cray have committed to maintaining ABI compatibility with each other. As a first step in this initiative, starting with version 3.1, MPICH is binary (ABI) compatible with Intel MPI 5.0. This means you can build your program with one MPI implementation and run with the other. Specifically, binary-only applications that were built and distributed -with one of these MPI implementations and now be executed with the +with one of these MPI implementations can now be executed with the other MPI implementation. -Some setup is required to achieve this. Below details how to -accomplish this. +Some setup is required to achieve this. Suppose you have MPICH +installed in /path/to/mpich and Intel MPI installed in /path/to/impi. -To run an MPICH-built program with Intel: ----------------------------------------- +You can run your application with mpich using: -1. The current MPI library names do not currently match. This is - planned to be fixed in the future, but for now, you need to employ - some symbolic links in order for the linker to find the necessary - libraries correctly. We recommend doing this in a separate - directory. + % export LD_LIBRARY_PATH=/path/to/mpich/lib:$LD_LIBRARY_PATH + % mpiexec -np 100 ./foo - For applications built with the default Intel MPI configuration: +or using Intel MPI using: - ln -s /path/to/intel/lib/libmpi.so libmpi.so.12 - ln -s /path/to/intel/lib/libmpigc4.so libmpicxx.so.12 - ln -s /path/to/intel/lib/libmpigf.so libmpif77.so.12 - ln -s /path/to/intel/lib/libmpigf.so libmpifort.so.12 - ln -s /path/to/intel/lib/libmpi.so libmpl.so.1 - ln -s /path/to/intel/lib/libmpi.so libopa.so.1 + % export LD_LIBRARY_PATH=/path/to/impi/lib:$LD_LIBRARY_PATH + % mpiexec -np 100 ./foo - For applications built with the debug configuration of Intel MPI: - - ln -s /path/to/intel/lib/libmpi_dbg.so libmpi.so.12 - ln -s /path/to/intel/lib/libmpigc4.so libmpicxx.so.12 - ln -s /path/to/intel/lib/libmpigf.so libmpif77.so.12 - ln -s /path/to/intel/lib/libmpigf.so libmpifort.so.12 - ln -s /path/to/intel/lib/libmpi_dbg.so libmpl.so.1 - ln -s /path/to/intel/lib/libmpi_dbg.so libopa.so.1 - -2. Add directory to LD_LIBRARY_PATH - - export LD_LIBRARY_PATH=/path/to/symlinks:$LD_LIBRARY_PATH - -3. For Fortran programs, you must also modify LD_PRELOAD - - export LD_PRELOAD=/path/to/intel/lib/libmpi.so:/path/to/intel/lib/libmpigf.so:$LD_PRELOAD - -4. Run your program - - /path/to/intel/bin/mpiexec <mpi_program> - -To run an Intel-built program with MPICH: ----------------------------------------- - -1. Create symlinks - - ln -s /path/to/mpich/lib/libmpi.so libmpi.so.5 - ln -s /path/to/mpich/lib/libmpi.so libmpi_dbg.so.5 - ln -s /path/to/mpich/lib/libmpicxx.so libmpigc4.so.5 - ln -s /path/to/mpich/lib/libmpifort.so libmpigf.so.5 - -2. Modify LD_LIBRARY_PATH - - export LD_LIBRARY_PATH=/path/to/symlinks:$LD_LIBRARY_PATH - -3. Run your program - - /path/to/mpich/bin/mpiexec <mpi_program> +This works irrespective of which MPI implementation your application +was compiled with, as long as you use one of the MPI implementations +in the ABI compatibility initiative. http://git.mpich.org/mpich.git/commitdiff/e405c7109ca9dbce9455dae5384197d4ed... commit e405c7109ca9dbce9455dae5384197d4ed37a026 Author: Pavan Balaji <[email protected]> Date: Wed Apr 16 18:18:52 2014 -0500 Clean up some bad writeup in the README. Signed-off-by: Ken Raffenetti <[email protected]> diff --git a/README.vin b/README.vin index 9e6902b..ba0f586 100644 --- a/README.vin +++ b/README.vin @@ -779,14 +779,14 @@ platforms/compilers. On linux, if the C compiler that builds MPICH is either gcc or icc, the above support will be enabled by configure. At the time of this writing, pgcc does not seem to have this multiple aliases of common symbols, so configure will detect the deficiency and -disable the feature automatically. The tested Fortran compiler -includes GNU Forran compilers(gfortan, g77), Intel Fortran -compiler(ifort), Portland Group Fortran compilers(pgf77, pgf90), +disable the feature automatically. The tested Fortran compilers +include GNU Fortran compilers (gfortan), Intel Fortran +compiler (ifort), Portland Group Fortran compilers (pgf77, pgf90), Absoft Fortran compilers (af77, af90), and IBM XL fortran -compiler(xlf). What this mean is that if mpich is built by +compiler (xlf). What this means is that if mpich is built by gcc/gfortran, the resulting mpich library can be used to link a Fortran program compiled/linked by another fortran compiler, say -pgf77, say through mpif77 -f77=pgf77. As long as the Fortran program +pgf90, say through mpifort -fc=pgf90. As long as the Fortran program is linked without any errors by one of these compilers, the program shall be running fine. http://git.mpich.org/mpich.git/commitdiff/998d9c677c7fdc4a4e89d5d726a35bdb80... commit 998d9c677c7fdc4a4e89d5d726a35bdb80867b0d Author: Pavan Balaji <[email protected]> Date: Wed Apr 16 14:11:06 2014 -0500 Make install time prefix setting less hacky. Don't provide a default prefix path since that's updated at make install time anyway, for example, if the user specifies a new prefix. Signed-off-by: Ken Raffenetti <[email protected]> diff --git a/Makefile.am b/Makefile.am index 1d840a7..16b070b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -218,11 +218,11 @@ install-exec-hook: for e in ${DESTDIR}${bindir}/mpicc ${DESTDIR}${bindir}/mpicxx \ ${DESTDIR}${bindir}/mpif77 ${DESTDIR}${bindir}/mpif90 ; do \ if test -e $${e} ; then \ - sed -e 's|^prefix=.*|prefix=${prefix}|g' \ - -e 's|^exec_prefix=.*|exec_prefix=${exec_prefix}|g' \ - -e 's|^sysconfdir=.*|sysconfdir=${sysconfdir}|g' \ - -e 's|^includdir=.*|includedir=${includedir}|g' \ - -e 's|^libdir=.*|libdir=${libdir}|g' $${e} > $${e}.tmp ; \ + sed -e 's|__PREFIX_TO_BE_FILLED_AT_INSTALL_TIME__|${prefix}|g' \ + -e 's|__EXEC_PREFIX_TO_BE_FILLED_AT_INSTALL_TIME__|${exec_prefix}|g' \ + -e 's|__SYSCONFDIR_TO_BE_FILLED_AT_INSTALL_TIME__|${sysconfdir}|g' \ + -e 's|__INCLUDEDIR_TO_BE_FILLED_AT_INSTALL_TIME__|${includedir}|g' \ + -e 's|__LIBDIR_TO_BE_FILLED_AT_INSTALL_TIME__|${libdir}|g' $${e} > $${e}.tmp ; \ $(INSTALL_SCRIPT) $${e}.tmp $${e} ; \ rm -f $${e}.tmp ; \ fi ; \ diff --git a/src/env/mpicc.bash.in b/src/env/mpicc.bash.in index 964ea4c..8db9aca 100644 --- a/src/env/mpicc.bash.in +++ b/src/env/mpicc.bash.in @@ -27,11 +27,11 @@ # # Directory locations: Fixed for any MPI implementation. # Set from the directory arguments to configure (e.g., --prefix=/usr/local) -prefix=@prefix@ -exec_prefix=@exec_prefix@ -sysconfdir=@sysconfdir@ -includedir=@includedir@ -libdir=@libdir@ +prefix=__PREFIX_TO_BE_FILLED_AT_INSTALL_TIME__ +exec_prefix=__EXEC_PREFIX_TO_BE_FILLED_AT_INSTALL_TIME__ +sysconfdir=__SYSCONFDIR_TO_BE_FILLED_AT_INSTALL_TIME__ +includedir=__INCLUDEDIR_TO_BE_FILLED_AT_INSTALL_TIME__ +libdir=__LIBDIR_TO_BE_FILLED_AT_INSTALL_TIME__ # Default settings for compiler, flags, and libraries. # Determined by a combination of environment variables and tests within diff --git a/src/env/mpicc.sh.in b/src/env/mpicc.sh.in index 7af7dfa..e1d307f 100644 --- a/src/env/mpicc.sh.in +++ b/src/env/mpicc.sh.in @@ -27,11 +27,11 @@ # # Directory locations: Fixed for any MPI implementation. # Set from the directory arguments to configure (e.g., --prefix=/usr/local) -prefix=@prefix@ -exec_prefix=@exec_prefix@ -sysconfdir=@sysconfdir@ -includedir=@includedir@ -libdir=@libdir@ +prefix=__PREFIX_TO_BE_FILLED_AT_INSTALL_TIME__ +exec_prefix=__EXEC_PREFIX_TO_BE_FILLED_AT_INSTALL_TIME__ +sysconfdir=__SYSCONFDIR_TO_BE_FILLED_AT_INSTALL_TIME__ +includedir=__INCLUDEDIR_TO_BE_FILLED_AT_INSTALL_TIME__ +libdir=__LIBDIR_TO_BE_FILLED_AT_INSTALL_TIME__ # Default settings for compiler, flags, and libraries. # Determined by a combination of environment variables and tests within diff --git a/src/env/mpicxx.bash.in b/src/env/mpicxx.bash.in index f17bd31..0e8784e 100644 --- a/src/env/mpicxx.bash.in +++ b/src/env/mpicxx.bash.in @@ -26,11 +26,11 @@ # Set the default values of all variables. # # Directory locations: Fixed for any MPI implementation -prefix=@prefix@ -exec_prefix=@exec_prefix@ -sysconfdir=@sysconfdir@ -includedir=@includedir@ -libdir=@libdir@ +prefix=__PREFIX_TO_BE_FILLED_AT_INSTALL_TIME__ +exec_prefix=__EXEC_PREFIX_TO_BE_FILLED_AT_INSTALL_TIME__ +sysconfdir=__SYSCONFDIR_TO_BE_FILLED_AT_INSTALL_TIME__ +includedir=__INCLUDEDIR_TO_BE_FILLED_AT_INSTALL_TIME__ +libdir=__LIBDIR_TO_BE_FILLED_AT_INSTALL_TIME__ # Default settings for compiler, flags, and libraries CXX="@CXX@" diff --git a/src/env/mpicxx.sh.in b/src/env/mpicxx.sh.in index d72d55b..a7992b2 100644 --- a/src/env/mpicxx.sh.in +++ b/src/env/mpicxx.sh.in @@ -26,11 +26,11 @@ # Set the default values of all variables. # # Directory locations: Fixed for any MPI implementation -prefix=@prefix@ -exec_prefix=@exec_prefix@ -sysconfdir=@sysconfdir@ -includedir=@includedir@ -libdir=@libdir@ +prefix=__PREFIX_TO_BE_FILLED_AT_INSTALL_TIME__ +exec_prefix=__EXEC_PREFIX_TO_BE_FILLED_AT_INSTALL_TIME__ +sysconfdir=__SYSCONFDIR_TO_BE_FILLED_AT_INSTALL_TIME__ +includedir=__INCLUDEDIR_TO_BE_FILLED_AT_INSTALL_TIME__ +libdir=__LIBDIR_TO_BE_FILLED_AT_INSTALL_TIME__ # Default settings for compiler, flags, and libraries CXX="@CXX@" diff --git a/src/env/mpif77.bash.in b/src/env/mpif77.bash.in index c4b66c1..5bde7f7 100644 --- a/src/env/mpif77.bash.in +++ b/src/env/mpif77.bash.in @@ -29,11 +29,11 @@ # # Directory locations: Fixed for any MPI implementation. # Set from the directory arguments to configure (e.g., --prefix=/usr/local) -prefix=@prefix@ -exec_prefix=@exec_prefix@ -sysconfdir=@sysconfdir@ -includedir=@includedir@ -libdir=@libdir@ +prefix=__PREFIX_TO_BE_FILLED_AT_INSTALL_TIME__ +exec_prefix=__EXEC_PREFIX_TO_BE_FILLED_AT_INSTALL_TIME__ +sysconfdir=__SYSCONFDIR_TO_BE_FILLED_AT_INSTALL_TIME__ +includedir=__INCLUDEDIR_TO_BE_FILLED_AT_INSTALL_TIME__ +libdir=__LIBDIR_TO_BE_FILLED_AT_INSTALL_TIME__ # Default settings for compiler, flags, and libraries # Determined by a combination of environment variables and tests within diff --git a/src/env/mpif77.sh.in b/src/env/mpif77.sh.in index f91f138..4ee849b 100644 --- a/src/env/mpif77.sh.in +++ b/src/env/mpif77.sh.in @@ -29,11 +29,11 @@ # # Directory locations: Fixed for any MPI implementation. # Set from the directory arguments to configure (e.g., --prefix=/usr/local) -prefix=@prefix@ -exec_prefix=@exec_prefix@ -sysconfdir=@sysconfdir@ -includedir=@includedir@ -libdir=@libdir@ +prefix=__PREFIX_TO_BE_FILLED_AT_INSTALL_TIME__ +exec_prefix=__EXEC_PREFIX_TO_BE_FILLED_AT_INSTALL_TIME__ +sysconfdir=__SYSCONFDIR_TO_BE_FILLED_AT_INSTALL_TIME__ +includedir=__INCLUDEDIR_TO_BE_FILLED_AT_INSTALL_TIME__ +libdir=__LIBDIR_TO_BE_FILLED_AT_INSTALL_TIME__ # Default settings for compiler, flags, and libraries # Determined by a combination of environment variables and tests within diff --git a/src/env/mpif90.bash.in b/src/env/mpif90.bash.in index 7d0bcf7..e22d28e 100644 --- a/src/env/mpif90.bash.in +++ b/src/env/mpif90.bash.in @@ -28,11 +28,11 @@ # # Directory locations: Fixed for any MPI implementation. # Set from the directory arguments to configure (e.g., --prefix=/usr/local) -prefix=@prefix@ -exec_prefix=@exec_prefix@ -sysconfdir=@sysconfdir@ -includedir=@includedir@ -libdir=@libdir@ +prefix=__PREFIX_TO_BE_FILLED_AT_INSTALL_TIME__ +exec_prefix=__EXEC_PREFIX_TO_BE_FILLED_AT_INSTALL_TIME__ +sysconfdir=__SYSCONFDIR_TO_BE_FILLED_AT_INSTALL_TIME__ +includedir=__INCLUDEDIR_TO_BE_FILLED_AT_INSTALL_TIME__ +libdir=__LIBDIR_TO_BE_FILLED_AT_INSTALL_TIME__ modincdir=@modincdir@ # Default settings for compiler, flags, and libraries diff --git a/src/env/mpif90.sh.in b/src/env/mpif90.sh.in index e7e7962..e164055 100644 --- a/src/env/mpif90.sh.in +++ b/src/env/mpif90.sh.in @@ -28,11 +28,11 @@ # # Directory locations: Fixed for any MPI implementation. # Set from the directory arguments to configure (e.g., --prefix=/usr/local) -prefix=@prefix@ -exec_prefix=@exec_prefix@ -sysconfdir=@sysconfdir@ -includedir=@includedir@ -libdir=@libdir@ +prefix=__PREFIX_TO_BE_FILLED_AT_INSTALL_TIME__ +exec_prefix=__EXEC_PREFIX_TO_BE_FILLED_AT_INSTALL_TIME__ +sysconfdir=__SYSCONFDIR_TO_BE_FILLED_AT_INSTALL_TIME__ +includedir=__INCLUDEDIR_TO_BE_FILLED_AT_INSTALL_TIME__ +libdir=__LIBDIR_TO_BE_FILLED_AT_INSTALL_TIME__ modincdir=@modincdir@ # Default settings for compiler, flags, and libraries http://git.mpich.org/mpich.git/commitdiff/41ecf98e10a6e47c852a64b3b20f94d4b0... commit 41ecf98e10a6e47c852a64b3b20f94d4b09ec53c Author: Pavan Balaji <[email protected]> Date: Wed Apr 16 13:56:15 2014 -0500 Remove MPICXX_NAME and MPICPP_NAME. These were gratuitous variables that didn't serve any real purpose. Signed-off-by: Ken Raffenetti <[email protected]> diff --git a/Makefile.am b/Makefile.am index d9c0ac5..1d840a7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -227,8 +227,8 @@ install-exec-hook: rm -f $${e}.tmp ; \ fi ; \ done ; \ - if test -e ${DESTDIR}${bindir}/@MPICXX_NAME@ ; then \ - cd ${DESTDIR}${bindir} && ln -f -s @MPICXX_NAME@ @MPICPP_NAME@ ; fi ; \ + if test -e ${DESTDIR}${bindir}/mpicxx ; then \ + cd ${DESTDIR}${bindir} && ln -f -s mpicxx mpic++ ; fi ; \ if test -e ${DESTDIR}${libdir}/lib@MPILIBNAME@@SHLIB_EXT@ ; then \ cd ${DESTDIR}${libdir} && ln -f -s lib@MPILIBNAME@@SHLIB_EXT@ libmpich@SHLIB_EXT@ ; fi ; \ if test -e ${DESTDIR}${libdir}/lib@MPIFCLIBNAME@@SHLIB_EXT@ ; then \ diff --git a/configure.ac b/configure.ac index 3534298..8e1471a 100644 --- a/configure.ac +++ b/configure.ac @@ -5849,12 +5849,6 @@ export MPI_NO_SPAWN MPI_NO_RMA=$MPID_NO_RMA export MPI_NO_RMA -# Attach program prefix and suffix to executable names for Makefile -AC_SUBST(MPICXX_NAME) -AC_SUBST(MPICPP_NAME) -PAC_GET_EXENAME("mpicxx", MPICXX_NAME) -PAC_GET_EXENAME("mpic++", MPICPP_NAME) - AC_CONFIG_SUBDIRS([test/mpi]) dnl dnl Generate the Makefiles from Makefile.in http://git.mpich.org/mpich.git/commitdiff/3276739f61e24724d3f31413250e482868... commit 3276739f61e24724d3f31413250e482868beb73e Author: Pavan Balaji <[email protected]> Date: Wed Apr 16 12:28:47 2014 -0500 White space cleanup. Signed-off-by: Ken Raffenetti <[email protected]> diff --git a/Makefile.am b/Makefile.am index 8576409..d9c0ac5 100644 --- a/Makefile.am +++ b/Makefile.am @@ -233,8 +233,7 @@ install-exec-hook: cd ${DESTDIR}${libdir} && ln -f -s lib@MPILIBNAME@@SHLIB_EXT@ libmpich@SHLIB_EXT@ ; fi ; \ if test -e ${DESTDIR}${libdir}/lib@MPIFCLIBNAME@@SHLIB_EXT@ ; then \ cd ${DESTDIR}${libdir} && ln -f -s lib@MPIFCLIBNAME@@SHLIB_EXT@ libfmpich@SHLIB_EXT@ ; \ - cd ${DESTDIR}${libdir} && ln -f -s lib@MPIFCLIBNAME@@SHLIB_EXT@ libmpichf90@SHLIB_EXT@ ; \ - fi ; \ + cd ${DESTDIR}${libdir} && ln -f -s lib@MPIFCLIBNAME@@SHLIB_EXT@ libmpichf90@SHLIB_EXT@ ; fi ; \ if test -e ${DESTDIR}${libdir}/lib@MPICXXLIBNAME@@SHLIB_EXT@ ; then \ cd ${DESTDIR}${libdir} && ln -f -s lib@MPICXXLIBNAME@@SHLIB_EXT@ libmpichcxx@SHLIB_EXT@ ; fi http://git.mpich.org/mpich.git/commitdiff/8341cd2e906e0a3602a0ef60ea94f891dd... commit 8341cd2e906e0a3602a0ef60ea94f891dd9d74cb Author: Pavan Balaji <[email protected]> Date: Tue Apr 22 23:00:49 2014 -0500 Cleanup mpicxx.h.in rebuild logic. The rerun of buildiface for rebuilding mpicxx.h wasn't use the appropriate init file that reorders the virtual functions. Also remove an empty unused variable. Signed-off-by: Ken Raffenetti <[email protected]> diff --git a/autogen.sh b/autogen.sh index d1e7d93..e66a7ea 100755 --- a/autogen.sh +++ b/autogen.sh @@ -711,7 +711,7 @@ if [ $do_bindings = "yes" ] ; then if [ $build_cxx = "yes" ] ; then echo_n "Building C++ interface... " ( cd src/binding/cxx && chmod a+x ./buildiface && - ./buildiface -nosep -initfile=cxx.vlist $otherarg ) + ./buildiface -nosep -initfile=cxx.vlist ) echo "done" fi fi diff --git a/src/binding/cxx/Makefile.mk b/src/binding/cxx/Makefile.mk index 1fe1b19..0a02dd1 100644 --- a/src/binding/cxx/Makefile.mk +++ b/src/binding/cxx/Makefile.mk @@ -19,7 +19,7 @@ cxx_buildiface_out_files = $(top_srcdir)/src/binding/cxx/mpicxx.h.in \ if MAINTAINER_MODE $(cxx_buildiface_out_files): src/binding/cxx/buildiface-stamp src/binding/cxx/buildiface-stamp: $(top_srcdir)/src/binding/cxx/buildiface $(top_srcdir)/src/include/mpi.h.in - ( cd $(top_srcdir)/src/binding/cxx && ./buildiface ) + ( cd $(top_srcdir)/src/binding/cxx && ./buildiface -nosep -initfile=cxx.vlist ) endif MAINTAINER_MODE http://git.mpich.org/mpich.git/commitdiff/4a7b31f84d5e15aae94f03189dff4533d1... commit 4a7b31f84d5e15aae94f03189dff4533d17e37d5 Author: Pavan Balaji <[email protected]> Date: Tue Apr 22 13:54:08 2014 -0500 Make extractcvars VPATH build safe. The paths used in the extractcvars script were not VPATH build safe earlier. Since this is mostly called from autogen.sh, it didn't matter earlier. But in cases where the make logic tries to run it again, it was failing. Signed-off-by: Ken Raffenetti <[email protected]> diff --git a/.gitignore b/.gitignore index 4da8b8b..e4c86e4 100644 --- a/.gitignore +++ b/.gitignore @@ -387,6 +387,8 @@ Makefile.am-stamp /maint/extractfixme /maint/structalign /maint/createhtmlindex +/maint/extractcvars +/maint/cvardirs # /src/ diff --git a/maint/configure.ac b/maint/configure.ac index bc44581..ba71a63 100644 --- a/maint/configure.ac +++ b/maint/configure.ac @@ -27,7 +27,7 @@ if test "$xargs_out" != "0" ; then fi AC_SUBST(XARGS_NODATA_OPT) -AC_OUTPUT_COMMANDS([chmod a+x checkbuilds getcoverage genstates clmake f77tof90 extractstrings extractstates extractfixme createcoverage gcovmerge createhtmlindex]) +AC_OUTPUT_COMMANDS([chmod a+x checkbuilds getcoverage genstates clmake f77tof90 extractstrings extractcvars extractstates extractfixme createcoverage gcovmerge createhtmlindex]) # We have to redefine the variables that autoconf always substitutes and that # are used in simplemake CFLAGS='@CFLAGS@' @@ -38,4 +38,4 @@ CXXFLAGS='@CXXFLAGS@' # autoconf replacement. # Note that top_srcdir and srcdir are special cases (they must not # be changed in configure.ac because configure uses them to find other files) -AC_OUTPUT(checkbuilds getcoverage genstates clmake f77tof90 extractstrings extractstates extractfixme createcoverage gcovmerge createhtmlindex) +AC_OUTPUT(checkbuilds getcoverage genstates clmake f77tof90 extractstrings extractcvars extractstates extractfixme createcoverage gcovmerge createhtmlindex cvardirs) diff --git a/maint/cvardirs b/maint/cvardirs deleted file mode 100644 index 69cc1ee..0000000 --- a/maint/cvardirs +++ /dev/null @@ -1 +0,0 @@ -src/mpi src/mpi_t src/nameserv src/util src/binding src/include src/mpid src/pmi src/mutex diff --git a/maint/cvardirs.in b/maint/cvardirs.in new file mode 100644 index 0000000..2f60016 --- /dev/null +++ b/maint/cvardirs.in @@ -0,0 +1 @@ +@abs_srcdir@/../src/mpi @abs_srcdir@/../src/mpi_t @abs_srcdir@/../src/nameserv @abs_srcdir@/../src/util @abs_srcdir@/../src/binding @abs_srcdir@/../src/include @abs_srcdir@/../src/mpid @abs_srcdir@/../src/pmi @abs_srcdir@/../src/mutex diff --git a/maint/extractcvars b/maint/extractcvars.in similarity index 98% rename from maint/extractcvars rename to maint/extractcvars.in index 96e6563..e95e393 100755 --- a/maint/extractcvars +++ b/maint/extractcvars.in @@ -14,7 +14,7 @@ use Data::Dumper; use Getopt::Long; # Help perl find the YAML parsing module -use lib './maint/local_perl/lib'; +use lib '@abs_srcdir@/local_perl/lib'; use YAML::Tiny qw(); # To format README file @@ -42,9 +42,9 @@ my $alt_ns = "MPIR_PARAM"; my $dep_ns = "MPICH"; # Default :output source files -my $header_file = "src/include/mpich_cvars.h"; -my $c_file = "src/util/cvar/mpich_cvars.c"; -my $readme_file = "README.envvar"; +my $header_file = "@abs_srcdir@/../src/include/mpich_cvars.h"; +my $c_file = "@abs_srcdir@/../src/util/cvar/mpich_cvars.c"; +my $readme_file = "@abs_srcdir@/../README.envvar"; sub Usage { print <<EOT; diff --git a/src/util/cvar/Makefile.mk b/src/util/cvar/Makefile.mk index 12764ca..cab118e 100644 --- a/src/util/cvar/Makefile.mk +++ b/src/util/cvar/Makefile.mk @@ -11,5 +11,5 @@ mpi_core_sources += \ if MAINTAINER_MODE # normally built by autogen.sh, but this rebuild rule is here $(top_srcdir)/src/util/cvar/mpich_cvars.c: $(top_srcdir)/maint/extractcvars - ( cd $(top_srcdir) && ./maint/extractcvars --dirs="`cat ./maint/cvardirs`") + ( cd $(top_srcdir) && $(top_srcdir)/maint/extractcvars --dirs="`cat $(top_srcdir)/maint/cvardirs`") endif MAINTAINER_MODE ----------------------------------------------------------------------- Summary of changes: .gitignore | 2 + Makefile.am | 27 +++-- README.vin | 79 +++---------- autogen.sh | 2 +- configure.ac | 105 ++++++++++++++---- doc/refman/refcmd.tex | 5 +- doc/userguide/user.tex.vin | 6 +- maint/checkbuilds.in | 8 +- maint/clmake.in | 3 +- maint/configure.ac | 4 +- maint/createcoverage.in | 2 +- maint/cvardirs | 1 - maint/cvardirs.in | 1 + maint/{extractcvars => extractcvars.in} | 8 +- maint/samplebuilds | 4 +- src/binding/cxx/Makefile.mk | 2 +- src/binding/fortran/mpif_h/buildiface | 16 --- src/binding/fortran/use_mpi/buildiface | 6 +- .../fortran/use_mpi/{manf90.txt => manfort.txt} | 18 ++-- src/env/Makefile.mk | 12 +- src/env/mpicc.bash.in | 24 +--- src/env/mpicc.sh.in | 24 +--- src/env/mpicc.txt | 2 +- src/env/mpicxx.bash.in | 24 +--- src/env/mpicxx.sh.in | 24 +--- src/env/mpicxx.txt | 2 +- src/env/mpif77.bash.in | 24 +--- src/env/mpif77.sh.in | 24 +--- src/env/mpif77.txt | 2 +- src/env/{mpif90.bash.in => mpifort.bash.in} | 110 ++++++++----------- src/env/{mpif90.sh.in => mpifort.sh.in} | 116 +++++++++----------- src/env/{mpif90.txt => mpifort.txt} | 50 ++++---- src/mpi/romio/README | 8 +- src/mpi/romio/configure.ac | 8 +- src/mpi/romio/doc/users-guide.tex | 13 +-- src/mpl/Makefile.am | 2 +- src/openpa/src/Makefile.am | 2 +- src/packaging/pkgconfig/mpich.pc.in | 2 +- src/util/cvar/Makefile.mk | 2 +- test/commands/Makefile.am | 4 +- test/mpi/configure.ac | 52 +++++++-- 41 files changed, 381 insertions(+), 449 deletions(-) delete mode 100644 maint/cvardirs create mode 100644 maint/cvardirs.in rename maint/{extractcvars => extractcvars.in} (98%) rename src/binding/fortran/use_mpi/{manf90.txt => manfort.txt} (89%) rename src/env/{mpif90.bash.in => mpifort.bash.in} (82%) rename src/env/{mpif90.sh.in => mpifort.sh.in} (82%) rename src/env/{mpif90.txt => mpifort.txt} (82%) hooks/post-receive -- MPICH primary repository
participants (1)
-
noreply@mpich.org