blob: bbf91a321bb846f6dc8e77f0148f0f961a1d801f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
// Copyright (C) INRIA
//
// This file must be used under the terms of the CeCILL.
// This source file is licensed as described in the file COPYING, which
// you should have received as part of this distribution. The terms
// are also available at
// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
function tklib=gettklib()
tklib = [];
tcltkver = TCL_GetVersion("numbers");
// don't use string() but msprintf because of format() - see bug 3602
major = msprintf("%d",tcltkver(1));
minor = msprintf("%d",tcltkver(2));
if getos() == "Windows" then
tklib = "tk" + major + minor + getdynlibext();
else
cur_verbose = ilib_verbose();
ilib_verbose(0);
// In the binary version libtk8.X.so has been copied in
// the SCI/bin directory and scilab script add SCI/bin
// to the LD_LIBRARY_PATH (or SHLIB_PATH).
// So, If libtk8.X.so (or .sl) exists in SCI/bin ... it's ok
libname = "libtk" + major + "." + minor;
if isfile("SCI/bin/"+libname+getdynlibext()) then
tklib = libname + getdynlibext();
ilib_verbose(cur_verbose);
return;
end
cmd ="link(''"+libname+getdynlibext()+"'')";
ierr = execstr(cmd, "errcatch");
if (ierr == 0) then
tklib = libname + getdynlibext();
else
cmd ="link(''"+libname+getdynlibext()+".0'')";
ierr = execstr(cmd, "errcatch");
if (ierr == 0) then
tklib = libname + getdynlibext() + ".0";
else
warning(msprintf(gettext("Error %s while loading library %s"),lasterror(),libname+getdynlibext()));
end
end
ilib_verbose(cur_verbose);
clear libname;
clear cmd;
end
clear tcltkver;
clear major;
clear minor;
endfunction
|