summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcornet2010-03-31 15:16:29 +0000
committercornet2010-03-31 15:16:29 +0000
commit9bcfcd6033dcae8407b0ec64808d534f43f1fa18 (patch)
treead1b0b2ba84062e463997339b34efcd5889597b9
parente647cf3a36544a1a77184a755e5e95c4a46bd04a (diff)
downloadscilab2c-9bcfcd6033dcae8407b0ec64808d534f43f1fa18.tar.gz
scilab2c-9bcfcd6033dcae8407b0ec64808d534f43f1fa18.tar.bz2
scilab2c-9bcfcd6033dcae8407b0ec64808d534f43f1fa18.zip
update makedfile
-rw-r--r--scilab2c/macros/CCodeGeneration/C_GenerateMakefile.sci94
1 files changed, 94 insertions, 0 deletions
diff --git a/scilab2c/macros/CCodeGeneration/C_GenerateMakefile.sci b/scilab2c/macros/CCodeGeneration/C_GenerateMakefile.sci
index 0a0747b8..2d28fa25 100644
--- a/scilab2c/macros/CCodeGeneration/C_GenerateMakefile.sci
+++ b/scilab2c/macros/CCodeGeneration/C_GenerateMakefile.sci
@@ -109,6 +109,10 @@ PrintStringInfo('\t@echo ""==========================""',FileInfo.MakefileFilena
PrintStringInfo('\trm -rf $(EXEFILE)',FileInfo.MakefileFilename,'file','y','y');
PrintStringInfo('\t@echo "" ""',FileInfo.MakefileFilename,'file','y','y');
+if getos() == 'Windows' then
+ C_GenerateMakefile_msvc(FileInfo,SharedInfo);
+end
+
// -------------------------------
// --- Open template makefile. ---
@@ -127,3 +131,93 @@ PrintStringInfo('\t@echo "" ""',FileInfo.MakefileFilename,'file','y','y');
//mclose(fidfile);
endfunction
+
+
+function C_GenerateMakefile_msvc(FileInfo, SharedInfo)
+
+MakefileFilename = FileInfo.MakefileFilename + '.mak';
+
+PrintStringInfo('# SCI2C Makefile (Visual Studio 2008)',MakefileFilename,'file','y','y');
+PrintStringInfo('# hArtes EU Project.',MakefileFilename,'file','y','y');
+PrintStringInfo('# Authors: PoliBa & Inria & DIGITEO',MakefileFilename,'file','y','y');
+PrintStringInfo('# -----------------------',MakefileFilename,'file','y','y');
+PrintStringInfo('# --- USER PARAMETERS ---',MakefileFilename,'file','y','y');
+PrintStringInfo('# -----------------------',MakefileFilename,'file','y','y');
+PrintStringInfo('# --- DIRECTORIES AND FILES ---',MakefileFilename,'file','y','y');
+
+makecsrcdir = pathconvert('src/c', %f, %f, 'u');
+makehsrcdir = pathconvert('includes', %f, %f, 'u');
+makeisrcdir = pathconvert('interfaces', %f, %f, 'u');
+makesci2cdir = FileInfo.CStyleOutCCCodeDir;
+PrintStringInfo('CSRCDIR = '+makecsrcdir,MakefileFilename,'file','y','y');
+PrintStringInfo('HSRCDIR = '+makehsrcdir,MakefileFilename,'file','y','y');
+PrintStringInfo('ISRCDIR = '+makeisrcdir,MakefileFilename,'file','y','y');
+PrintStringInfo('SCI2CDIR = .',MakefileFilename,'file','y','y');
+
+PrintStringInfo('DIR_OBJ=Release',MakefileFilename,'file','y','y');
+PrintStringInfo('LAPACK_LIB =$(SCI2CDIR)/external-libs/lapack.lib',MakefileFilename,'file','y','y');
+PrintStringInfo('BLAS_LIB = $(SCI2CDIR)/external-libs/blasplus.lib',MakefileFilename,'file','y','y');
+PrintStringInfo('CC = cl',MakefileFilename,'file','y','y');
+PrintStringInfo('LINKER = link',MakefileFilename,'file','y','y');
+PrintStringInfo('LINKER_OPTIMISATION_MODE=/RELEASE ',MakefileFilename,'file','y','y');
+PrintStringInfo('CC__OPTIMISATION_MODE=-Z7 -O2 -MT',MakefileFilename,'file','y','y');
+PrintStringInfo('CC_OPTIONS = $(CC_COMMON) -W3 -Gd $(CC__OPTIMISATION_MODE) /Fo""$(DIR_OBJ)/"" /Fd""$(DIR_OBJ)/"" ',MakefileFilename,'file','y','y');
+PrintStringInfo('CFLAGS = $(CC_OPTIONS) -I""$(HSRCDIR)"" -I""$(ISRCDIR)"" /EHsc /TP ',MakefileFilename,'file','y','y');
+PrintStringInfo('EXEFILENAME = mytest',MakefileFilename,'file','y','y');
+PrintStringInfo('EXEFILE = $(SCI2CDIR)\\$(EXEFILENAME)',MakefileFilename,'file','y','y');
+PrintStringInfo('MAIN_SRC = $(SCI2CDIR)/main.c',MakefileFilename,'file','y','y');
+
+// Sources
+PrintStringInfo('SRC = \\', 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+' \\', MakefileFilename,'file','y','y');
+end
+[tmppath,tmpfile,tmpext] = fileparts(allSources(nbSources(1)));
+PrintStringInfo(' $(CSRCDIR)/'+tmpfile+tmpext, MakefileFilename,'file','y','y');
+
+PrintStringInfo('OBJ = $(SRC:.c=.obj) $(MAIN_SRC:.c=.obj)',MakefileFilename,'file','y','y');
+PrintStringInfo('# ---------------',MakefileFilename,'file','y','y');
+PrintStringInfo('# --- TARGETS ---',MakefileFilename,'file','y','y');
+PrintStringInfo('# ---------------',MakefileFilename,'file','y','y');
+PrintStringInfo('compileexecute: ',MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo "" ""',MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo ""============================""',MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo ""Generation of the executable""',MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo ""============================""',MakefileFilename,'file','y','y');
+PrintStringInfo('\t-IF NOT EXIST $(DIR_OBJ) mkdir $(DIR_OBJ)',MakefileFilename,'file','y','y');
+PrintStringInfo('\t$(CC) $(CFLAGS) $(SRC) $(MAIN_SRC) /link $(LAPACK_LIB) $(BLAS_LIB) /out:$(EXEFILE).exe',MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo "" ""',MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo ""==============""',MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo ""Executing code""',MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo ""==============""',MakefileFilename,'file','y','y');
+PrintStringInfo('\t$(EXEFILE).exe',MakefileFilename,'file','y','y');
+PrintStringInfo('clean:',MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo "" ""',MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo ""=============================""',MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo ""Removing only exe + obj files""',MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo ""=============================""',MakefileFilename,'file','y','y');
+PrintStringInfo('\t-del ""$(DIR_OBJ)\*.obj""',MakefileFilename,'file','y','y');
+PrintStringInfo('\t-rmdir ""$(DIR_OBJ)""',MakefileFilename,'file','y','y');
+PrintStringInfo('\t-del $(EXEFILE).exe',MakefileFilename,'file','y','y');
+PrintStringInfo('\t-del $(EXEFILE).exp',MakefileFilename,'file','y','y');
+PrintStringInfo('\t-del $(EXEFILE).lib',MakefileFilename,'file','y','y');
+PrintStringInfo('\t-del $(EXEFILE).pdb',MakefileFilename,'file','y','y');
+PrintStringInfo('\t-del $(EXEFILE).ilk',MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo "" ""',MakefileFilename,'file','y','y');
+PrintStringInfo('distclean: clean',MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo "" ""',MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo ""==========================""',MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo ""Removing only the exe file""',MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo ""==========================""',MakefileFilename,'file','y','y');
+PrintStringInfo('\t-del $(EXEFILE).exe',MakefileFilename,'file','y','y');
+PrintStringInfo('\t-del $(EXEFILE).exp',MakefileFilename,'file','y','y');
+PrintStringInfo('\t-del $(EXEFILE).lib',MakefileFilename,'file','y','y');
+PrintStringInfo('\t-del $(EXEFILE).pdb',MakefileFilename,'file','y','y');
+PrintStringInfo('\t-del $(EXEFILE).ilk',MakefileFilename,'file','y','y');
+PrintStringInfo('\t@echo "" ""',MakefileFilename,'file','y','y');
+
+
+endfunction \ No newline at end of file