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}'])
