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: Makefile
===================================================================
--- Makefile	(revision 62)
+++ Makefile	(revision 63)
@@ -1,5 +1,5 @@
 
-COMPONENT_TARGETS = $(HARDWARE_BUILD)
+COMPONENT_TARGETS  = $(HARDWARE_BUILD)
 
 include constants.mk
 
@@ -14,25 +14,38 @@
 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__ =======
 
+LLVM_VERSION    = 18.1.8
+RUST_VERSION    = 1.82.0
+
 config_makefile = build-config.mk
+llvm_toolchain  = .llvm
+rust_toolchain  = .rust
 
-BUILD_TARGETS = $(config_makefile)
+BUILD_TARGETS   = $(llvm_toolchain) $(rust_toolchain) $(config_makefile)
 
-CLEANUP_FILES  = $(config_makefile)
-CLEANUP_FILES += $(CURDIR)/sbin
-CLEANUP_FILES += $(CURDIR)/usr
-CLEANUP_FILES += $(CURDIR)/var
+CLEANUP_FILES   = $(llvm_toolchain) $(rust_toolchain) $(config_makefile)
+CLEANUP_FILES  += $(CURDIR)/sbin
+CLEANUP_FILES  += $(CURDIR)/usr
+CLEANUP_FILES  += $(CURDIR)/var
+CLEANUP_FILES  += $(CURDIR)/3pp/app/llvm/$(LLVM_VERSION)/.[^\.]*
+CLEANUP_FILES  += $(CURDIR)/3pp/app/rust/$(RUST_VERSION)/.[^\.]*
 
 # CORE Makefile:
 
 include core.mk
 
+$(llvm_toolchain):
+	@( $(MAKE) TOOLCHAIN=$(TOOLCHAIN_BUILD_LLVM) HARDWARE=$(HARDWARE_LLVM) FLAVOUR= -C $(CURDIR)/3pp/app/llvm/$(LLVM_VERSION) )
+	@touch $@
+
+$(rust_toolchain):
+	@( $(MAKE) TOOLCHAIN=$(TOOLCHAIN_BUILD_RUST) HARDWARE=$(HARDWARE_RUST) FLAVOUR= -C $(CURDIR)/3pp/app/rust/$(RUST_VERSION) )
+	@touch $@
+
 $(config_makefile): $(config_makefile).template
 	@mkdir -p $(CURDIR)/var/tmp
 	@echo "Creating $(config_makefile) ..."