Point rustc to `nova-core`'s `.rmeta` file so `nova-drm` can use `nova_core`'s types and functions at compile time.
Signed-off-by: Alexandre Courbot <[email protected]> --- drivers/gpu/drm/nova/Makefile | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/drivers/gpu/drm/nova/Makefile b/drivers/gpu/drm/nova/Makefile index f8527b2b7b4a..6ed4ccbfbcdc 100644 --- a/drivers/gpu/drm/nova/Makefile +++ b/drivers/gpu/drm/nova/Makefile @@ -2,3 +2,18 @@ obj-$(CONFIG_DRM_NOVA) += nova-drm.o nova-drm-y := nova.o + +nova_core_rmeta := drivers/gpu/nova-core/libnova_core.rmeta + +rustflags-y += --extern nova_core=$(objtree)/$(nova_core_rmeta) + +# `nova-drm` imports `nova-core` at compile time, so request `nova-core`'s +# explicit metadata target before compiling nova.o. +$(obj)/nova.o: | $(objtree)/$(nova_core_rmeta) + +# Build `nova-core`'s metadata by invoking make. +# +# This is ugly but only temporary until the build system natively supports +# cross-crate dependencies. +$(objtree)/$(nova_core_rmeta): FORCE + $(Q)$(MAKE) $(build)=drivers/gpu/nova-core $(nova_core_rmeta) -- 2.54.0
