daacab0db01559f898255c4743c621c23d1c8f17
[scilab.git] / scilab / modules / dynamic_link / macros / ilib_gen_Make.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) ENPC
3 // Copyright (C) DIGITEO - 2009-2010 - Allan CORNET
4 //
5 // This file must be used under the terms of the CeCILL.
6 // This source file is licensed as described in the file COPYING, which
7 // you should have received as part of this distribution.  The terms
8 // are also available at
9 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10
11 //=============================================================================
12 function Makename = ilib_gen_Make(name, ..
13                                  tables, ..
14                                  files, ..
15                                  libs, ..
16                                  makename, ..
17                                  with_gateway, ..
18                                  ldflags, ..
19                                  cflags, ..
20                                  fflags, ..
21                                  cc)
22
23   [lhs,rhs] = argn(0);
24   if rhs < 4 then
25     error(msprintf(gettext("%s: Wrong number of input argument(s).\n"), "ilib_gen_Make"));
26     return
27   end
28
29   if argn(2) < 6 then
30     with_gateway = %t
31     ldflags = '';
32     cflags = '';
33     fflags = '';
34     cc = '';
35   end
36
37   if getos() <> 'Windows' then
38     for i=1:size(files,'*') // compatibility scilab 4.x
39       [path_f, file_f, ext_f] = fileparts(files(i));
40       if or(ext_f == ['.o','.obj']) then
41         files(i) = path_f + file_f;
42       else
43         files(i) = path_f + file_f + ext_f;
44       end
45     end
46
47     // change table if necessary
48     if typeof(tables)<>'list' then
49       tables= list(tables)
50     end
51     L = length(tables);
52     for it = 1:L
53       table = tables(it);
54       [mt, nt] = size(table);
55
56       if nt == 2 then
57         col = "csci";
58         table = [table, col(ones(mt,1))];
59         nt = 3;
60       end
61
62       if nt <> 3 then
63         error(msprintf(gettext("%s: Wrong size for input argument #%d.\n"), "ilib_gen_Make", 2));
64       end
65
66       tables(it) = table;
67     end
68
69     Makename = makename;
70     ilib_gen_Make_unix(name, files, libs, name, ldflags, cflags, fflags, cc, tables)
71   else
72     //
73     // Windows
74     //
75     // Load dynamic_link Internal lib if it's not already loaded
76     if ~ exists("dynamic_linkwindowslib") then
77       load("SCI/modules/dynamic_link/macros/windows/lib");
78     end
79     library_name = []; // auto. name library
80     Makename = dlwGenerateMakefile(name, ..
81                                  tables, ..
82                                  files, ..
83                                  libs, ..
84                                  library_name, ..
85                                  makename, ..
86                                  with_gateway, ..
87                                  ldflags, ..
88                                  cflags, ..
89                                  fflags, ..
90                                  cc);
91   end
92 endfunction
93 //=============================================================================