diff --git a/wrap/Class.cpp b/wrap/Class.cpp index 5e0237d3a..e57a85884 100644 --- a/wrap/Class.cpp +++ b/wrap/Class.cpp @@ -152,7 +152,8 @@ void Class::makefile_fragment(FileWriter& file) const { } BOOST_FOREACH(const string& file_base, file_names) { - file.oss << file_base << ".$(MEXENDING): " << file_base << ".cpp" << endl; + file.oss << file_base << ".$(MEXENDING): " << file_base << ".cpp"; + file.oss << " $(PATH_TO_WRAP)/matlab.h" << endl; file.oss << "\t$(MEX) $(mex_flags) " << file_base << ".cpp -output " << file_base << endl; } diff --git a/wrap/Module.cpp b/wrap/Module.cpp index 972bacbee..0adf1cda0 100644 --- a/wrap/Module.cpp +++ b/wrap/Module.cpp @@ -287,7 +287,7 @@ void verifyReturnTypes(const vector& validtypes, const vector& vt) { /* ************************************************************************* */ void Module::matlab_code(const string& mexCommand, const string& toolboxPath, - const string& mexExt, const string& mexFlags) const { + const string& mexExt, const string& headerPath,const string& mexFlags) const { fs::create_directories(toolboxPath); @@ -308,6 +308,7 @@ void Module::matlab_code(const string& mexCommand, const string& toolboxPath, makeModuleMakefile.oss << "\nMEX = " << mexCommand << "\n"; makeModuleMakefile.oss << "MEXENDING = " << mexExt << "\n"; + makeModuleMakefile.oss << "PATH_TO_WRAP = " << headerPath << "\n"; makeModuleMakefile.oss << "mex_flags = " << mexFlags << "\n\n"; // Dependency check list diff --git a/wrap/Module.h b/wrap/Module.h index 4b650728d..239aa20b0 100644 --- a/wrap/Module.h +++ b/wrap/Module.h @@ -44,6 +44,7 @@ struct Module { const std::string& mexCommand, const std::string& path, const std::string& mexExt, + const std::string& headerPath, const std::string& mexFlags) const; }; diff --git a/wrap/wrap.cpp b/wrap/wrap.cpp index f4490e583..1b1b631e4 100644 --- a/wrap/wrap.cpp +++ b/wrap/wrap.cpp @@ -38,14 +38,15 @@ void generate_matlab_toolbox( const string& interfacePath, const string& moduleName, const string& toolboxPath, - const string& mexFlags) + const string& headerPath, + const string& mexFlags) { // Parse interface file into class object // This recursively creates Class objects, Method objects, etc... wrap::Module module(interfacePath, moduleName, false); // Then emit MATLAB code - module.matlab_code(mexCommand,toolboxPath,mexExt,mexFlags); + module.matlab_code(mexCommand,toolboxPath,mexExt,headerPath,mexFlags); } /** Displays usage information */ @@ -73,6 +74,6 @@ int main(int argc, const char* argv[]) { usage(); } else - generate_matlab_toolbox(argv[1],argv[2],argv[3],argv[4],argv[5],argc==6 ? " " : argv[6]); + generate_matlab_toolbox(argv[1],argv[2],argv[3],argv[4],argv[5],argv[6],argc==7 ? " " : argv[7]); return 0; }