128e0b88c70ba6c12126fc67f7f617d069fb0403
[scilab.git] / scilab / modules / dynamic_link / macros / gencompilationflags_unix.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) 2008 - INRIA - Sylvestre LEDRU
3 // Copyright (C) 2010 - DIGITEO - Sylvestre LEDRU
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.1-en.txt
10
11 //=============================================================================
12 function cmd = gencompilationflags_unix(ldflags, cflags, fflags, cc, flagsType)
13
14     // This function is restricted to Linux/Unix user only
15     if getos() == "Windows" then
16         error(msprintf(gettext("%s: Feature not available under Microsoft Windows.\n"),"gencompilationflags_unix"));
17         return;
18     end
19
20     [lhs,rhs] = argn(0);
21     if rhs <> 5 then
22         error(msprintf(gettext("%s: Wrong number of input arguments: %d expected.\n"),"gencompilationflags_unix",5));
23         return
24     end
25
26     cmd = "";
27
28     ScilabTreeFound=%f;
29     // Manage Eigen in Scilab 6 source tree version
30     if isdir(SCI+"/modules/core/includes/") then
31         if isdir(SCI+"/lib/Eigen/include/") then
32             if flagsType == "configure" then
33                 cmd = " --with-eigen-include="+SCI+"/lib/Eigen/include/";
34             end
35         end
36     end
37     //  Manage Eigen in Scilab 6 binary version
38     if isdir(SCI+"/../../include/scilab/") & ~ScilabTreeFound then
39         if isdir(SCI+"/../../lib/Eigen/include/") then
40             if flagsType == "configure" then
41                 cmd = " --with-eigen-include="+SCI+"/../../lib/Eigen/include/";
42             end
43         end
44     end
45
46     tbxFlag = " -D__SCILAB_TOOLBOX__ ";
47     envFlag = "";
48
49     if getenv("__USE_DEPRECATED_STACK_FUNCTIONS__", "NO") == "YES" then
50         envFlag = " -D__USE_DEPRECATED_STACK_FUNCTIONS__ ";
51     end
52
53     val = getenv("DEBUG_SCILAB_DYNAMIC_LINK", "");
54     if (val == "" & isDebug()) | val == "YES" then
55         envFlag = envFlag + " -g ";
56     end
57
58     // CFLAGS
59     if cflags <> "" then
60         cmd = cmd + " CFLAGS="""+tbxFlag+envFlag+cflags+""""
61     end
62
63     // CXXFLAGS ... use the same as C
64     if cflags <> "" then
65         cmd = cmd +" CXXFLAGS="""+tbxFlag+envFlag+cflags+""""
66     end
67
68     // LDFLAGS
69     // Do not set the LDFLAGS See bug #4787
70     if ldflags <> "" & flagsType <> "configure" then
71         cmd = cmd +" LDFLAGS="""+ldflags+""""
72     end
73
74     // FFLAGS
75     if fflags <> "" then
76         cmd = cmd +" FFLAGS="""+fflags+""""
77     end
78
79     // CC
80     if cc <> "" then
81         cmd = cmd +" CC="""+cc+""""
82     end
83
84 endfunction
85 //=============================================================================