Merge remote-tracking branch 'origin/master' into YaSp
[scilab.git] / scilab / modules / dynamic_link / macros / windows / dlwCompile.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) DIGITEO - 2011  - Allan CORNET
3 //
4 // This file must be used under the terms of the CeCILL.
5 // This source file is licensed as described in the file COPYING, which
6 // you should have received as part of this distribution.  The terms
7 // are also available at
8 // http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
9 //=============================================================================
10 function dlwCompile(files, make_command, makename)
11
12     dlwConfigureEnv();
13
14     nf = size(files,"*");
15
16     for i=1:nf
17         if ( ilib_verbose() <> 0 ) then
18             mprintf(_("   Compilation of ") + string(files(i)) +"\n");
19         end
20     end
21
22     // then the shared library
23     if ( ilib_verbose() <> 0 ) then
24         mprintf(_("   Building shared library (be patient)\n"));
25     end
26
27     if dlwForceRebuild() then
28         target_build = "clean all";
29     else
30         target_build = "all";
31     end
32
33     //update DEBUG_SCILAB_DYNAMIC_LINK to match with Scilab compilation mode
34     val = getenv("DEBUG_SCILAB_DYNAMIC_LINK","");
35     if val <> "YES" & val <> "NO" & isDebug()then
36         setenv("DEBUG_SCILAB_DYNAMIC_LINK", "YES");
37     end
38
39     [msg, stat] = unix_g(make_command + makename + " " + target_build + " 2>&0");
40
41     //restore DEBUG_SCILAB_DYNAMIC_LINK
42     setenv("DEBUG_SCILAB_DYNAMIC_LINK", val);
43
44     if stat <> 0 then
45         // more feedback when compilation fails
46         [msg, stat, stderr] = unix_g(make_command + makename  + " " + target_build + " 1>&2");
47         disp(stderr);
48         error(msprintf(gettext("%s: Error while executing %s.\n"), "ilib_compile", makename));
49     else
50         if ilib_verbose() > 1 then
51             disp(msg);
52         end
53     end
54 endfunction
55 //=============================================================================