| 1 |
|
| 2 |
|
| 3 |
|
| 4 |
|
| 5 |
|
| 6 | obj-$(CONFIG_GPU_BUDDY) += buddy.o
|
| 7 | obj-y += host1x/ drm/ vga/ tests/
|
| 8 | obj-$(CONFIG_IMX_IPUV3_CORE) += ipu-v3/
|
| 9 | obj-$(CONFIG_TRACE_GPU_MEM) += trace/
|
| 10 |
|
| 11 |
|
| 12 |
|
| 13 |
|
| 14 |
|
| 15 |
|
| 16 | obj-$(CONFIG_NOVA_CORE) += nova-core.o
|
| 17 | nova-core-y := nova-core/nova_core.o nova-core/nova_core_exports.o
|
| 18 |
|
| 19 | obj-$(CONFIG_DRM_NOVA) += nova-drm.o
|
| 20 | nova-drm-y := drm/nova/nova.o
|
| 21 |
|
| 22 |
|
| 23 | nova-core-export-deps := $(if $(CONFIG_DRM_NOVA),$(obj)/drm/nova/nova.o)
|
| 24 |
|
| 25 | rust_needed_exports = \
|
| 26 | { $(if $(strip $(2)),$(NM) -u $(2);,) echo "__DEFINED_RUST_SYMBOLS__"; \
|
| 27 | $(NM) -p --defined-only $(1); } | \
|
| 28 | awk -v fmt='$(3)' ' \
|
| 29 | /^__DEFINED_RUST_SYMBOLS__$$/ { defs = 1; next } \
|
| 30 | !defs { if ($$NF ~ /^_R/) needed[$$NF] = 1; next } \
|
| 31 | defs && $$2 ~ /(T|R|D|B)/ && $$3 ~ /^_R/ && \
|
| 32 | $$3 !~ /_(init|cleanup)_module$$/ && \
|
| 33 | $$3 !~ /__(pfx|cfi|odr_asan)/ && \
|
| 34 | $$3 in needed { printf fmt, $$3 } \
|
| 35 | '
|
| 36 |
|
| 37 | quiet_cmd_exports = EXPORTS $@
|
| 38 | cmd_exports = \
|
| 39 | $(call rust_needed_exports,$<,$(nova-core-export-deps),EXPORT_SYMBOL_RUST_GPL(%s);\n) > $@
|
| 40 |
|
| 41 | $(obj)/nova-core/exports_nova_core_generated.h: $(obj)/nova-core/nova_core.o $(nova-core-export-deps) FORCE
|
| 42 | $(call if_changed,exports)
|
| 43 |
|
| 44 | targets += nova-core/exports_nova_core_generated.h
|
| 45 |
|
| 46 | $(obj)/nova-core/nova_core_exports.o: $(obj)/nova-core/exports_nova_core_generated.h
|
| 47 | CFLAGS_nova-core/nova_core_exports.o := -I $(objtree)/$(obj)/nova-core
|
| 48 |
|
| 49 | ifdef CONFIG_MODVERSIONS
|
| 50 |
|
| 51 |
|
| 52 | $(obj)/nova-core/nova_core_exports.o: private cmd_gensymtypes_c = \
|
| 53 | $(call getexportsymbols,\1) | \
|
| 54 | $(objtree)/scripts/gendwarfksyms/gendwarfksyms \
|
| 55 | $(if $(KBUILD_GENDWARFKSYMS_STABLE), --stable) \
|
| 56 | $(if $(KBUILD_SYMTYPES), --symtypes $(@:.o=.symtypes),) \
|
| 57 | $(obj)/nova-core/nova_core.o
|
| 58 | endif
|
| 59 |
|
| 60 |
|
| 61 | RUSTFLAGS_nova-core/nova_core.o += \
|
| 62 | --emit=metadata=$(objtree)/$(obj)/nova-core/libnova_core.rmeta
|
| 63 |
|
| 64 |
|
| 65 | $(obj)/drm/nova/nova.o: $(obj)/nova-core/nova_core.o
|
| 66 | RUSTFLAGS_drm/nova/nova.o := -L $(objtree)/$(obj)/nova-core --extern nova_core
|