SMOKE compilation is needed only if the executables for your platform are not available from the CMAS web site. Prior to SMOKE compilation, please take the following steps:
Install SMOKE as described in Section 12.3, “Installing SMOKE”.
If needed, update the file $EDSS_ROOT/scripts/platform to have the compiler options for your operating system. To decide whether you need to update this file, enter the following commands from the UNIX prompt:
cd $EDSS_ROOT/scripts
source platform
and if you then get an error, enter
echo $EDSS_OS
If the value that comes back from this command is not listed as a “case” in the platform file in lines 46-72, then you need to update the platform file to have your case in lines 46-72, and you need to update for your case in the section composed of lines 76-130.
You will also need to determine which compiler options are needed on your system for maximum optimization (like the -O3 option), whether any options are needed for portable executables (like -static), or whether any options are needed for extra memory allocation (like -bmaxdata:0X20000000 on AIX systems). This will vary depending on platform and compiler; please consult your compiler documentation for exact settings.
Once the platform file has been updated, enter the following commands from the UNIX prompt:
cd $EDSS_ROOT/scripts
source platform
This sets the EDSS_EXE environment variable needed in the next steps.
Compile the I/O API library version 2.2 for your platform using the source code in $EDSS_ROOT/subsys/ioapi. For more information about compiling the I/O API library, see the I/O API home page. Make sure that your library file is created as $EDSS_ROOT/subsys/ioapi/bin/$EDSS_EXE/libioapi.a.
You will also need one of the I/O API Tools programs, datshift. The source code for these programs is located in $EDSS_ROOT/subsys/ioapi/Tools. After compiling, make sure the executable is located at $EDSS_ROOT/subsys/ioapi/bin/$EDSS_EXE/datshift
Collect or create the NetCDF library version 3.5.1 for your platform and install it as $EDSS_ROOT/subsys/netcdf/bin/$EDSS_EXE/libnetcdf.a
If needed, update the files
to have the compiler options for your operating system. See the instructions above for the platform file updates to determine whether you need to do this. All of the same cases available in the platform file are also available in these three files.
After the appropriate libraries and compile options have been installed, then you are ready to use the SMOKE compile scripts, which are quite simple to use. To compile SMOKE:
Source an Assigns file to ensure that your system is configured properly for installation.
Change directories to $SMKROOT/scripts/make.
Optionally edit the header of the Makeall file to turn off building one or more libraries needed for SMOKE (libfileset, libedsstools, libsmoke, or libmo6). You can turn off these options only if these libraries have been previously compiled for your system.
At the UNIX prompt, type:
Makeall
The only errors that are acceptable when you use this script are errors after the /bin/rm commands. The /bin/rm commands will fail if there are no object files (*.o files) in your SMOKE source code directories. This will be the case if you have not previously compiled SMOKE. If you get errors other than those after the /bin/rm commands, you may submit a help request to the CMAS Help Desk.