Speedup the key tool builds.

pull/339/head
David Garske 2023-08-07 10:39:06 -07:00 committed by Daniele Lacamera
parent b9949b0a0c
commit 727fc12a35
2 changed files with 54 additions and 35 deletions

View File

@ -163,8 +163,9 @@ $(PRIVATE_KEY):
$(Q)(test $(SIGN) = NONE) && (echo "// SIGN=NONE" > src/keystore.c) || true $(Q)(test $(SIGN) = NONE) && (echo "// SIGN=NONE" > src/keystore.c) || true
keytools: keytools:
@echo "Building key tools"
@$(MAKE) -C tools/keytools -s clean @$(MAKE) -C tools/keytools -s clean
@$(MAKE) -C tools/keytools @$(MAKE) -C tools/keytools -j
test-app/image_v1_signed.bin: $(BOOT_IMG) test-app/image_v1_signed.bin: $(BOOT_IMG)
@echo "\t[SIGN] $(BOOT_IMG)" @echo "\t[SIGN] $(BOOT_IMG)"

View File

@ -8,10 +8,13 @@ ifeq ($(V),0)
endif endif
CC = gcc CC = gcc
LD = gcc
WOLFBOOTDIR = ../.. WOLFBOOTDIR = ../..
WOLFDIR = $(WOLFBOOTDIR)/lib/wolfssl/ WOLFDIR = $(WOLFBOOTDIR)/lib/wolfssl
CFLAGS = -Wall -Wextra -Werror CFLAGS = -Wall -Wextra -Werror
CFLAGS += -I. -DWOLFSSL_USER_SETTINGS -I$(WOLFDIR) -I$(WOLFBOOTDIR)/include -DWOLFBOOT_KEYTOOLS CFLAGS += -I. -DWOLFSSL_USER_SETTINGS -I$(WOLFDIR) -I$(WOLFBOOTDIR)/include -DWOLFBOOT_KEYTOOLS
LDFLAGS =
OBJDIR = ./
# option variables # option variables
DEBUG_FLAGS = -g -DDEBUG -DDEBUG_SIGNTOOL -DDEBUG_WOLFSSL -DDEBUG_WOLFSSL_VERBOSE -fsanitize=address DEBUG_FLAGS = -g -DDEBUG -DDEBUG_SIGNTOOL -DDEBUG_WOLFSSL -DDEBUG_WOLFSSL_VERBOSE -fsanitize=address
@ -35,33 +38,40 @@ else ifeq ($(RENESAS_KEY),2)
endif endif
# Sources # Sources
SRC=$(WOLFDIR)wolfcrypt/src/asn.c \ OBJS_REAL=\
$(WOLFDIR)wolfcrypt/src/aes.c \ $(WOLFDIR)/wolfcrypt/src/asn.o \
$(WOLFDIR)wolfcrypt/src/ecc.c \ $(WOLFDIR)/wolfcrypt/src/aes.o \
$(WOLFDIR)wolfcrypt/src/coding.c \ $(WOLFDIR)/wolfcrypt/src/ecc.o \
$(WOLFDIR)wolfcrypt/src/chacha.c \ $(WOLFDIR)/wolfcrypt/src/coding.o \
$(WOLFDIR)wolfcrypt/src/ed25519.c \ $(WOLFDIR)/wolfcrypt/src/chacha.o \
$(WOLFDIR)wolfcrypt/src/ed448.c \ $(WOLFDIR)/wolfcrypt/src/ed25519.o \
$(WOLFDIR)wolfcrypt/src/fe_operations.c \ $(WOLFDIR)/wolfcrypt/src/ed448.o \
$(WOLFDIR)wolfcrypt/src/ge_operations.c \ $(WOLFDIR)/wolfcrypt/src/fe_operations.o \
$(WOLFDIR)wolfcrypt/src/fe_448.c \ $(WOLFDIR)/wolfcrypt/src/ge_operations.o \
$(WOLFDIR)wolfcrypt/src/ge_448.c \ $(WOLFDIR)/wolfcrypt/src/fe_448.o \
$(WOLFDIR)wolfcrypt/src/hash.c \ $(WOLFDIR)/wolfcrypt/src/ge_448.o \
$(WOLFDIR)wolfcrypt/src/logging.c \ $(WOLFDIR)/wolfcrypt/src/hash.o \
$(WOLFDIR)wolfcrypt/src/memory.c \ $(WOLFDIR)/wolfcrypt/src/logging.o \
$(WOLFDIR)wolfcrypt/src/random.c \ $(WOLFDIR)/wolfcrypt/src/memory.o \
$(WOLFDIR)wolfcrypt/src/rsa.c \ $(WOLFDIR)/wolfcrypt/src/random.o \
$(WOLFDIR)wolfcrypt/src/sp_int.c \ $(WOLFDIR)/wolfcrypt/src/rsa.o \
$(WOLFDIR)wolfcrypt/src/sp_c32.c \ $(WOLFDIR)/wolfcrypt/src/sp_int.o \
$(WOLFDIR)wolfcrypt/src/sp_c64.c \ $(WOLFDIR)/wolfcrypt/src/sp_c32.o \
$(WOLFDIR)wolfcrypt/src/sha3.c \ $(WOLFDIR)/wolfcrypt/src/sp_c64.o \
$(WOLFDIR)wolfcrypt/src/sha256.c \ $(WOLFDIR)/wolfcrypt/src/sha3.o \
$(WOLFDIR)wolfcrypt/src/sha512.c \ $(WOLFDIR)/wolfcrypt/src/sha256.o \
$(WOLFDIR)wolfcrypt/src/tfm.c \ $(WOLFDIR)/wolfcrypt/src/sha512.o \
$(WOLFDIR)wolfcrypt/src/wc_port.c \ $(WOLFDIR)/wolfcrypt/src/tfm.o \
$(WOLFDIR)wolfcrypt/src/wolfmath.c $(WOLFDIR)/wolfcrypt/src/wc_port.o \
$(WOLFDIR)/wolfcrypt/src/wolfmath.o
SRC+=$(WOLFBOOTDIR)/src/delta.c OBJS_REAL+=\
$(WOLFBOOTDIR)/src/delta.o
OBJS_VIRT=$(addprefix $(OBJDIR), $(notdir $(OBJS_REAL)))
vpath %.c $(WOLFDIR)/wolfcrypt/src/
vpath %.c $(WOLFBOOTDIR)/src/
vpath %.c ./
.PHONY: clean all .PHONY: clean all
@ -84,14 +94,22 @@ $(WOLFBOOTDIR)/include/target.h: $(WOLFBOOTDIR)/include/target.h.in
sed -e "s/@WOLFBOOT_LOAD_DTS_ADDRESS@/$(WOLFBOOT_LOAD_DTS_ADDRESS)/g" \ sed -e "s/@WOLFBOOT_LOAD_DTS_ADDRESS@/$(WOLFBOOT_LOAD_DTS_ADDRESS)/g" \
> $@ > $@
# build template # build objects
sign: $(OBJDIR)/%.o: %.c
@echo "Building signing tool" $(Q)$(CC) $(CFLAGS) -c -o $@ $<
$(Q)$(CC) -o $@ $@.c $(SRC) $< $(CFLAGS) $(OBJDIR)/%.o: $(WOLFBOOTDIR)/src/%.c
$(Q)$(CC) $(CFLAGS) -c -o $@ $<
$(OBJDIR)/%.o: $(WOLFDIR)/wolfcrypt/src/%.c
$(Q)$(CC) $(CFLAGS) -c -o $@ $<
keygen: # build templates
sign: $(OBJS_VIRT) sign.o
@echo "Building signing tool"
$(Q)$(LD) -o $@ $@.o $(OBJS_VIRT) $(LDFLAGS)
keygen: $(OBJS_VIRT) keygen.o
@echo "Building keygen tool" @echo "Building keygen tool"
$(Q)$(CC) -o $@ $@.c $(SRC) $< $(CFLAGS) $(Q)$(LD) -o $@ $@.o $(OBJS_VIRT) $(LDFLAGS)
clean: clean:
rm -f sign keygen rm -f sign keygen *.o