From 600c0e987e3a03c383dfb0c3ffe57c12d366cb1b Mon Sep 17 00:00:00 2001 From: Sascha Hauer Date: Fri, 11 Jun 2010 14:09:51 +0200 Subject: Allow to merge default environment from more than one directory Signed-off-by: Sascha Hauer --- Makefile | 15 --------------- common/Kconfig | 4 ++-- common/Makefile | 5 +++-- scripts/genenv | 17 +++++++++++++++++ 4 files changed, 22 insertions(+), 19 deletions(-) create mode 100755 scripts/genenv diff --git a/Makefile b/Makefile index d17ca47ff9..e24ae45a6e 100644 --- a/Makefile +++ b/Makefile @@ -1299,18 +1299,3 @@ Makefile: ; # 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 f5147597f4..a58f242ff8 100644 --- a/common/Kconfig +++ b/common/Kconfig @@ -339,8 +339,8 @@ config DEFAULT_ENVIRONMENT_PATH 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 0c075a960f..8b8686db1c 100644 --- a/common/Makefile +++ b/common/Makefile @@ -22,9 +22,10 @@ ifdef CONFIG_DEFAULT_ENVIRONMENT $(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 0000000000..6a833b161d --- /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 + -- cgit v1.2.3