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