Opened 12 years ago

Closed 12 years ago

#541 closed upgrade (Done)

Cyclic dependencies in the makefile

Reported by: arango Owned by: arango
Priority: major Milestone: Release ROMS/TOMS 3.6
Component: Nonlinear Version: 3.6
Keywords: Cc:

Description (last modified by arango)

The ROMS makefile is very powerful and complex. All the ROMS 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 sub-directories. Therefore, in the makefile we have the libUTIL.a at the beginning and near the 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 versions 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 (1)

comment:1 by arango, 12 years ago

Description: modified (diff)
Resolution: Done
Status: newclosed
Note: See TracTickets for help on using tickets.