barebox: Allow to build an environment image
authorMaxime Ripard <maxime.ripard@free-electrons.com>
Mon, 28 Jan 2013 10:10:34 +0000 (10:10 +0000)
committerPeter Korsgaard <jacmet@sunsite.dk>
Mon, 28 Jan 2013 22:15:53 +0000 (23:15 +0100)
[Peter: Tweaked help text]
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
boot/barebox/Config.in
boot/barebox/barebox.mk

index b9e03b3084b1034de2a09fd58a76eedbf9932189..1ffe5966b5f25999a577710beda51f28bb05b309 100644 (file)
@@ -99,4 +99,23 @@ config BR2_TARGET_BAREBOX_BAREBOXENV
        help
          Install bareboxenv tool in target.
 
+config BR2_TARGET_BAREBOX_CUSTOM_ENV
+       bool "Generate an environment image"
+       help
+         Generate a custom environment image. This environment will
+         contain the variables and scripts to be used at boot by
+         barebox.
+
+config BR2_TARGET_BAREBOX_CUSTOM_ENV_PATH
+       string "Environment path"
+       depends on BR2_TARGET_BAREBOX_CUSTOM_ENV
+       help
+         Path to the directory containing the custom barebox
+         environment. Depending on your setup, it will probably be
+         based on either the content of the defaultenv or
+         defaultenv-2 directories in the barebox source code, plus
+         the additions needed. The output will be an image in the
+         barebox devfs format, stored in the images directory, with
+         the same name as the directory name given here.
+
 endif
index 143338edd4cc005c11176574048070efa501dad5..5ec47f64f4384b0274be882d368a992a7fc49c33 100644 (file)
@@ -67,9 +67,22 @@ define BAREBOX_BUILD_BAREBOXENV_CMDS
 endef
 endif
 
+ifeq ($(BR2_TARGET_BAREBOX_CUSTOM_ENV),y)
+BAREBOX_ENV_NAME = $(notdir $(call qstrip, $(BR2_TARGET_BAREBOX_CUSTOM_ENV_PATH)))
+define BAREBOX_BUILD_CUSTOM_ENV
+       $(@D)/scripts/bareboxenv -s \
+               $(call qstrip, $(BR2_TARGET_BAREBOX_CUSTOM_ENV_PATH)) \
+               $(@D)/$(BAREBOX_ENV_NAME)
+endef
+define BAREBOX_INSTALL_CUSTOM_ENV
+       cp $(@D)/$(BAREBOX_ENV_NAME) $(BINARIES_DIR)
+endef
+endif
+
 define BAREBOX_BUILD_CMDS
        $(BAREBOX_BUILD_BAREBOXENV_CMDS)
        $(TARGET_MAKE_ENV) $(MAKE) $(BAREBOX_MAKE_FLAGS) -C $(@D)
+       $(BAREBOX_BUILD_CUSTOM_ENV)
 endef
 
 define BAREBOX_INSTALL_IMAGES_CMDS
@@ -78,6 +91,7 @@ define BAREBOX_INSTALL_IMAGES_CMDS
        else \
                cp $(@D)/barebox.bin $(BINARIES_DIR);\
        fi
+       $(BAREBOX_INSTALL_CUSTOM_ENV)
 endef
 
 ifeq ($(BR2_TARGET_BAREBOX_BAREBOXENV),y)