[CMake] Fortran 90 modules not rebuilt

K. Noel Belcourt kbelco at sandia.gov
Wed Nov 17 11:32:07 EST 2010


Hi Brad,

On Nov 16, 2010, at 3:49 PM, Brad King wrote:

> On 11/16/2010 04:52 PM, Belcourt, K. Noel wrote:
>>
>> On Nov 16, 2010, at 2:50 PM, Brad King wrote:
>>
>>> On 11/16/2010 04:24 PM, Belcourt, K. Noel wrote:
>>>> which is the same list of libraries in these SUBDIRS commands in  
>>>> the
>>>> top-level CMakeLists.txt file (in reverse order).  There's a single
>>>> library in each of these subdirs of the same lower-cased name.
>>>>
>>>> ...
>>>> SUBDIRS(Modules)
>>>> SUBDIRS(MP)
>>>> SUBDIRS(Rn1)
>>>> SUBDIRS(RN2)
>>>> SUBDIRS(SPR)
>>>> SUBDIRS(TP)
>>>> SUBDIRS(Util)
>>>>
>>>> So it looks like the subdirs command plays a role in this behavior.
>>>
>>> Is this built on a case-insensitive filesystem by any chance?
>>
>> I get the same behavior on HFS+ Journaled on my Mac and my RHEL5  
>> Linux
>> blade.
>
> Run "make -d" to get debugging output.  It is *very* verbose but can
> tell you why make chooses to run certain rules.

It's definitely related to the presence of the SUBDIRS.  Make never  
considers any of the SUBDIRS that precede Modules, but considers all  
the SUBDIRS that follows modules.

I've found a workaround but I get the sense that there's still a bug  
lurking in there somewhere.  If I just move the SUBDIRS(Modules) last  
in the list of SUBDIRS, I'm able to run 'make modules ; make' and it  
works okay.

SUBDIRS(BONUS)
SUBDIRS(Bur)
SUBDIRS(CAV)
SUBDIRS(CF-TF)
SUBDIRS(cor)
SUBDIRS(CVH)
SUBDIRS(DCH)
SUBDIRS(EDF)
SUBDIRS(Eos)
SUBDIRS(ESF)
SUBDIRS(exec)
SUBDIRS(FDI)
SUBDIRS(FP)
SUBDIRS(H2C)
SUBDIRS(HS)
SUBDIRS(licensing)
SUBDIRS(MP)
SUBDIRS(Prog)
SUBDIRS(Rn1)
SUBDIRS(RN2)
SUBDIRS(solver)
SUBDIRS(SPR)
SUBDIRS(TP)
SUBDIRS(Util)
SUBDIRS(Modules)

This works, but moving SUBDIRS(Modules) into it's lexical ordering  
fails with the reported error.

Of course as soon as I couple in the next component's modules, I'll  
have the problem again (make modules ; make coupled_modules ; make)  
where the F90 modules in the modules library are completely  
independent of the F90 modules in the coupled_modules library.  So in  
a few weeks I'll be broken again as only one of the F90 module  
libraries can be last in the SUBDIRS list.

Does this seem like a bug to you?  Anything else I can do to help  
with this?

-- Noel




More information about the CMake mailing list