...
If doing development and fixing compile errors, it would probably be most efficient to run make directly rather than going through case.build. Be sure not to forget to source $case/.env_mach_specific.sh first so that your environment matches the CIME build environment. 'cd $EXEROOT/cmake-bld' and just run 'make' ( you can add -jN of course too). Note: once the build is complete, you'll still need to run case.build in order for CIME bookkeeping to occur; it should only take a few seconds.
Examining flag settings for a component
Assuming you are in $EXEROOT/cmake-bld, a nice synopsis of the flag settings for a component can be found in cmake/$comp_class/CMakeFiles/$comp_class.dir/flags.make
For example, for atm:
Code Block |
---|
% cat cmake/atm/CMakeFiles/atm.dir/flags.make |
This will nicely show default flags for each language, includes, cpp defs, and per-file flag customizations.
Examining link flags for E3SM
Leaving aside the static lib creation, there's only one interesting link command in our build: the linking of the e3sm.exe executable. You can see what this command will be by looking at cmake/cpl/CMakeFiles/e3sm.exe.dir/link.txt
Temporarily tweaking compiler flags for a broken file
...