add detection of Intel Composer XE 2013 Fortran
[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     case "ifort13" then
27        ifpath = getenv("IFORT_COMPILER13", "");
28     else
29       ifpath = "";
30     end
31 endfunction
32 //=============================================================================
33 function bOK = set_commons_ifort12(ifpath, machinepath)
34   // intel fortran directories changed (AGAIN !!!) with version 12
35   bOK = %F;
36   ENV_PATH = getenv("PATH", "");
37   // example set PATH=%IFORT_COMPILER12%\Bin\intel64;
38   PATH_TO_ADD = ifpath + "bin" + filesep() + machinepath;
39   if isdir(PATH_TO_ADD) then
40     ENV_PATH = PATH_TO_ADD + pathsep() + ENV_PATH;
41     err = setenv("PATH", ENV_PATH);
42     if (err == %F) then bOK = %F,return,end
43     bOK = %T;
44   else
45     bOK = %F;
46     return;
47   end
48
49   // example set INCLUDE=%IFORT_COMPILER12%\compiler\include\intel64;
50   ENV_INCLUDE = getenv("INCLUDE", "");
51   PATH_TO_ADD = ifpath + "compiler" + filesep() + "include" + filesep() + machinepath;
52   if isdir(PATH_TO_ADD) then
53     ENV_INCLUDE = PATH_TO_ADD + pathsep() + ENV_INCLUDE;
54     err = setenv("INCLUDE", ENV_INCLUDE);
55     if (err == %F) then bOK = %F,return,end
56     bOK = %T;
57   else
58     bOK = %F;
59     return;
60   end
61
62   // example set LIB=%IFORT_COMPILER12%\compiler\lib\intel64;
63   ENV_LIB = getenv("LIB", "");
64   PATH_TO_ADD = ifpath + "compiler" + filesep() + "lib" + filesep() + machinepath;
65   if isdir(PATH_TO_ADD) then
66     ENV_LIB = PATH_TO_ADD + pathsep() + ENV_LIB;
67     err = setenv("LIB", ENV_LIB);
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   ENV_PATH = getenv("PATH", "");
81   // example set PATH=%IFORT_COMPILER11%\Bin\intel64;
82   PATH_TO_ADD = ifpath + "bin" + filesep() + machinepath;
83   if isdir(PATH_TO_ADD) then
84     ENV_PATH = PATH_TO_ADD + pathsep() + ENV_PATH;
85     err = setenv("PATH", ENV_PATH);
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   ENV_INCLUDE = getenv("INCLUDE", "");
95   PATH_TO_ADD = ifpath + "include" + filesep() + machinepath;
96   if isdir(PATH_TO_ADD) then
97     ENV_INCLUDE = PATH_TO_ADD + pathsep() + ENV_INCLUDE;
98     err = setenv("INCLUDE", ENV_INCLUDE);
99     if (err == %F) then bOK = %F,return,end
100     bOK = %T;
101   else
102     bOK = %F;
103     return;
104   end
105
106   // example set LIB=%IFORT_COMPILER10%\lib\intel64;
107   ENV_LIB = getenv("LIB", "");
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 = setenv("LIB", ENV_LIB);
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   ENV_PATH = getenv("PATH", "");
126   PATH_TO_ADD = ifpath + machinepath + filesep() + "bin";
127   if isdir(PATH_TO_ADD) then
128     ENV_PATH = PATH_TO_ADD + pathsep() + ENV_PATH;
129     err = setenv("PATH", ENV_PATH);
130     if (err == %F) then bOK = %F,return,end
131     bOK = %T;
132   else
133     bOK = %F;
134     return;
135   end
136
137   // example set INCLUDE=%IFORT_COMPILER10%\EM64T\Include;
138   ENV_INCLUDE = getenv("INCLUDE", "");
139   PATH_TO_ADD = ifpath + machinepath + filesep() + "Include";
140   if isdir(PATH_TO_ADD) then
141     ENV_INCLUDE = PATH_TO_ADD + pathsep() + ENV_INCLUDE;
142     err = setenv("INCLUDE", ENV_INCLUDE);
143     if (err == %F) then bOK = %F,return,end
144     bOK = %T;
145   else
146     bOK = %F;
147     return;
148   end
149
150   // example set LIB=%IFORT_COMPILER10%\EM64T\Lib;
151   ENV_LIB = getenv("LIB", "");
152   PATH_TO_ADD = ifpath + machinepath + filesep() + "Lib";
153   if isdir(PATH_TO_ADD) then
154     ENV_LIB = PATH_TO_ADD + pathsep() + ENV_LIB;
155     err = setenv("LIB", ENV_LIB);
156     if (err == %F) then bOK = %F,return,end
157     bOK = %T;
158   else
159     bOK = %F;
160     return;
161   end
162
163 endfunction
164 //=============================================================================
165   bOK = %F;
166   if getos() == "Windows" then
167     ifortcompiler = findmsifortcompiler();
168     if ifortcompiler <> "unknown" then
169       if_path = getIFpath(ifortcompiler);
170
171       machinepath = '';
172
173       if ~win64() then
174         machinepath = "ia32";
175       else
176         select ifortcompiler,
177           case "ifort13" then
178              machinepath = "intel64";
179           case "ifort12" then
180              machinepath = "intel64";
181           case "ifort11" then
182              machinepath = "intel64";
183           else
184              machinepath = "EM64T";
185           end
186       end
187
188       select ifortcompiler,
189         case "ifort13" then
190           bOK = set_commons_ifort12(if_path, machinepath);
191         case "ifort12" then
192           bOK = set_commons_ifort12(if_path, machinepath);
193         case "ifort11" then
194           bOK = set_commons_ifort11(if_path, machinepath);
195         case "ifort10" then
196           bOK = set_commons_msi9and10(if_path, machinepath);
197         case "ifort9" then
198           bOK = set_commons_msi9and10(if_path, machinepath);
199         else
200           bOK = %F;
201       end
202     end
203   end
204
205 endfunction
206 //=============================================================================
207
208