from os import environ vars = Variables(None, ARGUMENTS) vars.Add('modelflags', 'Compiler flags for model source code', '${modelflags}') vars.Add('lorentzflags', 'Compiler flags for lorentz source code', '${lorentzflags}') vars.Add('includedir', 'Location of SHERPA headers', '${includedir}') vars.Add('libpath', 'Location of SHERPA libraries', '${libdir}') vars.Add('installdir', 'Installation directory for the generated library', '${installdir}') env = Environment(variables=vars, CPPPATH=['$${includedir}'], LIBPATH=['$${libdir}'], RPATH =['$${libdir}']) vars.Update(env) Help(vars.GenerateHelpText(env)) env['ENV']=environ if env['PLATFORM']=='darwin': env.Append( LINKFLAGS='-Wl,-undefined -Wl,dynamic_lookup' ) else: env.Append( LINKFLAGS='-Wl,-no-as-needed' ) lorentz_sources = [ s for s in env.Glob('*.C') if s.name!='Model.C'] modellib = env.SharedLibrary('${libname}',[env.SharedObject('Model.C', CXXFLAGS='$$modelflags'), env.SharedObject(lorentz_sources,CXXFLAGS='$$lorentzflags')]) env.Install('$${installdir}',modellib) env.Alias('install',['$${installdir}'])