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.

Change History (0)

Note: See TracTickets for help on using tickets.