Building CVS Baselibs: Difference between revisions
No edit summary |
|||
Line 25: | Line 25: | ||
The next task is to build Baselibs. In order to correctly build it, two arguments are needed: <tt>ESMF_COMM</tt> and <tt>CONFIG_SETUP</tt>. <tt>ESMF_COMM</tt> is the MPI stack used by ESMF (usually, <tt>mvapich2</tt>, <tt>mpi</tt>, <tt>openmpi</tt>, or <tt>intelmpi</tt>). <tt>CONFIG_SETUP</tt> is actually an "identifier" that will allow you to build multiple versions of Baselibs for multiple compiler/MPI combination. The style recommended is for, say, Intel 13.0.1.117 and MVAPICH2 1.9a2 is: <tt>CONFIG_SETUP=ifort_13.0.1.117-mvapich2_1.9a2</tt> where you identify the compiler (by its name on the command line), its version, the MPI stack, and its version. | The next task is to build Baselibs. In order to correctly build it, two arguments are needed: <tt>ESMF_COMM</tt> and <tt>CONFIG_SETUP</tt>. <tt>ESMF_COMM</tt> is the MPI stack used by ESMF (usually, <tt>mvapich2</tt>, <tt>mpi</tt>, <tt>openmpi</tt>, or <tt>intelmpi</tt>). <tt>CONFIG_SETUP</tt> is actually an "identifier" that will allow you to build multiple versions of Baselibs for multiple compiler/MPI combination. The style recommended is for, say, Intel 13.0.1.117 and MVAPICH2 1.9a2 is: <tt>CONFIG_SETUP=ifort_13.0.1.117-mvapich2_1.9a2</tt> where you identify the compiler (by its name on the command line), its version, the MPI stack, and its version. | ||
=== Load modules === | |||
For our example we want to load these modules: | |||
1) comp/intel-13.0.1.117 | 1) comp/intel-13.0.1.117 | ||
Line 36: | Line 34: | ||
4) other/SIVO-PyD/spd_1.6.0_gcc-4.6.3-sp1 | 4) other/SIVO-PyD/spd_1.6.0_gcc-4.6.3-sp1 | ||
For other modules see the table at the end. | |||
$ | |||
$ | '''Note''': It's a good idea to build Baselibs in a clean environment. If you have cruft in, say, <tt>LD_LIBRARY_PATH</tt>, it's possible the build will not pick up the libraries you expect. | ||
=== Undo any CPP Environment Variable === | |||
Before doing any make, you should issue: | |||
$ unsetenv CPP | |||
$ unsetenv DEFAULT_CPP | |||
Some modules set these and most of the Baselibs assume the C-preprocessor will be gcc, not, say, pgcpp. | |||
=== Build and install === | |||
So for the above example you'd issue: | |||
$ make install ESMF_COMM=mvapich2 CONFIG_SETUP=ifort_13.0.1.117-mvapich2_1.9a2 |& tee makeinstall.ifort_13.0.1.117-mvapich2_1.9a2.log | |||
and it would build all the libraries. The <tt>tee</tt> is so that you can capture the install log, and also see it real-time. | |||
Once built, check for "Error" in your log file: | Once built, check for "Error" in your log file: | ||
Line 53: | Line 68: | ||
If you don't see any "<tt>Error 2</tt>" messages, you are probably safe. | If you don't see any "<tt>Error 2</tt>" messages, you are probably safe. | ||
== Checking Baselibs == | == Checking Baselibs == |