rust.mk 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. ################################################################################
  2. #
  3. # rust
  4. #
  5. ################################################################################
  6. # When updating this version, check whether support/download/cargo-post-process
  7. # still generates the same archives.
  8. RUST_VERSION = 1.88.0
  9. RUST_SOURCE = rustc-$(RUST_VERSION)-src.tar.xz
  10. RUST_SITE = https://static.rust-lang.org/dist
  11. RUST_LICENSE = Apache-2.0 or MIT
  12. RUST_LICENSE_FILES = LICENSE-APACHE LICENSE-MIT
  13. RUST_CPE_ID_VENDOR = rust-lang
  14. HOST_RUST_PROVIDES = host-rustc
  15. HOST_RUST_DEPENDENCIES = \
  16. toolchain \
  17. host-pkgconf \
  18. host-python3 \
  19. host-rust-bin \
  20. host-openssl \
  21. host-zlib \
  22. $(BR2_CMAKE_HOST_DEPENDENCY)
  23. HOST_RUST_VERBOSITY = $(if $(VERBOSE),2,0)
  24. define HOST_RUST_CONFIGURE_CMDS
  25. ( \
  26. echo '[build]'; \
  27. echo 'target = ["$(RUSTC_TARGET_NAME)"]'; \
  28. echo 'cargo = "$(HOST_RUST_BIN_DIR)/cargo/bin/cargo"'; \
  29. echo 'rustc = "$(HOST_RUST_BIN_DIR)/rustc/bin/rustc"'; \
  30. echo 'python = "$(HOST_DIR)/bin/python$(PYTHON3_VERSION_MAJOR)"'; \
  31. echo 'submodules = false'; \
  32. echo 'vendor = true'; \
  33. echo 'extended = true'; \
  34. echo 'tools = ["cargo"]'; \
  35. echo 'compiler-docs = false'; \
  36. echo 'docs = false'; \
  37. echo 'verbose = $(HOST_RUST_VERBOSITY)'; \
  38. echo '[install]'; \
  39. echo 'prefix = "$(HOST_DIR)"'; \
  40. echo 'sysconfdir = "$(HOST_DIR)/etc"'; \
  41. echo '[rust]'; \
  42. echo 'channel = "stable"'; \
  43. echo 'musl-root = "$(STAGING_DIR)"' ; \
  44. echo '[target.$(RUSTC_TARGET_NAME)]'; \
  45. echo 'cc = "$(TARGET_CROSS)gcc"'; \
  46. echo '[llvm]'; \
  47. echo 'download-ci-llvm = false'; \
  48. echo 'ninja = false'; \
  49. echo 'ldflags = "$(HOST_LDFLAGS)"'; \
  50. ) > $(@D)/config.toml
  51. endef
  52. define HOST_RUST_BUILD_CMDS
  53. cd $(@D); $(HOST_MAKE_ENV) $(HOST_PKG_CARGO_ENV) \
  54. $(HOST_DIR)/bin/python$(PYTHON3_VERSION_MAJOR) x.py build
  55. endef
  56. HOST_RUST_INSTALL_OPTS = \
  57. --prefix=$(HOST_DIR) \
  58. --disable-ldconfig
  59. define HOST_RUST_INSTALL_RUSTC
  60. cd $(@D)/build/tmp/tarball/rust/$(RUSTC_HOST_NAME)/rust-$(RUST_VERSION)-$(RUSTC_HOST_NAME); \
  61. ./install.sh $(HOST_RUST_INSTALL_OPTS) --components=rustc,cargo,rust-std-$(RUSTC_HOST_NAME)
  62. endef
  63. ifeq ($(BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS),y)
  64. define HOST_RUST_INSTALL_LIBSTD_TARGET
  65. cd $(@D)/build/tmp/tarball/rust-std/$(RUSTC_TARGET_NAME)/rust-std-$(RUST_VERSION)-$(RUSTC_TARGET_NAME); \
  66. ./install.sh $(HOST_RUST_INSTALL_OPTS)
  67. endef
  68. endif
  69. define HOST_RUST_INSTALL_CMDS
  70. cd $(@D); $(HOST_MAKE_ENV) $(HOST_DIR)/bin/python$(PYTHON3_VERSION_MAJOR) x.py dist
  71. $(HOST_RUST_INSTALL_RUSTC)
  72. $(HOST_RUST_INSTALL_LIBSTD_TARGET)
  73. endef
  74. $(eval $(host-generic-package))