7c86d22ccc94ea8dee6d6758faa7ba22e9e21d6c
[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-en.txt
9
10 //=============================================================================
11 function bOK = configure_msifort()
12
13 //=============================================================================
14 //  functions defined only in configure_ifort
15 //=============================================================================
16 function ifpath = getIFpath(ifversion)
17   select ifversion ,
18     case "ifort9" then
19        ifpath = getenv("IFORT_COMPILER9", "");
20     case "ifort10" then
21        ifpath = getenv("IFORT_COMPILER10", "");
22     case "ifort11" then
23        ifpath = getenv("IFORT_COMPILER11", "");
24     case "ifort12" then
25        ifpath = getenv("IFORT_COMPILER12", "");
26     else
27       ifpath = "";
28     end
29 endfunction
30 //=============================================================================
31 function bOK = set_commons_ifort12(ifpath, machinepath)
32   // intel fortran directories changed (AGAIN !!!) with version 12
33   bOK = %F;
34   ENV_PATH = getenv("PATH", "");
35   // example set PATH=%IFORT_COMPILER12%\Bin\intel64;
36   PATH_TO_ADD = ifpath + "bin" + filesep() + machinepath;
37   if isdir(PATH_TO_ADD) then
38     ENV_PATH = PATH_TO_ADD + pathsep() + ENV_PATH;
39     err = setenv("PATH", ENV_PATH);
40     if (err == %F) then bOK = %F,return,end
41     bOK = %T;
42   else
43     bOK = %F;
44     return;
45   end
46
47   // example set INCLUDE=%IFORT_COMPILER12%\compiler\include\intel64;
48   ENV_INCLUDE = getenv("INCLUDE", "");
49   PATH_TO_ADD = ifpath + "compiler" + filesep() + "include" + filesep() + machinepath;
50   if isdir(PATH_TO_ADD) then
51     ENV_INCLUDE = PATH_TO_ADD + pathsep() + ENV_INCLUDE;
52     err = setenv("INCLUDE", ENV_INCLUDE);
53     if (err == %F) then bOK = %F,return,end
54     bOK = %T;
55   else
56     bOK = %F;
57     return;
58   end
59
60   // example set LIB=%IFORT_COMPILER12%\compiler\lib\intel64;
61   ENV_LIB = getenv("LIB", "");
62   PATH_TO_ADD = ifpath + "compiler" + filesep() + "lib" + filesep() + machinepath;
63   if isdir(PATH_TO_ADD) then
64     ENV_LIB = PATH_TO_ADD + pathsep() + ENV_LIB;
65     err = setenv("LIB", ENV_LIB);
66     if (err == %F) then bOK = %F,return,end
67     bOK = %T;
68   else
69     bOK = %F;
70     return;
71   end
72
73 endfunction
74 //=============================================================================
75 function bOK = set_commons_ifort11(ifpath, machinepath)
76   // intel fortran directories changed with version 11
77   bOK = %F;
78   ENV_PATH = getenv("PATH", "");
79   // example set PATH=%IFORT_COMPILER11%\Bin\intel64;
80   PATH_TO_ADD = ifpath + "bin" + filesep() + machinepath;
81   if isdir(PATH_TO_ADD) then
82     ENV_PATH = PATH_TO_ADD + pathsep() + ENV_PATH;
83     err = setenv("PATH", ENV_PATH);
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   ENV_INCLUDE = getenv("INCLUDE", "");
93   PATH_TO_ADD = ifpath + "include" + filesep() + machinepath;
94   if isdir(PATH_TO_ADD) then
95     ENV_INCLUDE = PATH_TO_ADD + pathsep() + ENV_INCLUDE;
96     err = setenv("INCLUDE", ENV_INCLUDE);
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   ENV_LIB = getenv("LIB", "");
106   PATH_TO_ADD = ifpath + "lib" + filesep() + machinepath;
107   if isdir(PATH_TO_ADD) then
108     ENV_LIB = PATH_TO_ADD + pathsep() + ENV_LIB;
109     err = setenv("LIB", ENV_LIB);
110     if (err == %F) then bOK = %F,return,end
111     bOK = %T;
112   else
113     bOK = %F;
114     return;
115   end
116
117 endfunction
118 //=============================================================================
119 function bOK = set_commons_msi9and10(ifpath,machinepath)
120   bOK = %F;
121
122   // example set PATH=%IFORT_COMPILER10%\EM64T\Bin;
123   ENV_PATH = getenv("PATH", "");
124   PATH_TO_ADD = ifpath + machinepath + filesep() + "bin";
125   if isdir(PATH_TO_ADD) then
126     ENV_PATH = PATH_TO_ADD + pathsep() + ENV_PATH;
127     err = setenv("PATH", ENV_PATH);
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   ENV_INCLUDE = getenv("INCLUDE", "");
137   PATH_TO_ADD = ifpath + machinepath + filesep() + "Include";
138   if isdir(PATH_TO_ADD) then
139     ENV_INCLUDE = PATH_TO_ADD + pathsep() + ENV_INCLUDE;
140     err = setenv("INCLUDE", ENV_INCLUDE);
141     if (err == %F) then bOK = %F,return,end
142     bOK = %T;
143   else
144     bOK = %F;
145     return;
146   end
147
148   // example set LIB=%IFORT_COMPILER10%\EM64T\Lib;
149   ENV_LIB = getenv("LIB", "");
150   PATH_TO_ADD = ifpath + machinepath + filesep() + "Lib";
151   if isdir(PATH_TO_ADD) then
152     ENV_LIB = PATH_TO_ADD + pathsep() + ENV_LIB;
153     err = setenv("LIB", ENV_LIB);
154     if (err == %F) then bOK = %F,return,end
155     bOK = %T;
156   else
157     bOK = %F;
158     return;
159   end
160
161 endfunction
162 //=============================================================================
163   bOK = %F;
164   if getos() == "Windows" then
165     ifortcompiler = findmsifortcompiler();
166     if ifortcompiler <> "unknown" then
167       if_path = getIFpath(ifortcompiler);
168
169       machinepath = '';
170
171       if ~win64() then
172         machinepath = "ia32";
173       else
174         select ifortcompiler,
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 "ifort12" then
186           bOK = set_commons_ifort12(if_path, machinepath);
187         case "ifort11" then
188           bOK = set_commons_ifort11(if_path, machinepath);
189         case "ifort10" then
190           bOK = set_commons_msi9and10(if_path, machinepath);
191         case "ifort9" then
192           bOK = set_commons_msi9and10(if_path, machinepath);
193         else
194           bOK = %F;
195       end
196     end
197   end
198
199 endfunction
200 //=============================================================================
201
202