mirror of
				https://github.com/Ysurac/openmptcprouter-feeds.git
				synced 2025-03-09 15:40:03 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			110 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| # SPDX-License-Identifier: GPL-2.0-only
 | |
| #
 | |
| # Copyright (C) 2023 Luca Barbato and Donald Hoskins
 | |
| 
 | |
| include $(TOPDIR)/rules.mk
 | |
| 
 | |
| PKG_NAME:=rust
 | |
| 
 | |
| PKG_VERSION:=1.81.0
 | |
| 
 | |
| PKG_RELEASE:=2
 | |
| 
 | |
| PKG_SOURCE:=rustc-$(PKG_VERSION)-src.tar.gz
 | |
| PKG_SOURCE_URL:=https://static.rust-lang.org/dist/
 | |
| PKG_HASH:=872448febdff32e50c3c90a7e15f9bb2db131d13c588fe9071b0ed88837ccfa7
 | |
| HOST_BUILD_DIR:=$(BUILD_DIR)/host/rustc-$(PKG_VERSION)-src
 | |
| 
 | |
| PKG_MAINTAINER:=Luca Barbato <lu_zero@luminem.org>
 | |
| PKG_LICENSE:=Apache-2.0 MIT
 | |
| PKG_LICENSE_FILES:=LICENSE-APACHE LICENSE-MIT
 | |
| 
 | |
| PKG_HOST_ONLY:=1
 | |
| PKG_BUILD_FLAGS:=no-mips16
 | |
| 
 | |
| include $(INCLUDE_DIR)/host-build.mk
 | |
| include $(INCLUDE_DIR)/package.mk
 | |
| include ./rust-values.mk
 | |
| 
 | |
| define Package/rust
 | |
|   SECTION:=lang
 | |
|   CATEGORY:=Languages
 | |
|   SUBMENU:=Rust
 | |
|   TITLE:=Rust Programming Language Compiler
 | |
|   URL:=https://www.rust-lang.org/
 | |
|   DEPENDS:=$(RUST_ARCH_DEPENDS) @!(LINUX_5_4)
 | |
| endef
 | |
| 
 | |
| define Package/rust/description
 | |
|   Rust is a multi-paradigm, general-purpose programming language designed for performance
 | |
|   and safety, especially safe concurrency. Rust is syntactically similar to C++, but can
 | |
|   guarantee memory safety by using a borrow checker to validate references.
 | |
| endef
 | |
| 
 | |
| define Package/rust/config
 | |
|   source "$(SOURCE)/Config.in"
 | |
| endef
 | |
| 
 | |
| # Rust-lang has an uninstall script
 | |
| RUST_UNINSTALL:=$(STAGING_DIR)/host/lib/rustlib/uninstall.sh
 | |
| 
 | |
| # Target Flags
 | |
| TARGET_CONFIGURE_ARGS = \
 | |
| 	--set=target.$(RUSTC_TARGET_ARCH).ar=$(TARGET_AR) \
 | |
| 	--set=target.$(RUSTC_TARGET_ARCH).cc=$(TARGET_CC_NOCACHE) \
 | |
| 	--set=target.$(RUSTC_TARGET_ARCH).cxx=$(TARGET_CXX_NOCACHE) \
 | |
| 	--set=target.$(RUSTC_TARGET_ARCH).linker=$(TARGET_CC_NOCACHE) \
 | |
| 	--set=target.$(RUSTC_TARGET_ARCH).ranlib=$(TARGET_RANLIB) \
 | |
| 	--set=target.$(RUSTC_TARGET_ARCH).crt-static=false \
 | |
| 	$(if $(CONFIG_USE_MUSL),--set=target.$(RUSTC_TARGET_ARCH).musl-root=$(TOOLCHAIN_DIR))
 | |
| 
 | |
| # CARGO_HOME is an environmental
 | |
| HOST_CONFIGURE_VARS += CARGO_HOME="$(CARGO_HOME)"
 | |
| 
 | |
| # Rust Configuration Arguments
 | |
| HOST_CONFIGURE_ARGS = \
 | |
| 	--build=$(RUSTC_HOST_ARCH) \
 | |
| 	--target=$(RUSTC_TARGET_ARCH),$(RUSTC_HOST_ARCH) \
 | |
| 	--host=$(RUSTC_HOST_ARCH) \
 | |
| 	--prefix=$(STAGING_DIR)/host \
 | |
| 	--bindir=$(STAGING_DIR)/host/bin \
 | |
| 	--libdir=$(STAGING_DIR)/host/lib \
 | |
| 	--sysconfdir=$(STAGING_DIR)/host/etc \
 | |
| 	--datadir=$(STAGING_DIR)/host/share \
 | |
| 	--mandir=$(STAGING_DIR)/host/man \
 | |
| 	--dist-compression-formats=gz \
 | |
| 	--disable-sanitizers \
 | |
| 	--release-channel=stable \
 | |
| 	--enable-cargo-native-static \
 | |
| 	--bootstrap-cache-path=$(DL_DIR)/rustc \
 | |
| 	--set=llvm.download-ci-llvm=true \
 | |
| 	$(TARGET_CONFIGURE_ARGS)
 | |
| 
 | |
| define Host/Uninstall
 | |
| 	# Call the Uninstall script
 | |
| 	[ -f $(RUST_UNINSTALL) ] && \
 | |
| 		$(BASH) $(RUST_UNINSTALL) || echo No Uninstall
 | |
| endef
 | |
| 
 | |
| define Host/Compile
 | |
| 	$(RUST_SCCACHE_VARS) \
 | |
| 	CARGO_HOME=$(CARGO_HOME) \
 | |
| 	TARGET_CFLAGS="$(TARGET_CFLAGS)" \
 | |
| 	OPENWRT_RUSTC_BOOTSTRAP_CACHE=$(DL_DIR)/rustc \
 | |
| 	$(PYTHON) $(HOST_BUILD_DIR)/x.py \
 | |
| 		--build-dir $(HOST_BUILD_DIR)/build \
 | |
| 		--config $(HOST_BUILD_DIR)/config.toml \
 | |
| 		dist build-manifest cargo llvm-tools rustc rust-std rust-src
 | |
| endef
 | |
| 
 | |
| define Host/Install
 | |
| 	( \
 | |
| 		cd $(HOST_BUILD_DIR)/build/dist ; \
 | |
| 		find -iname "*.tar.gz" -exec tar -xzf {} \; ; \
 | |
| 		find . -mindepth 2 -maxdepth 2 -type f -name install.sh \
 | |
| 			-execdir bash '{}' --prefix=$(STAGING_DIR)/host --disable-ldconfig \; ; \
 | |
| 	)
 | |
| endef
 | |
| 
 | |
| $(eval $(call HostBuild))
 | |
| $(eval $(call BuildPackage,rust))
 |