summaryrefslogtreecommitdiff
path: root/macros/runsci2c.sci
diff options
context:
space:
mode:
authorAbhinav Dronamraju2017-09-29 22:00:40 +0530
committerAbhinav Dronamraju2017-09-29 22:00:40 +0530
commit9bc7ad78e8d7d7acc4b9387aa592542832e80b31 (patch)
tree7fce060665a91de5e5adb12d02003351c3d1fdfc /macros/runsci2c.sci
parent33755eb085a3ca8154cf83773b23fbb8aac4ba3e (diff)
parentac0045f12ad3d0938758e9742f4107a334e1afaa (diff)
downloadscilab2c-9bc7ad78e8d7d7acc4b9387aa592542832e80b31.tar.gz
scilab2c-9bc7ad78e8d7d7acc4b9387aa592542832e80b31.tar.bz2
scilab2c-9bc7ad78e8d7d7acc4b9387aa592542832e80b31.zip
NEW FEATURES AND NEW FUNCTIONS
Diffstat (limited to 'macros/runsci2c.sci')
-rw-r--r--macros/runsci2c.sci132
1 files changed, 109 insertions, 23 deletions
diff --git a/macros/runsci2c.sci b/macros/runsci2c.sci
index cb2d9823..7475f870 100644
--- a/macros/runsci2c.sci
+++ b/macros/runsci2c.sci
@@ -1,4 +1,4 @@
-function runsci2c(UserScilabMainFile, UserSciFilesPaths, SCI2COutputPath, Runmode, BuildTool)
+function runsci2c(UserScilabMainFile, UserSciFilesPaths, SCI2COutputPath, Runmode, BuildTool,Target,Board_name)
// function runsci2c(SCI2CInputPrmFile)
// -----------------------------------------------------------------
// === hArtes/PoliBa/GAP SCI2C tool ===
@@ -36,6 +36,7 @@ function runsci2c(UserScilabMainFile, UserSciFilesPaths, SCI2COutputPath, Runmod
// --- Input Parameters. ---
// -------------------------
RunSci2CMainDir = pwd();
+disp(RunSci2CMainDir);
// -----------------------------
// --- End input Parameters. ---
// -----------------------------
@@ -50,7 +51,7 @@ RunSci2CMainDir = pwd();
// --- Initialize the SCI2C tool directories and files. ---
[FileInfoDatFile,SharedInfoDatFile] = INIT_SCI2C(UserScilabMainFile, ...
- UserSciFilesPaths, SCI2COutputPath, RunMode);
+ UserSciFilesPaths, SCI2COutputPath, RunMode, Target,Board_name);
// -- Load FileInfo and SharedInfo
load(SharedInfoDatFile,'SharedInfo');
@@ -84,35 +85,67 @@ if (RunMode == 'All' | RunMode == 'Translate')
end
end
-
-
+load(SharedInfoDatFile,'SharedInfo');
// ---------------------------
// --- Copy library files. ---
// ---------------------------
-global SCI2CHOME
-allSources = SCI2CHOME + "/" + getAllSources();
-allHeaders = SCI2CHOME + "/" +getAllHeaders();
-allInterfaces = SCI2CHOME + "/" + getAllInterfaces();
+global SCI2CHOME
+allSources = SCI2CHOME + "/" + getAllSources(SharedInfo, BuildTool);
+allHeaders = SCI2CHOME + "/" +getAllHeaders(SharedInfo);
+allInterfaces = SCI2CHOME + "/" + getAllInterfaces(SharedInfo);
+if(~isempty(getAllLibraries(SharedInfo)))
+ allLibraries = SCI2CHOME + "/" + getAllLibraries(SharedInfo);
+else
+ allLibraries = ''
+end
+//allLibraries = SCI2CHOME + "/" + getAllLibraries(Target);
+if (Target == 'Arduino')
+ mkdir(SCI2COutputPath+"/arduino/");
+ mkdir(SCI2COutputPath+"/arduino/sci2c_arduino");
+end
mkdir(SCI2COutputPath+"/src/");
mkdir(SCI2COutputPath+"/src/c/");
mkdir(SCI2COutputPath+"/includes/");
mkdir(SCI2COutputPath+"/interfaces/");
+mkdir(SCI2COutputPath+"/libraries/");
// -- Sources
PrintStepInfo('Copying sources', FileInfo.GeneralReport,'both');
+
for i = 1:size(allSources, "*")
// DEBUG only
//disp("Copying "+allSources(i)+" in "+SCI2COutputPath+"/src/c/");
- copyfile(allSources(i), SCI2COutputPath+"/src/c/");
+ //Copy ode related functions only if 'ode' function is used.
+ if(~isempty(strstr(allSources(i),'dode')))
+ if(size(SharedInfo.Includelist) <> 0)
+ if((mtlb_strcmp(part(SharedInfo.Includelist(1),1:5),'odefn') == %T))
+ if BuildTool == "nmake"
+ copyfile(allSources(i), SCI2COutputPath+"/arduino/sci2c_arduino/");
+ else
+ copyfile(allSources(i), SCI2COutputPath+"/src/c/");
+ end
+ end
+ end
+ else
+ if BuildTool == "nmake"
+ copyfile(allSources(i), SCI2COutputPath+"/arduino/sci2c_arduino/");
+ else
+ copyfile(allSources(i), SCI2COutputPath+"/src/c/");
+ end
+ end
end
// -- Includes
PrintStepInfo('Copying headers', FileInfo.GeneralReport,'both');
for i = 1:size(allHeaders, "*")
// DEBUG only
- // disp("Copying "+allHeaders(i)+" in "+SCI2COutputPath+"/includes/");
- copyfile(allHeaders(i), SCI2COutputPath+"/includes/");
+ //disp("Copying "+allHeaders(i)+" in "+SCI2COutputPath+"/includes/");
+ if BuildTool == "nmake"
+ copyfile(allHeaders(i), SCI2COutputPath+"/arduino/sci2c_arduino/");
+ else
+ copyfile(allHeaders(i), SCI2COutputPath+"/includes/");
+ end
end
// -- Interfaces
@@ -120,27 +153,78 @@ PrintStepInfo('Copying interfaces', FileInfo.GeneralReport,'both');
for i = 1:size(allInterfaces, "*")
// DEBUG only
//disp("Copying "+allInterfaces(i)+" in "+SCI2COutputPath+"/interfaces/");
- copyfile(allInterfaces(i), SCI2COutputPath+"/interfaces/");
+ if BuildTool == "nmake"
+ copyfile(allInterfaces(i), SCI2COutputPath+"/arduino/sci2c_arduino/");
+ else
+ copyfile(allInterfaces(i), SCI2COutputPath+"/interfaces/");
+ end
end
-// ------------------------------
-// --- Generate SCI2C Header. ---
-// ------------------------------
-// FIXME : Give the user the ability to set this prefix
-FunctionPrefix = "SCI2C";
-C_GenerateSCI2CHeader(SCI2COutputPath+"/includes/", FunctionPrefix);
+// -- Libraries
+if(~isempty(allLibraries))
+ PrintStepInfo('Copying libraries', FileInfo.GeneralReport,'both');
+ for i = 1:size(allLibraries, "*")
+ // DEBUG only
+ //disp("Copying "+allLibraries(i)+" in "+SCI2COutputPath+"/libraries/");
+ copyfile(allLibraries(i), SCI2COutputPath+"/libraries/");
+ end
+end
+
+//Copy folder containing opencv include files in Includes folder
+//if((Target == 'RPi') & (SharedInfo.OpenCVUsed == %T))
+// copyfile(SCI2CHOME + "/" +'thirdparty/raspberrypi/includes/opencv2/',SCI2COutputPath+"/includes/opencv2")
+//end
// --------------------------
// --- Generate Makefile. ---
// --------------------------
-if BuildTool == "make"
- C_GenerateMakefile(FileInfo,SharedInfo);
+//If output format is chosen as 'Arduino', then copy makefile for arduino from
+//default folder, else generate makefile for standalone c code
+
+if (Target == 'Arduino')
+
+ GenerateSetupFunction(FileInfo);
+ //Copy arduino makefile
+ arduinoFiles = SCI2CHOME + "/" + getArduinoFiles();
+ PrintStepInfo('Copying arduino files', FileInfo.GeneralReport,'both');
+ copyfile(arduinoFiles(1), SCI2COutputPath);
+ for i = 2:size(arduinoFiles, "*")
+ // DEBUG only
+ //disp("Copying "+arduinoFiles(i)+" in "+SCI2COutputPath+"/arduino/sci2carduino");
+ copyfile(arduinoFiles(i), SCI2COutputPath+"/arduino/sci2c_arduino/");
+ end
+ C_GenerateMkfle_arduino(FileInfo,SharedInfo);
+ movefile(FileInfo.MakefileFilename, SCI2COutputPath+"/arduino/sci2c_arduino/");
+elseif (Target == 'AVR')
+ AVRFile = SCI2CHOME + "/" + "src/c/hardware/avr/default_files/Makefile";
+ copyfile(AVRFile, SCI2COutputPath);
+else
+
+ if BuildTool == "make"
+ C_GenerateMakefile(FileInfo,SharedInfo);
+ copyBlasLapackLibs(FileInfo,SharedInfo); //Previously .dll files and blas,lapack library not creating for cygwin by additing this works fine
+ end
+ if BuildTool == "nmake"
+ //copyBlasLapackLibs(FileInfo,SharedInfo);
+ C_GenerateMakefile_msvc(FileInfo,SharedInfo);
+ end
end
-if BuildTool == "nmake"
- copyBlasLapackLibs(FileInfo,SharedInfo);
- C_GenerateMakefile_msvc(FileInfo,SharedInfo);
+if BuildTool == "nmake" & Target == 'Arduino'
+ movefile(SCI2COutputPath +"/setup_arduino.h", SCI2COutputPath+"/arduino/sci2c_arduino/");
+ movefile(SCI2COutputPath +"/setup_arduino.cpp", SCI2COutputPath+"/arduino/sci2c_arduino/");
+ movefile(SCI2COutputPath +"/loop_arduino.cpp", SCI2COutputPath+"/arduino/sci2c_arduino/");
+ movefile(SCI2COutputPath +"/loop_arduino.h", SCI2COutputPath+"/arduino/sci2c_arduino/");
end
+
+
+// ------------------------------
+// --- Generate SCI2C Header. ---
+// ------------------------------
+// FIXME : Give the user the ability to set this prefix
+FunctionPrefix = "SCI2C";
+C_GenerateSCI2CHeader(SCI2COutputPath+"/includes/", FunctionPrefix);
+
// -----------------
// --- Epilogue. ---
// -----------------
@@ -149,6 +233,8 @@ if (RunMode == 'All' | RunMode == 'Translate')
elseif (RunMode == 'GenLibraryStructure')
PrintStepInfo('Library Structure Successfully Created!!!',FileInfo.GeneralReport,'both');
end
+
+
endfunction