# syntax: python
Import('*')

pyMain='$PREFIX/bin/yade$SUFFIX'
main=env.ScanReplace('main/main.py.in')
batch=env.ScanReplace('main/yade-batch.in')
env.AlwaysBuild(main)
env.AlwaysBuild(batch)
env.InstallAs(pyMain,main)
env.InstallAs(pyMain+'-batch',batch)
env.AddPostAction(pyMain,Chmod(pyMain,0755))
env.AddPostAction(pyMain+'-batch',Chmod(pyMain+'-batch',0755))
## for --rebuild
if 'execCheck' in env and env['execCheck']!=env.subst(pyMain):
	raise RuntimeError('execCheck option (%s) does not match what is about to be installed (%s)'%(env['execCheck'],env.subst(pyMain)))

env.Install('$LIBDIR/py/yade',[
	env.SharedLibrary('boot',['main/pyboot.cpp'],SHLIBPREFIX='',LIBS=env['LIBS']+['yade-support','core'])
])

env.Install('$LIBDIR/lib',[
	env.SharedLibrary('core',
		env.Combine('core.cpp',[
			'Body.cpp',
			'BodyContainer.cpp',
			'Bound.cpp',
			'Cell.cpp',
			'PartialEngine.cpp',
			'EnergyTracker.cpp',
			'Engine.cpp',
			'FileGenerator.cpp',
			'FrontEnd.cpp',
			'Interaction.cpp',
			'InteractionContainer.cpp',
			'Material.cpp',
			'Scene.cpp',
			'Dispatcher.cpp',
			'Omega.cpp',
			'Shape.cpp',
			'SimulationFlow.cpp',
			'State.cpp',
			'ThreadRunner.cpp',
			'ThreadWorker.cpp',
			'TimeStepper.cpp',
			'corePlugins.cpp'			
			]
			),
		LIBS=env['LIBS']+[
			'yade-support',
			'rt', # realtime lib, for clock_gettime 
			]
			,
	)
])
