[Buildroot] [PATCH v4 1/3] package/environment-setup: new package

Mircea GLIGA mgliga at bitdefender.com
Mon Apr 27 16:22:03 UTC 2020


Angelo, All

I have some ideas to improve the environment script.
In order to keep project/team specific customization outside of
Buildroot, we can add a new configuration variable e.g.
`BR2_ENVIRONMENT_SETUP_FILE_SNIPPET`.
We can use this to specify an external, additional file, which adds
further customizations, e.g. PS1, could be others too
And right at the end of `ENVIRONMENT_SETUP_INSTALL_TARGET_CMDS`, add
the contents of that file:

`cat BR2_ENVIRONMENT_SETUP_FILE_SNIPPET >> $(ENVIRONMENT_SETUP_FILE)`

If this new config value is empty, we only have the original version of
the environment-setup file.

Also, I've added cleanup code(see below) to the variables inside the
`environment-setup` script:

* take advantage of the fact that we've updated the PATH, so don't use
absolute paths
* long absolute paths makes verbose builds difficult to read/follow
* use the CROSS_COMPILE variable in the definition of AR, CC, etc

This results in a more compact/readable code.

All the best,
Mircea


diff --git a/package/environment-setup/environment-setup.mk 
b/package/environment-setup/environment-setup.mk
index fc74594459..b057c4fa34 100644
--- a/package/environment-setup/environment-setup.mk
+++ b/package/environment-setup/environment-setup.mk
@@ -5,14 +5,16 @@
 
################################################################################

  ENVIRONMENT_SETUP_FILE = $(HOST_DIR)/environment-setup
+ENVIRONMENT_SETUP_CROSS_COMPILE_SED_EXP = 
's+$(TARGET_CROSS)+\$${CROSS_COMPILE}+g'
+ENVIRONMENT_SETUP_PATH_SED_EXP = 's+$(HOST_DIR)/bin/++g'
  ENVIRONMENT_SETUP_HOST_DIR_SED_EXP = 's+$(HOST_DIR)+\$$SDK_PATH+g'

  define ENVIRONMENT_SETUP_INSTALL_TARGET_CMDS
  	cp package/environment-setup/environment-setup $(ENVIRONMENT_SETUP_FILE)
+	printf "export \"CROSS_COMPILE=$(GNU_TARGET_NAME)-\"\n" >> 
$(ENVIRONMENT_SETUP_FILE)
  	for var in $(TARGET_CONFIGURE_OPTS); do \
  		printf "export \"$$var\"\n" >> $(ENVIRONMENT_SETUP_FILE); \
  	done
-	printf "export \"CROSS_COMPILE=$(TARGET_CROSS)\"\n" >> 
$(ENVIRONMENT_SETUP_FILE)
  	printf "export \"CONFIGURE_FLAGS=--target=$(GNU_TARGET_NAME) \
  		--host=$(GNU_TARGET_NAME) \
  		--build=$(GNU_HOST_NAME) \
@@ -21,7 +23,7 @@ define ENVIRONMENT_SETUP_INSTALL_TARGET_CMDS
  		--sysconfdir=/etc \
  		--localstatedir=/var \
  		--program-prefix=\"\n" >> $(ENVIRONMENT_SETUP_FILE)
-	$(SED) $(ENVIRONMENT_SETUP_HOST_DIR_SED_EXP) $(ENVIRONMENT_SETUP_FILE)
+	$(SED) $(ENVIRONMENT_SETUP_CROSS_COMPILE_SED_EXP) -e 
$(ENVIRONMENT_SETUP_PATH_SED_EXP) -e 
$(ENVIRONMENT_SETUP_HOST_DIR_SED_EXP) $(ENVIRONMENT_SETUP_FILE)
  	printf 
"PS1=\"\[\e[32m\]buildroot-$(BR2_VERSION)\[\e[m\]:\[\e[34m\]\w\[\e[m\]\$$ 
\"\n" \
  		>> $(ENVIRONMENT_SETUP_FILE)
  endef





More information about the buildroot mailing list