]> rtime.felk.cvut.cz Git - jenkicar/rpp-simulink.git/commitdiff
Simplify building of rpp_lib
authorMichal Sojka <sojkam1@fel.cvut.cz>
Wed, 29 Apr 2015 15:48:39 +0000 (17:48 +0200)
committerMichal Sojka <sojkam1@fel.cvut.cz>
Wed, 29 Apr 2015 15:48:47 +0000 (17:48 +0200)
rpp/blocks/.gitignore
rpp/blocks/Makefile
rpp/blocks/_rm48_hdk/rpp_lib.slx [deleted file]
rpp/blocks/_tms570_hdk/rpp_lib.slx [deleted file]
rpp/blocks/rpp_generate_lib.m
rpp/blocks/rpp_lib.slx [deleted file]

index 218432a6cbe129a024b22e4550c0950316a788cd..b1a8c88fb3efdd91f94417308fc16f78039cc7fa 100644 (file)
@@ -1,2 +1,3 @@
 *.mexa64
 *.html
+/rpp_lib.slx
index 22471642e14af583a2f81fd9808c0cacb2cf11ca..131a914cb75c84c93cbd7d48b8af67fbee12d37a 100644 (file)
 
 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) $^
@@ -56,13 +44,34 @@ diff-doc: $(HTML)
 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)"
diff --git a/rpp/blocks/_rm48_hdk/rpp_lib.slx b/rpp/blocks/_rm48_hdk/rpp_lib.slx
deleted file mode 100644 (file)
index 2d08af6..0000000
Binary files a/rpp/blocks/_rm48_hdk/rpp_lib.slx and /dev/null differ
diff --git a/rpp/blocks/_tms570_hdk/rpp_lib.slx b/rpp/blocks/_tms570_hdk/rpp_lib.slx
deleted file mode 100644 (file)
index abdf300..0000000
Binary files a/rpp/blocks/_tms570_hdk/rpp_lib.slx and /dev/null differ
index 7a571247da9f95d0d1e9bd6f0f083b1460b2df87..f17c8196683a639553fa46db68c350b03d65609b 100644 (file)
@@ -1,4 +1,4 @@
-% 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
diff --git a/rpp/blocks/rpp_lib.slx b/rpp/blocks/rpp_lib.slx
deleted file mode 100644 (file)
index 160bcd5..0000000
Binary files a/rpp/blocks/rpp_lib.slx and /dev/null differ