X-Git-Url: https://git.cryptolib.org/?a=blobdiff_plain;f=Makefile;h=d9e8d033bfb74800e8e4fd97e04acce0a364fba2;hb=e1212ded3556546a568954bedc887fddcb128183;hp=199830f074877524bfe024eafdf16fb5536af04c;hpb=02ac3b653f3a11f284cc1a0cb0e983575f2f431b;p=avr-crypto-lib.git diff --git a/Makefile b/Makefile index 199830f..d9e8d03 100644 --- a/Makefile +++ b/Makefile @@ -38,13 +38,14 @@ GLOBAL_INCDIR := ./ $(TESTSRC_DIR) #------------------------------------------------------------------------------- # inclusion of make stubs +include mkfiles/0*.mk include mkfiles/*.mk #------------------------------------------------------------------------------- ALGORITHMS = $(BLOCK_CIPHERS) $(STREAM_CIPHERS) $(HASHES) $(PRNGS) $(MACS) \ $(ENCODINGS) $(SIGNATURE) $(PK_CIPHERS) $(AUX) ALGORITHMS_OBJ = $(patsubst %,%_OBJ, $(ALGORITHMS)) -ALGORITHMS_TEST_BIN = $(patsubst %,%_TEST_BIN, $(ALGORITHMS)) +ALGORITHMS_TESTBIN = $(patsubst %,%_TESTBIN, $(ALGORITHMS)) #------------------------------------------------------------------------------- # define binary object in $(BIN_DIR)$(ALGO)/ @@ -59,7 +60,7 @@ $(foreach a, $(ALGORITHMS), $(eval $(call Assert_Template, \ $(foreach a, $(ALGORITHMS), $(eval $(call Assert_Template, \ $(a)_TESTBINOBJ, \ - $(addprefix $(BIN_DIR)$(call lc,$(a))/$(TEST_DIR),$($(a)_TEST_BIN)) \ + $(addprefix $(BIN_DIR)$(call lc,$(a))/$(TEST_DIR),$($(a)_TESTBIN)) \ ))) @@ -70,7 +71,16 @@ define TargetSource_Template $(1): $(2) @echo "[cc]: $(1) <-- $(2)" @mkdir -p $(dir $(1)) - @$(CC) $(CFLAGS_A) -I./$(strip $(3)) -c -o $(1) $(2) + @$(CC) $(CFLAGS_A) $(addprefix -I./,$(3)) $(addprefix -D, $(4)) -c -o $(1) $(2) +endef + + + +define TargetSourceList_Template +$(1): $(2) + @echo "[cc]: $(1) <-- $(2)" + @mkdir -p $(dir $(1)) + @$(CC) $(CFLAGS_A) $(addprefix -I./,$(3)) $(addprefix -D, $(4)) $(LIST_OPT) -c -o /dev/null $(2) > $(1) endef # ---------------------------------------------------------------------------- @@ -92,18 +102,32 @@ $(foreach a, $(ALGORITHMS), \ $(foreach b, $($(a)_OBJ), \ $(eval $(call TargetSource_Template, \ $(BIN_DIR)$(call lc, $(a))/$(b), \ - $(call find_source_file, $(b), $($(a)_DIR) $($(a)_INCDIR) $(GLOBAL_INCDIR) ),\ - $($(a)_DIR) \ + $(call find_source_file, $(b), $($(a)_DIR) $($(a)_INCDIR) $(GLOBAL_INCDIR) ),\ + $($(a)_DIR) $($(a)_INCDIR) $(GLOBAL_INCDIR), \ + $($(a)_DEF), \ )) \ ) \ ) $(foreach a, $(ALGORITHMS), \ - $(foreach b, $($(a)_TEST_BIN), \ + $(foreach b, $($(a)_TESTBIN), \ $(eval $(call TargetSource_Template, \ $(BIN_DIR)$(call lc, $(a))/$(TEST_DIR)$(b), \ - $(call find_source_file, $(b), $($(a)_DIR) $($(a)_INCDIR) $(GLOBAL_INCDIR) ),\ - $($(a)_DIR) \ + $(call find_source_file, $(b), $($(a)_DIR) $($(a)_INCDIR) $(GLOBAL_INCDIR) ),\ + $($(a)_DIR) $($(a)_INCDIR) $(GLOBAL_INCDIR), \ + $($(a)_DEF) \ + )) \ + ) \ +) + + +$(foreach a, $(ALGORITHMS), \ + $(foreach b, $($(a)_OBJ), \ + $(eval $(call TargetSourceList_Template, \ + $(LIST_DIR)$(call lc, $(a))/$(patsubst %.o,%.s,$(b)), \ + $(call find_source_file, $(b), $($(a)_DIR) $($(a)_INCDIR) $(GLOBAL_INCDIR) ),\ + $($(a)_DIR) $($(a)_INCDIR) $(GLOBAL_INCDIR), \ + $($(a)_DEF), \ )) \ ) \ ) @@ -112,6 +136,7 @@ $(foreach a, $(ALGORITHMS), \ define MainTestElf_Template $(1): $(2) $(3) + @mkdir -p $(dir $(1)) @echo "[ld]: $(1)" @$(CC) $(CFLAGS_A) $(LDFLAGS)$(patsubst %.elf,%.map,$(1)) -o \ $(1) \ @@ -134,7 +159,7 @@ all: $(foreach algo, $(ALGORITHMS), $($(algo)_BINOBJ)) #------------------------------------------------------------------------------- define TestBin_TEMPLATE -$(1)_TEST_BIN: $(2) +$(1)_TESTBIN: $(2) endef $(foreach algo, $(ALGORITHMS), $(eval $(call TestBin_TEMPLATE, \ @@ -144,6 +169,17 @@ $(foreach algo, $(ALGORITHMS), $(eval $(call TestBin_TEMPLATE, \ #------------------------------------------------------------------------------- +define Listing_TEMPLATE +$(1)_LIST: $(2) +endef + +$(foreach algo, $(ALGORITHMS), $(eval $(call Listing_TEMPLATE, \ + $(algo), \ + $(foreach obj,$($(algo)_OBJ), $(LIST_DIR)$(call lc, $(algo))/$(obj:.o=.s)) \ +))) + +#------------------------------------------------------------------------------- + %.hex: %.elf @echo "[objcopy]: $@" @$(OBJCOPY) -j .text -j .data -O ihex $< $@ @@ -199,12 +235,16 @@ blockcipher_size: $(foreach algo, $(BLOCK_CIPHERS), $(algo)_SIZE) #------------------------------------------------------------------------------- .PHONY: tests -tests: $(foreach a, $(ALGORITHMS), $(a)_TEST_BIN) +tests: $(foreach a, $(ALGORITHMS), $(a)_TESTBIN) #------------------------------------------------------------------------------- define TestRun_Template $(1)_TESTRUN: $(1)_FLASH + @echo "[reset]" + @sleep 3 + @$(RESETCMD) + @sleep 1 @echo "[test]: $(1)" $(RUBY) $(GET_TEST) $(TESTPORT) $(TESTPORTBAUDR) 8 1 nessie $(TESTLOG_DIR)$(TESTPREFIX) $(2) endef @@ -226,6 +266,13 @@ $(foreach algo, $(ALGORITHMS), \ ))\ ) +.PHONY: all +all: cores + +.PHONY: reset +reset: + $(RESETCMD) + .PHONY: cores cores: $(foreach algo, $(ALGORITHMS), $(algo)_OBJ) @@ -296,7 +343,7 @@ info: @echo " docu - build doxygen documentation" @echo " clean - remove a lot of builded files" @echo " depclean - also remove dependency files" - @echo " *_TEST_BIN - build test program" + @echo " *_TESTBIN - build test program" @echo " *_TESTRUN - run nessie test" @echo " *_OBJ - build algorithm core" @echo " *_FLASH - flash test program"