4ddf03605e497852a06777b5c7b9cb2cd1d3e545
[scilab.git] / scilab / modules / dynamic_link / macros / ilib_gen_cleaner.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) DIGITEO - 2009-2010 - Allan CORNET
3 //
4 // This file must be used under the terms of the CeCILL.
5 // This source file is licensed as described in the file COPYING, which
6 // you should have received as part of this distribution.  The terms
7 // are also available at
8 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
9 //=============================================================================
10 function ilib_gen_cleaner(makename,loadername,files)
11
12   [lhs,rhs] = argn(0);
13
14   if (rhs < 1) then
15     makename = 'makelib';
16   end
17
18   if (rhs < 2) then
19     loadername = 'loader.sce';
20   end
21
22   if (rhs < 3) then
23     files = [];
24   end
25
26   cleanername = 'cleaner.sce';
27
28   fd = mopen(cleanername,"wt");
29   mfprintf(fd,"// This file is released under the 3-clause BSD license. See COPYING-BSD.\n");
30   mfprintf(fd,"// Generated by builder.sce : Please, do not edit this file\n");
31   mfprintf(fd,"// cleaner.sce\n");
32   mfprintf(fd,"// ------------------------------------------------------\n");
33   mfprintf(fd,"curdir = pwd();\n");
34   mfprintf(fd,"cleaner_path = get_file_path(''cleaner.sce'');\n");
35   mfprintf(fd,"chdir(cleaner_path);\n");
36   mfprintf(fd,"// ------------------------------------------------------\n");
37   mfprintf(fd,"if fileinfo(''%s'') <> [] then\n",loadername);
38   mfprintf(fd,"  mdelete(''%s'');\n",loadername);
39   mfprintf(fd,"end\n");
40   mfprintf(fd,"// ------------------------------------------------------\n");
41
42   if getos() == 'Windows' then
43     make_command = get_make_command(makename);
44     mfprintf(fd,"if fileinfo(''%s%s'') <> [] then\n",makename,get_makefile_ext());
45     mfprintf(fd,"  unix_s(''%s'');\n",make_command);
46     mfprintf(fd,"  mdelete(''%s%s'');\n",makename,get_makefile_ext());
47     mfprintf(fd,"end\n");
48     mfprintf(fd,"// ------------------------------------------------------\n");
49   end
50
51   if files <> [] then
52     for i = 1:size(files,'*')
53       if ( files(i) <> '' ) then
54         mfprintf(fd,"if fileinfo(''%s'') <> [] then\n", files(i));
55         mfprintf(fd,"  mdelete(''%s'');\n", files(i));
56         mfprintf(fd,"end\n");
57         mfprintf(fd,"// ------------------------------------------------------\n");
58       end
59     end
60   end
61
62   mfprintf(fd,"chdir(curdir);\n");
63   mfprintf(fd,"// ------------------------------------------------------\n");
64   mclose(fd);
65
66   if ilib_verbose() > 1 then
67     disp(mgetl('cleaner.sce'));
68   end
69 endfunction
70 //=============================================================================
71 function cmd = get_make_command(makename)
72   if getos() == 'Windows' then // WINDOWS
73     // Load dynamic_link Internal lib if it's not already loaded
74     if ~ exists("dynamic_linkwindowslib") then
75       load("SCI/modules/dynamic_link/macros/windows/lib");
76     end
77     cmd = dlwGetMakefileCmdCleaner(makename);
78   else // LINUX
79     cmd = 'make ' + makename + ' clean';
80   end
81 endfunction
82 //=============================================================================
83 function ext = get_makefile_ext()
84   if getos() == 'Windows' then // WINDOWS
85     // Load dynamic_link Internal lib if it's not already loaded
86     if ~ exists("dynamic_linkwindowslib") then
87       load("SCI/modules/dynamic_link/macros/windows/lib");
88     end
89     ext = dlwGetMakefileExt();
90   else // LINUX
91     ext = '';
92   end
93 endfunction
94 //=============================================================================