[petsc-dev] COPTFLAGS

Satish Balay balay at mcs.anl.gov
Wed Nov 13 12:55:03 CST 2013


On Wed, 13 Nov 2013, Jed Brown wrote:

> Satish Balay <balay at mcs.anl.gov> writes:
> 
> > On Wed, 13 Nov 2013, Jed Brown wrote:
> >
> >> Satish Balay <balay at mcs.anl.gov> writes:
> >> > I don't understand why this would be needed. Thid code sets the
> >> > defaults for bopt='g' or 'O'. But if COPTFLAGS flags is set by user -
> >> > it routine should not be called. [so the above 2 lines appear to be
> >> > redundant]
> >> 
> >> How do you figure that the routine is not called when COPTFLAGS is set
> >> by the user?
> >
> > configureCompilerFlags() in compilerFlags.py does this magic..
> 
> For CFLAGS, but not for COPTFLAGS.
> 
> >>>>>>>>>>>>
> >         for bopt in bopts:
> >           if not bopt == '' and self.getOptionalFlagsName(language) in self.framework.argDB:
> >             # treat user supplied options as single option - as it could include options separated by spaces '-tp k8-64'                                                                                           
> >             flags = [self.framework.argDB[self.getOptionalFlagsName(language)]]
> >           elif bopt == '' and self.getCompilerFlagsName(language) in self.framework.argDB:
> >             self.logPrint('Ignoring default options which were overridden using --'+self.getCompilerFlagsName(language)+ ' ' + self.framework.argDB[self.getCompilerFlagsName(language)])
> >             flags = []
> >           else:
> >             flags = options.getCompilerFlags(language, self.setCompilers.getCompiler(), bopt)
> 
> Notice how this one is always called, regardless of COPTFLAGS.

If COPTFLAGS is set in argDB [for either bopt= 'g' or 'O'] - the first
'if' statement is evaluated -so the 'else' block is never executed.

Similarly for CFLAGS - the second 'elif' block gets run.

You can put a print statement in getCFlags() to verify.

Satish

>  Are you are saying that we should instead add
> getCompilerOptFlagsName() and a similar guard here instead of
> putting it inside getCFlags?




More information about the petsc-dev mailing list