From d7822583b007892ee964979697c01eabff4fa208 Mon Sep 17 00:00:00 2001 From: bjorn3 <17426603+bjorn3@users.noreply.github.com> Date: Sun, 1 Mar 2026 17:26:51 +0100 Subject: [PATCH] Deduplicate prefix download logic using pattern rules --- mk/prefix.mk | 111 +++------------------------------------------------ 1 file changed, 6 insertions(+), 105 deletions(-) diff --git a/mk/prefix.mk b/mk/prefix.mk index f3e11018..f6b3d268 100644 --- a/mk/prefix.mk +++ b/mk/prefix.mk @@ -87,12 +87,12 @@ ifeq ($(PREFIX_BINARY),1) # PREFIX_BINARY FOR LINUX ----------------------------------------- ifneq ($(HOSTED_REDOX),1) -$(PREFIX)/gcc-install.tar.gz: | $(CONTAINER_TAG) +$(PREFIX)/%.tar.gz: | $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else mkdir -p "$(@D)" - wget -O $@.partial "https://static.redox-os.org/toolchain/$(HOST_TARGET)/$(TARGET)/gcc-install.tar.gz" + wget -O $@.partial "https://static.redox-os.org/toolchain/$(HOST_TARGET)/$(TARGET)/$(@F)" mv $@.partial $@ endif @@ -107,15 +107,6 @@ else mv "$@.partial" "$@" endif -$(PREFIX)/rust-install.tar.gz: | $(CONTAINER_TAG) -ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) make $@ -else - mkdir -p "$(@D)" - wget -O $@.partial "https://static.redox-os.org/toolchain/$(HOST_TARGET)/$(TARGET)/rust-install.tar.gz" - mv $@.partial $@ -endif - $(PREFIX)/rust-install: $(PREFIX)/rust-install.tar.gz $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ @@ -127,15 +118,6 @@ else mv "$@.partial" "$@" endif -$(PREFIX)/clang-install.tar.gz: | $(CONTAINER_TAG) -ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) make $@ -else - mkdir -p "$(@D)" - wget -O $@.partial "https://static.redox-os.org/toolchain/$(HOST_TARGET)/$(TARGET)/clang-install.tar.gz" - mv $@.partial $@ -endif - $(PREFIX)/clang-install: $(PREFIX)/clang-install.tar.gz $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ @@ -159,93 +141,12 @@ else mv $@.partial $@ endif -$(PREFIX)/libtool.pkgar: $(PREFIX)/id_ed25519.pub.toml | $(CONTAINER_TAG) +$(PREFIX)/%.pkgar: $(PREFIX)/id_ed25519.pub.toml | $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else mkdir -p "$(@D)" - wget -O $@.partial "https://static.redox-os.org/pkg/$(TARGET)/libtool.pkgar" - mv $@.partial $@ -endif - -$(PREFIX)/gcc13.pkgar: $(PREFIX)/id_ed25519.pub.toml | $(CONTAINER_TAG) -ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) make $@ -else - mkdir -p "$(@D)" - wget -O $@.partial "https://static.redox-os.org/pkg/$(TARGET)/gcc13.pkgar" - mv $@.partial $@ -endif - -$(PREFIX)/libgcc.pkgar: $(PREFIX)/id_ed25519.pub.toml | $(CONTAINER_TAG) -ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) make $@ -else - mkdir -p "$(@D)" - wget -O $@.partial "https://static.redox-os.org/pkg/$(TARGET)/libgcc.pkgar" - mv $@.partial $@ -endif - -$(PREFIX)/libstdcxx.pkgar: $(PREFIX)/id_ed25519.pub.toml | $(CONTAINER_TAG) -ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) make $@ -else - mkdir -p "$(@D)" - wget -O $@.partial "https://static.redox-os.org/pkg/$(TARGET)/libstdcxx.pkgar" - mv $@.partial $@ -endif - -$(PREFIX)/gcc13.cxx.pkgar: $(PREFIX)/id_ed25519.pub.toml | $(CONTAINER_TAG) -ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) make $@ -else - mkdir -p "$(@D)" - wget -O $@.partial "https://static.redox-os.org/pkg/$(TARGET)/gcc13.cxx.pkgar" - mv $@.partial $@ -endif - -$(PREFIX)/rust.pkgar: $(PREFIX)/id_ed25519.pub.toml | $(CONTAINER_TAG) -ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) make $@ -else - mkdir -p "$(@D)" - wget -O $@.partial "https://static.redox-os.org/pkg/$(TARGET)/rust.pkgar" - mv $@.partial $@ -endif - -$(PREFIX)/llvm21.pkgar: $(PREFIX)/id_ed25519.pub.toml | $(CONTAINER_TAG) -ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) make $@ -else - mkdir -p "$(@D)" - wget -O $@.partial "https://static.redox-os.org/pkg/$(TARGET)/llvm21.pkgar" - mv $@.partial $@ -endif - -$(PREFIX)/llvm21.runtime.pkgar: $(PREFIX)/id_ed25519.pub.toml | $(CONTAINER_TAG) -ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) make $@ -else - mkdir -p "$(@D)" - wget -O $@.partial "https://static.redox-os.org/pkg/$(TARGET)/llvm21.runtime.pkgar" - mv $@.partial $@ -endif - -$(PREFIX)/clang21.pkgar: $(PREFIX)/id_ed25519.pub.toml | $(CONTAINER_TAG) -ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) make $@ -else - mkdir -p "$(@D)" - wget -O $@.partial "https://static.redox-os.org/pkg/$(TARGET)/clang21.pkgar" - mv $@.partial $@ -endif - -$(PREFIX)/lld21.pkgar: $(PREFIX)/id_ed25519.pub.toml | $(CONTAINER_TAG) -ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) make $@ -else - mkdir -p "$(@D)" - wget -O $@.partial "https://static.redox-os.org/pkg/$(TARGET)/lld21.pkgar" + wget -O $@.partial "https://static.redox-os.org/pkg/$(TARGET)/$(@F)" mv $@.partial $@ endif @@ -321,7 +222,7 @@ else mkdir -p "$@.partial" export $(PREFIX_CONFIG) PATH="$(ROOT)/$(PREFIX)/libtool-install/bin:$$PATH" \ COOKBOOK_HOST_SYSROOT=/usr COOKBOOK_CROSS_TARGET=$(TARGET) COOKBOOK_CROSS_GNU_TARGET=$(GNU_TARGET) && \ - $(REPO_BIN) cook host:binutils-gdb + $(REPO_BIN) cook host:binutils-gdb cp -r "$(BINUTILS_TARGET)/stage/usr/". "$@.partial" touch "$@.partial" mv "$@.partial" "$@" @@ -509,7 +410,7 @@ else cp -r "$(LLVM_TARGET)/stage/usr/". "$@.partial" mv "$@.partial" "$@" # TODO: Cache from RUST_TARGET is currently not cleared. -# TIP: If you're developing std for rust, remove COOKBOOK_CLEAN_BUILD=true +# TIP: If you're developing std for rust, remove COOKBOOK_CLEAN_BUILD=true # at the top of this file so your next rust build reuses the build cache endif