manages fortran 90 on windows
Allan Cornet [Tue, 9 Sep 2008 14:47:27 +0000 (14:47 +0000)]
scilab/Makefile.incl.mak
scilab/modules/dynamic_link/macros/ilib_for_link.sci
scilab/modules/dynamic_link/macros/ilib_gen_Make.sci

index 2733558..b3f5c0c 100644 (file)
@@ -99,10 +99,15 @@ XLIBSBIN="$(SCIDIR1)\bin\MALLOC.lib" "$(SCIDIR1)\bin\blasplus.lib" \
        !ELSE
        -del $*.c 
        !ENDIF
+.f90.obj :     
+  @echo F2C cannot compile .f90 files
 !ELSE 
 .f.obj :
        @echo -----------Compile file $*.f  (using $(FC)) -------------
        @$(FC) $(FFLAGS) $<
+.f90.obj       :
+       @echo -----------Compile file $*.f90  (using $(FC)) -------------
+       @$(FC) $(FFLAGS) $<
 !ENDIF 
 #==================================================
 # clean 
index 608e473..75cf860 100644 (file)
@@ -173,6 +173,19 @@ function ilib_link_gen_loader(names,flag,loadername,libs,libname)
     if i <>n ; mfprintf(fd,","); else mfprintf(fd,"],");end
   end
   
+  // we manage .f90 as .f on windows
+  if MSDOS then 
+   if findmsifortcompiler()<> 'unknown' then
+     if flag == 'f90' then
+      flag = 'f';
+     end
+   else
+     if flag == 'f90' then
+      error(gettext('F2C cannot build fortran 90'));
+     end
+   end
+  end
+
   mfprintf(fd,"''%s'');\n",flag);
   mfprintf(fd,"// remove temp. variables on stack\n");
   mfprintf(fd,"clear %s_path;\n",libname);
index ef7f5fa..06306c3 100644 (file)
@@ -61,6 +61,7 @@ endfunction
 
 
 function ilib_gen_Make_win32(name,table,files,libs,Makename,with_gateway,ldflags,cflags,fflags)
+  files = strsubst(files,'.f90','');
   files = strsubst(strsubst(files,'.cxx','') ,'.f','');
   files = strsubst(strsubst(files,'.cpp','') ,'.f','');
   files = strsubst(strsubst(files,'.c','') ,'.f','');