From aa90cb43b370ee219e1e14ad774b662a53178727 Mon Sep 17 00:00:00 2001 From: Rob Austein Date: Sat, 25 Jun 2016 00:22:11 -0400 Subject: Finish unwinding subrepository hairball: VPATH setup. --- .gitignore | 6 ++-- .gitmodules | 0 Makefile | 5 ++-- libraries/libcli/Makefile | 26 +++++++++++++++++ libraries/libhal/GNUmakefile | 14 ++++++++++ libraries/libhal/tests/GNUmakefile | 10 +++++++ libraries/libhal/utils/GNUmakefile | 10 +++++++ libraries/libtfm/GNUmakefile | 46 +++++++++++++++++++++++++++++++ libraries/libtfm/tomsfastmath/GNUmakefile | 8 ++++++ projects/hsm/Makefile | 6 +++- 10 files changed, 126 insertions(+), 5 deletions(-) delete mode 100644 .gitmodules create mode 100644 libraries/libcli/Makefile create mode 100644 libraries/libhal/GNUmakefile create mode 100644 libraries/libhal/tests/GNUmakefile create mode 100644 libraries/libhal/utils/GNUmakefile create mode 100644 libraries/libtfm/GNUmakefile create mode 100644 libraries/libtfm/tomsfastmath/GNUmakefile diff --git a/.gitignore b/.gitignore index b8b0ae3..874b3a0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,11 @@ *.a -*.o -*.mo *.bin *.elf *.hex *.lst *.map +*.mo +*.o *~ +libraries/libcli/libcli.h +libraries/libtfm/tfm.h diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index e69de29..0000000 diff --git a/Makefile b/Makefile index 1e2984a..1cbb3ac 100644 --- a/Makefile +++ b/Makefile @@ -28,7 +28,7 @@ # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # absolute path, because we're going to be passing things to sub-makes -export TOPLEVEL = $(shell pwd) +export TOPLEVEL = $(abspath .) # define board: dev-bridge or alpha BOARD = TARGET_CRYPTECH_ALPHA @@ -39,7 +39,7 @@ export MBED_DIR = $(LIBS_DIR)/mbed export CMSIS_DIR = $(MBED_DIR)/targets/cmsis/TARGET_STM/TARGET_STM32F4 export BOARD_DIR = $(CMSIS_DIR)/$(BOARD) export RTOS_DIR = $(MBED_DIR)/rtos -export LIBTFM_DIR = $(LIBS_DIR)/thirdparty/libtfm +export LIBTFM_DIR = $(LIBS_DIR)/libtfm export LIBHAL_DIR = $(LIBS_DIR)/libhal export LIBCLI_DIR = $(LIBS_DIR)/libcli @@ -158,3 +158,4 @@ distclean: clean $(MAKE) -C $(RTOS_DIR) clean $(MAKE) -C $(LIBHAL_DIR) clean $(MAKE) -C $(LIBTFM_DIR) clean + $(MAKE) -C $(LIBCLI_DIR) clean diff --git a/libraries/libcli/Makefile b/libraries/libcli/Makefile new file mode 100644 index 0000000..509f493 --- /dev/null +++ b/libraries/libcli/Makefile @@ -0,0 +1,26 @@ +ifndef CRYPTECH_ROOT + CRYPTECH_ROOT := $(abspath ../../../..) +endif + +REPO := ${CRYPTECH_ROOT}/user/ft/libcli + +vpath %.c ${REPO} +vpath %.h ${REPO} + +include ${REPO}/Makefile + +# Kludge alert: +# +# We really should teach Makefiles that need libcli.h to look in the +# right place, but we don't want to wire the current location of +# libcli into too many Makefiles, since we intend to move it soon. +# +# So, for the moment, we just copy libcli.h. Clean this up after the +# the repository moves (and maybe do something about the general +# assumption that header files and libraries always live in the same +# directory, that's wrong in a VPATH-based world). + +all: $(abspath .)/libcli.h + +$(abspath .)/libcli.h: ${REPO}/libcli.h + cp -p $< $@ diff --git a/libraries/libhal/GNUmakefile b/libraries/libhal/GNUmakefile new file mode 100644 index 0000000..03b1636 --- /dev/null +++ b/libraries/libhal/GNUmakefile @@ -0,0 +1,14 @@ +ifndef CRYPTECH_ROOT + CRYPTECH_ROOT := $(abspath ../../../..) +endif + +REPO := ${CRYPTECH_ROOT}/sw/libhal + +TFMDIR := $(abspath ../libtfm) + +CFLAGS += -I${REPO} + +vpath %.c ${REPO} +vpath %.h ${REPO}:${LIBTFM_DIR} + +include ${CRYPTECH_ROOT}/sw/libhal/GNUmakefile diff --git a/libraries/libhal/tests/GNUmakefile b/libraries/libhal/tests/GNUmakefile new file mode 100644 index 0000000..1d7449a --- /dev/null +++ b/libraries/libhal/tests/GNUmakefile @@ -0,0 +1,10 @@ +ifndef CRYPTECH_ROOT + CRYPTECH_ROOT := $(abspath ../../../../..) +endif + +TFMDIR := $(abspath ../../libtfm) + +vpath %.c ${CRYPTECH_ROOT}/sw/libhal/tests +vpath %.h ${CRYPTECH_ROOT}/sw/libhal/tests:${LIBTFM_DIR} + +include ${CRYPTECH_ROOT}/sw/libhal/tests/GNUmakefile diff --git a/libraries/libhal/utils/GNUmakefile b/libraries/libhal/utils/GNUmakefile new file mode 100644 index 0000000..9d38efd --- /dev/null +++ b/libraries/libhal/utils/GNUmakefile @@ -0,0 +1,10 @@ +ifndef CRYPTECH_ROOT + CRYPTECH_ROOT := $(abspath ../../../../..) +endif + +TFMDIR := $(abspath ../../libtfm) + +vpath %.c ${CRYPTECH_ROOT}/sw/libhal/utils +vpath %.h ${CRYPTECH_ROOT}/sw/libhal/utils:${LIBTFM_DIR} + +include ${CRYPTECH_ROOT}/sw/libhal/utils/GNUmakefile diff --git a/libraries/libtfm/GNUmakefile b/libraries/libtfm/GNUmakefile new file mode 100644 index 0000000..ca86f80 --- /dev/null +++ b/libraries/libtfm/GNUmakefile @@ -0,0 +1,46 @@ + +# This duplicates more of sw/thirdparty/libtfm/GNUmakefile than I +# would like, but it does the job. Prettier makefiles can wait for another day. + +ifndef CRYPTECH_ROOT + CRYPTECH_ROOT := $(abspath ../../../..) +endif + +REPO := ${CRYPTECH_ROOT}/sw/thirdparty/libtfm + +# vpath %.c ${REPO} +# vpath %.h ${REPO} + +BITS := 8192 + +HDR := ${REPO}/tomsfastmath/src/headers/tfm.h +LIB := tomsfastmath/libtfm.a + +#CFLAGS += -DTFM_X86 +#CFLAGS += -DTFM_NO_ASM + +CFLAGS += -fPIC -Wall -W -Wshadow -I${REPO}/tomsfastmath/src/headers -g3 -DFP_MAX_SIZE="(${BITS}*2+(8*DIGIT_BIT))" + +TARGETS := $(notdir ${HDR} ${LIB}) + +all: ${TARGETS} + +clean: + rm -rf ${TARGETS} $(notdir ${HDR}.tmp) ${LIB} tomsfastmath/src + +distclean: clean + rm -f TAGS + +$(notdir ${HDR}): ${HDR} + echo >$@.tmp '/* Configure size of largest bignum we want to handle -- see notes in tfm.pdf */' + echo >>$@.tmp '#define FP_MAX_SIZE (${BITS}*2+(8*DIGIT_BIT))' + echo >>$@.tmp '' + cat >>$@.tmp $^ + mv -f $@.tmp $@ + +$(notdir ${LIB}): ${LIB} + ln -f $^ $@ + +${LIB}: ${HDR} + (cd ${REPO} && find tomsfastmath/src -type d) | xargs mkdir -p + cd tomsfastmath; ${MAKE} CFLAGS='${CFLAGS}' diff --git a/libraries/libtfm/tomsfastmath/GNUmakefile b/libraries/libtfm/tomsfastmath/GNUmakefile new file mode 100644 index 0000000..7141763 --- /dev/null +++ b/libraries/libtfm/tomsfastmath/GNUmakefile @@ -0,0 +1,8 @@ +ifndef CRYPTECH_ROOT + CRYPTECH_ROOT := $(abspath ../../../../..) +endif + +vpath %.c ${CRYPTECH_ROOT}/sw/thirdparty/libtfm/tomsfastmath +vpath %.h ${CRYPTECH_ROOT}/sw/thirdparty/libtfm/tomsfastmath + +include ${CRYPTECH_ROOT}/sw/thirdparty/libtfm/tomsfastmath/makefile diff --git a/projects/hsm/Makefile b/projects/hsm/Makefile index a5bd30a..b1718b3 100644 --- a/projects/hsm/Makefile +++ b/projects/hsm/Makefile @@ -26,7 +26,11 @@ BOARD_OBJS = \ $(BOARD_DIR)/stm32f4xx_hal_msp.o \ $(BOARD_DIR)/stm32f4xx_it_rtos.o -CFLAGS += -I$(LIBHAL_DIR) +ifndef CRYPTECH_ROOT + CRYPTECH_ROOT := $(abspath ../../../..) +endif + +CFLAGS += -I$(CRYPTECH_ROOT)/sw/libhal CFLAGS += -I$(LIBCLI_DIR) CFLAGS += -I$(RTOS_DIR)/rtos -I$(RTOS_DIR)/rtx/TARGET_CORTEX_M -- cgit v1.2.3