bug 5138
Allan CORNET [Tue, 3 Nov 2009 12:58:19 +0000 (13:58 +0100)]
scilab/CHANGES_5.2.X
scilab/modules/dynamic_link/macros/ilib_build.sci
scilab/modules/dynamic_link/macros/ilib_for_link.sci
scilab/modules/dynamic_link/macros/ilib_gen_Make.sci
scilab/modules/dynamic_link/tests/nonreg_tests/bug_5138.dia.ref [new file with mode: 0644]
scilab/modules/dynamic_link/tests/nonreg_tests/bug_5138.tst [new file with mode: 0644]

index c91165b..29da032 100644 (file)
@@ -1076,4 +1076,6 @@ Bug fixes:
 
 * bug 5105 fixed - completion: cd "..\L<tab>  did not work.
 
+* bug 5138 fixed - ilib_build: if the "makefile name" argument is an empty matrix, the generated Makefile is ".mak"
+
 * bug 5148 fixed - Setting {x,y,z}_ticks with empty value work.
index 01fdc80..3823241 100644 (file)
@@ -49,6 +49,14 @@ function ilib_build(ilib_name,table,files,libs,makename,ldflags,cflags,fflags,is
   if rhs <= 8 then ismex  = %f; end 
   if rhs <= 9 then cc  = ''; end 
   
+  if MSDOS then
+    if isdef('makename') then
+      if (makename == []) | (makename == '') then
+        makename = 'makelib';
+      end
+    end
+  end
+  
   // check if library is not already loaded
   if or(link() == ilib_name) then
     error(999,msprintf(_('%s: ''%s'' already loaded in scilab.'),'ilib_build',ilib_name) + ..
index f6483bb..c680adb 100644 (file)
@@ -35,6 +35,14 @@ function libn = ilib_for_link(names, ..
   if rhs <= 9 then fflags  = ""; end 
   if rhs <= 10 then cc  = ""; end 
   
+  if MSDOS then
+    if isdef('makename') then
+      if (makename == []) | (makename == '') then
+        makename = 'makelib';
+      end
+    end
+  end
+  
   // generate a loader file
   if ( ilib_verbose() <> 0 ) then
     mprintf(gettext("   Generate a loader file\n"));
index 6d9a2a3..bfb7be1 100644 (file)
@@ -17,7 +17,7 @@ function Makename=ilib_gen_Make(name,tables,files,libs,makename,with_gateway,ldf
     error(msprintf(gettext("%s: Wrong number of input argument(s).\n"), "ilib_gen_Make"));
     return
   end
-
+  
   if argn(2)<6 then with_gateway=%t,ldflags='',cflags='',fflags='', cc='';end
   for i=1:size(files,'*') // compatibility scilab 4.x
     [path_f, file_f, ext_f] = fileparts(files(i));
@@ -52,11 +52,21 @@ function Makename=ilib_gen_Make(name,tables,files,libs,makename,with_gateway,ldf
       
   comp_target = COMPILER;
   if with_lcc() == %T then
-       Makename = makename+'.lcc'
-       ilib_gen_Make_lcc(name,tables,files,libs,Makename,with_gateway,ldflags,cflags,fflags)
+    if isdef('makename') then
+      if (makename == []) | (makename == '') then
+        makename = 'makelib';
+      end
+    end
+    Makename = makename + '.lcc';
+    ilib_gen_Make_lcc(name,tables,files,libs,Makename,with_gateway,ldflags,cflags,fflags)
   else if getenv('WIN32','NO')=='OK' then
+    if isdef('makename') then
+      if (makename == []) | (makename == '') then
+        makename = 'makelib';
+      end
+    end
     select comp_target
-     case 'VC++'   then Makename = makename+'.mak'
+     case 'VC++'   then Makename = makename + '.mak';
       ilib_gen_Make_win32(name,tables,files,libs,Makename,with_gateway,ldflags,cflags,fflags)
      case 'gcc' then 
       Makename = makename; 
diff --git a/scilab/modules/dynamic_link/tests/nonreg_tests/bug_5138.dia.ref b/scilab/modules/dynamic_link/tests/nonreg_tests/bug_5138.dia.ref
new file mode 100644 (file)
index 0000000..930ed4b
--- /dev/null
@@ -0,0 +1,23 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - DIGITEO - Allan CORNET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- JVM NOT MANDATORY -->
+// <-- Non-regression test for bug 5138 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=5138
+// <-- Short Description -->
+//  if the "makefile name" argument is an empty matrix, the generated Makefile is ".mak"
+if MSDOS then
+  ilib_verbose(0);
+  mkdir(pathconvert(TMPDIR+"/string_writing_api"));
+  cd(pathconvert(TMPDIR+"/string_writing_api"));
+  copyfile(SCI+"/modules/api_scilab/tests/unit_tests/string_writing_api.c",pathconvert(TMPDIR+"/string_writing_api/string_writing_api.c",%F));
+  cflags = "-I"+SCI+"/modules/localization/includes";
+  ilib_build("string_writing",["write_string","write_string"],"string_writing_api.c",[],[],"",cflags);  
+  if isfile(TMPDIR+'/string_writing_api/makelib.mak') <> %T then bugmes();quit;end
+end
+// =============================================================================
diff --git a/scilab/modules/dynamic_link/tests/nonreg_tests/bug_5138.tst b/scilab/modules/dynamic_link/tests/nonreg_tests/bug_5138.tst
new file mode 100644 (file)
index 0000000..2b7924d
--- /dev/null
@@ -0,0 +1,27 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - DIGITEO - Allan CORNET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- JVM NOT MANDATORY -->
+
+// <-- Non-regression test for bug 5138 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=5138
+// <-- Short Description -->
+//  if the "makefile name" argument is an empty matrix, the generated Makefile is ".mak"
+
+if MSDOS then
+  ilib_verbose(0);
+  mkdir(pathconvert(TMPDIR+"/string_writing_api"));
+  cd(pathconvert(TMPDIR+"/string_writing_api"));
+  copyfile(SCI+"/modules/api_scilab/tests/unit_tests/string_writing_api.c",pathconvert(TMPDIR+"/string_writing_api/string_writing_api.c",%F));
+  cflags = "-I"+SCI+"/modules/localization/includes";
+  ilib_build("string_writing",["write_string","write_string"],"string_writing_api.c",[],[],"",cflags);  
+  if isfile(TMPDIR+'/string_writing_api/makelib.mak') <> %T then pause,end
+end
+
+// =============================================================================