#!/bin/bash

make_scons() {
libname="Proc_"$(basename $(pwd))
sources=$(for i in *.C; do printf $i | sed "s/^/'/1;s/$/',/1"; done | sed 's/,$//1')
echo "Import('env')
lenv=env.Clone()
proclib = lenv.SharedLibrary('${libname}',[${sources}])
lenv.Install('\${libdir}',proclib)
lenv.Alias('install',['\${libdir}'])" > SConscript
}

procdir="Process/Amegic/*";
test -z "$1" || procdir=$1;

basedir=$PWD;
if test -z "$2"; then
echo "import os
vars = Variables()
vars.Add(PathVariable('libdir','lib path',os.getcwd()+'/Process/Amegic/lib',PathVariable.PathIsDirCreate))
vars.Add('CXX','The C++ Compiler','g++ -Wl,--no-as-needed')
vars.Add('CXXFLAGS','The C++ Flags',['-O2'])
env = Environment(variables=vars,CPPPATH=['/usr/include/SHERPA-MC'])
env['ENV']=os.environ
" > SConstruct;
fi;
test "$procdir" = "x" && exit 0;
printf "Processing ("$(echo $procdir/P?_* $procdir/fsr* | wc -w)") ";
for i in $procdir/P?_* $procdir/fsr*; do
  test -d $i || continue;
  cd $i; printf ".";
  make_scons;
  subdir=$(printf $PWD | sed 's|'${basedir}'||1;s|/||1')
  echo "SConscript('${subdir}/SConscript',exports='env')"  >> $basedir/SConstruct;
  cd $basedir;
done;
echo " done";
