четверг, 6 ноября 2008 г.

Скрипт для компиляции C кода из Scilab.

[comp.sci]
mode(-1) ;
close
clear

function ulink_str(str)
while 1
[c,n] = c_link(str) ;
if c
ulink(n) ;
else
break ;
end
end
endfunction

function ul
ulink_str('calc_rek_zad') ;
ulink_str('calc_rek_zad_vib') ;
endfunction

ul ;

my_dir = pwd() + "\" ;
comp_sub_dir = "lib\" ;
f_name = "my_comp" ;
names = ["calc_rek_zad","calc_rek_zad_vib"] ;

// -----------------------------------------

c_name = f_name + ".c" ;

try
cd(my_dir + comp_sub_dir) ;

ddd = ls() ;
for k = 1:size(ddd,1)
if ~(ddd(k) == c_name)
mdelete(ddd(k)) ;
disp(ddd(k)) ;
end
end

res = ilib_for_link(names,f_name + ".o",[],"c") ;
disp(res) ;
end

cd( my_dir ) ;

В дочернем каталоге LIB держим библиотеку my_comp.c. В Scilab-е все время находимся в родительском каталоге. Правим код C в библиотеке и после правки запускаем скрипт перекомпиляции. Он сначала вычищает все подключенные рутины. Затем вычищает все в дочернем каталоге LIB кроме исходников на C. Затем запускает компиляцию.

Этот скрипт все делает. А то раньше пока все отключишь пальцы болеть начинают.

Здесь для примера отключаются и перекомпилируются две рутины.

Комментариев нет:

Отправить комментарий