# Makefile for the AVR-Crypto-Lib project
# author: Daniel Otte
+SHELL = sh
BLOCK_CIPHERS :=
STREAM_CIPHERS :=
MACS :=
PRNGS :=
ENCODINGS :=
+AUX :=
# we use the gnu make standard library
include gmsl
include avr-makefile.inc
include mkfiles/*.mk
-ALGORITHMS = $(BLOCK_CIPHERS) $(STREAM_CIPHERS) $(HASHES) $(PRNGS) $(MACS) $(ENCODINGS)
+ALGORITHMS = $(BLOCK_CIPHERS) $(STREAM_CIPHERS) $(HASHES) $(PRNGS) $(MACS) $(ENCODINGS) $(AUX)
ALGORITHMS_OBJ = $(patsubst %,%_OBJ, $(ALGORITHMS))
ALGORITHMS_TEST_BIN = $(patsubst %,%_TEST_BIN, $(ALGORITHMS))
all_testrun: $(foreach algo, $(ALGORITHMS), $(algo)_TESTRUN)
+#-------------------------------------------------------------------------------
+
+define TESTSPEED_TEMPLATE
+$(1)_TESTSPEED: $(1)_FLASH
+ @echo "[speed]: $(1)"
+ $(RUBY) $(GET_PERFORMANCE) $(TESTPORT) $(TESTPORTBAUDR) 8 1 performance $(SPEEDLOG_DIR)$(SPEEDPREFIX) $(2)
+endef
+
+$(foreach algo, $(ALGORITHMS),$(eval $(call TESTSPEED_TEMPLATE, $(algo), $(call lc,$(algo)) )))
+
+all_testspeed: $(foreach algo, $(ALGORITHMS), $(algo)_TESTSPEED)
+hash_testspeed: $(foreach algo, $(HASHES), $(algo)_TESTSPEED)
+
+
#-------------------------------------------------------------------------------
define LISTING_TEMPLATE
rm -rf $(BIN_DIR)*.o *.o $(TESTBIN_DIR)*.elf $(TESTBIN_DIR)* *.elf *.eps *.png *.pdf *.bak
rm -rf *.lst *.map $(EXTRA_CLEAN_FILES) $(STAT_DIR)$(SIZESTAT_FILE) $(STAT_DIR)*_size.txt
xclean: clean
- rm -rf $(DEP_DIR)*.d
+ rm -rf $(DEP_DIR)*.d $(AUTOASM_DIR)*.s
docu:
doxygen
@echo "[objcopy]: $@"
@$(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O binary $< $@
-
-# Every thing below here is used by avr-libc's build system and can be ignored
-# by the casual user.
+#-------------------------------------------------------------------------------
+$(AUTOASM_DIR)%.s: %.c
+ $(CC) $(CFLAGS) $(AUTOASM_OPT) -o $@ $<
+%.s: %.c
+ $(CC) $(CFLAGS) $(AUTOASM_OPT) -o $@ $<
+
+#-------------------------------------------------------------------------------
FIG2DEV = fig2dev
EXTRA_CLEAN_FILES = *.hex *.bin *.srec