]> rtime.felk.cvut.cz Git - pes-rpp/rpp-simulink.git/blob - rpp/rpp/rpp_setup.m
Fixed a bug about the old OS library path in the repository. And more OCD stuffs.
[pes-rpp/rpp-simulink.git] / rpp / rpp / rpp_setup.m
1 % Copyright (C) 2013 Czech Technical University in Prague
2 %
3 % Authors:
4 %     - Carlos Jenkins <carlos@jenkins.co.cr>
5 %
6 % This program is free software; you can redistribute it and/or modify
7 % it under the terms of the GNU General Public License as published by
8 % the Free Software Foundation; either version 2 of the License, or
9 % (at your option) any later version.
10 %
11 % This program is distributed in the hope that it will be useful,
12 % but WITHOUT ANY WARRANTY; without even the implied warranty of
13 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 % GNU General Public License for more details.
15 %
16 % You should have received a copy of the GNU General Public License
17 % along with this program.  If not, see <http://www.gnu.org/licenses/>.
18 %
19 % File : rpp_setup.m
20 % Abstract:
21 %     This file script adds paths for RPP target to the MATLAB path.
22 %     IMPORTANT: This script _MUST_ be run by user after installing before
23 %     using the target. To do so:
24 %         1. Extract target package.
25 %         2. Change directory (cd) to this file folder.
26 %         3. Execute rpp_setup();
27 %
28 % References:
29 %     rtw_ug.pdf p. 1137
30
31
32 function rpp_setup()
33
34     % Get current target path in user's filesystem
35     curpath = pwd();
36     tgtpath = curpath(1:end-length('/rpp'));
37
38     % Add target system folders to Matlab path
39     addpath(fullfile(tgtpath, 'rpp'));
40     addpath(fullfile(tgtpath, 'demos'));
41     addpath(fullfile(tgtpath, 'blocks'));
42     %addpath(fullfile(tgtpath, 'help'));
43     savepath();
44
45     % Ask user setup variables
46     PossiblePath = '/usr/local/ti/ccsv5/tools/compiler/arm_5.0.1';
47
48     CompilerRoot = fix_slash(uigetdir(PossiblePath, ...
49         'CCS Compiler root directory: (<ccs_root>/tools/compiler/arm_5.X.X)'));
50     CCSRoot      = fileparts(fileparts(fileparts(CompilerRoot)));
51     TargetRoot   = fix_slash(curpath);
52     RppLibRoot   = fullfile(fileparts(TargetRoot), 'lib');
53
54     % Save preferences
55     if ispref('rpp')
56         rmpref('rpp');
57     end
58     addpref('rpp', 'CompilerRoot', CompilerRoot);
59     addpref('rpp', 'CCSRoot'     , CCSRoot);
60     addpref('rpp', 'TargetRoot'  , TargetRoot);
61     addpref('rpp', 'RppLibRoot'  , RppLibRoot);
62
63
64     % Generate blocks
65     % FIXME: Implement blocks autobuild
66     %cd('../blocks');
67     %lct_genblocks();
68     %cd(curpath);
69
70     % Generate help
71     % FIXME: Write and generate help
72     %cd('../help/source');
73     %genhelp();
74     %cd(curpath);
75
76     % Apply changes and finish
77     sl_refresh_customizations();
78     disp('<strong>RPP</strong> Target setup is complete!');
79     disp('    Current configuration:');
80     disp(['        CompilerRoot : ', CompilerRoot]);
81     disp(['        CCSRoot      : ', CCSRoot]);
82     disp(['        TargetRoot   : ', TargetRoot]);
83     disp(['        RppLibRoot   : ', RppLibRoot]);
84     disp('Explore <a href="matlab:cd([getpref(''rpp'',''TargetRoot''),''/../demos''])">demos</a> directory.');
85     %disp('Explore <a href="matlab:cd([getpref(''rpp'',''TargetRoot''),''/../demos''])">demos</a> directory and access <a href="matlab:doc -classic">documentation</a>');
86 end
87
88
89 function path = fix_slash(path0)
90     path = path0;
91     if ispc
92         path(path=='\')='/';
93     end
94 end