ilib_for_link, ilib_build do not accept files with ".o" or ".obj" extensions for...
[scilab.git] / scilab / modules / dynamic_link / macros / windows / dlwGenerateMakefile.sci
index e3f011e..40c82b7 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) DIGITEO - 2010 - Allan CORNET
+// Copyright (C) DIGITEO - 2010-2011 - Allan CORNET
 //
 // This file must be used under the terms of the CeCILL.
 // This source file is licensed as described in the file COPYING, which
@@ -10,6 +10,7 @@ function Makename = dlwGenerateMakefile(name, ..
                                  tables, ..
                                  files, ..
                                  libs, ..
+                                 libname, ..
                                  makename, ..
                                  with_gateway, ..
                                  ldflags, ..
@@ -29,20 +30,11 @@ function Makename = dlwGenerateMakefile(name, ..
     fflags = '';
     cc = '';
   end
-  
+
   if ~isdef('makename') then
     makename = '';
   end
 
-  for i=1:size(files,'*') // compatibility scilab 4.x
-    [path_f, file_f, ext_f] = fileparts(files(i));
-    if or(ext_f == ['.o','.obj']) then
-      files(i) = path_f + file_f;
-    else
-      files(i) = path_f + file_f + ext_f;
-    end
-  end
-
   // change table if necessary
   if tables <> [] then
     if typeof(tables)<>'list' then
@@ -55,7 +47,7 @@ function Makename = dlwGenerateMakefile(name, ..
       [mt, nt] = size(table);
 
       if nt == 2 then
-        col= "csci";  
+        col= "csci";
         table = [table, col(ones(mt,1))];
         nt=3;
       end
@@ -66,15 +58,18 @@ function Makename = dlwGenerateMakefile(name, ..
       tables(it) = table;
     end
   end
-  
+
   if isempty(makename) then
     Makename = dlwGetDefltMakefileName() + dlwGetMakefileExt();
   else
     Makename = makename + dlwGetMakefileExt();
   end
-  
-  
-  ilib_gen_Make_win32(name, tables, files, libs, Makename, with_gateway, ldflags, cflags, fflags)
+
+  if length(libname) > 0  & strncpy(libname, 3) <> 'lib' then
+    libname = 'lib' + libname;
+  end
+
+  ilib_gen_Make_win32(name, tables, files, libs, libname, Makename, with_gateway, ldflags, cflags, fflags)
 
 endfunction
 //=============================================================================
@@ -82,6 +77,7 @@ function ilib_gen_Make_win32(name, ..
                              table, ..
                              files, ..
                              libs, ..
+                             libname, ..
                              Makename, ..
                              with_gateway, ..
                              ldflags, ..
@@ -89,7 +85,6 @@ function ilib_gen_Make_win32(name, ..
                              fflags)
 
   managed_ext = ['.cxx', '.cpp', '.c', '.f90', '.f'];
-  obj_ext = ['.o', '.obj', ''];
 
   SCIDIR = SCI;
   SCIDIR1 = pathconvert(SCI,%f,%f,'w');
@@ -106,26 +101,27 @@ function ilib_gen_Make_win32(name, ..
   MEXFFLAGS = '';
   LDFLAGS = ldflags;
 
+  if isempty(libname) then
+    LIBRARY = name;
+  else
+    LIBRARY = libname;
+  end
+
   FILES_SRC_MATRIX = [];
 
   [path_Make, file_Make, ext_Make] = fileparts(Makename);
 
   for i=1:size(files,'*')
     [path_f, file_f, ext_f] = fileparts(files(i));
-
-    if or(obj_ext == ext_f) then
-      FILENAME = [];
-      FILE_FOUNDED = %f;
-      for y = managed_ext(:)'
-        if (FILE_FOUNDED == %f) then
-          if (fileinfo(path_f + file_f + y) <> []) | (fileinfo(path_Make + file_f + y) <> []) then
-            FILENAME = path_f + file_f + y;
-            FILE_FOUNDED = %t;
-          end
+    FILENAME = [];
+    FILE_FOUNDED = %f;
+    for y = managed_ext(:)'
+      if (FILE_FOUNDED == %f) then
+        if (fileinfo(path_f + file_f + y) <> []) | (fileinfo(path_Make + file_f + y) <> []) then
+          FILENAME = path_f + file_f + y;
+          FILE_FOUNDED = %t;
         end
       end
-    else
-      FILENAME = files(i);
     end
     FILES_SRC_MATRIX = [FILES_SRC_MATRIX , FILENAME];
   end
@@ -165,10 +161,12 @@ function ilib_gen_Make_win32(name, ..
     end
   end
 
+  if isempty(FILES_SRC_MATRIX) | ~and(isfile(FILES_SRC_MATRIX)) then
+    error(999, msprintf(_("%s: Wrong value for input argument #%d: existing file(s) expected.\n"), "ilib_gen_Make", 3));
+  end
 
   FILES_SRC = strcat(FILES_SRC_MATRIX,' ');
 
-
   OBJ_DEST_PATH = '';
   if (getenv("DEBUG_SCILAB_DYNAMIC_LINK","NO") == "NO") then
     OBJ_DEST_PATH = "Release/";
@@ -199,7 +197,7 @@ function ilib_gen_Make_win32(name, ..
   end
 
   for x=libs(:)'
-     if (x <> [] & x <> '') then 
+     if (x <> [] & x <> '') then
        if OTHERLIBS <> '' then
          OTHERLIBS = OTHERLIBS + ' ' + x + '.lib';
        else
@@ -236,9 +234,7 @@ function ilib_gen_Make_win32(name, ..
   MAKEFILE_VC = strsubst(MAKEFILE_VC, "__LDFLAGS__", LDFLAGS);
 
   if ( MAKEFILE_VC <> '') then
-    fd = mopen(Makename, "wt");
-    mputl(MAKEFILE_VC, fd);
-    mclose(fd);
+    mputl(MAKEFILE_VC, Makename);
 
     if ilib_verbose() > 1 then
       disp(MAKEFILE_VC);