Opened 6 years ago
Closed 6 years ago
#824 closed defect (Fixed)
Updated makefile configuration files
Reported by: | arango | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | Release ROMS/TOMS 3.8 |
Component: | Nonlinear | Version: | 3.8 |
Keywords: | Cc: |
Description
Updated all the makefile configuration files (*.mk) in the Compilers sub-directory to include the following initialization of the LIBS macro:
LIBS := $(SCRATCH_DIR)/libNLM.a # cyclic dependencies
It is done to overcome the cyclic dependencies with files in the ROMS/Utility sub-directory. For some ROMS algorithms and operating system like Linux, the ROMS nonlinear model library libNLM.a is needed at the beginning and end of the library list during linking to resolve any cyclic dependencies.
Notice that it is easy to check the libraries and LIBS macros with the build script for the beginning and end of the list respectively:
build_roms.sh -p libraries build_roms.sh -p LIBS or build_roms.bash -p libraries build_roms.bash -p LIBS
the above are useful commands with the build script when having problems linking. Give it a try. We can check any macro or environmental variable used in the ROMS makefile.
WARNING: If you have a customized version of any of those configurations files, you just need to add the above LIBS: = macro initialization in the top section of such file in the root source directory or any other directory specified in the build script. For example, in build_roms.sh we have a choice for such files:
# Set path of the directory containing makefile configuration (*.mk) files. # The user has the option to specify a customized version of these files # in a different directory than the one distributed with the source code, # ${MY_ROMS_SRC}/Compilers. If this is the case, you need to keep these # configurations files up-to-date. setenv COMPILERS ${MY_ROMS_SRC}/Compilers #setenv COMPILERS ${HOME}/Compilers/ROMS