-# Copyright (C) 2013 Czech Technical University in Prague
+# Copyright (C) 2013, 2015 Czech Technical University in Prague
#
# Authors:
# - Michal Sojka <sojkam1@fel.cvut.cz>
# Abstract:
# Build demos
-include Makefile.var
+include ../lib/Makefile.config
-MODELS=$(wildcard *.slx)
-BUILD_DIRS=$(MODELS:%.slx=%_rpp)
+DEMOS = $(demos_$(TARGET))
+
+demos_rm48_hdk = $(demos_hdk)
+demos_tms570_hdk = $(demos_hdk)
+demos_tms570_hydctr = $(demos_hydctr)
+
+demos_hdk = \
+ adc_demo_hdk \
+ adc_overrun_test \
+ can_ext_mode_demo \
+ can_simple_demo \
+ cantransmit \
+ continuous_hdk \
+ demo_board_hdk \
+ echo_char \
+ gio_demo_hdk \
+ hello_world \
+ multirate_st_hdk \
+ multirate_mt_hdk
+
+demos_hydctr = \
+ $(demos_hdk) \
+ board_init_hydctr
-all: lib set-target
- matlab -nojvm -r "try; rpp_build_demos(); catch ME, disp(getReport(ME)); exit(1); end; exit(0)"
+demos_tms570_rpp = \
+ analog_passthrough_rpp \
+ analog_sinewave_rpp \
+ can_demo \
+ can_ext_mode_demo \
+ cantransmit \
+ demo_board_rpp \
+ digital_passthrough_rpp \
+ echo_char \
+ fray_basic_demo_rpp \
+ fray_motor_demo_rpp \
+ hbridge_analog_control_rpp \
+ hbridge_digital_control_rpp \
+ hbridge_sinewave_control_rpp \
+ hello_world \
+ irc_input_rpp \
+ led_blink_all_rpp \
+ led_blink_rpp \
+ log_analog_input_rpp \
+ power_toggle_rpp \
+ three_phase_freq_rpp
-%_rpp: %.slx lib
- matlab -nojvm -r "try; rpp_build_demos($<); catch ME, disp(getReport(ME)); exit(1); end; exit(0)"
+# Check that each demo is used for least one target
+all_demos = $(wildcard *.slx)
+unused_demos = $(filter-out $(sort $(demos_hdk) $(demos_hydctr) $(demos_tms570_rpp)),$(all_demos:%.slx=%))
+missing_demos = $(filter-out $(all_demos:%.slx=%),$(sort $(DEMOS)))
+$(if $(unused_demos),$(error Unused demos: $(unused_demos)))
+$(if $(missing_demos),$(error Missing demos: $(missing_demos)))
+
+all: lib
+ matlab -nojvm -r "try; rpp_build_demos $(DEMOS); catch ME, disp(getReport(ME)); exit(1); end; exit(0)"
lib:
$(MAKE) -C ../lib rpp-lib.lib
-
-set-target:
- matlab -nojvm -r "try; rpp_demos_set_tg($(rpp_target_file), $(rpp_demo_set)); catch ME, disp(getReport(ME)); exit(1); end; exit(0)"
-
+
+MODELS=$(wildcard *.slx)
+BUILD_DIRS=$(MODELS:%.slx=%_rpp)
clean:
rm -rf $(BUILD_DIRS)
+
+.PHONY: print
+print: # Used by buildbot
+ @echo $(DEMOS)