]> rtime.felk.cvut.cz Git - jenkicar/rpp-simulink.git/blob - rpp/rpp/rpp_lib_support.m
Change license to MIT
[jenkicar/rpp-simulink.git] / rpp / rpp / rpp_lib_support.m
1 % Copyright (C) 2013 Czech Technical University in Prague
2 %
3 % Authors:
4 %     - Carlos Jenkins <carlos@jenkins.co.cr>
5 %
6 % Permission is hereby granted, free of charge, to any person
7 % obtaining a copy of this software and associated documentation
8 % files (the "Software"), to deal in the Software without
9 % restriction, including without limitation the rights to use,
10 % copy, modify, merge, publish, distribute, sublicense, and/or sell
11 % copies of the Software, and to permit persons to whom the
12 % Software is furnished to do so, subject to the following
13 % conditions:
14
15 % The above copyright notice and this permission notice shall be
16 % included in all copies or substantial portions of the Software.
17
18 % THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19 % EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
20 % OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21 % NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
22 % HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
23 % WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
24 % FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
25 % OTHER DEALINGS IN THE SOFTWARE.
26 %
27 % File : rpp_lib_support.m
28 % Abstract:
29 %     Simulink support for RPP library and operating system setup.
30 %
31 %     DEPRECATED this file is no longer needed and no longer called.
32 %     It was called by rpp_select_callback_handler.m and was used to include
33 %     source code files in the build. RPP now uses an static library that can
34 %     be found in the linker arguments in target_tools.mk. This file is left
35 %     for future reference in case, for example, that the external mode support
36 %     requires aditional files to be included in the build.
37 %
38 % References:
39 %     rtw_ug.pdf p. 1058
40 %     rtw_ref.pdf p. 56
41 %     Readme file in <RppRoot>/rpp/lib/rpp/doc/os.txt
42
43
44 function rpp_lib_support(modelName, buildInfo)
45
46     % FreeRTOS building support
47     rpp_freertos_support(modelName, buildInfo);
48 end
49
50
51 function rpp_freertos_support(modelName, buildInfo)
52
53     sources = {'croutine.c' , ...
54                'heap.c'     , ...
55                'list.c'     , ...
56                'port.c'     , ...
57                'portASM.asm', ...
58                'queue.c'    , ...
59                'tasks.c'    , ...
60                'timers.c'   };
61
62     % Get working directories
63     osLibRoot = fullfile(getpref('rpp', 'RppLibRoot'), 'rpp', 'src', 'os');
64     % TODO: get suffix from rpp.tlc BuildDirSuffix
65     modelRoot = Simulink.fileGenControl('getConfig').CodeGenFolder;
66     outputFolder = fullfile(modelRoot, [modelName, '_rpp']);
67
68     % Add sources to compilation
69     buildInfo.addSourceFiles(sources, osLibRoot);
70
71     % Copy dependency sources
72     for i = sources
73         copyfile(fullfile(osLibRoot   , i{1}), ...
74                  fullfile(outputFolder, i{1}));
75     end
76
77 end