include ../lib/Makefile.config
-BLOCKS = $(blocks_$(TARGET))
-
-blocks_rm48_hdk = $(BLOCKS_HDK)
-blocks_tms570_hdk = $(BLOCKS_HDK)
-
-BLOCKS_HDK = \
- 'rpp_can_rx', \
- 'rpp_can_setup', \
- 'rpp_can_tx', \
- 'rpp_gio_in', \
- 'rpp_gio_out', \
- 'rpp_hdk_ain', \
- 'rpp_overrun', \
- 'rpp_sci_cfg', \
- 'rpp_sci_printf', \
- 'rpp_sci_rx', \
- 'rpp_sci_tx'
-
-SF=$(wildcard sfunction_*.c)
-
+SF = $(wildcard sfunction_*.c)
HTML = $(SF:%.c=%.html)
MEX = $(SF:%.c=%.mexa64)
-all: $(MEX) $(HTML)
+all: $(MEX) $(HTML) rpp_lib.slx
+
+clean::
+ rm -rf $(MEX) $(HTML) rpp_lib.slx
+
+################################
+# S-functions and documentation
+################################
%.mexa64: %.c
mex $(CFLAGS) $^
update-doc: $(HTML)
matlab -nodesktop -nojvm -r "try, rpp_update_doc('update'); catch ME, disp(getReport(ME)); exit(1); end; exit(0)" | sed -e "s/\x1b\(\[?1[hl]\|[=>]\)//g" | tee update-doc.log
-generate-lib:
- matlab -nodesktop -nojvm -r "try, rpp_generate_lib('_$(TARGET)', $(BLOCKS)); catch ME, disp(getReport(ME)); exit(1); end; exit(0)"
- cp --force ./_$(TARGET)/rpp_lib.slx ./rpp_lib.slx
-
define PRINT_COMMIT_MSG
(echo "Update block masks by running rpp_update_doc.m"; echo; echo "Changelog:"; sed -n -e '/^Processing rpp_lib/,$$ p' update-doc.log)
endef
commit-doc: update-doc
$(PRINT_COMMIT_MSG) | git commit -F - rpp_lib.slx
+
+################################
+# Block library
+################################
+
+BLOCKS = $(blocks_$(TARGET))
+
+blocks_rm48_hdk = $(BLOCKS_HDK)
+blocks_tms570_hdk = $(BLOCKS_HDK)
+
+BLOCKS_HDK = \
+ rpp_can_rx \
+ rpp_can_setup \
+ rpp_can_tx \
+ rpp_gio_in \
+ rpp_gio_out \
+ rpp_hdk_ain \
+ rpp_overrun \
+ rpp_sci_cfg \
+ rpp_sci_printf \
+ rpp_sci_rx \
+ rpp_sci_tx
+
+rpp_lib.slx:
+ matlab -nodesktop -nojvm -r "try, rpp_generate_lib $(BLOCKS); catch ME, disp(getReport(ME)); exit(1); end; exit(0)"
-% Copyright (C) 2013-2014 Czech Technical University in Prague
+% Copyright (C) 2013-2015 Czech Technical University in Prague
%
% Authors:
% - Michal Horn <hornmich@fel.cvut.cz>
% http://www.mathworks.com/help/matlab/matlab_external/custom-building-mex-files.html
function rpp_generate_lib(varargin)
+ blocks = varargin;
d = fullfile(getpref('rpp', 'TargetRoot'), '..', 'blocks');
cd(d)
-
- if nargin > 1,
- resultLibName = 'rpp_lib';
- generate_lib(resultLibName, varargin{1}, varargin);
- else
- error('Not enough arguments for the function.');
- end
-end
-function generate_lib(resultLibName, target, blocks)
- disp(['Generating library for target: ', target]);
- libFilePath=[target, '/', resultLibName, '.slx'];
- load_system(libFilePath);
- set_param(resultLibName, 'Lock', 'off');
- oldBlocks = find_system(resultLibName, 'Type', 'block');
+ try,
+ load_system('rpp_lib.slx');
+ catch ME
+ new_system('rpp_lib', 'Library');
+ end
+ set_param('rpp_lib', 'Lock', 'off');
+ oldBlocks = find_system('rpp_lib', 'Type', 'block');
disp('Removing old blocks:');
for j=1:length(oldBlocks),
disp([' ', oldBlocks{j}]);
delete_block(oldBlocks{j});
end
disp('Adding new blocks:');
- for j=2:length(blocks),
+ for j=1:length(blocks),
blockFilePath=[blocks{j}, '.slx'];
disp([' from: ', blockFilePath, ':']);
load_system(blockFilePath)
newBlocks = find_system(blocks{j}, 'Type', 'block');
for k=1:length(newBlocks),
[tok, blockName] = strtok(newBlocks{k}, '/');
- blockName = [resultLibName, blockName];
+ blockName = ['rpp_lib', blockName];
disp([' ', newBlocks{k}, ' as ', blockName]);
add_block(newBlocks{k}, blockName);
end
close_system(blockFilePath, 0);
end
- disp(['Closing and saving file ', libFilePath]);
- set_param(resultLibName, 'Lock', 'on');
- close_system(libFilePath, 1);
+ disp(['Closing and saving file ', 'rpp_lib.slx']);
+ set_param('rpp_lib', 'Lock', 'on');
+ close_system('rpp_lib.slx', 1);
end