@@ -21,6 +21,7 @@ MODULE_SRCDIR := $(MODULE)
2121MODULE_BUILDDIR := $(call TOBUILDDIR,$(MODULE_SRCDIR ) )
2222
2323MODULE_SRCS := \
24+ $(MODULE_SRCDIR ) /rust-toolchain.toml \
2425 $(MODULE_SRCDIR ) /Cargo.toml \
2526 $(MODULE_SRCDIR ) /src/lib.rs
2627MODULE_OBJS := $(foreach d,$(MODULE_SRCS ) ,$(call TOBUILDDIR,$(d ) ) )
@@ -45,10 +46,19 @@ ifeq ($(RUST_TARGET_PATH),)
4546RUST_TARGET_PATH := $(RUST_TARGET )
4647endif
4748
49+ ifndef RUST_CFLAGS
50+ RUST_CFLAGS :=
51+ endif
52+
4853define TOML_ESC
4954$(subst \,\\,$(subst ",\",$1) )
5055endef
5156
57+ # Expand a make "list" (space separated) into a quoted version appropriate for inserting into TOML.
58+ define TOML_ARRAY
59+ [$(foreach w,$(1 ) ,\"$(w ) \",) ]
60+ endef
61+
5262CARGO_CONFIG := $(MODULE_BUILDDIR ) /.cargo/config.toml
5363
5464# TODO: Allow debug/release builds
@@ -62,7 +72,7 @@ $(MODULE_OBJECT): MODULE_BUILDDIR:=$(MODULE_BUILDDIR)
6272# Override with module local values for the build rule.
6373$(MODULE_OBJECT ) : $(MODULE_OBJECT ) .phony $(MODULE_OBJS ) $(CARGO_CONFIG )
6474 cd $(MODULE_BUILDDIR ) ; \
65- cargo +nightly build
75+ cargo build
6676
6777EXTRA_OBJS := $(EXTRA_OBJS ) $(MODULE_OBJECT )
6878
@@ -96,6 +106,9 @@ $(CARGO_CONFIG): $(CARGO_CONFIG).phony
96106 echo " [env]" ; \
97107 echo ' GLOBAL_INCLUDES = { value = "$(call TOML_ESC,$(GLOBAL_INCLUDES))", force = true }' ; \
98108 echo ; \
109+ echo " [target.'cfg(all())']" ; \
110+ echo " rustflags = $( call TOML_ARRAY,$( RUST_CFLAGS) ) " ; \
111+ echo ; \
99112 echo " [unstable]" ; \
100113 echo ' build-std = ["core", "alloc"]' ; \
101114 } > " $$ tmp" ; \
0 commit comments