Opened 13 years ago
Last modified 13 years ago
#541 closed upgrade
Cyclic dependencies in the makefile — at Initial Version
Reported by: | arango | Owned by: | arango |
---|---|---|---|
Priority: | major | Milestone: | Release ROMS/TOMS 3.6 |
Component: | Nonlinear | Version: | 3.6 |
Keywords: | Cc: |
Description
The ROMS makefile is very powerful and complex. Since all the algorithms are distributed in several sub-directories. Each sub-directory has it own library, which is used during the linking stage. We need to account for the circularity of these objects in the libraries. For instance, the ROMS/Utility codes (libUTIL.a) uses modules located in other directories. Therefore, in the makefile the includes the libUTIL.a at the beginning and end of the libraries list token. For example, in nonlinear model algorithms, we have:
libraries := $(SCRATCH_DIR)/libUTIL.a $(SCRATCH_DIR)/libNLM.a $(SCRATCH_DIR)/libNLM_bio.a $(SCRATCH_DIR)/libNLM_sed.a $(SCRATCH_DIR)/libANA.a $(SCRATCH_DIR)/libUTIL.a $(SCRATCH_DIR)/libMODS.a
It turns out that with some compiler version and computers operating systems we also need circularity in the modules token for the ROMS/Nonlinear directory modules:
modules += ROMS/Nonlinear \ ROMS/Nonlinear/Biology \ ROMS/Nonlinear/Sediment \ ROMS/Functionals \ ROMS/Utility \ ROMS/Nonlinear \ ROMS/Modules
Many thanks to Özgür Gürses for reporting this problem and to Kate for providing a family.