Merge remote-tracking branch 'origin/6.1'
[scilab.git] / scilab / modules / dynamic_link / macros / configure_msifort.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) DIGITEO - Allan CORNET
3 //
4 // Copyright (C) 2012 - 2016 - Scilab Enterprises
5 //
6 // This file is hereby licensed under the terms of the GNU GPL v2.0,
7 // pursuant to article 5.3.4 of the CeCILL v.2.1.
8 // This file was originally licensed under the terms of the CeCILL v2.1,
9 // and continues to be available under such terms.
10 // For more information, see the COPYING file which you should have received
11 // along with this program.
12
13
14 //=============================================================================
15 function bOK = configure_msifort()
16
17     // Load dynamic_link Internal lib if it's not already loaded
18     if ~ exists("dynamic_linkutilslib") then
19         load("SCI/modules/dynamic_link/macros/utils/lib");
20     end
21
22     //=============================================================================
23     //  functions defined only in configure_ifort
24     //=============================================================================
25     function ifpath = getIFpath(ifversion)
26         select ifversion ,
27         case "ifort9" then
28             ifpath = getenv("IFORT_COMPILER9", "");
29         case "ifort10" then
30             ifpath = getenv("IFORT_COMPILER10", "");
31         case "ifort11" then
32             ifpath = getenv("IFORT_COMPILER11", "");
33         case "ifort12" then
34             ifpath = getenv("IFORT_COMPILER12", "");
35         case "ifort13" then
36             ifpath = getenv("IFORT_COMPILER13", "");
37         case "ifort14" then
38             ifpath = getenv("IFORT_COMPILER14", "");
39         else
40             ifpath = "";
41         end
42     endfunction
43     //=============================================================================
44     function bOK = set_commons_ifort12(ifpath, machinepath)
45         // intel fortran directories changed (AGAIN !!!) with version 12
46         bOK = %F;
47         // example set PATH=%IFORT_COMPILER12%\Bin\intel64;
48         PATH_TO_ADD = ifpath + "bin" + filesep() + machinepath;
49         if isdir(PATH_TO_ADD) then
50             err = addPathToEnv("PATH", PATH_TO_ADD);
51             if (err == %F) then bOK = %F,return,end
52             bOK = %T;
53         else
54             bOK = %F;
55             return;
56         end
57
58         // example set INCLUDE=%IFORT_COMPILER12%\compiler\include\intel64;
59         PATH_TO_ADD = ifpath + "compiler" + filesep() + "include" + filesep() + machinepath;
60         if isdir(PATH_TO_ADD) then
61             err = addPathToEnv("INCLUDE", PATH_TO_ADD);
62             if (err == %F) then bOK = %F,return,end
63             bOK = %T;
64         else
65             bOK = %F;
66             return;
67         end
68
69         // example set LIB=%IFORT_COMPILER12%\compiler\lib\intel64;
70         PATH_TO_ADD = ifpath + "compiler" + filesep() + "lib" + filesep() + machinepath;
71         if isdir(PATH_TO_ADD) then
72             err = addPathToEnv("LIB", PATH_TO_ADD);
73             if (err == %F) then bOK = %F,return,end
74             bOK = %T;
75         else
76             bOK = %F;
77             return;
78         end
79
80     endfunction
81     //=============================================================================
82     function bOK = set_commons_ifort11(ifpath, machinepath)
83         // intel fortran directories changed with version 11
84         bOK = %F;
85         // example set PATH=%IFORT_COMPILER11%\Bin\intel64;
86         PATH_TO_ADD = ifpath + "bin" + filesep() + machinepath;
87         if isdir(PATH_TO_ADD) then
88             err = addPathToEnv("PATH", PATH_TO_ADD);
89             if (err == %F) then bOK = %F,return,end
90             bOK = %T;
91         else
92             bOK = %F;
93             return;
94         end
95
96         // example set INCLUDE=%IFORT_COMPILER11%\include\intel64;
97         PATH_TO_ADD = ifpath + "include" + filesep() + machinepath;
98         if isdir(PATH_TO_ADD) then
99             err = addPathToEnv("INCLUDE", PATH_TO_ADD);
100             if (err == %F) then bOK = %F,return,end
101             bOK = %T;
102         else
103             bOK = %F;
104             return;
105         end
106
107         // example set LIB=%IFORT_COMPILER10%\lib\intel64;
108         PATH_TO_ADD = ifpath + "lib" + filesep() + machinepath;
109         if isdir(PATH_TO_ADD) then
110             ENV_LIB = PATH_TO_ADD + pathsep() + ENV_LIB;
111             err = addPathToEnv("LIB", PATH_TO_ADD);
112             if (err == %F) then bOK = %F,return,end
113             bOK = %T;
114         else
115             bOK = %F;
116             return;
117         end
118
119     endfunction
120     //=============================================================================
121     function bOK = set_commons_msi9and10(ifpath,machinepath)
122         bOK = %F;
123
124         // example set PATH=%IFORT_COMPILER10%\EM64T\Bin;
125         PATH_TO_ADD = ifpath + machinepath + filesep() + "bin";
126         if isdir(PATH_TO_ADD) then
127             err = addPathToEnv("PATH", PATH_TO_ADD);
128             if (err == %F) then bOK = %F,return,end
129             bOK = %T;
130         else
131             bOK = %F;
132             return;
133         end
134
135         // example set INCLUDE=%IFORT_COMPILER10%\EM64T\Include;
136         PATH_TO_ADD = ifpath + machinepath + filesep() + "Include";
137         if isdir(PATH_TO_ADD) then
138             err = addPathToEnv("INCLUDE", PATH_TO_ADD);
139             if (err == %F) then bOK = %F,return,end
140             bOK = %T;
141         else
142             bOK = %F;
143             return;
144         end
145
146         // example set LIB=%IFORT_COMPILER10%\EM64T\Lib;
147         PATH_TO_ADD = ifpath + machinepath + filesep() + "Lib";
148         if isdir(PATH_TO_ADD) then
149             err = addPathToEnv("LIB", PATH_TO_ADD);
150             if (err == %F) then bOK = %F,return,end
151             bOK = %T;
152         else
153             bOK = %F;
154             return;
155         end
156
157     endfunction
158     //=============================================================================
159     bOK = %F;
160     if getos() == "Windows" then
161         ifortcompiler = findmsifortcompiler();
162         if ifortcompiler <> "unknown" then
163             if_path = getIFpath(ifortcompiler);
164
165             machinepath = "";
166
167             if ~win64() then
168                 machinepath = "ia32";
169             else
170                 select ifortcompiler,
171                 case "ifort14" then
172                     machinepath = "intel64";
173                 case "ifort13" then
174                     machinepath = "intel64";
175                 case "ifort12" then
176                     machinepath = "intel64";
177                 case "ifort11" then
178                     machinepath = "intel64";
179                 else
180                     machinepath = "EM64T";
181                 end
182             end
183
184             select ifortcompiler,
185             case "ifort14" then
186                 bOK = set_commons_ifort12(if_path, machinepath);
187             case "ifort13" then
188                 bOK = set_commons_ifort12(if_path, machinepath);
189             case "ifort12" then
190                 bOK = set_commons_ifort12(if_path, machinepath);
191             case "ifort11" then
192                 bOK = set_commons_ifort11(if_path, machinepath);
193             case "ifort10" then
194                 bOK = set_commons_msi9and10(if_path, machinepath);
195             case "ifort9" then
196                 bOK = set_commons_msi9and10(if_path, machinepath);
197             else
198                 bOK = %F;
199             end
200         end
201     end
202
203 endfunction
204 //=============================================================================
205
206