diff --git a/Cantera/matlab/SConscript b/Cantera/matlab/SConscript index b4183c4a0..3b4c9138f 100644 --- a/Cantera/matlab/SConscript +++ b/Cantera/matlab/SConscript @@ -8,13 +8,14 @@ class MatlabBuilder(object): def __call__(self, target, source, env): filenames = [os.path.split(node.path)[1] for node in source] - sourcestr = ' '.join(pjoin('private',name) for name in filenames) + sourcestr = ' '.join(pjoin('..','src',name) for name in filenames) includes = ' '.join('-I%s' % Dir(s).abspath for s in env['CPPPATH']) libdir = ' '.join('-L%s' % Dir(s).abspath for s in env['LIBPATH']) libs = ' '.join('-l'+s for s in self.libs) text = """ disp('building Cantera...'); -mex -cxx -v %(sourcestr)s %(include)s %(libdir)s %(libs)s +cd cantera +mex -cxx -v -output ctmethods %(sourcestr)s %(include)s %(libdir)s %(libs)s disp('done.'); exit """ % dict(sourcestr=sourcestr, @@ -27,15 +28,24 @@ exit localenv = env.Clone() -localenv.Command('cantera/build_cantera.m', - mglob(localenv, 'cantera/private', 'cpp'), +localenv.Command('build_cantera.m', + mglob(localenv, 'src', 'cpp'), MatlabBuilder(localenv['cantera_libs'])) localenv['ENV']['PATH'] = os.environ['PATH'] build_cmd = 'cd ${SOURCE.dir}; %(matlab_cmd)s -nojvm -nosplash -r build_cantera' -target = localenv.Command('cantera/ctfunctions.mexa64', - 'cantera/build_cantera.m', +target = localenv.Command('cantera/ctmethods.mexa64', + 'build_cantera.m', build_cmd % localenv) - buildTargets.extend(target) + +### Install the Matlab toolbox ### +inst = localenv.RecursiveInstall(pjoin('$prefix', 'matlab','toolbox'), 'cantera') +installTargets.extend(inst) + +inst = localenv.RecursiveInstall(pjoin('$ct_tutdir', 'matlab'), 'tutorial') +installTargets.extend(inst) + +inst = localenv.RecursiveInstall(pjoin('$ct_demodir', 'matlab'), 'examples') +installTargets.extend(inst) diff --git a/Cantera/matlab/cantera/build.m b/Cantera/matlab/cantera/build.m deleted file mode 100755 index ad8dc04c9..000000000 --- a/Cantera/matlab/cantera/build.m +++ /dev/null @@ -1,45 +0,0 @@ -disp('building Phase...'); -%buildphase -cd @Phase/private -mex newphase.cpp -lct -mex phase_get.cpp -lct -mex phase_set.cpp -lct -cd ../.. - -disp('building Thermo...'); -%buildthermo -cd @Thermo/private -mex newthermo.cpp -lct -mex thermo_get.cpp -lct -mex thermo_set.cpp -lct -cd ../.. - -disp('building Kinetics...'); -%buildkinetics -cd @Kinetics/private -mex newkinetics.cpp -lct -mex kin_get.cpp -lct -mex kin_set.cpp -lct -mex rstoich.cpp -lct -mex pstoich.cpp -lct -mex rop.cpp -lct -mex production.cpp -lct -mex isrev.cpp -lct -mex rxnstring.cpp -lct -cd ../.. - -disp('building Transport...'); -%buildtransport -cd @Transport/private -mex newTransport.cpp -lct -mex trans_methods.cpp -lct -cd ../.. - -% -disp('building Functions...'); -cd private -mex addCanteraDirectory.cpp -lct -mex clearStorage.cpp -lct -mex import_from_file.cpp -lct -mex getCanteraError.cpp -lct -cd .. diff --git a/Cantera/matlab/cantera/build_cantera_static.m b/Cantera/matlab/cantera/build_cantera_static.m deleted file mode 100755 index f74fca90a..000000000 --- a/Cantera/matlab/cantera/build_cantera_static.m +++ /dev/null @@ -1,33 +0,0 @@ - -disp('building Cantera as a statically linked mex application ...'); -mex -v -Ic:/vc_env/cant17/build/include private/ctmethods.cpp private/ctfunctions.cpp ... - private/xmlmethods.cpp private/phasemethods.cpp ... - private/thermomethods.cpp private/kineticsmethods.cpp ... - private/transportmethods.cpp private/reactormethods.cpp ... - private/reactornetmethods.cpp ... - private/wallmethods.cpp private/flowdevicemethods.cpp ... - private/funcmethods.cpp ... - private/mixturemethods.cpp ... - private/onedimmethods.cpp private/surfmethods.cpp ... - c:/vc_env/cant17/build/lib/i686-pc-win32/clibstatic.lib ... - c:/vc_env/cant17/build/lib/i686-pc-win32/oneD.lib ... - c:/vc_env/cant17/build/lib/i686-pc-win32/zeroD.lib ... - c:/vc_env/cant17/build/lib/i686-pc-win32/transport.lib ... - c:/vc_env/cant17/build/lib/i686-pc-win32/equil.lib ... - c:/vc_env/cant17/build/lib/i686-pc-win32/kinetics.lib ... - c:/vc_env/cant17/build/lib/i686-pc-win32/thermo.lib ... - c:/vc_env/cant17/build/lib/i686-pc-win32/numerics.lib ... - c:/vc_env/cant17/build/lib/i686-pc-win32/converters.lib ... - c:/vc_env/cant17/build/lib/i686-pc-win32/base.lib ... - c:/vc_env/cant17/build/lib/i686-pc-win32/ctcxx.lib ... - c:/vc_env/cant17/build/lib/i686-pc-win32/tpx.lib ... - c:/vc_env/cant17/build/lib/i686-pc-win32/NVEC_SER.lib ... - c:/vc_env/cant17/build/lib/i686-pc-win32/CVODES.lib ... - c:/vc_env/cant17/build/lib/i686-pc-win32/SUNDIALS_SHARED.lib ... - c:/vc_env/cant17/build/lib/i686-pc-win32/ctmath.lib ... - c:/vc_env/cant17/build/lib/i686-pc-win32/ctlapack.lib ... - c:/vc_env/cant17/build/lib/i686-pc-win32/ctblas.lib ... - c:/vc_env/cant17/build/lib/i686-pc-win32/ctf2c.lib ... - c:/vc_env/cant17/build/lib/i686-pc-win32/ctlapack.lib ... - c:/vc_env/cant17/build/lib/i686-pc-win32/ctblas.lib ... - diff --git a/Cantera/matlab/cantera/private/importFromFile.m b/Cantera/matlab/cantera/private/importFromFile.m deleted file mode 100755 index 3312fa09e..000000000 --- a/Cantera/matlab/cantera/private/importFromFile.m +++ /dev/null @@ -1,33 +0,0 @@ -function b = importFromFile(th, k, infile, therm_db) -%importFromFile import a definition of a phase from a file. -% -% function importFromFile reads element, species, and reaction -% definitions from a file. The elements and species are added to -% thermo object 'th', and the reactions are added to 'k', which must be a -% kinetics manager for object th. - -if nargin > 3 - therm = therm_db; -elseif nargin == 3 - therm = ' '; -elseif nargin < 3 - error('syntax error: not enough arguments'); -end - -lasterr(''); - -if isa(th,'Thermo') & isa(k,'Kinetics') & isa(infile,'char') & isa(therm,'char') - ok = import_from_file(hndl(th), hndl(k), infile, therm, ' ', 1); - if ok == -1 - error(geterr); - elseif ok == -999 - disp('exception'); - error(lasterr); - elseif ok < 0 - error('Error importing file'); - end - -else - error('syntax error'); -end -b = {th, k}; diff --git a/Cantera/matlab/cantera/examples/catcomb.m b/Cantera/matlab/examples/catcomb.m similarity index 100% rename from Cantera/matlab/cantera/examples/catcomb.m rename to Cantera/matlab/examples/catcomb.m diff --git a/Cantera/matlab/cantera/examples/diffflame.m b/Cantera/matlab/examples/diffflame.m similarity index 100% rename from Cantera/matlab/cantera/examples/diffflame.m rename to Cantera/matlab/examples/diffflame.m diff --git a/Cantera/matlab/cantera/examples/equil.m b/Cantera/matlab/examples/equil.m similarity index 100% rename from Cantera/matlab/cantera/examples/equil.m rename to Cantera/matlab/examples/equil.m diff --git a/Cantera/matlab/cantera/examples/flame.m b/Cantera/matlab/examples/flame.m similarity index 100% rename from Cantera/matlab/cantera/examples/flame.m rename to Cantera/matlab/examples/flame.m diff --git a/Cantera/matlab/cantera/examples/flame1.m b/Cantera/matlab/examples/flame1.m similarity index 100% rename from Cantera/matlab/cantera/examples/flame1.m rename to Cantera/matlab/examples/flame1.m diff --git a/Cantera/matlab/cantera/examples/flame2.m b/Cantera/matlab/examples/flame2.m similarity index 100% rename from Cantera/matlab/cantera/examples/flame2.m rename to Cantera/matlab/examples/flame2.m diff --git a/Cantera/matlab/cantera/examples/ignite.m b/Cantera/matlab/examples/ignite.m similarity index 100% rename from Cantera/matlab/cantera/examples/ignite.m rename to Cantera/matlab/examples/ignite.m diff --git a/Cantera/matlab/cantera/examples/ignite2.m b/Cantera/matlab/examples/ignite2.m similarity index 100% rename from Cantera/matlab/cantera/examples/ignite2.m rename to Cantera/matlab/examples/ignite2.m diff --git a/Cantera/matlab/cantera/examples/ignite3.m b/Cantera/matlab/examples/ignite3.m similarity index 100% rename from Cantera/matlab/cantera/examples/ignite3.m rename to Cantera/matlab/examples/ignite3.m diff --git a/Cantera/matlab/cantera/examples/ignite_hp.m b/Cantera/matlab/examples/ignite_hp.m similarity index 100% rename from Cantera/matlab/cantera/examples/ignite_hp.m rename to Cantera/matlab/examples/ignite_hp.m diff --git a/Cantera/matlab/cantera/examples/ignite_uv.m b/Cantera/matlab/examples/ignite_uv.m similarity index 100% rename from Cantera/matlab/cantera/examples/ignite_uv.m rename to Cantera/matlab/examples/ignite_uv.m diff --git a/Cantera/matlab/cantera/examples/isentropic.m b/Cantera/matlab/examples/isentropic.m similarity index 100% rename from Cantera/matlab/cantera/examples/isentropic.m rename to Cantera/matlab/examples/isentropic.m diff --git a/Cantera/matlab/cantera/examples/periodic_cstr.m b/Cantera/matlab/examples/periodic_cstr.m similarity index 100% rename from Cantera/matlab/cantera/examples/periodic_cstr.m rename to Cantera/matlab/examples/periodic_cstr.m diff --git a/Cantera/matlab/cantera/examples/prandtl1.m b/Cantera/matlab/examples/prandtl1.m similarity index 100% rename from Cantera/matlab/cantera/examples/prandtl1.m rename to Cantera/matlab/examples/prandtl1.m diff --git a/Cantera/matlab/cantera/examples/prandtl2.m b/Cantera/matlab/examples/prandtl2.m similarity index 100% rename from Cantera/matlab/cantera/examples/prandtl2.m rename to Cantera/matlab/examples/prandtl2.m diff --git a/Cantera/matlab/cantera/examples/rankine.m b/Cantera/matlab/examples/rankine.m similarity index 100% rename from Cantera/matlab/cantera/examples/rankine.m rename to Cantera/matlab/examples/rankine.m diff --git a/Cantera/matlab/cantera/examples/reactor1.m b/Cantera/matlab/examples/reactor1.m similarity index 100% rename from Cantera/matlab/cantera/examples/reactor1.m rename to Cantera/matlab/examples/reactor1.m diff --git a/Cantera/matlab/cantera/examples/reactor2.m b/Cantera/matlab/examples/reactor2.m similarity index 100% rename from Cantera/matlab/cantera/examples/reactor2.m rename to Cantera/matlab/examples/reactor2.m diff --git a/Cantera/matlab/cantera/examples/run_examples.m b/Cantera/matlab/examples/run_examples.m similarity index 100% rename from Cantera/matlab/cantera/examples/run_examples.m rename to Cantera/matlab/examples/run_examples.m diff --git a/Cantera/matlab/cantera/examples/surfreactor.m b/Cantera/matlab/examples/surfreactor.m similarity index 100% rename from Cantera/matlab/cantera/examples/surfreactor.m rename to Cantera/matlab/examples/surfreactor.m diff --git a/Cantera/matlab/cantera/examples/test_examples.m b/Cantera/matlab/examples/test_examples.m similarity index 100% rename from Cantera/matlab/cantera/examples/test_examples.m rename to Cantera/matlab/examples/test_examples.m diff --git a/Cantera/matlab/cantera/examples/transport1.m b/Cantera/matlab/examples/transport1.m similarity index 100% rename from Cantera/matlab/cantera/examples/transport1.m rename to Cantera/matlab/examples/transport1.m diff --git a/Cantera/matlab/cantera/private/ctfunctions.cpp b/Cantera/matlab/src/ctfunctions.cpp similarity index 94% rename from Cantera/matlab/cantera/private/ctfunctions.cpp rename to Cantera/matlab/src/ctfunctions.cpp index 49c4edcad..d06fb6146 100644 --- a/Cantera/matlab/cantera/private/ctfunctions.cpp +++ b/Cantera/matlab/src/ctfunctions.cpp @@ -6,9 +6,9 @@ */ #include "mex.h" -#include "../../../clib/src/ct.h" -#include "../../../clib/src/ctonedim.h" -#include "../../../clib/src/ctxml.h" +#include +#include +#include #include "ctmatutils.h" #include #include diff --git a/Cantera/matlab/cantera/private/ctmatutils.h b/Cantera/matlab/src/ctmatutils.h similarity index 100% rename from Cantera/matlab/cantera/private/ctmatutils.h rename to Cantera/matlab/src/ctmatutils.h diff --git a/Cantera/matlab/cantera/private/ctmethods.cpp b/Cantera/matlab/src/ctmethods.cpp similarity index 96% rename from Cantera/matlab/cantera/private/ctmethods.cpp rename to Cantera/matlab/src/ctmethods.cpp index 37082547c..8cc2ae7d0 100644 --- a/Cantera/matlab/cantera/private/ctmethods.cpp +++ b/Cantera/matlab/src/ctmethods.cpp @@ -9,11 +9,8 @@ * class is indicated by the first parameter in the call from MATLAB. */ -#include "../../../clib/src/ct.h" +#include #include -//#include "../../../src/base/ct_defs.h" -//#include "../../../src/base/global.h" -//#include "../../../src/base/logger.h" #include "mex.h" #include "ctmatutils.h" #include "mllogger.h" diff --git a/Cantera/matlab/cantera/private/flowdevicemethods.cpp b/Cantera/matlab/src/flowdevicemethods.cpp similarity index 96% rename from Cantera/matlab/cantera/private/flowdevicemethods.cpp rename to Cantera/matlab/src/flowdevicemethods.cpp index d46e3abfc..30109ca40 100644 --- a/Cantera/matlab/cantera/private/flowdevicemethods.cpp +++ b/Cantera/matlab/src/flowdevicemethods.cpp @@ -1,8 +1,8 @@ #include "mex.h" #include "ctmatutils.h" -#include "../../../clib/src/ctreactor.h" -#include "../../../clib/src/ct.h" +#include +#include //const double Undef = -999.123; diff --git a/Cantera/matlab/cantera/private/funcmethods.cpp b/Cantera/matlab/src/funcmethods.cpp similarity index 95% rename from Cantera/matlab/cantera/private/funcmethods.cpp rename to Cantera/matlab/src/funcmethods.cpp index 95ccbf06a..8f83b904b 100644 --- a/Cantera/matlab/cantera/private/funcmethods.cpp +++ b/Cantera/matlab/src/funcmethods.cpp @@ -1,8 +1,8 @@ #include "mex.h" #include "ctmatutils.h" -#include "../../../clib/src/ctfunc.h" -#include "../../../clib/src/ct.h" +#include +#include void funcmethods( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[] ) diff --git a/Cantera/matlab/cantera/private/kineticsmethods.cpp b/Cantera/matlab/src/kineticsmethods.cpp similarity index 99% rename from Cantera/matlab/cantera/private/kineticsmethods.cpp rename to Cantera/matlab/src/kineticsmethods.cpp index 21d8ab024..6638fb40b 100644 --- a/Cantera/matlab/cantera/private/kineticsmethods.cpp +++ b/Cantera/matlab/src/kineticsmethods.cpp @@ -1,7 +1,7 @@ #include "mex.h" #include "ctmatutils.h" -#include "../../../clib/src/ct.h" +#include void checkNArgs(const int n, const int nrhs) { if (n != nrhs) { diff --git a/Cantera/matlab/cantera/private/mixturemethods.cpp b/Cantera/matlab/src/mixturemethods.cpp similarity index 98% rename from Cantera/matlab/cantera/private/mixturemethods.cpp rename to Cantera/matlab/src/mixturemethods.cpp index 671c8d901..9298bbbff 100644 --- a/Cantera/matlab/cantera/private/mixturemethods.cpp +++ b/Cantera/matlab/src/mixturemethods.cpp @@ -5,8 +5,8 @@ * $Id: mixturemethods.cpp,v 1.3 2009/07/11 16:43:12 hkmoffa Exp $ */ #include "mex.h" -#include "../../../clib/src/ctmultiphase.h" -#include "../../../clib/src/ct.h" +#include +#include #include "ctmatutils.h" #include using namespace std; diff --git a/Cantera/matlab/cantera/private/mllogger.h b/Cantera/matlab/src/mllogger.h similarity index 100% rename from Cantera/matlab/cantera/private/mllogger.h rename to Cantera/matlab/src/mllogger.h diff --git a/Cantera/matlab/cantera/private/onedimmethods.cpp b/Cantera/matlab/src/onedimmethods.cpp similarity index 99% rename from Cantera/matlab/cantera/private/onedimmethods.cpp rename to Cantera/matlab/src/onedimmethods.cpp index b284260ff..49f9cf3b8 100644 --- a/Cantera/matlab/cantera/private/onedimmethods.cpp +++ b/Cantera/matlab/src/onedimmethods.cpp @@ -1,7 +1,7 @@ #include "mex.h" #include "ctmatutils.h" -#include "../../../clib/src/ctonedim.h" +#include #include #include diff --git a/Cantera/matlab/cantera/private/phasemethods.cpp b/Cantera/matlab/src/phasemethods.cpp similarity index 99% rename from Cantera/matlab/cantera/private/phasemethods.cpp rename to Cantera/matlab/src/phasemethods.cpp index df75fa57e..f28779818 100644 --- a/Cantera/matlab/cantera/private/phasemethods.cpp +++ b/Cantera/matlab/src/phasemethods.cpp @@ -7,7 +7,7 @@ #include "mex.h" #include "ctmatutils.h" -#include "../../../clib/src/ct.h" +#include void phasemethods( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[] ) diff --git a/Cantera/matlab/cantera/private/reactormethods.cpp b/Cantera/matlab/src/reactormethods.cpp similarity index 97% rename from Cantera/matlab/cantera/private/reactormethods.cpp rename to Cantera/matlab/src/reactormethods.cpp index b22cf37fb..c7dcbc197 100644 --- a/Cantera/matlab/cantera/private/reactormethods.cpp +++ b/Cantera/matlab/src/reactormethods.cpp @@ -6,8 +6,8 @@ */ #include "mex.h" -#include "../../../clib/src/ctreactor.h" -#include "../../../clib/src/ct.h" +#include +#include #include "ctmatutils.h" void reactormethods( int nlhs, mxArray *plhs[], diff --git a/Cantera/matlab/cantera/private/reactornetmethods.cpp b/Cantera/matlab/src/reactornetmethods.cpp similarity index 97% rename from Cantera/matlab/cantera/private/reactornetmethods.cpp rename to Cantera/matlab/src/reactornetmethods.cpp index 27b678809..a39bd11ce 100644 --- a/Cantera/matlab/cantera/private/reactornetmethods.cpp +++ b/Cantera/matlab/src/reactornetmethods.cpp @@ -6,8 +6,8 @@ */ #include "mex.h" -#include "../../../clib/src/ctreactor.h" -#include "../../../clib/src/ct.h" +#include +#include #include "ctmatutils.h" //const double Undef = -999.123; diff --git a/Cantera/matlab/cantera/private/surfmethods.cpp b/Cantera/matlab/src/surfmethods.cpp similarity index 97% rename from Cantera/matlab/cantera/private/surfmethods.cpp rename to Cantera/matlab/src/surfmethods.cpp index 6eb5f52f0..2292b724e 100644 --- a/Cantera/matlab/cantera/private/surfmethods.cpp +++ b/Cantera/matlab/src/surfmethods.cpp @@ -1,8 +1,8 @@ #include "mex.h" #include "ctmatutils.h" -#include "../../../clib/src/ctsurf.h" -#include "../../../clib/src/ct.h" +#include +#include #include #include diff --git a/Cantera/matlab/cantera/private/thermomethods.cpp b/Cantera/matlab/src/thermomethods.cpp similarity index 99% rename from Cantera/matlab/cantera/private/thermomethods.cpp rename to Cantera/matlab/src/thermomethods.cpp index c2fb43512..8165c2dc7 100644 --- a/Cantera/matlab/cantera/private/thermomethods.cpp +++ b/Cantera/matlab/src/thermomethods.cpp @@ -5,7 +5,7 @@ * $Id: thermomethods.cpp,v 1.11 2009/07/11 16:43:13 hkmoffa Exp $ */ #include "mex.h" -#include "../../../clib/src/ct.h" +#include #include "ctmatutils.h" static void thermoset( int nlhs, mxArray *plhs[], diff --git a/Cantera/matlab/cantera/private/transportmethods.cpp b/Cantera/matlab/src/transportmethods.cpp similarity index 98% rename from Cantera/matlab/cantera/private/transportmethods.cpp rename to Cantera/matlab/src/transportmethods.cpp index ab737f8e2..a2b9634b9 100644 --- a/Cantera/matlab/cantera/private/transportmethods.cpp +++ b/Cantera/matlab/src/transportmethods.cpp @@ -1,6 +1,6 @@ #include "mex.h" -#include "../../../clib/src/ct.h" +#include #include "ctmatutils.h" #include diff --git a/Cantera/matlab/cantera/private/wallmethods.cpp b/Cantera/matlab/src/wallmethods.cpp similarity index 97% rename from Cantera/matlab/cantera/private/wallmethods.cpp rename to Cantera/matlab/src/wallmethods.cpp index 004b4c652..dd3a184e2 100644 --- a/Cantera/matlab/cantera/private/wallmethods.cpp +++ b/Cantera/matlab/src/wallmethods.cpp @@ -5,8 +5,8 @@ * $Id: wallmethods.cpp,v 1.5 2009/07/11 16:43:13 hkmoffa Exp $ */ #include "mex.h" -#include "../../../clib/src/ctreactor.h" -#include "../../../clib/src/ct.h" +#include +#include #include "ctmatutils.h" //const double Undef = -999.123; diff --git a/Cantera/matlab/cantera/private/xmlmethods.cpp b/Cantera/matlab/src/xmlmethods.cpp similarity index 98% rename from Cantera/matlab/cantera/private/xmlmethods.cpp rename to Cantera/matlab/src/xmlmethods.cpp index 5cc4ed959..e20f746ba 100644 --- a/Cantera/matlab/cantera/private/xmlmethods.cpp +++ b/Cantera/matlab/src/xmlmethods.cpp @@ -6,8 +6,8 @@ */ #include "mex.h" -#include "../../../clib/src/ctxml.h" -#include "../../../clib/src/ct.h" +#include +#include #include "ctmatutils.h" void reportError(); diff --git a/Cantera/matlab/cantera/tutorial/README b/Cantera/matlab/tutorial/README similarity index 100% rename from Cantera/matlab/cantera/tutorial/README rename to Cantera/matlab/tutorial/README diff --git a/Cantera/matlab/cantera/tutorial/tut1.m b/Cantera/matlab/tutorial/tut1.m similarity index 100% rename from Cantera/matlab/cantera/tutorial/tut1.m rename to Cantera/matlab/tutorial/tut1.m diff --git a/Cantera/matlab/cantera/tutorial/tut2.m b/Cantera/matlab/tutorial/tut2.m similarity index 100% rename from Cantera/matlab/cantera/tutorial/tut2.m rename to Cantera/matlab/tutorial/tut2.m diff --git a/Cantera/matlab/cantera/tutorial/tut3.m b/Cantera/matlab/tutorial/tut3.m similarity index 100% rename from Cantera/matlab/cantera/tutorial/tut3.m rename to Cantera/matlab/tutorial/tut3.m diff --git a/Cantera/matlab/cantera/tutorial/tut4.m b/Cantera/matlab/tutorial/tut4.m similarity index 100% rename from Cantera/matlab/cantera/tutorial/tut4.m rename to Cantera/matlab/tutorial/tut4.m diff --git a/Cantera/matlab/cantera/tutorial/tut5.m b/Cantera/matlab/tutorial/tut5.m similarity index 100% rename from Cantera/matlab/cantera/tutorial/tut5.m rename to Cantera/matlab/tutorial/tut5.m diff --git a/Cantera/matlab/cantera/tutorial/tut6.m b/Cantera/matlab/tutorial/tut6.m similarity index 100% rename from Cantera/matlab/cantera/tutorial/tut6.m rename to Cantera/matlab/tutorial/tut6.m diff --git a/Cantera/matlab/cantera/tutorial/tut7.m b/Cantera/matlab/tutorial/tut7.m similarity index 100% rename from Cantera/matlab/cantera/tutorial/tut7.m rename to Cantera/matlab/tutorial/tut7.m diff --git a/SConstruct b/SConstruct index d1b8d40fe..63c613caa 100644 --- a/SConstruct +++ b/SConstruct @@ -2,6 +2,7 @@ from buildutils import * import platform, sys, os env = Environment() +env.AddMethod(RecursiveInstall) # ****************************************************** # *** Set system-dependent defaults for some options *** diff --git a/buildutils.py b/buildutils.py index d5debb9e2..b2150020e 100644 --- a/buildutils.py +++ b/buildutils.py @@ -88,7 +88,6 @@ def mglob(env, subdir, *args): else: matches += env.Glob(pjoin(subdir, '*.%s' % ext)) return matches -# return sum((env.Glob('%s/*.%s' % (subdir, ext)) for ext in args), []) def psplit(s): @@ -100,3 +99,59 @@ def psplit(s): path.reverse() return path + + +# This tool adds the builder: +# +# env.RecursiveInstall(target, path) +# +# This is useful for doing: +# +# k = env.RecursiveInstall(dir_target, dir_source) +# +# and if any thing in dir_source is updated the install is rerun +# +# It behaves similar to the env.Install builtin. However it expects +# two directories and correctly sets up the dependencies between each +# sub file instead of just between the two directories. +# +# Note in also traverses the in memory node tree for the source +# directory and can detect things that are not built yet. Internally +# we use the env.Glob function for this support. +# +# You can see the effect of this function by doing: +# +# scons --tree=all,prune +# +# and see the one to one correspondence between source and target +# files within each directory. + +def RecursiveInstall(env, target, dir): + nodes = _recursive_install(env, dir) + + dir = env.Dir(dir).abspath + target = env.Dir(target).abspath + + l = len(dir) + 1 + + relnodes = [n.abspath[l:] for n in nodes] + + out = [] + for n in relnodes: + t = os.path.join(target, n) + s = os.path.join(dir, n) + out.extend(env.InstallAs(env.File(t), env.File(s))) + + return out + +def _recursive_install(env, path): + nodes = env.Glob(os.path.join(path, '*'), strings=False) + nodes.extend(env.Glob(os.path.join(path, '*.*'), strings=False)) + out = [] + for n in nodes: + if n.isdir(): + out.extend(_recursive_install(env, n.abspath)) + else: + out.append(n) + + return out