-$(foreach algo, $(ALGORITHMS),$(eval $(call FLASH_TEMPLATE, $(algo), \
- $(patsubst $(BIN_DIR)%.o,$(TESTBIN_DIR)%.hex,$(firstword $($(algo)_TEST_BIN)))) ))
+$(foreach algo, $(ALGORITHMS),$(eval $(call FLASH_TEMPLATE, $(algo), $(TESTBIN_DIR)main-$(call lc,$(algo))-test.hex) ))
+
+#-------------------------------------------------------------------------------
+
+define TESTRUN_TEMPLATE
+$(1)_TESTRUN: $(1)_FLASH
+ @echo "[test]: $(1)"
+ $(RUBY) get_test.rb $(TESTPORT) $(TESTPORTBAUDR) 8 1 nessie $(TESTLOG_DIR)$(TESTPREFIX) $(2)
+endef
+
+$(foreach algo, $(ALGORITHMS),$(eval $(call TESTRUN_TEMPLATE, $(algo), $(call lc,$(algo)) )))
+
+ALL_TESTRUN: $(foreach algo, $(ALGORITHMS), $(algo)_TESTRUN)
+
+#-------------------------------------------------------------------------------
+
+define LISTING_TEMPLATE
+$(1)_LIST: $(2)
+endef
+
+$(foreach algo, $(ALGORITHMS),$(eval $(call LISTING_TEMPLATE,$(call uc, $(algo)), \
+ $(patsubst %,$(LIST_DIR)%, \
+ $(patsubst $(BIN_DIR)%,%, \
+ $(patsubst $(TESTBIN_DIR)%,%, \
+ $(patsubst %.o,%.lst,$($(algo)_OBJ)))) ))))
+
+listings: $(patsubst %,%_LIST,$(ALGORITHMS))
+
+
+$(LIST_DIR)%.lst: $(TESTBIN_DIR)%.elf
+ $(OBJDUMP) -h -S $< > $@
+
+$(LIST_DIR)%.lst: $(BIN_DIR)%.o
+ $(OBJDUMP) -h -S $< > $@
+
+$(LIST_DIR)%.lst: $(TESTBIN_DIR)%.o
+ $(OBJDUMP) -h -S $< > $@