Improvements to Makefile templates. Added missing Makefile. Added new static library support.

This commit is contained in:
David Garske
2017-09-11 16:05:31 -07:00
parent 2d67f46247
commit a02903c43e
8 changed files with 54 additions and 8 deletions

View File

@ -149,6 +149,9 @@ extern "C" {
#undef HAVE_AESGCM #undef HAVE_AESGCM
#define HAVE_AESGCM #define HAVE_AESGCM
#undef HAVE_AESCCM
#define HAVE_AESCCM
/* GCM Method: GCM_SMALL, GCM_WORD32 or GCM_TABLE */ /* GCM Method: GCM_SMALL, GCM_WORD32 or GCM_TABLE */
#undef GCM_SMALL #undef GCM_SMALL
#define GCM_SMALL #define GCM_SMALL
@ -260,7 +263,7 @@ extern "C" {
/* ------------------------------------------------------------------------- */ /* ------------------------------------------------------------------------- */
#undef DEBUG_WOLFSSL #undef DEBUG_WOLFSSL
#define DEBUG_WOLFSSL //#define DEBUG_WOLFSSL
/* Use this to measure / print heap usage */ /* Use this to measure / print heap usage */
#if 0 #if 0
@ -307,7 +310,7 @@ extern unsigned int custom_rand_generate(void);
#define CUSTOM_RAND_GENERATE custom_rand_generate #define CUSTOM_RAND_GENERATE custom_rand_generate
/* Choose RNG method */ /* Choose RNG method */
#if 1 #if 0
/* Use built-in P-RNG (SHA256 based) with HW RNG */ /* Use built-in P-RNG (SHA256 based) with HW RNG */
/* P-RNG + HW RNG (P-RNG is ~8K) */ /* P-RNG + HW RNG (P-RNG is ~8K) */
#undef HAVE_HASHDRBG #undef HAVE_HASHDRBG

16
IDE/GCC-ARM/Makefile Executable file
View File

@ -0,0 +1,16 @@
BUILD_DIR = ./Build
all: WolfSSLStaticLib WolfCryptTest WolfCryptBench WolfSSLClient
WolfCryptTest:
$(MAKE) -f Makefile.test
WolfCryptBench:
$(MAKE) -f Makefile.bench
WolfSSLClient:
$(MAKE) -f Makefile.client
WolfSSLStaticLib:
$(MAKE) -f Makefile.static
clean:
rm -f $(BUILD_DIR)/*.elf $(BUILD_DIR)/*.hex $(BUILD_DIR)/*.map
rm -f $(BUILD_DIR)/*.o $(BUILD_DIR)/*.sym $(BUILD_DIR)/*.disasm

View File

@ -2,4 +2,6 @@
BIN = WolfCryptBench BIN = WolfCryptBench
SRC_C = ./Source/benchmark_main.c SRC_C = ./Source/benchmark_main.c
all: build_hex
include Makefile.common include Makefile.common

View File

@ -2,4 +2,6 @@
BIN = WolfSSLClient BIN = WolfSSLClient
SRC_C = ./Source/tls_client.c SRC_C = ./Source/tls_client.c
all: build_hex
include Makefile.common include Makefile.common

View File

@ -1,15 +1,15 @@
BUILD_DIR = ./Build
# Set to @ if you want to suppress command echo # Set to @ if you want to suppress command echo
CMD_ECHO = @ CMD_ECHO =
# Important directories # Important directories
BUILD_DIR = ./Build
TOOLCHAIN_DIR = /opt/gcc-arm-none-eabi/bin TOOLCHAIN_DIR = /opt/gcc-arm-none-eabi/bin
INC = -I./Header \ INC = -I./Header \
-I./Source \ -I./Source \
-I../.. -I../..
# Memory Map
SRC_LD = ./linker.ld SRC_LD = ./linker.ld
# Defines # Defines
@ -31,7 +31,7 @@ LDFLAGS = $(ARCHFLAGS) -Wl,--gc-sections --specs=nano.specs --specs=nosys.specs
LDFLAGS += -Wl,-Map=$(BUILD_DIR)/$(BIN).map $(DBGFLAGS) LDFLAGS += -Wl,-Map=$(BUILD_DIR)/$(BIN).map $(DBGFLAGS)
LDFLAGS += -Wl,-ereset_handler LDFLAGS += -Wl,-ereset_handler
# Math lib for DH # Math lib (for DH)
LIBS = -lm LIBS = -lm
SRC_C += ./Source/armtarget.c SRC_C += ./Source/armtarget.c
@ -45,16 +45,20 @@ vpath %.c $(dir $(SRC_C))
CC = $(TOOLCHAIN_DIR)/arm-none-eabi-gcc CC = $(TOOLCHAIN_DIR)/arm-none-eabi-gcc
AS = $(TOOLCHAIN_DIR)/arm-none-eabi-gcc AS = $(TOOLCHAIN_DIR)/arm-none-eabi-gcc
LD = $(TOOLCHAIN_DIR)/arm-none-eabi-gcc LD = $(TOOLCHAIN_DIR)/arm-none-eabi-gcc
AR = $(TOOLCHAIN_DIR)/arm-none-eabi-ar
NM = $(TOOLCHAIN_DIR)/arm-none-eabi-nm NM = $(TOOLCHAIN_DIR)/arm-none-eabi-nm
OBJCOPY = $(TOOLCHAIN_DIR)/arm-none-eabi-objcopy OBJCOPY = $(TOOLCHAIN_DIR)/arm-none-eabi-objcopy
OBJDUMP = $(TOOLCHAIN_DIR)/arm-none-eabi-objdump OBJDUMP = $(TOOLCHAIN_DIR)/arm-none-eabi-objdump
SIZE = $(TOOLCHAIN_DIR)/arm-none-eabi-size SIZE = $(TOOLCHAIN_DIR)/arm-none-eabi-size
build_hex: $(BUILD_DIR) $(BUILD_DIR)/$(BIN).hex
all: $(BUILD_DIR) $(BUILD_DIR)/$(BIN).hex
@echo "" @echo ""
$(CMD_ECHO) @$(SIZE) $(BUILD_DIR)/$(BIN).elf $(CMD_ECHO) @$(SIZE) $(BUILD_DIR)/$(BIN).elf
build_static: $(BUILD_DIR) $(BUILD_DIR)/$(BIN).a
@echo ""
$(CMD_ECHO) @$(SIZE) $(BUILD_DIR)/$(BIN).a
$(BUILD_DIR): $(BUILD_DIR):
$(CMD_ECHO) mkdir -p $(BUILD_DIR) $(CMD_ECHO) mkdir -p $(BUILD_DIR)
@ -80,6 +84,16 @@ $(BUILD_DIR)/$(BIN).elf: $(OBJS_ASM) $(OBJS_C)
@echo "Generating disassembly: $(BIN).disasm" @echo "Generating disassembly: $(BIN).disasm"
$(CMD_ECHO) $(OBJDUMP) -S $@ > $(BUILD_DIR)/$(BIN).disasm $(CMD_ECHO) $(OBJDUMP) -S $@ > $(BUILD_DIR)/$(BIN).disasm
$(BUILD_DIR)/$(BIN).a: $(OBJS_ASM) $(OBJS_C)
@echo "Building static library: $(notdir $@)"
$(CMD_ECHO) $(AR) -r $@ $^
@echo "Generating name list: $(BIN).sym"
$(CMD_ECHO) $(NM) -n $@ > $(BUILD_DIR)/$(BIN).sym
@echo "Generating disassembly: $(BIN).disasm"
$(CMD_ECHO) $(OBJDUMP) -S $@ > $(BUILD_DIR)/$(BIN).disasm
clean: clean:
rm -f $(BUILD_DIR)/*.elf $(BUILD_DIR)/*.hex $(BUILD_DIR)/*.map rm -f $(BUILD_DIR)/*.elf $(BUILD_DIR)/*.hex $(BUILD_DIR)/*.map
rm -f $(BUILD_DIR)/*.o $(BUILD_DIR)/*.sym $(BUILD_DIR)/*.disasm rm -f $(BUILD_DIR)/*.o $(BUILD_DIR)/*.sym $(BUILD_DIR)/*.disasm

6
IDE/GCC-ARM/Makefile.static Executable file
View File

@ -0,0 +1,6 @@
# Project name
BIN = libwolfssl
all: build_static
include Makefile.common

View File

@ -2,4 +2,6 @@
BIN = WolfCryptTest BIN = WolfCryptTest
SRC_C = ./Source/test_main.c SRC_C = ./Source/test_main.c
all: build_hex
include Makefile.common include Makefile.common

View File

@ -13,4 +13,5 @@ EXTRA_DIST+= IDE/GCC-ARM/Makefile.bench
EXTRA_DIST+= IDE/GCC-ARM/Makefile.client EXTRA_DIST+= IDE/GCC-ARM/Makefile.client
EXTRA_DIST+= IDE/GCC-ARM/Makefile.common EXTRA_DIST+= IDE/GCC-ARM/Makefile.common
EXTRA_DIST+= IDE/GCC-ARM/Makefile.test EXTRA_DIST+= IDE/GCC-ARM/Makefile.test
EXTRA_DIST+= IDE/GCC-ARM/Makefile.static
EXTRA_DIST+= IDE/GCC-ARM/README.md EXTRA_DIST+= IDE/GCC-ARM/README.md