diff --git a/Source/Modules/scilab.cxx b/Source/Modules/scilab.cxx index 9da7a9f42..20438eb30 100644 --- a/Source/Modules/scilab.cxx +++ b/Source/Modules/scilab.cxx @@ -210,12 +210,17 @@ public: /* Write all to the builder.sce file */ Printf(builderCode, "];\n"); + Printf(builderCode, "ret = 1;\n"); Printf(builderCode, "if ~isempty(table) then\n"); Printf(builderCode, " ilib_build(ilib_name, table, files, libs, [], ldflags, cflags);\n"); + Printf(builderCode, " libfilename = 'lib' + ilib_name + getdynlibext();\n"); + Printf(builderCode, " if isfile(libfilename) & isfile('loader.sce') then\n"); + Printf(builderCode, " ret = 0;\n"); + Printf(builderCode, " end\n"); Printf(builderCode, "end\n"); Printf(builderCode, "cd(originaldir);\n"); - Printf(builderCode, "exit"); + Printf(builderCode, "exit(ret)"); builderFile = NewFile(NewStringf("%sbuilder.sce", SWIG_output_directory()), "w", SWIG_output_files()); Printv(builderFile, builderCode, NIL); Delete(builderFile);