updates makefiles to work with bsp

This commit is contained in:
2025-01-18 15:10:01 +01:00
parent 28d442db03
commit 625f3a5e30
2 changed files with 53 additions and 50 deletions

View File

@@ -10,27 +10,45 @@ export REPO_HOME = ${PWD}
export ALG ?= ascon export ALG ?= ascon
#hash or aead
export API ?= aead export API ?= aead
export ARCH ?= generic #generic, rv32 or rv64
export ARCH ?= rv32
#nist, rv32 or rv64m if imp is nist does not allow for ASCON_RVXX_TYPE
export IMP ?= nist export IMP ?= nist
export ISE ?= xalu #rvxx requires a ACSCON_RVXX_TYPEX
#export CONF ?= -DASCON_RV32_TYPE1 # -DASCON_RV32_TYPE1 or -DASCON_RV32_TYPE2 (with custom instrs)
export CONF ?= TARGET = ${ALG}_${API}_${IMP}
ISA?=gc_zbb_zbkb_zbkx
# ----------------------------------------------------------------------------- C_SRCS = $(wildcard *.c)
HEADERS = $(wildcard *.h)
OPT ?= -O0
CFLAGS += $(OPT) -g
#CFLAGS += -DDRIVER_BYPASS_TEST
CFLAGS += -DDRIVER_BYPASS_TIME #Time throws a trap somewhere
sw-build : BOARD=iss
@make --directory="${REPO_HOME}/src" build LINK_TARGET=link
sw-run : RISCV_ARCH:=rv32$(ISA)
@make --directory="${REPO_HOME}/src" run ifeq ($(ISA),e)
sw-scan : RISCV_ABI:=ilp32e
@make --directory="${REPO_HOME}/src" scan else
sw-clean : RISCV_ABI:=ilp32
@make --directory="${REPO_HOME}/src" clean endif
LDFLAGS += -g -Wl,--wrap=printf
# ----------------------------------------------------------------------------- compiler := $(shell which riscv64-unknown-elf-gcc)
TOOL_DIR=$(dir $(compiler))
clean : TRIPLET=riscv64-unknown-elf
@rm --force --recursive ${REPO_HOME}/build/* BSP_BASE = ../bare-metal-bsp
all: ${TARGET}.elf
include ${REPO_HOME}/src/Makefile
CFLAGS += ${GCC_FLAGS}
include $(BSP_BASE)/env/common-gcc.mk
# =============================================================================

View File

@@ -4,27 +4,17 @@
# can be found at https://opensource.org/licenses/MIT (or should be included # can be found at https://opensource.org/licenses/MIT (or should be included
# as LICENSE.txt within the associated archive or repository). # as LICENSE.txt within the associated archive or repository).
ifndef REPO_HOME
$(error "execute 'source ./bin/conf.sh' to configure environment")
endif
ifndef REPO_VERSION
$(error "execute 'source ./bin/conf.sh' to configure environment")
endif
export API ?= aead
# =============================================================================
# include build-related content for algorithm # include build-related content for algorithm
include ./${ALG}/Makefile.in include ${REPO_HOME}/src/${ALG}/Makefile.in
# include build-related content for architecture # include build-related content for architecture
include ./share/arch/${ARCH}/Makefile.in #include ${REPO_HOME}/src/share/arch/${ARCH}/Makefile.in
# parameterise source code using environment variables # parameterise source code using environment variables
ifeq "${API}" "aead" ifeq "${API}" "aead"
GCC_FLAGS += -DAPI_AEAD GCC_FLAGS += -DAPI_AEAD
endif endif
ifeq "${API}" "hash" ifeq "${API}" "hash"
GCC_FLAGS += -DAPI_HASH GCC_FLAGS += -DAPI_HASH
endif endif
@@ -37,9 +27,9 @@ endif
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
ifeq "${IMP}" "nist" ifeq "${IMP}" "nist"
export LWISE_INCLUDES += ${REPO_HOME}/build/${ALG} ./share ./share/nist ./share/arch/${ARCH} export LWISE_INCLUDES += ${REPO_HOME}/build/${ALG} ${REPO_HOME}/src/share ${REPO_HOME}/src/share/nist ${REPO_HOME}/src/share/arch/${ARCH}
else else
export LWISE_INCLUDES += ${REPO_HOME}/build/${ALG} ./share ./share/nist ./share/arch/${ARCH} ./${ALG}/arch/${ARCH} ./${ALG}/imp/${IMP} ./${ALG}/imp/share export LWISE_INCLUDES += ${REPO_HOME}/build/${ALG} ${REPO_HOME}/src/share ${REPO_HOME}/src/share/nist ${REPO_HOME}/src/share/arch/${ARCH} ${REPO_HOME}/src/${ALG}/arch/${ARCH} ${REPO_HOME}/src/${ALG}/imp/${IMP} ${REPO_HOME}/src/${ALG}/imp/share
endif endif
export LWISE_SOURCES += $(wildcard $(addsuffix /*.c, ${LWISE_INCLUDES})) export LWISE_SOURCES += $(wildcard $(addsuffix /*.c, ${LWISE_INCLUDES}))
@@ -48,32 +38,30 @@ export LWISE_SOURCES += $(wildcard $(addsuffix /*.s, ${LWISE_INCLUDES}))
export LWISE_SOURCES += $(wildcard $(addsuffix /*.S, ${LWISE_INCLUDES})) export LWISE_SOURCES += $(wildcard $(addsuffix /*.S, ${LWISE_INCLUDES}))
export LWISE_HEADERS += $(wildcard $(addsuffix /*.h, ${LWISE_INCLUDES})) export LWISE_HEADERS += $(wildcard $(addsuffix /*.h, ${LWISE_INCLUDES}))
export INCLUDES := ${LWISE_INCLUDES} ${NIST_INCLUDES} export ALL_INCLUDES := ${LWISE_INCLUDES} ${NIST_INCLUDES} ${REPO_HOME}/build/${ALG}
INCLUDES += $(foreach dir,$(ALL_INCLUDES),-I$(dir))
export SOURCES := ${LWISE_SOURCES} ${NIST_SOURCES} ${REPO_HOME}/build/${ALG}/kat_${API}.c export SOURCES := ${LWISE_SOURCES} ${NIST_SOURCES}
export HEADERS := ${LWISE_HEADERS} ${NIST_HEADERS} ${REPO_HOME}/build/${ALG}/kat_${API}.h export HEADERS := ${LWISE_HEADERS} ${NIST_HEADERS}
export TARGETS += ${REPO_HOME}/build/${ALG}
export TARGETS += ${REPO_HOME}/build/${ALG}/kat_${API}.h
export TARGETS += ${REPO_HOME}/build/${ALG}/kat_${API}.c
export TARGETS += ${REPO_HOME}/build/${ALG}/driver-${API}_${ARCH}_${IMP}.elf
export TARGETS += ${REPO_HOME}/build/${ALG}/driver-${API}_${ARCH}_${IMP}.asm
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
${REPO_HOME}/build/${ALG} : ${REPO_HOME}/build/${ALG} :
@mkdir --parents ${@} @mkdir --parents ${@}
${SOURCES} : ${REPO_HOME}/build/${ALG}/kat_${API}.c ${REPO_HOME}/build/${ALG}/kat_${API}.h
${REPO_HOME}/build/${ALG}/kat_${API}.h : ${NIST_KAT} ${REPO_HOME}/build/${ALG}/kat_${API}.h : ${NIST_KAT}
@python3 ./share/kat.py --api="${API}" --header < ${<} > ${@} @python3 ${REPO_HOME}/src/share/kat.py --api="${API}" --header < ${<} > ${@}
${REPO_HOME}/build/${ALG}/kat_${API}.c : ${NIST_KAT} ${REPO_HOME}/build/${ALG}/kat_${API}.c : ${NIST_KAT}
@python3 ./share/kat.py --api="${API}" --source < ${<} > ${@} @python3 ${REPO_HOME}/src/share/kat.py --api="${API}" --source < ${<} > ${@}
${REPO_HOME}/build/${ALG}/driver-${API}_${ARCH}_${IMP}.elf : ${SOURCES}
@${GCC_PREFIX}-gcc ${GCC_FLAGS} ${GCC_PATHS} $(addprefix -I ,${INCLUDES}) -std='gnu99' -O3 -o ${@} $(filter %.c, ${^}) $(filter %.cpp, ${^}) $(filter %.S, ${^}) ${GCC_LIBS}
${REPO_HOME}/build/${ALG}/driver-${API}_${ARCH}_${IMP}.asm : ${REPO_HOME}/build/${ALG}/driver-${API}_${ARCH}_${IMP}.elf C_SRCS += $(filter %.c, ${SOURCES})
@${GCC_PREFIX}-objdump --disassemble-all ${<} > ${@} CXX_SRCS += $(filter %.cpp, ${SOURCES})
ASM_SRCS += $(filter %.S, ${SOURCES})
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
@@ -102,9 +90,6 @@ dump :
@echo "HEADERS = ${HEADERS}" @echo "HEADERS = ${HEADERS}"
@echo "TARGETS = ${TARGETS}" @echo "TARGETS = ${TARGETS}"
build : ${TARGETS} @echo "ASM_SRCS = ${ASM_SRCS}"
clean :
@rm --force --recursive ${TARGETS}
# ============================================================================= # =============================================================================