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-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
|