diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2014-02-18 09:35:09 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2014-02-21 17:06:01 +0100 |
commit | 068f213bb3203e482334fa2130794c3ff25acb3b (patch) | |
tree | 9c149ef12a596aa90ca9070999155c00f993ad15 /scripts/Makefile.lib | |
parent | 5d22cb385695dc17cb226ba63db3c2a253a56bc6 (diff) | |
download | barebox-068f213bb3203e482334fa2130794c3ff25acb3b.tar.gz barebox-068f213bb3203e482334fa2130794c3ff25acb3b.tar.xz |
make: Add bbenv-y target to generate default environment files
This adds a target to generate environment files from directories.
These are compiled into the barebox binary.
use it as:
bbenv-$(CONFIG_SOMETHING) += my-environment
The directory containing the files to compile into the binary
should be named my-environment.
This can be accessed in C code later as:
extern unsigned char __bbenv_my_environment_start[];
extern unsigned char __bbenv_my_environment_end[];
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'scripts/Makefile.lib')
-rw-r--r-- | scripts/Makefile.lib | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index e87e4016eb..f71c3b7c27 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -98,6 +98,7 @@ multi-objs-y := $(addprefix $(obj)/,$(multi-objs-y)) multi-objs-m := $(addprefix $(obj)/,$(multi-objs-m)) subdir-ym := $(addprefix $(obj)/,$(subdir-ym)) obj-dirs := $(addprefix $(obj)/,$(obj-dirs)) +bbenv-y := $(addprefix $(obj)/,$(bbenv-y)) # These flags are needed for modversions and compiling, so we define them here # already @@ -229,6 +230,34 @@ $(obj)/%.dtb: $(src)/%.dts FORCE dtc-tmp = $(subst $(comma),_,$(dot-target).dts) +obj-y += $(patsubst %,%.bbenv$(DEFAULT_COMPRESSION_SUFFIX).o,$(bbenv-y)) +extra-y += $(patsubst %,%.bbenv$(DEFAULT_COMPRESSION_SUFFIX),$(bbenv-y)) +extra-y += $(patsubst %,%.bbenv$(DEFAULT_COMPRESSION_SUFFIX).S,$(bbenv-y)) +extra-y += $(patsubst %,%.bbenv$(DEFAULT_COMPRESSION_SUFFIX).o,$(bbenv-y)) + +quiet_cmd_env_S = ENV.S $@ +cmd_env_S = \ +( \ + echo '\#include <asm-generic/barebox.lds.h>'; \ + echo '.section .bbenv.rodata.$(subst -,_,$(*F)),"a"'; \ + echo '.balign STRUCT_ALIGNMENT'; \ + echo '.global __bbenv_$(subst -,_,$(*F))_start'; \ + echo '__bbenv_$(subst -,_,$(*F))_start:'; \ + echo '.incbin "$<" '; \ + echo '__bbenv_$(subst -,_,$(*F))_end:'; \ + echo '.global __bbenv_$(subst -,_,$(*F))_end'; \ + echo '.balign STRUCT_ALIGNMENT'; \ +) > $@ + +$(obj)/%.bbenv$(DEFAULT_COMPRESSION_SUFFIX).S: $(src)/%.bbenv$(DEFAULT_COMPRESSION_SUFFIX) FORCE + $(call if_changed,env_S) + +quiet_cmd_env = ENV $@ +cmd_env=$(srctree)/scripts/genenv $(srctree) $(objtree) $@ $< + +%.bbenv$(DEFAULT_COMPRESSION_SUFFIX): % FORCE + $(call cmd,env) + # Bzip2 # --------------------------------------------------------------------------- |