diff mbox series

[1/1] system/Config.in: introduce pre-build script

Message ID 20200121230956.23129-2-mmayer@broadcom.com
State Accepted
Headers show
Series system/Config.in: introduce pre-build script | expand

Commit Message

Markus Mayer Jan. 21, 2020, 11:09 p.m. UTC
We introduce the concept of a pre-build script that works similar to
the already existing post-build and post-image scripts.

The pre-build script(s) are executed before the build commences. This
allows a user to run some preperatory tasks prior to the build.

Signed-off-by: Markus Mayer <mmayer@broadcom.com>
---
 Makefile         |  3 +++
 system/Config.in | 10 ++++++++++
 2 files changed, 13 insertions(+)

Comments

Arnout Vandecappelle Jan. 6, 2022, 10:53 a.m. UTC | #1
Hi Markus,

On 22/01/2020 00:09, Markus Mayer wrote:
> We introduce the concept of a pre-build script that works similar to
> the already existing post-build and post-image scripts.
> 
> The pre-build script(s) are executed before the build commences. This
> allows a user to run some preperatory tasks prior to the build.
> 
> Signed-off-by: Markus Mayer <mmayer@broadcom.com>

  Although the use case you presented in the cover letter is probably not a 
"good" one, as explained by Thomas, I'm pretty sure there are valid cases for 
having a pre-build script.

  I think in general it's actually better to have a wrapper script or Makefile 
around Buildroot, because that gives a lot more flexibility. Still, this 
proposal is symmetrical with the post-image script. And the overhead is 
negligible. So I applied to master after all.

  Regards,
  Arnout

> ---
>   Makefile         |  3 +++
>   system/Config.in | 10 ++++++++++
>   2 files changed, 13 insertions(+)
> 
> diff --git a/Makefile b/Makefile
> index a58ca7821d2d..9bf9f1aa05ee 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -579,6 +579,9 @@ $(BUILD_DIR)/buildroot-config/auto.conf: $(BR2_CONFIG)
>   
>   .PHONY: prepare
>   prepare: $(BUILD_DIR)/buildroot-config/auto.conf
> +	@$(foreach s, $(call qstrip,$(BR2_ROOTFS_PRE_BUILD_SCRIPT)), \
> +		$(call MESSAGE,"Executing pre-build script $(s)"); \
> +		$(EXTRA_ENV) $(s) $(TARGET_DIR) $(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS))$(sep))
>   
>   .PHONY: world
>   world: target-post-image
> diff --git a/system/Config.in b/system/Config.in
> index c8c5be40e096..7b890aed1abb 100644
> --- a/system/Config.in
> +++ b/system/Config.in
> @@ -518,6 +518,16 @@ config BR2_ROOTFS_OVERLAY
>   	  They are copied as-is into the rootfs, excluding files ending
>   	  with ~ and .git, .svn and .hg directories.
>   
> +config BR2_ROOTFS_PRE_BUILD_SCRIPT
> +	string "Custom scripts to run before commencing the build"
> +	default ""
> +	help
> +	  Specify a space-separated list of scripts to be run before the
> +	  build commences.
> +
> +	  This gives users the opportunity to do board-specific
> +	  preparations before starting the build.
> +
>   config BR2_ROOTFS_POST_BUILD_SCRIPT
>   	string "Custom scripts to run before creating filesystem images"
>   	default ""
>
diff mbox series

Patch

diff --git a/Makefile b/Makefile
index a58ca7821d2d..9bf9f1aa05ee 100644
--- a/Makefile
+++ b/Makefile
@@ -579,6 +579,9 @@  $(BUILD_DIR)/buildroot-config/auto.conf: $(BR2_CONFIG)
 
 .PHONY: prepare
 prepare: $(BUILD_DIR)/buildroot-config/auto.conf
+	@$(foreach s, $(call qstrip,$(BR2_ROOTFS_PRE_BUILD_SCRIPT)), \
+		$(call MESSAGE,"Executing pre-build script $(s)"); \
+		$(EXTRA_ENV) $(s) $(TARGET_DIR) $(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS))$(sep))
 
 .PHONY: world
 world: target-post-image
diff --git a/system/Config.in b/system/Config.in
index c8c5be40e096..7b890aed1abb 100644
--- a/system/Config.in
+++ b/system/Config.in
@@ -518,6 +518,16 @@  config BR2_ROOTFS_OVERLAY
 	  They are copied as-is into the rootfs, excluding files ending
 	  with ~ and .git, .svn and .hg directories.
 
+config BR2_ROOTFS_PRE_BUILD_SCRIPT
+	string "Custom scripts to run before commencing the build"
+	default ""
+	help
+	  Specify a space-separated list of scripts to be run before the
+	  build commences.
+
+	  This gives users the opportunity to do board-specific
+	  preparations before starting the build.
+
 config BR2_ROOTFS_POST_BUILD_SCRIPT
 	string "Custom scripts to run before creating filesystem images"
 	default ""