From 191aad41db5c17186a2acd42917c8af9357d6e08 Mon Sep 17 00:00:00 2001 From: beserge Date: Thu, 14 Dec 2023 11:36:04 -0500 Subject: [PATCH 1/4] Add flags for optionally using DaisySP-LGPL --- core/Makefile | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/core/Makefile b/core/Makefile index 0bc22fed7..6a2f8e9b3 100644 --- a/core/Makefile +++ b/core/Makefile @@ -145,6 +145,14 @@ ifdef DAISYSP_DIR C_INCLUDES += -I$(DAISYSP_DIR)/Source endif +ifeq ($(USE_DAISYSP_LGPL),1) +C_INCLUDES += -I$(DAISYSP_DIR)/DaisySP-LGPL/Source + +C_DEFS += \ +-DUSE_DAISYSP_LGPL +endif + + # Include FATFS files # This does not include the additional option files # for Japanese, Simplified/Traditional Chinese, or Korean @@ -246,6 +254,12 @@ LIBS += -ldaisysp LIBDIR += -L $(DAISYSP_DIR)/build endif + +ifeq ($(USE_DAISYSP_LGPL),1) +LIBS += -ldaisysp-lgpl +LIBDIR += -L $(DAISYSP_DIR)/DaisySP-LGPL/build +endif + LDFLAGS ?= LDFLAGS += $(MCU) --specs=nano.specs --specs=nosys.specs -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections -Wl,--print-memory-usage From 20be0bdd2669d5d230bb7c55e7606e646a9cb081 Mon Sep 17 00:00:00 2001 From: beserge Date: Tue, 19 Dec 2023 11:21:26 -0500 Subject: [PATCH 2/4] Add a script and special makefile for LGPL compliance The script gathers up the relevant .a and .o files into a nice folder so end users can recompile with an updated libdaisy-lgpl.a later if they like. Also creates a makefile to do that linking for them. --- core/Makefile_LGPL | 150 ++++++++++++++++++++++++++++++++++++++++++++ core/gather_lgpl.sh | 72 +++++++++++++++++++++ 2 files changed, 222 insertions(+) create mode 100644 core/Makefile_LGPL create mode 100644 core/gather_lgpl.sh diff --git a/core/Makefile_LGPL b/core/Makefile_LGPL new file mode 100644 index 000000000..bd7df14af --- /dev/null +++ b/core/Makefile_LGPL @@ -0,0 +1,150 @@ +# Special Makefile for re-linking LGPL libraries + +TARGET_BIN=$(TARGET).bin +TARGET_ELF=$(TARGET).elf + +# If you have the arm-none-eabi- toolchain located in a particular place, but not installed for the entire system, add the path here: +# GCC_PATH= + +# Build path +BUILD_DIR = build +RESOURCE_DIR = resource + +####################################### +# binaries +####################################### +PREFIX = arm-none-eabi- +# The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx) +# either it can be added to the PATH environment variable. +ifdef GCC_PATH +AS = $(GCC_PATH)/$(PREFIX)gcc -x assembler-with-cpp +CP = $(GCC_PATH)/$(PREFIX)objcopy +else +CXX = $(PREFIX)g++ +CP = $(PREFIX)objcopy +endif +HEX = $(CP) -O ihex +BIN = $(CP) -O binary -S + +####################################### +# CFLAGS +####################################### +# cpu +CPU = -mcpu=cortex-m7 + +# fpu +FPU = -mfpu=fpv5-d16 + +# float-abi +FLOAT-ABI = -mfloat-abi=hard + +# mcu +MCU = $(CPU) -mthumb $(FPU) $(FLOAT-ABI) + +####################################### +# Boot Management +####################################### + +INTERNAL_ADDRESS = 0x08000000 +QSPI_ADDRESS ?= 0x90040000 + +# For the time being, we'll keep the Daisy Bootloader's PID as df11 +# DAISY_PID = a360 +DAISY_PID = df11 +STM_PID = df11 + +BOOT_BIN ?= $(wildcard $(SYSTEM_FILES_DIR)/dsy_bootloader*) +APP_TYPE ?= BOOT_NONE + +ifeq ($(APP_TYPE), BOOT_NONE) + +LDSCRIPT ?= $(SYSTEM_FILES_DIR)/STM32H750IB_flash.lds +USBPID = $(STM_PID) +FLASH_ADDRESS ?= $(INTERNAL_ADDRESS) + +else ifeq ($(APP_TYPE), BOOT_SRAM) + +LDSCRIPT ?= $(SYSTEM_FILES_DIR)/STM32H750IB_sram.lds +USBPID = $(DAISY_PID) +FLASH_ADDRESS ?= $(QSPI_ADDRESS) +C_DEFS += -DBOOT_APP + +else ifeq ($(APP_TYPE), BOOT_QSPI) + +LDSCRIPT ?= $(SYSTEM_FILES_DIR)/STM32H750IB_qspi.lds +USBPID = $(DAISY_PID) +FLASH_ADDRESS ?= $(QSPI_ADDRESS) +C_DEFS += -DBOOT_APP + +else + +$(error Unkown app type "$(APP_TYPE)") + +endif + +####################################### +# LDFLAGS +####################################### +# libraries +LIBS += -ldaisy -lc -lm -lnosys +LIBDIR += -L $(RESOURCE_DIR) +#LIBDIR = -L./VisualGDB/Release + +ifdef DAISYSP_DIR +LIBS += -ldaisysp +LIBDIR += -L $(RESOURCE_DIR) +endif + + +ifeq ($(USE_DAISYSP_LGPL),1) +LIBS += -ldaisysp-lgpl +LIBDIR += -L $(RESOURCE_DIR) +endif + +LDFLAGS ?= +LDFLAGS += $(MCU) --specs=nano.specs --specs=nosys.specs -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(RESOURCE_DIR)/$(TARGET).map,--cref -Wl,--gc-sections -Wl,--print-memory-usage + +# default action: build all +all: $(BUILD_DIR) $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin + +####################################### +# build the application +####################################### + +OBJECTS = $(wildcard $(RESOURCE_DIR)/*.o) + +$(BUILD_DIR)/$(TARGET).elf: Makefile + $(CXX) $(OBJECTS) $(LDFLAGS) -o $@ + +$(BUILD_DIR)/%.hex: $(BUILD_DIR)/%.elf | $(BUILD_DIR) + $(HEX) $< $@ + +$(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf | $(BUILD_DIR) + $(BIN) $< $@ + +$(BUILD_DIR): + mkdir $@ + +####################################### +# clean up +####################################### +clean: + -rm -fR $(BUILD_DIR) + + +####################################### +# dfu-util +####################################### + +program-dfu: + dfu-util -a 0 -s $(FLASH_ADDRESS):leave -D $(BUILD_DIR)/$(TARGET_BIN) -d ,0483:$(USBPID) + +program-boot: + dfu-util -a 0 -s $(INTERNAL_ADDRESS):leave -D $(BOOT_BIN) -d ,0483:$(STM_PID) + +####################################### +# dependencies +####################################### +-include $(wildcard $(BUILD_DIR)/*.d) + +# *** EOF *** diff --git a/core/gather_lgpl.sh b/core/gather_lgpl.sh new file mode 100644 index 000000000..6270aee26 --- /dev/null +++ b/core/gather_lgpl.sh @@ -0,0 +1,72 @@ +#!/bin/bash + +# Check for the required project name +if [[ $# -lt 1 || ${1:0:1} == "-" ]]; then + echo "Usage: $0 PROJECT_NAME [-l libdaisy_location] [-d daisysp_location]" >&2 + exit 1 +fi + +# Set the project name value +PROJECT="$1" + +shift + +# Parse command line options +while [[ $# -gt 0 ]]; do + case $1 in + -l) + LIBDAISY_DIR="$2" + shift 2 + ;; + -d) + DAISYSP_DIR="$2" + shift 2 + ;; + *) + echo "Usage: $0 PROJECT_NAME [-l libdaisy_location] [-d daisysp_location]" >&2 + exit; + ;; + esac +done + +# Default variable value +: "${LIBDAISY_DIR:="../../../libDaisy"}" +: "${DAISYSP_DIR:="../../../DaisySP"}" + +# Make the folders if they don't exist +mkdir -p lgpl/ +mkdir -p lgpl/resource + +# copy .a files +cp $DAISYSP_DIR/build/libdaisysp.a lgpl/resource +cp $DAISYSP_DIR/DaisySP-LGPL/build/libdaisysp-lgpl.a lgpl/resource +cp $LIBDAISY_DIR/build/libdaisy.a lgpl/resource + +# copy .o and .map files +cp build/*.o lgpl/resource +cp build/*.map lgpl/resource + +# create the local makefile +makefile="# Project Name\n +TARGET = $PROJECT\n +\n +USE_DAISYSP_LGPL = 1\n +\n +# Library Locations\n +LIBDAISY_DIR ?= $LIBDAISY_DIR\n +DAISYSP_DIR ?= $DAISYSP_DIR\n +\n +# Core location, and generic Makefile.\n +SYSTEM_FILES_DIR = \$(LIBDAISY_DIR)/core\n +include \$(SYSTEM_FILES_DIR)/Makefile_LGPL" + +echo -e $makefile > lgpl/Makefile + +# make a little readme + +readme="To rebuild with an updated or modified version of any of the static libraries:\n +1. Build the library, for example DaisySP-LGPL\n +2. Copy the generated .a file to the resources folder. In this case it would be libdaisy-lgpl.a\n +3. Run the make command. Your .bin file will be in the build folder" + +echo -e $readme > lgpl/Readme.md \ No newline at end of file From bbcce413e7c396dbc0d35b118f035c080f61357f Mon Sep 17 00:00:00 2001 From: beserge Date: Tue, 19 Dec 2023 13:46:59 -0500 Subject: [PATCH 3/4] Make LGPL script more portable --- core/Makefile_LGPL | 13 ++++--------- core/gather_lgpl.sh | 41 ++++++++++++++++++----------------------- 2 files changed, 22 insertions(+), 32 deletions(-) diff --git a/core/Makefile_LGPL b/core/Makefile_LGPL index bd7df14af..ae69e1046 100644 --- a/core/Makefile_LGPL +++ b/core/Makefile_LGPL @@ -53,25 +53,25 @@ QSPI_ADDRESS ?= 0x90040000 DAISY_PID = df11 STM_PID = df11 -BOOT_BIN ?= $(wildcard $(SYSTEM_FILES_DIR)/dsy_bootloader*) +BOOT_BIN ?= $(wildcard $(RESOURCE_DIR)/dsy_bootloader*) APP_TYPE ?= BOOT_NONE ifeq ($(APP_TYPE), BOOT_NONE) -LDSCRIPT ?= $(SYSTEM_FILES_DIR)/STM32H750IB_flash.lds +LDSCRIPT ?= $(RESOURCE_DIR)/STM32H750IB_flash.lds USBPID = $(STM_PID) FLASH_ADDRESS ?= $(INTERNAL_ADDRESS) else ifeq ($(APP_TYPE), BOOT_SRAM) -LDSCRIPT ?= $(SYSTEM_FILES_DIR)/STM32H750IB_sram.lds +LDSCRIPT ?= $(RESOURCE_DIR)/STM32H750IB_sram.lds USBPID = $(DAISY_PID) FLASH_ADDRESS ?= $(QSPI_ADDRESS) C_DEFS += -DBOOT_APP else ifeq ($(APP_TYPE), BOOT_QSPI) -LDSCRIPT ?= $(SYSTEM_FILES_DIR)/STM32H750IB_qspi.lds +LDSCRIPT ?= $(RESOURCE_DIR)/STM32H750IB_qspi.lds USBPID = $(DAISY_PID) FLASH_ADDRESS ?= $(QSPI_ADDRESS) C_DEFS += -DBOOT_APP @@ -90,16 +90,11 @@ LIBS += -ldaisy -lc -lm -lnosys LIBDIR += -L $(RESOURCE_DIR) #LIBDIR = -L./VisualGDB/Release -ifdef DAISYSP_DIR LIBS += -ldaisysp LIBDIR += -L $(RESOURCE_DIR) -endif - -ifeq ($(USE_DAISYSP_LGPL),1) LIBS += -ldaisysp-lgpl LIBDIR += -L $(RESOURCE_DIR) -endif LDFLAGS ?= LDFLAGS += $(MCU) --specs=nano.specs --specs=nosys.specs -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(RESOURCE_DIR)/$(TARGET).map,--cref -Wl,--gc-sections -Wl,--print-memory-usage diff --git a/core/gather_lgpl.sh b/core/gather_lgpl.sh index 6270aee26..ac2b33ec6 100644 --- a/core/gather_lgpl.sh +++ b/core/gather_lgpl.sh @@ -38,35 +38,30 @@ mkdir -p lgpl/ mkdir -p lgpl/resource # copy .a files -cp $DAISYSP_DIR/build/libdaisysp.a lgpl/resource -cp $DAISYSP_DIR/DaisySP-LGPL/build/libdaisysp-lgpl.a lgpl/resource -cp $LIBDAISY_DIR/build/libdaisy.a lgpl/resource +cp $DAISYSP_DIR/build/libdaisysp.a lgpl/resource || { echo 'Invalid libDaisy location. Try -l flag' ; exit 1; } +cp $DAISYSP_DIR/DaisySP-LGPL/build/libdaisysp-lgpl.a lgpl/resource || { echo 'Invalid DaisySP location. Try -d flag' ; exit 1; } +cp $LIBDAISY_DIR/build/libdaisy.a lgpl/resource || { echo 'Invalid DaisySP location. Try -d flag' ; exit 1; } + +# copy bootloader files +cp $LIBDAISY_DIR/core/dsy_bootloader* lgpl/resource || { echo 'Invalid libDaisy location. Try -l flag' ; exit 1; } +cp $LIBDAISY_DIR/core/STM32H750IB_flash.lds lgpl/resource || { echo 'Invalid libDaisy location. Try -l flag' ; exit 1; } +cp $LIBDAISY_DIR/core/STM32H750IB_sram.lds lgpl/resource || { echo 'Invalid libDaisy location. Try -l flag' ; exit 1; } +cp $LIBDAISY_DIR/core/STM32H750IB_qspi.lds lgpl/resource || { echo 'Invalid libDaisy location. Try -l flag' ; exit 1; } + +# copy and prepend vars to local makefile +cp $LIBDAISY_DIR/core/Makefile_LGPL lgpl/Makefile || { echo 'Invalid libDaisy location. Try -l flag' ; exit 1; } + +prepend="# Project Name\nTARGET = $PROJECT\n" +sed -i -e "1i $prepend" lgpl/Makefile # copy .o and .map files cp build/*.o lgpl/resource cp build/*.map lgpl/resource -# create the local makefile -makefile="# Project Name\n -TARGET = $PROJECT\n -\n -USE_DAISYSP_LGPL = 1\n -\n -# Library Locations\n -LIBDAISY_DIR ?= $LIBDAISY_DIR\n -DAISYSP_DIR ?= $DAISYSP_DIR\n -\n -# Core location, and generic Makefile.\n -SYSTEM_FILES_DIR = \$(LIBDAISY_DIR)/core\n -include \$(SYSTEM_FILES_DIR)/Makefile_LGPL" - -echo -e $makefile > lgpl/Makefile - # make a little readme - readme="To rebuild with an updated or modified version of any of the static libraries:\n -1. Build the library, for example DaisySP-LGPL\n -2. Copy the generated .a file to the resources folder. In this case it would be libdaisy-lgpl.a\n -3. Run the make command. Your .bin file will be in the build folder" +1. Build the library you would like to replace, for example by running make inside of DaisySP-LGPL.\n +2. Copy the generated .a file to the resources folder. In this case it would be libdaisy-lgpl.a \n +3. Run the make command in this folder. Your .bin file will be in the build folder. " echo -e $readme > lgpl/Readme.md \ No newline at end of file From 6ebba60bd65c642c196b6314697c01558d08e307 Mon Sep 17 00:00:00 2001 From: beserge Date: Thu, 21 Dec 2023 11:36:53 -0500 Subject: [PATCH 4/4] Remove lgpl compliance makefile and script These have been moved to DaisySP-LGPL, which is a better spot for them --- core/Makefile_LGPL | 145 -------------------------------------------- core/gather_lgpl.sh | 67 -------------------- 2 files changed, 212 deletions(-) delete mode 100644 core/Makefile_LGPL delete mode 100644 core/gather_lgpl.sh diff --git a/core/Makefile_LGPL b/core/Makefile_LGPL deleted file mode 100644 index ae69e1046..000000000 --- a/core/Makefile_LGPL +++ /dev/null @@ -1,145 +0,0 @@ -# Special Makefile for re-linking LGPL libraries - -TARGET_BIN=$(TARGET).bin -TARGET_ELF=$(TARGET).elf - -# If you have the arm-none-eabi- toolchain located in a particular place, but not installed for the entire system, add the path here: -# GCC_PATH= - -# Build path -BUILD_DIR = build -RESOURCE_DIR = resource - -####################################### -# binaries -####################################### -PREFIX = arm-none-eabi- -# The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx) -# either it can be added to the PATH environment variable. -ifdef GCC_PATH -AS = $(GCC_PATH)/$(PREFIX)gcc -x assembler-with-cpp -CP = $(GCC_PATH)/$(PREFIX)objcopy -else -CXX = $(PREFIX)g++ -CP = $(PREFIX)objcopy -endif -HEX = $(CP) -O ihex -BIN = $(CP) -O binary -S - -####################################### -# CFLAGS -####################################### -# cpu -CPU = -mcpu=cortex-m7 - -# fpu -FPU = -mfpu=fpv5-d16 - -# float-abi -FLOAT-ABI = -mfloat-abi=hard - -# mcu -MCU = $(CPU) -mthumb $(FPU) $(FLOAT-ABI) - -####################################### -# Boot Management -####################################### - -INTERNAL_ADDRESS = 0x08000000 -QSPI_ADDRESS ?= 0x90040000 - -# For the time being, we'll keep the Daisy Bootloader's PID as df11 -# DAISY_PID = a360 -DAISY_PID = df11 -STM_PID = df11 - -BOOT_BIN ?= $(wildcard $(RESOURCE_DIR)/dsy_bootloader*) -APP_TYPE ?= BOOT_NONE - -ifeq ($(APP_TYPE), BOOT_NONE) - -LDSCRIPT ?= $(RESOURCE_DIR)/STM32H750IB_flash.lds -USBPID = $(STM_PID) -FLASH_ADDRESS ?= $(INTERNAL_ADDRESS) - -else ifeq ($(APP_TYPE), BOOT_SRAM) - -LDSCRIPT ?= $(RESOURCE_DIR)/STM32H750IB_sram.lds -USBPID = $(DAISY_PID) -FLASH_ADDRESS ?= $(QSPI_ADDRESS) -C_DEFS += -DBOOT_APP - -else ifeq ($(APP_TYPE), BOOT_QSPI) - -LDSCRIPT ?= $(RESOURCE_DIR)/STM32H750IB_qspi.lds -USBPID = $(DAISY_PID) -FLASH_ADDRESS ?= $(QSPI_ADDRESS) -C_DEFS += -DBOOT_APP - -else - -$(error Unkown app type "$(APP_TYPE)") - -endif - -####################################### -# LDFLAGS -####################################### -# libraries -LIBS += -ldaisy -lc -lm -lnosys -LIBDIR += -L $(RESOURCE_DIR) -#LIBDIR = -L./VisualGDB/Release - -LIBS += -ldaisysp -LIBDIR += -L $(RESOURCE_DIR) - -LIBS += -ldaisysp-lgpl -LIBDIR += -L $(RESOURCE_DIR) - -LDFLAGS ?= -LDFLAGS += $(MCU) --specs=nano.specs --specs=nosys.specs -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(RESOURCE_DIR)/$(TARGET).map,--cref -Wl,--gc-sections -Wl,--print-memory-usage - -# default action: build all -all: $(BUILD_DIR) $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin - -####################################### -# build the application -####################################### - -OBJECTS = $(wildcard $(RESOURCE_DIR)/*.o) - -$(BUILD_DIR)/$(TARGET).elf: Makefile - $(CXX) $(OBJECTS) $(LDFLAGS) -o $@ - -$(BUILD_DIR)/%.hex: $(BUILD_DIR)/%.elf | $(BUILD_DIR) - $(HEX) $< $@ - -$(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf | $(BUILD_DIR) - $(BIN) $< $@ - -$(BUILD_DIR): - mkdir $@ - -####################################### -# clean up -####################################### -clean: - -rm -fR $(BUILD_DIR) - - -####################################### -# dfu-util -####################################### - -program-dfu: - dfu-util -a 0 -s $(FLASH_ADDRESS):leave -D $(BUILD_DIR)/$(TARGET_BIN) -d ,0483:$(USBPID) - -program-boot: - dfu-util -a 0 -s $(INTERNAL_ADDRESS):leave -D $(BOOT_BIN) -d ,0483:$(STM_PID) - -####################################### -# dependencies -####################################### --include $(wildcard $(BUILD_DIR)/*.d) - -# *** EOF *** diff --git a/core/gather_lgpl.sh b/core/gather_lgpl.sh deleted file mode 100644 index ac2b33ec6..000000000 --- a/core/gather_lgpl.sh +++ /dev/null @@ -1,67 +0,0 @@ -#!/bin/bash - -# Check for the required project name -if [[ $# -lt 1 || ${1:0:1} == "-" ]]; then - echo "Usage: $0 PROJECT_NAME [-l libdaisy_location] [-d daisysp_location]" >&2 - exit 1 -fi - -# Set the project name value -PROJECT="$1" - -shift - -# Parse command line options -while [[ $# -gt 0 ]]; do - case $1 in - -l) - LIBDAISY_DIR="$2" - shift 2 - ;; - -d) - DAISYSP_DIR="$2" - shift 2 - ;; - *) - echo "Usage: $0 PROJECT_NAME [-l libdaisy_location] [-d daisysp_location]" >&2 - exit; - ;; - esac -done - -# Default variable value -: "${LIBDAISY_DIR:="../../../libDaisy"}" -: "${DAISYSP_DIR:="../../../DaisySP"}" - -# Make the folders if they don't exist -mkdir -p lgpl/ -mkdir -p lgpl/resource - -# copy .a files -cp $DAISYSP_DIR/build/libdaisysp.a lgpl/resource || { echo 'Invalid libDaisy location. Try -l flag' ; exit 1; } -cp $DAISYSP_DIR/DaisySP-LGPL/build/libdaisysp-lgpl.a lgpl/resource || { echo 'Invalid DaisySP location. Try -d flag' ; exit 1; } -cp $LIBDAISY_DIR/build/libdaisy.a lgpl/resource || { echo 'Invalid DaisySP location. Try -d flag' ; exit 1; } - -# copy bootloader files -cp $LIBDAISY_DIR/core/dsy_bootloader* lgpl/resource || { echo 'Invalid libDaisy location. Try -l flag' ; exit 1; } -cp $LIBDAISY_DIR/core/STM32H750IB_flash.lds lgpl/resource || { echo 'Invalid libDaisy location. Try -l flag' ; exit 1; } -cp $LIBDAISY_DIR/core/STM32H750IB_sram.lds lgpl/resource || { echo 'Invalid libDaisy location. Try -l flag' ; exit 1; } -cp $LIBDAISY_DIR/core/STM32H750IB_qspi.lds lgpl/resource || { echo 'Invalid libDaisy location. Try -l flag' ; exit 1; } - -# copy and prepend vars to local makefile -cp $LIBDAISY_DIR/core/Makefile_LGPL lgpl/Makefile || { echo 'Invalid libDaisy location. Try -l flag' ; exit 1; } - -prepend="# Project Name\nTARGET = $PROJECT\n" -sed -i -e "1i $prepend" lgpl/Makefile - -# copy .o and .map files -cp build/*.o lgpl/resource -cp build/*.map lgpl/resource - -# make a little readme -readme="To rebuild with an updated or modified version of any of the static libraries:\n -1. Build the library you would like to replace, for example by running make inside of DaisySP-LGPL.\n -2. Copy the generated .a file to the resources folder. In this case it would be libdaisy-lgpl.a \n -3. Run the make command in this folder. Your .bin file will be in the build folder. " - -echo -e $readme > lgpl/Readme.md \ No newline at end of file