← Back to team overview

dolfin team mailing list archive

Re: Problems with scons and swig-rebuilding

 



Anders Logg wrote:
On Tue, Mar 18, 2008 at 10:29:40AM +0100, Johan Hake wrote:
On Tuesday 18 March 2008 10:09:28 Anders Logg wrote:
After pulling the latest changeset, I get the following error when
building:

dolfin/swig/dolfin_wrap.cc: In function "PyObject*
_wrap_PETScVector_createScatterer(PyObject*, PyObject*)":
dolfin/swig/dolfin_wrap.cc:40294: fel: "createScatterer" har inte en
medlem av "dolfin::PETScVector"
dolfin/swig/dolfin_wrap.cc: In function "PyObject*
_wrap_PETScVector_gather(PyObject*, PyObject*)":
dolfin/swig/dolfin_wrap.cc:40365: fel: "gather" har inte en medlem av
"dolfin::PETScVector"
dolfin/swig/dolfin_wrap.cc: In function "PyObject*
_wrap_PETScVector_scatter(PyObject*, PyObject*)":
dolfin/swig/dolfin_wrap.cc:40436: fel: "scatter" har inte en medlem av
"dolfin::PETScVector"
dolfin/swig/dolfin_wrap.cc: In function "PyObject*
_wrap_PETScVector_fromArray(PyObject*, PyObject*)":
dolfin/swig/dolfin_wrap.cc:40510: fel: "fromArray" har inte en medlem
av "dolfin::PETScVector"
dolfin/swig/dolfin_wrap.cc: In function "PyObject*
_wrap_PETScVector_toArray(PyObject*, PyObject*)":
dolfin/swig/dolfin_wrap.cc:40584: fel: "toArray" har inte en medlem av
"dolfin::PETScVector"
scons: *** [dolfin/swig/dolfin_wrap.os] Error 1
scons: building terminated because of errors.

The problem is obviously that dolfin_wrap.cc needs to be regenerated
after an interface change. Why is this not detected by the build
system?
I think the scanner check the [%,#]include file.[i,h] files for changes. When you set/unset a define you wont change any thing in the underlaying files and SCons do not recognize it.

If this is right, we need to check for changes in optional defines, and scan the included files for any appearance for ifdef's.

Having to touch dolfin.i was one of the annoyances with the old build
system.
It should work fine for _actual_ file changes.

This was an actual file change (in PETScVector.h). Maybe the problem
is that this file is included from dolfin_headers.h which in turn is
included in dolfin.i? So it's not directly seen by the scanner?


I didn't have any problems.

Garth


References