From 9db7284d589dc8490f8c7dbe56af731fce953eda Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Mon, 25 Sep 2023 11:58:12 +0800 Subject: [PATCH] rust: Consolidate cargo environment variables This consolidates all environment variables for cargo into: * CARGO_HOST_CONFIG_VARS / CARGO_PKG_CONFIG_VARS These contain all cargo-specific environment variables, i.e. without "common" variables like CC. * CARGO_HOST_VARS / CARGO_PKG_VARS (renamed from CARGO_VARS) These contain all environment variables to be passed to cargo. This also: * Set the CARGO_BUILD_TARGET environment variable instead of using the --target command-line option * Update Python include files to use CARGO_HOST_CONFIG_VARS / CARGO_PKG_CONFIG_VARS Signed-off-by: Jeffery To --- lang/python/python3-host.mk | 2 +- lang/python/python3-package.mk | 6 ++---- lang/rust/rust-host-build.mk | 10 ++++++---- lang/rust/rust-package.mk | 14 +++++--------- lang/rust/rust-values.mk | 13 ++++++++++++- net/netavark/Makefile | 2 +- 6 files changed, 27 insertions(+), 20 deletions(-) diff --git a/lang/python/python3-host.mk b/lang/python/python3-host.mk index 6ca002587c..b233c56799 100644 --- a/lang/python/python3-host.mk +++ b/lang/python/python3-host.mk @@ -78,7 +78,7 @@ HOST_PYTHON3_VARS = \ CFLAGS="$(HOST_CFLAGS)" \ CPPFLAGS="$(HOST_CPPFLAGS) -I$(HOST_PYTHON3_INC_DIR)" \ LDFLAGS="$(HOST_LDFLAGS) -lpython$(PYTHON3_VERSION) -Wl$(comma)-rpath$(comma)$(STAGING_DIR_HOSTPKG)/lib" \ - CARGO_HOME="$(CARGO_HOME)" + $(CARGO_HOST_CONFIG_VARS) # $(1) => directory of python script # $(2) => python script and its arguments diff --git a/lang/python/python3-package.mk b/lang/python/python3-package.mk index fcb1d06b3a..e4c7bd264c 100644 --- a/lang/python/python3-package.mk +++ b/lang/python/python3-package.mk @@ -45,10 +45,8 @@ PYTHON3_VARS = \ _python_sysroot="$(STAGING_DIR)" \ _python_prefix="/usr" \ _python_exec_prefix="/usr" \ - CARGO_BUILD_TARGET="$(RUSTC_TARGET_ARCH)" \ - CARGO_HOME="$(CARGO_HOME)" \ - PYO3_CROSS_LIB_DIR="$(PYTHON3_LIB_DIR)" \ - RUSTFLAGS="$(CARGO_RUSTFLAGS)" + $(CARGO_PKG_CONFIG_VARS) \ + PYO3_CROSS_LIB_DIR="$(PYTHON3_LIB_DIR)" # $(1) => directory of python script # $(2) => python script and its arguments diff --git a/lang/rust/rust-host-build.mk b/lang/rust/rust-host-build.mk index a03df2493a..38ce963e0f 100644 --- a/lang/rust/rust-host-build.mk +++ b/lang/rust/rust-host-build.mk @@ -15,13 +15,16 @@ ifeq ($(origin RUST_INCLUDE_DIR),undefined) endif include $(RUST_INCLUDE_DIR)/rust-values.mk +CARGO_HOST_VARS= \ + $(CARGO_HOST_CONFIG_VARS) \ + CC=$(HOSTCC_NOCACHE) + # $(1) path to the package (optional) # $(2) additional arguments to cargo (optional) define Host/Compile/Cargo ( \ cd $(HOST_BUILD_DIR) ; \ - CARGO_HOME=$(CARGO_HOME) \ - CC=$(HOSTCC_NOCACHE) \ + $(CARGO_HOST_VARS) \ cargo install -v \ --profile $(CARGO_HOST_PROFILE) \ $(if $(RUST_HOST_FEATURES),--features "$(RUST_HOST_FEATURES)") \ @@ -33,8 +36,7 @@ endef define Host/Uninstall/Cargo ( \ cd $(HOST_BUILD_DIR) ; \ - CARGO_HOME=$(CARGO_HOME) \ - CC=$(HOSTCC_NOCACHE) \ + $(CARGO_HOST_VARS) \ cargo uninstall -v \ --root $(HOST_INSTALL_DIR) || true ; \ ) diff --git a/lang/rust/rust-package.mk b/lang/rust/rust-package.mk index 713d37d5be..6deb859fb6 100644 --- a/lang/rust/rust-package.mk +++ b/lang/rust/rust-package.mk @@ -15,22 +15,18 @@ ifeq ($(origin RUST_INCLUDE_DIR),undefined) endif include $(RUST_INCLUDE_DIR)/rust-values.mk +CARGO_PKG_VARS= \ + $(CARGO_PKG_CONFIG_VARS) \ + CC=$(HOSTCC_NOCACHE) + # $(1) path to the package (optional) # $(2) additional arguments to cargo (optional) define Build/Compile/Cargo ( \ cd $(PKG_BUILD_DIR) ; \ - CARGO_HOME=$(CARGO_HOME) \ - CARGO_PROFILE_RELEASE_OPT_LEVEL=s \ - CARGO_TARGET_$(subst -,_,$(call toupper,$(RUSTC_TARGET_ARCH)))_LINKER=$(TARGET_CC_NOCACHE) \ - TARGET_CFLAGS="$(TARGET_CFLAGS) $(RUSTC_CFLAGS)" \ - TARGET_CC=$(TARGET_CC_NOCACHE) \ - CC=$(HOSTCC_NOCACHE) \ - RUSTFLAGS="$(CARGO_RUSTFLAGS)" \ - $(CARGO_VARS) \ + $(CARGO_PKG_VARS) \ cargo install -v \ --profile $(CARGO_PKG_PROFILE) \ - --target $(RUSTC_TARGET_ARCH) \ $(if $(strip $(RUST_PKG_FEATURES)),--features "$(strip $(RUST_PKG_FEATURES))") \ --root $(PKG_INSTALL_DIR) \ --path "$(if $(strip $(1)),$(strip $(1)),.)" \ diff --git a/lang/rust/rust-values.mk b/lang/rust/rust-values.mk index a0fab6ae10..8f2017af6b 100644 --- a/lang/rust/rust-values.mk +++ b/lang/rust/rust-values.mk @@ -6,7 +6,6 @@ RUSTC_HOST_SUFFIX:=$(word 4, $(subst -, ,$(GNU_HOST_NAME))) RUSTC_HOST_ARCH:=$(HOST_ARCH)-unknown-linux-$(RUSTC_HOST_SUFFIX) CARGO_HOME:=$(DL_DIR)/cargo -CARGO_VARS?= ifeq ($(CONFIG_USE_MUSL),y) # Force linking of the SSP library for musl @@ -63,6 +62,18 @@ endif # Support only a subset for now. RUST_ARCH_DEPENDS:=@(aarch64||arm||i386||i686||mips||mipsel||mips64||mips64el||mipsel||powerpc64||riscv64||x86_64) +CARGO_HOST_CONFIG_VARS= \ + CARGO_HOME=$(CARGO_HOME) + CARGO_HOST_PROFILE:=release +CARGO_PKG_CONFIG_VARS= \ + CARGO_BUILD_TARGET=$(RUSTC_TARGET_ARCH) \ + CARGO_HOME=$(CARGO_HOME) \ + CARGO_PROFILE_RELEASE_OPT_LEVEL=s \ + CARGO_TARGET_$(subst -,_,$(call toupper,$(RUSTC_TARGET_ARCH)))_LINKER=$(TARGET_CC_NOCACHE) \ + RUSTFLAGS="$(CARGO_RUSTFLAGS)" \ + TARGET_CC=$(TARGET_CC_NOCACHE) \ + TARGET_CFLAGS="$(TARGET_CFLAGS) $(RUSTC_CFLAGS)" + CARGO_PKG_PROFILE:=$(if $(CONFIG_DEBUG),dev,release) diff --git a/net/netavark/Makefile b/net/netavark/Makefile index d6d976fc24..9d5c5f4054 100644 --- a/net/netavark/Makefile +++ b/net/netavark/Makefile @@ -36,7 +36,7 @@ define Package/netavark/conffiles /etc/config/netavark endef -CARGO_VARS += \ +CARGO_PKG_VARS += \ PROTOC=$(STAGING_DIR_HOSTPKG)/bin/protoc define Package/netavark/install