Script Scilab
eng - fr


builder - script scilab de construction de la boîte à outils

Description

Add here a paragraph of the function description.

Contenu du fichier


//builder.sce 
//build mod_num_3 package for scilab-3.0
//both linux and windob(with lcc)
//13-10-2004 Alan
//
//Modification : 4/4/2005
//builder rewritten with scilab function
//Improvment : Build with VC++

// REVISION HISTORY :
// $Log$
//

//def_MODNUM_path()
//Input : nothing
//Output : tt MODNUM path (ex:/home/alan/mod_num_3)
function tt=def_MODNUM_path()
 tt=get_absolute_file_path('builder.sce');
 end_char=part(tt,length(tt));
 if end_char=='/'|end_char=='\' then
  tt=part(tt,1:length(tt)-1);
 end
endfunction

mode(-1);
lines(0);

//define MODNUM path 
MODNUM=def_MODNUM_path();

//Search Scilab Version 
getf(MODNUM+'/macros/build_util/find_scilab_ver.sci');
[ok]=find_scilab_ver();
if ~ok then
 printf("Mod_num toolbox source version only build with scilab >=3.0\n");
 abort
end

//open loader.sce file for writting
ierror=execstr('u=mopen(MODNUM+""/loader.sce"",""w"");','errcatch');
if ierror<>0 then
 printf("Can''t write loader file.\nVerify your writting access.\n");
end
clear ierror;

//write Header of loader.sce file
getf(MODNUM+'/macros/build_util/write_header.sci');
write_header(u,'builer.sce')

//Build and load util macro library
getf(MODNUM+'/macros/build_util/build_lib.sci');
build_lib('/macros/build_util','mod_num_util');
getf(MODNUM+'/macros/build_util/write_inf_lib.sci');
txt=write_inf_lib(u,'/macros/build_util','mod_num_util',1);
ierr=execstr(txt,'errcatch');

//Build and load all scilab library
libs=['generate_doc';'gen_doc_util';'xmltotex';
      'misc';'signal';'scicos_util';'find_file'];
rep_lib='/macros/'+libs;
lib_name='mod_num_'+libs;
build_lib(rep_lib,lib_name);
txt=write_inf_lib(u,rep_lib,lib_name,1);
ierr=execstr(txt,'errcatch');

//Build and load palette of scicos_blocks
pal=['Tools';'Sources';'Sinks';'Pll';'NonLinear';'Communication'];
rep_pal='/macros/scicos_blocks/'+pal;
pal_title='mod_num_'+convstr(pal,'l');
lib_name=pal_title+'_pal';
build_lib(rep_pal,lib_name);
fprintf(u,"%s\n",'//Load mod_num scicos_blocks library');
txt=write_inf_lib(u,rep_pal,lib_name,0);
ierr=execstr(txt,'errcatch');

//Generate palette of scicos_blocks
for i=1:size(rep_pal,"*")
  files_sci=basename(listfiles(MODNUM+rep_pal(i)+"/*.sci"));
  generate_palette(files_sci,MODNUM+'/macros/scicos_blocks/',pal(i));
end
txt=write_inf_pal(u,rep_pal+'.cosf',pal_title);
ierr=execstr(txt,'errcatch');

clear txt;clear pal_title;clear lib_name;clear rep;clear rep_pal;
clear ierr;clear files_sci;clear i; clear pal;

//Build routines Library
printf("Build mod_num routines libraries\n");

//Find C compiler
[flagc,ccmd]=find_cmd('c');
//Find Fortran compiler
[flagf,fcmd]=find_cmd('f');
//find witch directory to include for compilation
incl_path=find_incl_path();

//Build and load mod_num_lib routines
printf("Build mod_num_lib C routines\n");
path='/routines/mod_num_lib';
files=basename(listfiles(MODNUM+path+'/*.c'));
libname="libmodnum_lib";
scifunc=["genint";"modpsk";"surecht"];
intname="intmod_num_lib";
if ccmd<>'trash' then
 precompilation(flagc,ccmd,incl_path,path,files);
 create_library(flagc,ccmd,libname,path,files);
 txt=write_inf_rout_lib(u,libname,path,files,0);
 ierr=execstr(txt,'errcatch');
 txt=write_addinter_line(u,libname,path,intname,scifunc);
 ierr=execstr(txt,'errcatch');
end
clear files, clear libname; clear scifunc; clear intname;

//Build and load scicos C routines
printf("Build scicos blocks C routines\n");
path='/routines/scicos';
files_c=basename(listfiles(MODNUM+path+'/*.c'));
libname="libmodnum_c";
if ccmd<>'trash' then
 precompilation(flagc,ccmd,incl_path,path,files_c);
 create_library(flagc,ccmd,libname,path,files_c);
 txt=write_inf_rout_lib(u,libname,path,files_c,1);
 ierr=execstr(txt,'errcatch');
end
clear files_c; clear libname;

//Build and load scicos F routines
printf("Build scicos blocks Fortran routines\n");
files_f=basename(listfiles(MODNUM+path+'/*.f'));
libname="libmodnum_f";
if fcmd<>'trash' then
 precompilation(flagf,fcmd,incl_path,path,files_f);
 create_library(flagf,fcmd,libname,path,files_f);
 txt=write_inf_rout_lib(u,libname,path,files_f,2);
 ierr=execstr(txt,'errcatch');
end
clear path; clear files_f; clear libname;
clear incl_path;clear flagc;clear flagf;
clear ccmd;clear fcmd; clear ierr;

//Build documentation and demos
txt=write_inf_doc(u);
ierr=execstr(txt,'errcatch');
if ierr==0 then
 %helps=%helps;
end
build_demo();
//flag_doc=build_doc();

//Close loader.sce
mclose(u);
printf("Write a loader.sce file\n");

//write a .scilab file
if ~MSDOS then
 txt=mgetl('loader.sce');
 mputl(txt,'.scilab');
 printf("Write a .scilab file\n");
end
clear u; clear txt; clear ierr; clear ok;

Auteurs

IRCOM Group Alan Layec