Merge remote-tracking branch 'origin/6.1'
[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-2011 - Allan CORNET
4 //
5 // Copyright (C) 2012 - 2016 - Scilab Enterprises
6 //
7 // This file is hereby licensed under the terms of the GNU GPL v2.0,
8 // pursuant to article 5.3.4 of the CeCILL v.2.1.
9 // This file was originally licensed under the terms of the CeCILL v2.1,
10 // and continues to be available under such terms.
11 // For more information, see the COPYING file which you should have received
12 // along with this program.
13
14 //=============================================================================
15 function Makename = ilib_gen_Make(name, ..
16     tables, ..
17     files, ..
18     libs, ..
19     makename, ..
20     with_gateway, ..
21     ldflags, ..
22     cflags, ..
23     fflags, ..
24     cc)
25
26     [lhs,rhs] = argn(0);
27     if rhs < 4 then
28         error(msprintf(gettext("%s: Wrong number of input argument(s).\n"), "ilib_gen_Make"));
29         return
30     end
31
32     if argn(2) < 6 then
33         with_gateway = %t
34         ldflags = "";
35         cflags = "";
36         fflags = "";
37         cc = "";
38     end
39
40     if ~isempty(files) & ~and(isfile(files)) then
41         error(msprintf(_("%s: Wrong value for input argument #%d: existing file(s) expected.\n"), "ilib_gen_Make", 3));
42     end
43
44     // remove duplicate files
45     files = unique(files);
46
47     if getos() <> "Windows" then
48
49         // change table if necessary
50         if typeof(tables)<>"list" then
51             tables= list(tables)
52         end
53         L = length(tables);
54         for it = 1:L
55             table = tables(it);
56             [mt, nt] = size(table);
57
58             if nt == 2 then
59                 col = "csci";
60                 table = [table, col(ones(mt,1))];
61                 nt = 3;
62             end
63
64             if nt <> 3 then
65                 error(msprintf(gettext("%s: Wrong size for input argument #%d.\n"), "ilib_gen_Make", 2));
66             end
67
68             tables(it) = table;
69         end
70
71         Makename = makename;
72         ilib_gen_Make_unix(name, files, libs, name, ldflags, cflags, fflags, cc, tables)
73     else
74         //
75         // Windows
76         //
77         // Load dynamic_link Internal lib if it's not already loaded
78         if ~ exists("dynamic_linkwindowslib") then
79             load("SCI/modules/dynamic_link/macros/windows/lib");
80         end
81         library_name = []; // auto. name library
82         Makename = dlwGenerateMakefile(name, ..
83         tables, ..
84         files, ..
85         libs, ..
86         library_name, ..
87         with_gateway, ..
88         ldflags, ..
89         cflags, ..
90         fflags, ..
91         cc);
92     end
93 endfunction
94 //=============================================================================