← Back to team overview

dolfin team mailing list archive

Re: Swig and scons

 

On Tue, Sep 30, 2008 at 02:35:21PM +0200, Johannes Ring wrote:
> On Tue, September 30, 2008 13:24, Anders Logg wrote:
> > On Tue, Sep 30, 2008 at 09:38:07AM +0200, Johannes Ring wrote:
> >> On Tue, September 30, 2008 09:15, Anders Logg wrote:
> >> > On Tue, Sep 30, 2008 at 08:39:41AM +0200, Johannes Ring wrote:
> >> >> On Sat, September 27, 2008 20:05, Garth N. Wells wrote:
> >> >> >
> >> >> >
> >> >> > Johan Hake wrote:
> >> >> >> On Saturday 27 September 2008 18:17:12 Harish Narayanan wrote:
> >> >> >>> In order to get the swig-generated dolfin_wrap.cc to build with
> >> my
> >> >> gcc,
> >> >> >>> I need to perform some simple substitutions on the file which
> >> I've
> >> >> >>> expressed as a perl script:
> >> >> >>>
> >> >> >>> perl -pi -e 's/Type v;/Type v = 0;/g' dolfin/swig/dolfin_wrap.cc
> >> >> >>
> >> >> >> Maybee you could make a runnable script called 'swig' and put it
> >> >> >> somwhere in
> >> >> >> your path, and make sure it executes before the system swig. Then
> >> in
> >> >> the
> >> >> >> script you call the system swig with the handed sysargs. After
> >> that
> >> >> line
> >> >> >> you
> >> >> >> execute the command above. Its a hack, but I do not think scons
> >> >> support
> >> >> >> this
> >> >> >> in a better way.
> >> >> >>
> >> >> >
> >> >> > I don't really like this approach. I would prefer to enable
> >> different
> >> >> > compiler flags for dolfin_wrap.cc, i.e. do not use -Werror, if that
> >> >> does
> >> >> > the trick. dolfin_wrap.cc won't compile under Ubuntu Intrepid with
> >> >> > -Werror, so we'll need to do something.
> >> >>
> >> >> What if we removed the -Werror flag from CXXFLAGS as default and
> >> instead
> >> >> let the user decide whether to add it through the customCxxFlags
> >> option?
> >> >> This option is cached in scons/options.cache so you only have to set
> >> it
> >> >> once.
> >> >>
> >> >> Currently, the only way a user can remove the -Werror flag when
> >> running
> >> >> scons is by turning off debugging with enableDebug=no. I don't think
> >> >> this
> >> >> is very nice since -Werror isn't really a debugging flag.
> >> >>
> >> >> Johannes
> >> >
> >> > I don't like that. It would increase the risk of someone pushing code
> >> > that compiles with warnings. DOLFIN has been free of warnings for a
> >> > few years now and it was quite a bit of work to remove them to begin
> >> > with.
> >>
> >> Okay, I see.
> >>
> >> Is it okay then if I move the -Werror flag from the debugging flags to
> >> the
> >> default CXXFLAGS and if the user defines CXXFLAGS the default CXXFLAGS
> >> is
> >> overwritten? Like this:
> >>
> >> diff -r cfbe8dbbf3c9 SConstruct
> >> --- a/SConstruct	Mon Sep 29 15:23:53 2008 +0200
> >> +++ b/SConstruct	Tue Sep 30 09:36:49 2008 +0200
> >> @@ -149,7 +149,10 @@
> >>      # FIXME: should we also remove the file scons/options.cache?
> >>
> >>  # Default CXX and FORTRAN flags
> >> -env["CXXFLAGS"] = "-Wall -pipe -ansi" # -Werror"
> >> +if os.environ.has_key("CXXFLAGS"):
> >> +  env['CXXFLAGS'] = os.environ["CXXFLAGS"]
> >> +else:
> >> +  env["CXXFLAGS"] = "-Wall -pipe -ansi -Werror"
> >>  #env["SHFORTRANFLAGS"] = "-Wall -pipe -fPIC"
> >>
> >>  # Default link flags
> >> @@ -157,7 +160,7 @@
> >>
> >>  # If Debug is enabled, add -g:
> >>  if env["enableDebug"]:
> >> -  env.Append(CXXFLAGS=" -DDEBUG -g -Werror")
> >> +  env.Append(CXXFLAGS=" -DDEBUG -g")
> >>
> >>  if not env["enableDebugUblas"]:
> >>    env.Append(CXXFLAGS=" -DNDEBUG")
> >>
> >>
> >> Johannes
> >
> > Sounds good.
> 
> Done.
> 
> To build without -Werror, define CXXFLAGS before running scons, e.g.,
> 
>   CXXFLAGS="" scons
> 
> or
> 
>   CXXFLAGS="-Wall -pipe -ansi" scons
> 
> Johannes

Nice. Could you add a note on it to the FAQ for people with SWIG
problems?

As I understand it, we will all have this problem next month when
everyone upgrades Ubuntu... :-)

-- 
Anders

Attachment: signature.asc
Description: Digital signature


Follow ups

References