Index: 3pp/app/llvm/18.1.8/Makefile
===================================================================
--- 3pp/app/llvm/18.1.8/Makefile (nonexistent)
+++ 3pp/app/llvm/18.1.8/Makefile (revision 62)
@@ -0,0 +1,38 @@
+
+COMPONENT_TARGETS = $(HARDWARE_LLVM)
+
+include ../../../../../build-system/constants.mk
+
+SOURCE_REQUIRES =
+
+# ======= __END_OF_REQUIRES__ =======
+
+version = $(TOOLCHAIN_VERSION)
+
+build_target = $(TARGET_BUILD_DIR)/.built
+install_target = $(TARGET_BUILD_DIR)/.installed
+
+BUILD_TARGETS = $(build_target)
+BUILD_TARGETS += $(install_target)
+
+#
+# NOTE:
+# ====
+# LLVM HW is available only once on build-system build time:
+#
+ENABLE_LLVM = true
+
+
+include ../../../../../build-system/core.mk
+
+
+$(build_target):
+ @touch $@
+
+$(install_target): $(build_target)
+ @echo -e "\n======= Setup LLVM build-system variables =======\n"
+ @mkdir -p $(BUILDSYSTEM)/sbin && \
+ echo "" >> $(BUILDSYSTEM)/sbin/.config && \
+ echo "LLVM_CONFIG := $(TOOLCHAIN_PATH)/bin/llvm-config" >> $(BUILDSYSTEM)/sbin/.config && \
+ echo "LLVM_PATH := $(TOOLCHAIN_PATH)/bin" >> $(BUILDSYSTEM)/sbin/.config
+ @touch $@
Index: 3pp/app/llvm/18.1.8/PATCHES
===================================================================
Index: 3pp/app/llvm/18.1.8
===================================================================
--- 3pp/app/llvm/18.1.8 (nonexistent)
+++ 3pp/app/llvm/18.1.8 (revision 62)
Property changes on: 3pp/app/llvm/18.1.8
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,51 ##
+
+# local config & object files
+build-config.mk
+sbin
+usr
+var
+
+# configure targets
+autom4te.cache
+.config
+config.log
+config.status
+configure
+
+# cpan configure targets
+.installed
+CPAN-Config.pm
+CPAN-install
+
+# Target build dirs
+.build-machine
+
+# Timestamps
+.makefile
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Object Files
+*.[ao]
+
+# backup copies
+*~
Index: 3pp/app/rust/1.82.0/Makefile
===================================================================
--- 3pp/app/rust/1.82.0/Makefile (nonexistent)
+++ 3pp/app/rust/1.82.0/Makefile (revision 62)
@@ -0,0 +1,59 @@
+
+COMPONENT_TARGETS = $(HARDWARE_RUST)
+
+include ../../../../../build-system/constants.mk
+
+SOURCE_REQUIRES =
+
+# ======= __END_OF_REQUIRES__ =======
+
+version = $(TOOLCHAIN_VERSION)
+
+build_target = $(TARGET_BUILD_DIR)/.built
+install_target = $(TARGET_BUILD_DIR)/.installed
+
+BUILD_TARGETS = $(build_target)
+BUILD_TARGETS += $(install_target)
+
+#
+# NOTE:
+# ====
+# Rust HW is available only once on build-system build time:
+#
+ENABLE_RUST = true
+
+
+include ../../../../../build-system/core.mk
+
+
+CARGO_HOME = $(BUILDSYSTEM)/usr/lib/cargo
+RUSTUP_HOME = $(BUILDSYSTEM)/usr/lib/rustup
+
+RUST_TOOLCHAIN = RcL-$(version)-x86_64-unknown-linux-gnu
+
+$(build_target):
+ @echo -e "\n======= Installing CARGO $(version) binaries =======\n"
+ @CARGO_HOME=$(CARGO_HOME) RUSTUP_HOME=$(RUSTUP_HOME) \
+ bash -c "curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs/?version=$(version) | sh -s -- --default-toolchain stable --profile default --no-modify-path -y"
+ @echo -e "\n======= Linking the RcL toolchain $(TOOLCHAIN_PATH) =======\n"
+ @CARGO_HOME=$(CARGO_HOME) RUSTUP_HOME=$(RUSTUP_HOME) PATH=$(CARGO_HOME)/bin:$PATH \
+ rustup toolchain link RcL-$(version)-x86_64-unknown-linux-gnu $(TOOLCHAIN_PATH)
+ @echo -e "\n======= Set the RcL-$(version) toolchain as default =======\n"
+ @CARGO_HOME=$(CARGO_HOME) RUSTUP_HOME=$(RUSTUP_HOME) PATH=$(CARGO_HOME)/bin:$PATH \
+ rustup default RcL-$(version)-x86_64-unknown-linux-gnu
+ @touch $@
+
+$(install_target): $(build_target)
+ @echo -e "\n======= Setup rust build-system variables =======\n"
+ @mkdir -p $(BUILDSYSTEM)/sbin && \
+ echo "" >> $(BUILDSYSTEM)/sbin/.config && \
+ echo "RUST_TOOLCHAIN := $(RUST_TOOLCHAIN)" >> $(BUILDSYSTEM)/sbin/.config && \
+ echo "CARGO_HOME := $(CARGO_HOME)" >> $(BUILDSYSTEM)/sbin/.config && \
+ echo "RUSTUP_HOME := $(RUSTUP_HOME)" >> $(BUILDSYSTEM)/sbin/.config && \
+ echo "CARGO := $(CARGO_HOME)/bin/cargo" >> $(BUILDSYSTEM)/sbin/.config && \
+ echo "RUSTC := $(TOOLCHAIN_PATH)/bin/rustc" >> $(BUILDSYSTEM)/sbin/.config && \
+ echo "RUSTDOC := $(TOOLCHAIN_PATH)/bin/rustdoc" >> $(BUILDSYSTEM)/sbin/.config && \
+ echo "RUSTFMT := $(TOOLCHAIN_PATH)/bin/rustfmt" >> $(BUILDSYSTEM)/sbin/.config && \
+ echo "CBINDGEN := $(TOOLCHAIN_PATH)/bin/cbindgen" >> $(BUILDSYSTEM)/sbin/.config && \
+ echo "RUST_PATH := $(CARGO_HOME)/bin:$(TOOLCHAIN_PATH)/bin" >> $(BUILDSYSTEM)/sbin/.config
+ @touch $@
Index: 3pp/app/rust/1.82.0/PATCHES
===================================================================
Index: 3pp/app/rust/1.82.0
===================================================================
--- 3pp/app/rust/1.82.0 (nonexistent)
+++ 3pp/app/rust/1.82.0 (revision 62)
Property changes on: 3pp/app/rust/1.82.0
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,51 ##
+
+# local config & object files
+build-config.mk
+sbin
+usr
+var
+
+# configure targets
+autom4te.cache
+.config
+config.log
+config.status
+configure
+
+# cpan configure targets
+.installed
+CPAN-Config.pm
+CPAN-install
+
+# Target build dirs
+.build-machine
+
+# Timestamps
+.makefile
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Object Files
+*.[ao]
+
+# backup copies
+*~
Index: Makefile
===================================================================
--- Makefile (revision 61)
+++ Makefile (revision 62)
@@ -14,6 +14,8 @@
REQUIRES += build-system/3pp/app/po4a/0.73
REQUIRES += build-system/3pp/app/ruby/3.3.5
REQUIRES += build-system/3pp/app/qemu/9.1.0
+REQUIRES += build-system/3pp/app/llvm/18.1.8
+REQUIRES += build-system/3pp/app/rust/1.82.0
REQUIRES += build-system/progs
# ======= __END_OF_REQUIRES__ =======
Index: constants.mk
===================================================================
--- constants.mk (revision 61)
+++ constants.mk (revision 62)
@@ -137,6 +137,10 @@
HARDWARE_NOARCH = none
####### Host Build:
HARDWARE_BUILD = build
+####### Rust Build:
+HARDWARE_RUST = rust
+####### Clang Build:
+HARDWARE_LLVM = llvm
#
# NOTE:
@@ -764,7 +768,31 @@
BUILD_MACHINE_HARDWARE_VARIANTS := $(HARDWARE_BUILD)
+# Rust for Build machine [note: common version 1.11.3 is fixed]
+TOOLCHAIN_BUILD_RUST = build-rust
+BUILD_RUST_ARCH = unknown
+BUILD_RUST_VERSION = 1.82.0
+BUILD_RUST_DIR = RUST
+BUILD_RUST_PATH = $(TOOLCHAINS_BASE_PATH)/$(BUILD_RUST_DIR)
+BUILD_RUST_TARBALL = $(TOOLCHAINS_FTP_BASE)/1.11.3/$(BUILD_RUST_DIR)-$(BUILD_RUST_VERSION).$(TARBALL_SUFFIX)
+
+BUILD_RUST_HARDWARE_VARIANTS := $(HARDWARE_RUST)
+
+
+# LLVM for Build machine [note: common version 1.11.3 is fixed]
+TOOLCHAIN_BUILD_LLVM = build-llvm
+
+BUILD_LLVM_ARCH = unknown
+BUILD_LLVM_VERSION = 18.1.8
+BUILD_LLVM_DIR = LLVM
+BUILD_LLVM_PATH = $(TOOLCHAINS_BASE_PATH)/$(BUILD_LLVM_DIR)
+BUILD_LLVM_TARBALL = $(TOOLCHAINS_FTP_BASE)/1.11.3/$(BUILD_LLVM_DIR)-$(BUILD_LLVM_VERSION).$(TARBALL_SUFFIX)
+
+BUILD_LLVM_HARDWARE_VARIANTS := $(HARDWARE_LLVM)
+
+
+
# ======= I686-GLIBC =========================================================
TOOLCHAIN_I686_GLIBC = i686-glibc
Index: core.mk
===================================================================
--- core.mk (revision 61)
+++ core.mk (revision 62)
@@ -1085,6 +1085,7 @@
local_rootfs_clean:
endif
+.NOTPARALLEL: .toolchain
.toolchain:
ifneq ($(TOOLCHAIN_PATH),)
ifeq ($(wildcard $(TOOLCHAIN_PATH)),)