← Back to team overview

dolfin team mailing list archive

Re: Debugging scons

 

Åsmund Ødegård wrote:
Hi Andy,

thanks for your report :)

On Mon, Mar 10, 2008 at 10:07 PM, Andy Ray Terrel <aterrel@xxxxxxxxxxxx <mailto:aterrel@xxxxxxxxxxxx>> wrote:

    I am having trouble with scons trying to find UMFPACK for me on my mac
    laptop and am trying to debug how it configures itself.  When I
    look at
    dolfin/scons/simula-scons/simula_scons/pkgconggenerators/umfpack.py
    this
    codes adds a bunch of directories and looks for umfpack.h,
    libumfpack.a,
    amd.h and so on.  If it can't find these guys it raises an error
    saying
so and similarly if it cannot compile the test programs.

You could actually run that script standalone - just cd in there and do 'python umfpack.py' - that might yield some extra information... Maybe you can try that and report?

Looks like it is building the library strings wrong, the compile fails by calling:

g++ -I/usr/local/include umfpack_config_test_include.cpp -framework -L/usr/local/lib vecLib -lumfpack

so in the pkgLibs function removing the line: * libs = " ".join(set(libs.split()))* fixes my compiling problem, since -framework vecLib must be together on Darwin.

then for linking it didn't put -lamd and -lumfpack after the blas calls, and used:

g++ -L/sw/lib -lumfpack -L/sw/lib -lamd -framework vecLib umfpack_config_test_lib.o

this needs to be:

g++ -framework vecLib -L/sw/lib -lumfpack -L/sw/lib -lamd umfpack_config_test_lib.o

I changed pkgLibs to:

def pkgLibs(**kwargs):
 libs = ""
 if get_architecture() == "darwin":
   libs += "-framework vecLib"
 else:
   libs += "-L%s -lblas -llapack" % getATLASDir()
 libs += " -L%s -lumfpack" % getUmfpackLibDir()
 if needAMD():
libs += " -L%s -lamd" % getAMDLibDir()
 return libs

and everything works, its probably not the most robust solution but solved my problems for here and now.



Follow ups

References