Radix cross Linux Build System

Cross-platform build system is designed to build distributions of different operating systems for a set of target devices

74 Commits   2 Branches   2 Tags
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)),)