First off, I could not locate Minuit header files

include/lsst/fw/MinimizerFunctionBase.h:14:28: Minuit/FCNBase.h: No such file or directory

Minuit was set-up

setup minuit testing

Edit SConstruct

env = scons.makeEnv("imageproc",
 ...
                     ["minuit", "Minuit/FCNBase.h"]

This got me close, but

Error: Failed to find minuit in /home/becker/src/Minuit-1_7_9/lib

Because its called liblcg_Minuit. So edit SConstruct again

env.libs = dict([
 ...
    ("minuit", Split("liblcg_Minuit")),

and I am on to real bugs!

Almost...

/usr/bin/ld: cannot find -lminuit

I want it to say liblcg_Minuit. My tests/SConscript file says

env.Program(["testMinuit.cc"], LIBS=env.libs["vw"] + ["fw"] + ["minuit"])

and it should say

env.Program(["testMinuit.cc"], LIBS=env.libs["vw"] + ["fw"] + env.libs["minuit"])

Closer. I now get

/usr/bin/ld: cannot find -llcg_Minuit

Hmmm... the g++ line says

-Wl,-rpath -Wl,/home/becker/src/Minuit-1_7_9/lib

but doesn't say

-L/home/becker/src/Minuit-1_7_9/lib

Ah, OK, so apparently env = scons.makeEnv("imageproc", does have some useful functionality beyond testing if stuff exists. I needed to say

                     ["minuit", "Minuit/MnMigrad.h", "liblcg_Minuit"]

where liblcg_Minuit gets put after -L. I could also try to say

                     ["minuit", "Minuit/MnMigrad.h", "liblcg_Minuit", "migrad"]

and then migrad() would get added to the test code spawned by Scons.