mirror of
				https://github.com/Ysurac/openmptcprouter-feeds.git
				synced 2025-03-09 15:40:03 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			104 lines
		
	
	
	
		
			3.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			104 lines
		
	
	
	
		
			3.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| # SPDX-License-Identifier: GPL-2.0-only
 | |
| #
 | |
| # Copyright (C) 2023 Luca Barbato and Donald Hoskins
 | |
| 
 | |
| include $(TOPDIR)/rules.mk
 | |
| include ./rust-values.mk
 | |
| 
 | |
| PKG_NAME:=rust
 | |
| PKG_VERSION:=1.71.1
 | |
| PKG_RELEASE:=1
 | |
| 
 | |
| PKG_SOURCE:=rustc-$(PKG_VERSION)-src.tar.gz
 | |
| PKG_SOURCE_URL:=https://static.rust-lang.org/dist/
 | |
| PKG_HASH:=6fa90d50d1d529a75f6cc349784de57d7ec0ba2419b09bde7d335c25bd4e472e
 | |
| HOST_BUILD_DIR:=$(BUILD_DIR)/host/rust-$(RUSTC_TARGET_ARCH)/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
 | |
| 
 | |
| HOST_BUILD_DEPENDS:=python3/host
 | |
| PKG_HOST_ONLY:=1
 | |
| 
 | |
| include $(INCLUDE_DIR)/host-build.mk
 | |
| include $(INCLUDE_DIR)/package.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)
 | |
| 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
 | |
| 
 | |
| # Rust-lang has an uninstall script
 | |
| RUST_UNINSTALL:=$(CARGO_HOME)/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) \
 | |
| 	$(if $(CONFIG_USE_MUSL),--set=target.$(RUSTC_TARGET_ARCH).musl-root=$(TOOLCHAIN_DIR))
 | |
| 
 | |
| # CARGO_HOME is an environmental
 | |
| HOST_CONFIGURE_OPTS += 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=$(CARGO_HOME) \
 | |
| 	--bindir=$(CARGO_HOME)/bin \
 | |
| 	--libdir=$(CARGO_HOME)/lib \
 | |
| 	--sysconfdir=$(CARGO_HOME)/etc \
 | |
| 	--datadir=$(CARGO_HOME)/share \
 | |
| 	--mandir=$(CARGO_HOME)/man \
 | |
| 	--dist-compression-formats=xz \
 | |
| 	--enable-missing-tools \
 | |
| 	--disable-sanitizers \
 | |
| 	--release-channel=stable \
 | |
| 	--enable-cargo-native-static \
 | |
| 	--set=llvm.download-ci-llvm=false \
 | |
| 	$(TARGET_CONFIGURE_ARGS)
 | |
| 
 | |
| define Host/Uninstall
 | |
| 	# Call the Uninstall script
 | |
| 	[ -f $(RUST_UNINSTALL) ] && \
 | |
| 		$(BASH) $(RUST_UNINSTALL) || echo No Uninstall
 | |
| endef
 | |
| 
 | |
| define Host/Compile
 | |
| 	( \
 | |
| 		cd $(HOST_BUILD_DIR) ; \
 | |
| 		$(PYTHON) x.py --config ./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 "*.xz" -exec tar -xJf {} \; ; \
 | |
| 		find ./* -type f -name install.sh -execdir sh {} --prefix=$(CARGO_HOME) --disable-ldconfig \; ; \
 | |
| 		\
 | |
| 		sed -e 's|@RUSTC_TARGET_ARCH@|$(RUSTC_TARGET_ARCH)|g' \
 | |
| 		    -e 's|@TARGET_CC_NOCACHE@|$(TARGET_CC_NOCACHE)|g' \
 | |
| 		    -e 's|@RUSTC_LDFLAGS@|$(RUSTC_LDFLAGS)|g' \
 | |
| 			$(CURDIR)/files/cargo-config > $(CARGO_HOME)/config ; \
 | |
| 	)
 | |
| endef
 | |
| 
 | |
| $(eval $(call HostBuild))
 | |
| $(eval $(call BuildPackage,rust))
 |