add VS2013 detection
[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 // 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
11 //=============================================================================
12 function bOK = configure_msifort()
13
14     // Load dynamic_link Internal lib if it's not already loaded
15     if ~ exists("dynamic_linkutilslib") then
16         load("SCI/modules/dynamic_link/macros/utils/lib");
17     end
18
19     //=============================================================================
20     //  functions defined only in configure_ifort
21     //=============================================================================
22     function ifpath = getIFpath(ifversion)
23         select ifversion ,
24         case "ifort9" then
25             ifpath = getenv("IFORT_COMPILER9", "");
26         case "ifort10" then
27             ifpath = getenv("IFORT_COMPILER10", "");
28         case "ifort11" then
29             ifpath = getenv("IFORT_COMPILER11", "");
30         case "ifort12" then
31             ifpath = getenv("IFORT_COMPILER12", "");
32         case "ifort13" then
33             ifpath = getenv("IFORT_COMPILER13", "");
34         case "ifort14" then
35             ifpath = getenv("IFORT_COMPILER14", "");
36         else
37             ifpath = "";
38         end
39     endfunction
40     //=============================================================================
41     function bOK = set_commons_ifort12(ifpath, machinepath)
42         // intel fortran directories changed (AGAIN !!!) with version 12
43         bOK = %F;
44         // example set PATH=%IFORT_COMPILER12%\Bin\intel64;
45         PATH_TO_ADD = ifpath + "bin" + filesep() + machinepath;
46         if isdir(PATH_TO_ADD) then
47             err = addPathToEnv("PATH", PATH_TO_ADD);
48             if (err == %F) then bOK = %F,return,end
49             bOK = %T;
50         else
51             bOK = %F;
52             return;
53         end
54
55         // example set INCLUDE=%IFORT_COMPILER12%\compiler\include\intel64;
56         PATH_TO_ADD = ifpath + "compiler" + filesep() + "include" + filesep() + machinepath;
57         if isdir(PATH_TO_ADD) then
58             err = addPathToEnv("INCLUDE", PATH_TO_ADD);
59             if (err == %F) then bOK = %F,return,end
60             bOK = %T;
61         else
62             bOK = %F;
63             return;
64         end
65
66         // example set LIB=%IFORT_COMPILER12%\compiler\lib\intel64;
67         PATH_TO_ADD = ifpath + "compiler" + filesep() + "lib" + filesep() + machinepath;
68         if isdir(PATH_TO_ADD) then
69             err = addPathToEnv("LIB", PATH_TO_ADD);
70             if (err == %F) then bOK = %F,return,end
71             bOK = %T;
72         else
73             bOK = %F;
74             return;
75         end
76
77     endfunction
78     //=============================================================================
79     function bOK = set_commons_ifort11(ifpath, machinepath)
80         // intel fortran directories changed with version 11
81         bOK = %F;
82         // example set PATH=%IFORT_COMPILER11%\Bin\intel64;
83         PATH_TO_ADD = ifpath + "bin" + filesep() + machinepath;
84         if isdir(PATH_TO_ADD) then
85             err = addPathToEnv("PATH", PATH_TO_ADD);
86             if (err == %F) then bOK = %F,return,end
87             bOK = %T;
88         else
89             bOK = %F;
90             return;
91         end
92
93         // example set INCLUDE=%IFORT_COMPILER11%\include\intel64;
94         PATH_TO_ADD = ifpath + "include" + filesep() + machinepath;
95         if isdir(PATH_TO_ADD) then
96             err = addPathToEnv("INCLUDE", PATH_TO_ADD);
97             if (err == %F) then bOK = %F,return,end
98             bOK = %T;
99         else
100             bOK = %F;
101             return;
102         end
103
104         // example set LIB=%IFORT_COMPILER10%\lib\intel64;
105         PATH_TO_ADD = ifpath + "lib" + filesep() + machinepath;
106         if isdir(PATH_TO_ADD) then
107             ENV_LIB = PATH_TO_ADD + pathsep() + ENV_LIB;
108             err = addPathToEnv("LIB", PATH_TO_ADD);
109             if (err == %F) then bOK = %F,return,end
110             bOK = %T;
111         else
112             bOK = %F;
113             return;
114         end
115
116     endfunction
117     //=============================================================================
118     function bOK = set_commons_msi9and10(ifpath,machinepath)
119         bOK = %F;
120
121         // example set PATH=%IFORT_COMPILER10%\EM64T\Bin;
122         PATH_TO_ADD = ifpath + machinepath + filesep() + "bin";
123         if isdir(PATH_TO_ADD) then
124             err = addPathToEnv("PATH", PATH_TO_ADD);
125             if (err == %F) then bOK = %F,return,end
126             bOK = %T;
127         else
128             bOK = %F;
129             return;
130         end
131
132         // example set INCLUDE=%IFORT_COMPILER10%\EM64T\Include;
133         PATH_TO_ADD = ifpath + machinepath + filesep() + "Include";
134         if isdir(PATH_TO_ADD) then
135             err = addPathToEnv("INCLUDE", PATH_TO_ADD);
136             if (err == %F) then bOK = %F,return,end
137             bOK = %T;
138         else
139             bOK = %F;
140             return;
141         end
142
143         // example set LIB=%IFORT_COMPILER10%\EM64T\Lib;
144         PATH_TO_ADD = ifpath + machinepath + filesep() + "Lib";
145         if isdir(PATH_TO_ADD) then
146             err = addPathToEnv("LIB", PATH_TO_ADD);
147             if (err == %F) then bOK = %F,return,end
148             bOK = %T;
149         else
150             bOK = %F;
151             return;
152         end
153
154     endfunction
155     //=============================================================================
156     bOK = %F;
157     if getos() == "Windows" then
158         ifortcompiler = findmsifortcompiler();
159         if ifortcompiler <> "unknown" then
160             if_path = getIFpath(ifortcompiler);
161
162             machinepath = "";
163
164             if ~win64() then
165                 machinepath = "ia32";
166             else
167                 select ifortcompiler,
168                 case "ifort14" then
169                     machinepath = "intel64";
170                 case "ifort13" then
171                     machinepath = "intel64";
172                 case "ifort12" then
173                     machinepath = "intel64";
174                 case "ifort11" then
175                     machinepath = "intel64";
176                 else
177                     machinepath = "EM64T";
178                 end
179             end
180
181             select ifortcompiler,
182             case "ifort14" then
183                 bOK = set_commons_ifort12(if_path, machinepath);
184             case "ifort13" then
185                 bOK = set_commons_ifort12(if_path, machinepath);
186             case "ifort12" then
187                 bOK = set_commons_ifort12(if_path, machinepath);
188             case "ifort11" then
189                 bOK = set_commons_ifort11(if_path, machinepath);
190             case "ifort10" then
191                 bOK = set_commons_msi9and10(if_path, machinepath);
192             case "ifort9" then
193                 bOK = set_commons_msi9and10(if_path, machinepath);
194             else
195                 bOK = %F;
196             end
197         end
198     end
199
200 endfunction
201 //=============================================================================
202
203