summaryrefslogtreecommitdiff
path: root/macros/CCodeGeneration
diff options
context:
space:
mode:
Diffstat (limited to 'macros/CCodeGeneration')
-rw-r--r--macros/CCodeGeneration/C_FinalizeCode.sci1
-rw-r--r--macros/CCodeGeneration/C_ForExpression.sci15
-rw-r--r--macros/CCodeGeneration/C_GenerateMakefile.sci88
-rw-r--r--macros/CCodeGeneration/C_InitHeader.sci3
4 files changed, 60 insertions, 47 deletions
diff --git a/macros/CCodeGeneration/C_FinalizeCode.sci b/macros/CCodeGeneration/C_FinalizeCode.sci
index 2c6b600c..5c26dd85 100644
--- a/macros/CCodeGeneration/C_FinalizeCode.sci
+++ b/macros/CCodeGeneration/C_FinalizeCode.sci
@@ -50,6 +50,7 @@ PrintStringInfo('** ---------------------------- ',Pass1HeaderFileName,'file','y
PrintStringInfo('** --- End USER2C Includes. --- ',Pass1HeaderFileName,'file','y');
PrintStringInfo('** ---------------------------- ',Pass1HeaderFileName,'file','y');
PrintStringInfo('*/',Pass1HeaderFileName,'file','y');
+PrintStringInfo('#endif',Pass1HeaderFileName,'file','y');
// -------------------------------------
// --- End Finalize the header file. ---
// -------------------------------------
diff --git a/macros/CCodeGeneration/C_ForExpression.sci b/macros/CCodeGeneration/C_ForExpression.sci
index 7afc5526..a5ed1346 100644
--- a/macros/CCodeGeneration/C_ForExpression.sci
+++ b/macros/CCodeGeneration/C_ForExpression.sci
@@ -35,7 +35,7 @@ CPass1ForEpilFileName = FileInfo.Funct(nxtscifunnumber).CPass1ForEpilFileName(Sh
// #RNU_RES_B
PrintStringInfo(' ',ReportFileName,'file','y');
-PrintStringInfo('***Generating C code***',ReportFileName,'file','y');
+PrintStringInfo('***Generating C code***',ReportFileName,'file','y','n');
// #RNU_RES_E
CCall ='';
// ---------------------------
@@ -97,11 +97,20 @@ elseif (SharedInfo.ForExpr.AssignmentFun == SharedInfo.CFunId.OpColon)
// #RNU_RES_B
// Prologue
// #RNU_RES_E
- PrintStringInfo(C_IndentBlanks(SharedInfo.NIndent)+C_Strings(cntstr),CPass1FileName,'file','y');
+ PrintStringInfo(C_IndentBlanks(SharedInfo.NIndent)+C_Strings(cntstr),CPass1FileName,'file','y','n');
// #RNU_RES_B
// Epilogue
// #RNU_RES_E
- PrintStringInfo(C_Strings(cntstr),CPass1ForEpilFileName ,'file','y');
+ disp('C_Strings(cntstr)')
+ disp(C_Strings(cntstr))
+ disp('CPass1ForEpilFileName')
+ disp(CPass1ForEpilFileName)
+ if (length(C_Strings(cntstr)) == 0)
+ C_Strings(cntstr) = ''; // If I don't do that I get a PrintStringInfo error related to mputstr.
+ // Function not defined for given argument type(s),
+ // check arguments or define function %0_mputstr for overloading.
+ end
+ PrintStringInfo(string(C_Strings(cntstr)),CPass1ForEpilFileName ,'file','y','n');
end
// #RNU_RES_B
// ----------------------------------------
diff --git a/macros/CCodeGeneration/C_GenerateMakefile.sci b/macros/CCodeGeneration/C_GenerateMakefile.sci
index 6f4f8e75..424ccb81 100644
--- a/macros/CCodeGeneration/C_GenerateMakefile.sci
+++ b/macros/CCodeGeneration/C_GenerateMakefile.sci
@@ -48,66 +48,66 @@ makesci2cdir = FileInfo.CStyleOutCCCodeDir;
// makesci2cdir = FileInfo.CStyleOutCCCodeDir;
-PrintStringInfo('CSRCDIR = '+makecsrcdir,FileInfo.MakefileFilename,'file','y');
-PrintStringInfo('HSRCDIR = '+makehsrcdir,FileInfo.MakefileFilename,'file','y');
-PrintStringInfo('ISRCDIR = '+makeisrcdir,FileInfo.MakefileFilename,'file','y');
-//PrintStringInfo('SCI2CDIR = '+makesci2cdir,FileInfo.MakefileFilename,'file','y');
-PrintStringInfo('SCI2CDIR = .',FileInfo.MakefileFilename,'file','y');
+PrintStringInfo('CSRCDIR = '+makecsrcdir,FileInfo.MakefileFilename,'file','y','y');
+PrintStringInfo('HSRCDIR = '+makehsrcdir,FileInfo.MakefileFilename,'file','y','y');
+PrintStringInfo('ISRCDIR = '+makeisrcdir,FileInfo.MakefileFilename,'file','y','y');
+//PrintStringInfo('SCI2CDIR = '+makesci2cdir,FileInfo.MakefileFilename,'file','y','y');
+PrintStringInfo('SCI2CDIR = .',FileInfo.MakefileFilename,'file','y','y');
// Compiler definition
-PrintStringInfo('CC = gcc',FileInfo.MakefileFilename,'file','y');
-PrintStringInfo('CFLAGS = -Wall -pedantic -O3 -I $(HSRCDIR) -I $(ISRCDIR) -lm',FileInfo.MakefileFilename,'file','y');
+PrintStringInfo('CC = gcc',FileInfo.MakefileFilename,'file','y','y');
+PrintStringInfo('CFLAGS = -Wall -pedantic -O3 -I $(HSRCDIR) -I $(ISRCDIR) -lm',FileInfo.MakefileFilename,'file','y','y');
// Binary definition
-PrintStringInfo('EXEFILENAME = mytest.exe',FileInfo.MakefileFilename,'file','y');
-PrintStringInfo('EXEFILE = $(SCI2CDIR)/$(EXEFILENAME)', FileInfo.MakefileFilename,'file','y');
+PrintStringInfo('EXEFILENAME = mytest.exe',FileInfo.MakefileFilename,'file','y','y');
+PrintStringInfo('EXEFILE = $(SCI2CDIR)/$(EXEFILENAME)', FileInfo.MakefileFilename,'file','y','y');
// Sources
-PrintStringInfo('SRC = \\', FileInfo.MakefileFilename,'file','y');
+PrintStringInfo('SRC = \\', FileInfo.MakefileFilename,'file','y','y');
allSources = getAllSources();
nbSources = size(allSources);
for i = 1:(nbSources(1) - 1)
[tmppath,tmpfile,tmpext] = fileparts(allSources(i));
- PrintStringInfo(' $(CSRCDIR)/'+tmpfile+tmpext+' \\', FileInfo.MakefileFilename,'file','y');
+ PrintStringInfo(' $(CSRCDIR)/'+tmpfile+tmpext+' \\', FileInfo.MakefileFilename,'file','y','y');
end
[tmppath,tmpfile,tmpext] = fileparts(allSources(nbSources(1)));
-PrintStringInfo(' $(CSRCDIR)/'+tmpfile+tmpext, FileInfo.MakefileFilename,'file','y');
+PrintStringInfo(' $(CSRCDIR)/'+tmpfile+tmpext, FileInfo.MakefileFilename,'file','y','y');
// Objects
-PrintStringInfo('OBJ = $(SRC:.c=.o)', FileInfo.MakefileFilename,'file','y');
+PrintStringInfo('OBJ = $(SRC:.c=.o)', FileInfo.MakefileFilename,'file','y','y');
// Rules
-PrintStringInfo('# ---------------',FileInfo.MakefileFilename,'file','y');
-PrintStringInfo('# --- TARGETS ---',FileInfo.MakefileFilename,'file','y');
-PrintStringInfo('# ---------------',FileInfo.MakefileFilename,'file','y');
-PrintStringInfo('compileexecute: $(OBJ)',FileInfo.MakefileFilename,'file','y');
-PrintStringInfo('\t@echo "" ""',FileInfo.MakefileFilename,'file','y');
-PrintStringInfo('\t@echo ""============================""',FileInfo.MakefileFilename,'file','y');
-PrintStringInfo('\t@echo ""Generation of the executable""',FileInfo.MakefileFilename,'file','y');
-PrintStringInfo('\t@echo ""============================""',FileInfo.MakefileFilename,'file','y');
-PrintStringInfo('\t$(CC) $(CFLAGS) $(OBJ) *.c -llapack -lblas -o $(EXEFILE)',FileInfo.MakefileFilename,'file','y');
-PrintStringInfo('\t@echo "" ""',FileInfo.MakefileFilename,'file','y');
-PrintStringInfo('\t@echo ""==============""',FileInfo.MakefileFilename,'file','y');
-PrintStringInfo('\t@echo ""Executing code""',FileInfo.MakefileFilename,'file','y');
-PrintStringInfo('\t@echo ""==============""',FileInfo.MakefileFilename,'file','y');
-PrintStringInfo('\t$(EXEFILE)',FileInfo.MakefileFilename,'file','y');
-
-PrintStringInfo('clean:',FileInfo.MakefileFilename,'file','y');
-PrintStringInfo('\t@echo "" ""',FileInfo.MakefileFilename,'file','y');
-PrintStringInfo('\t@echo ""=============================""',FileInfo.MakefileFilename,'file','y');
-PrintStringInfo('\t@echo ""Removing only exe + obj files""',FileInfo.MakefileFilename,'file','y');
-PrintStringInfo('\t@echo ""=============================""',FileInfo.MakefileFilename,'file','y');
-PrintStringInfo('\trm -rf $(EXEFILE)',FileInfo.MakefileFilename,'file','y');
-PrintStringInfo('\trm -rf $(OBJ)',FileInfo.MakefileFilename,'file','y');
-PrintStringInfo('\t@echo "" ""',FileInfo.MakefileFilename,'file','y');
-
-PrintStringInfo('distclean: clean',FileInfo.MakefileFilename,'file','y');
-PrintStringInfo('\t@echo "" ""',FileInfo.MakefileFilename,'file','y');
-PrintStringInfo('\t@echo ""==========================""',FileInfo.MakefileFilename,'file','y');
-PrintStringInfo('\t@echo ""Removing only the exe file""',FileInfo.MakefileFilename,'file','y');
-PrintStringInfo('\t@echo ""==========================""',FileInfo.MakefileFilename,'file','y');
-PrintStringInfo('\trm -rf $(EXEFILE)',FileInfo.MakefileFilename,'file','y');
-PrintStringInfo('\t@echo "" ""',FileInfo.MakefileFilename,'file','y');
+PrintStringInfo('# ---------------',FileInfo.MakefileFilename,'file','y','y');
+PrintStringInfo('# --- TARGETS ---',FileInfo.MakefileFilename,'file','y','y');
+PrintStringInfo('# ---------------',FileInfo.MakefileFilename,'file','y','y');
+PrintStringInfo('compileexecute: $(OBJ)',FileInfo.MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo "" ""',FileInfo.MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo ""============================""',FileInfo.MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo ""Generation of the executable""',FileInfo.MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo ""============================""',FileInfo.MakefileFilename,'file','y','y');
+PrintStringInfo('\t$(CC) $(CFLAGS) $(OBJ) *.c -llapack -lblas -o $(EXEFILE)',FileInfo.MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo "" ""',FileInfo.MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo ""==============""',FileInfo.MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo ""Executing code""',FileInfo.MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo ""==============""',FileInfo.MakefileFilename,'file','y','y');
+PrintStringInfo('\t$(EXEFILE)',FileInfo.MakefileFilename,'file','y','y');
+
+PrintStringInfo('clean:',FileInfo.MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo "" ""',FileInfo.MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo ""=============================""',FileInfo.MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo ""Removing only exe + obj files""',FileInfo.MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo ""=============================""',FileInfo.MakefileFilename,'file','y','y');
+PrintStringInfo('\trm -rf $(EXEFILE)',FileInfo.MakefileFilename,'file','y','y');
+PrintStringInfo('\trm -rf $(OBJ)',FileInfo.MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo "" ""',FileInfo.MakefileFilename,'file','y','y');
+
+PrintStringInfo('distclean: clean',FileInfo.MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo "" ""',FileInfo.MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo ""==========================""',FileInfo.MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo ""Removing only the exe file""',FileInfo.MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo ""==========================""',FileInfo.MakefileFilename,'file','y','y');
+PrintStringInfo('\trm -rf $(EXEFILE)',FileInfo.MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo "" ""',FileInfo.MakefileFilename,'file','y','y');
// -------------------------------
diff --git a/macros/CCodeGeneration/C_InitHeader.sci b/macros/CCodeGeneration/C_InitHeader.sci
index 8d088939..7d794127 100644
--- a/macros/CCodeGeneration/C_InitHeader.sci
+++ b/macros/CCodeGeneration/C_InitHeader.sci
@@ -30,6 +30,9 @@ SCI2CNInArgCheck(argn(2),3,3);
C_SCI2CHeader(HeaderFileName);
+[tmppath,tmpfname,tmpextension]=fileparts(HeaderFileName);
+PrintStringInfo('#ifndef '+tmpfname+'_h',HeaderFileName,'file','y');
+PrintStringInfo('#define '+tmpfname+'_h',HeaderFileName,'file','y');
PrintStringInfo('/*',HeaderFileName,'file','y');
PrintStringInfo('** ----------------------- ',HeaderFileName,'file','y');
PrintStringInfo('** --- SCI2C Includes. --- ',HeaderFileName,'file','y');