diff --git a/Makefile b/Makefile index d17ca47..e24ae45 100644 --- a/Makefile +++ b/Makefile @@ -1299,18 +1299,3 @@ # information in a variable se we can use it in if_changed and friends. .PHONY: $(PHONY) -# -# sanity checks for check default environemnt -# -ifdef CONFIG_DEFAULT_ENVIRONMENT - -ifeq ($(CONFIG_DEFAULT_ENVIRONMENT_PATH),"") -$(error default environment path empty)) -endif - -saved-env_path := $(CONFIG_DEFAULT_ENVIRONMENT_PATH) -CONFIG_DEFAULT_ENVIRONMENT_PATH := $(shell cd $(if $(filter /%,$(CONFIG_DEFAULT_ENVIRONMENT_PATH)),,$(srctree)/)$(CONFIG_DEFAULT_ENVIRONMENT_PATH) && /bin/pwd) -$(if $(CONFIG_DEFAULT_ENVIRONMENT_PATH),, \ - $(error default environment path $(saved-env_path) does not exist)) - -endif # ifdef CONFIG_DEFAULT_ENVIRONMENT diff --git a/common/Kconfig b/common/Kconfig index f514759..a58f242 100644 --- a/common/Kconfig +++ b/common/Kconfig @@ -339,8 +339,8 @@ depends on DEFAULT_ENVIRONMENT prompt "Default environment path" help - The path the default environment will be taken from. Relative - pathes will be relative to the barebox Toplevel dir, but absolute + Space separated list of pathes the default environment will be taken from. + Relative pathes will be relative to the barebox Toplevel dir, but absolute pathes are fine aswell. endmenu diff --git a/common/Makefile b/common/Makefile index 0c075a9..8b8686d 100644 --- a/common/Makefile +++ b/common/Makefile @@ -22,9 +22,10 @@ $(obj)/startup.o: include/barebox_default_env.h $(obj)/env.o: include/barebox_default_env.h -ENV_FILES := $(shell find $(srctree)/$(CONFIG_DEFAULT_ENVIRONMENT_PATH)) +ENV_FILES := $(shell cd $(srctree); for i in $(CONFIG_DEFAULT_ENVIRONMENT_PATH); do find $${i} -type f -exec readlink -f {} \;; done) + endif # ifdef CONFIG_DEFAULT_ENVIRONMENT include/barebox_default_env.h: $(ENV_FILES) - $(Q)scripts/bareboxenv -s $(srctree)/$(CONFIG_DEFAULT_ENVIRONMENT_PATH) barebox_default_env + $(Q)scripts/genenv $(srctree) $(CONFIG_DEFAULT_ENVIRONMENT_PATH) $(Q)cat barebox_default_env | scripts/bin2c default_environment > $@ diff --git a/scripts/genenv b/scripts/genenv new file mode 100755 index 0000000..6a833b1 --- /dev/null +++ b/scripts/genenv @@ -0,0 +1,17 @@ +#!/bin/bash + +# Generate the default environment file from a list of directories +# usage: genenv ... +# where is the base directory for relative pathes in +cd $1 || exit 1 +shift + +tempdir=$(mktemp -d) + +for i in $*; do + cp -r $i/* $tempdir +done +scripts/bareboxenv -s $tempdir barebox_default_env + +rm -r $tempdir +