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.


So for the above example you'd issue:
=== Load modules ===
 
$ 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. Note that the modules installed for above (say on discover) are:
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


or run:
For other modules see the table at the end.
  $ module purge
 
  $ module load comp/intel-13.0.1.117 other/mpi/mvapich2-1.9a2/intel-13.0.1.117 other/comp/gcc-4.6.3-sp1 other/SIVO-PyD/spd_1.6.0_gcc-4.6.3-sp1
'''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 ==