dump tgz complexity. Layers are already compressed

This commit is contained in:
Lance Vick 2024-02-06 01:21:20 -08:00
parent ab6ccf6678
commit 990ad1a2f3
Signed by: lrvick
GPG Key ID: 8E47A1EC35A1551D
6 changed files with 334 additions and 332 deletions

View File

@ -1,18 +1,18 @@
.PHONY: bootstrap .PHONY: bootstrap
bootstrap: \ bootstrap: \
out/stage0.tgz \ out/stage0.tar \
out/stage1.tgz \ out/stage1.tar \
out/stage2.tgz \ out/stage2.tar \
out/stage3.tgz out/stage3.tar
out/stage0.tgz: out/stage0.tar:
$(call build,bootstrap,stage0) $(call build,bootstrap,stage0)
out/stage1.tgz: out/stage0.tgz out/stage1.tar: out/stage0.tar
$(call build,bootstrap,stage1) $(call build,bootstrap,stage1)
out/stage2.tgz: out/stage1.tgz out/stage2.tar: out/stage1.tar
$(call build,bootstrap,stage2) $(call build,bootstrap,stage2)
out/stage3.tgz: out/stage2.tgz out/stage3.tar: out/stage2.tar
$(call build,bootstrap,stage3) $(call build,bootstrap,stage3)

View File

@ -1,377 +1,377 @@
.PHONY: core .PHONY: core
core: \ core: \
out/rust.tgz \ out/rust.tar \
out/go.tgz \ out/go.tar \
out/python.tgz \ out/python.tar \
out/perl.tgz \ out/perl.tar \
out/gcc.tgz \ out/gcc.tar \
out/llvm.tgz out/llvm.tar
out/musl.tgz: out/stage3.tgz out/musl.tar: out/stage3.tar
$(call build,core,musl) $(call build,core,musl)
out/busybox.tgz: out/stage3.tgz out/busybox.tar: out/stage3.tar
$(call build,core,busybox) $(call build,core,busybox)
out/binutils.tgz: out/stage3.tgz out/musl.tgz out/binutils.tar: out/stage3.tar out/musl.tar
$(call build,core,binutils) $(call build,core,binutils)
out/make.tgz: out/stage3.tgz out/make.tar: out/stage3.tar
$(call build,core,make) $(call build,core,make)
out/gcc.tgz: out/stage3.tgz out/binutils.tgz out/musl.tgz out/gcc.tar: out/stage3.tar out/binutils.tar out/musl.tar
$(call build,core,gcc) $(call build,core,gcc)
out/bash.tgz: \ out/bash.tar: \
out/busybox.tgz \ out/busybox.tar \
out/gcc.tgz \ out/gcc.tar \
out/binutils.tgz \ out/binutils.tar \
out/musl.tgz \ out/musl.tar \
out/make.tgz out/make.tar
$(call build,core,bash) $(call build,core,bash)
out/m4.tgz: \ out/m4.tar: \
out/busybox.tgz \ out/busybox.tar \
out/gcc.tgz \ out/gcc.tar \
out/binutils.tgz \ out/binutils.tar \
out/musl.tgz \ out/musl.tar \
out/make.tgz out/make.tar
$(call build,core,m4) $(call build,core,m4)
out/perl.tgz: \ out/perl.tar: \
out/gcc.tgz \ out/gcc.tar \
out/binutils.tgz \ out/binutils.tar \
out/busybox.tgz \ out/busybox.tar \
out/make.tgz \ out/make.tar \
out/musl.tgz out/musl.tar
$(call build,core,perl) $(call build,core,perl)
out/autoconf.tgz: \ out/autoconf.tar: \
out/busybox.tgz \ out/busybox.tar \
out/gcc.tgz \ out/gcc.tar \
out/binutils.tgz \ out/binutils.tar \
out/musl.tgz \ out/musl.tar \
out/make.tgz \ out/make.tar \
out/perl.tgz \ out/perl.tar \
out/m4.tgz out/m4.tar
$(call build,core,autoconf,,fetch) $(call build,core,autoconf,,fetch)
$(call build,core,autoconf) $(call build,core,autoconf)
out/automake.tgz: \ out/automake.tar: \
out/busybox.tgz \ out/busybox.tar \
out/gcc.tgz \ out/gcc.tar \
out/binutils.tgz \ out/binutils.tar \
out/musl.tgz \ out/musl.tar \
out/make.tgz \ out/make.tar \
out/perl.tgz \ out/perl.tar \
out/autoconf.tgz \ out/autoconf.tar \
out/m4.tgz out/m4.tar
$(call build,core,automake) $(call build,core,automake)
out/sed.tgz: \ out/sed.tar: \
out/busybox.tgz \ out/busybox.tar \
out/gcc.tgz \ out/gcc.tar \
out/binutils.tgz \ out/binutils.tar \
out/musl.tgz \ out/musl.tar \
out/make.tgz out/make.tar
$(call build,core,sed) $(call build,core,sed)
out/libtool.tgz: \ out/libtool.tar: \
out/busybox.tgz \ out/busybox.tar \
out/gcc.tgz \ out/gcc.tar \
out/binutils.tgz \ out/binutils.tar \
out/musl.tgz \ out/musl.tar \
out/make.tgz \ out/make.tar \
out/bash.tgz \ out/bash.tar \
out/sed.tgz \ out/sed.tar \
out/m4.tgz out/m4.tar
$(call build,core,libtool) $(call build,core,libtool)
out/pkgconf.tgz: \ out/pkgconf.tar: \
out/busybox.tgz \ out/busybox.tar \
out/gcc.tgz \ out/gcc.tar \
out/binutils.tgz \ out/binutils.tar \
out/musl.tgz \ out/musl.tar \
out/make.tgz \ out/make.tar \
out/libtool.tgz out/libtool.tar
$(call build,core,pkgconf) $(call build,core,pkgconf)
out/libunwind.tgz: \ out/libunwind.tar: \
out/busybox.tgz \ out/busybox.tar \
out/gcc.tgz \ out/gcc.tar \
out/binutils.tgz \ out/binutils.tar \
out/musl.tgz \ out/musl.tar \
out/make.tgz \ out/make.tar \
out/bash.tgz \ out/bash.tar \
out/autoconf.tgz \ out/autoconf.tar \
out/automake.tgz \ out/automake.tar \
out/libtool.tgz out/libtool.tar
$(call build,core,libunwind) $(call build,core,libunwind)
out/linux-headers.tgz: out/linux-headers.tar:
$(call build,core,linux-headers) $(call build,core,linux-headers)
out/openssl.tgz: \ out/openssl.tar: \
out/gcc.tgz \ out/gcc.tar \
out/binutils.tgz \ out/binutils.tar \
out/busybox.tgz \ out/busybox.tar \
out/linux-headers.tgz \ out/linux-headers.tar \
out/musl.tgz out/musl.tar
$(call build,core,openssl) $(call build,core,openssl)
out/go.tgz: \ out/go.tar: \
out/gcc.tgz \ out/gcc.tar \
out/binutils.tgz \ out/binutils.tar \
out/busybox.tgz \ out/busybox.tar \
out/bash.tgz \ out/bash.tar \
out/musl.tgz out/musl.tar
$(call build,core,go) $(call build,core,go)
out/python.tgz: \ out/python.tar: \
out/gcc.tgz \ out/gcc.tar \
out/perl.tgz \ out/perl.tar \
out/binutils.tgz \ out/binutils.tar \
out/busybox.tgz \ out/busybox.tar \
out/openssl.tgz \ out/openssl.tar \
out/zlib.tgz \ out/zlib.tar \
out/make.tgz \ out/make.tar \
out/musl.tgz out/musl.tar
$(call build,core,python) $(call build,core,python)
out/ninja.tgz: \ out/ninja.tar: \
out/busybox.tgz \ out/busybox.tar \
out/gcc.tgz \ out/gcc.tar \
out/binutils.tgz \ out/binutils.tar \
out/musl.tgz \ out/musl.tar \
out/make.tgz \ out/make.tar \
out/openssl.tgz \ out/openssl.tar \
out/python.tgz out/python.tar
$(call build,core,ninja) $(call build,core,ninja)
out/cmake.tgz: \ out/cmake.tar: \
out/busybox.tgz \ out/busybox.tar \
out/gcc.tgz \ out/gcc.tar \
out/binutils.tgz \ out/binutils.tar \
out/ninja.tgz \ out/ninja.tar \
out/musl.tgz \ out/musl.tar \
out/make.tgz \ out/make.tar \
out/linux-headers.tgz out/linux-headers.tar
$(call build,core,cmake) $(call build,core,cmake)
out/py-setuptools.tgz: \ out/py-setuptools.tar: \
out/busybox.tgz \ out/busybox.tar \
out/python.tgz \ out/python.tar \
out/zlib.tgz out/zlib.tar
$(call build,core,py-setuptools) $(call build,core,py-setuptools)
out/zlib.tgz: \ out/zlib.tar: \
out/busybox.tgz \ out/busybox.tar \
out/gcc.tgz \ out/gcc.tar \
out/binutils.tgz \ out/binutils.tar \
out/musl.tgz \ out/musl.tar \
out/make.tgz out/make.tar
$(call build,core,zlib) $(call build,core,zlib)
out/llvm13.tgz: \ out/llvm13.tar: \
out/gcc.tgz \ out/gcc.tar \
out/python.tgz \ out/python.tar \
out/py-setuptools.tgz \ out/py-setuptools.tar \
out/perl.tgz \ out/perl.tar \
out/binutils.tgz \ out/binutils.tar \
out/cmake.tgz \ out/cmake.tar \
out/ninja.tgz \ out/ninja.tar \
out/busybox.tgz \ out/busybox.tar \
out/zlib.tgz \ out/zlib.tar \
out/musl.tgz out/musl.tar
$(call build,core,llvm,13.0.1) $(call build,core,llvm,13.0.1)
out/llvm.tgz: \ out/llvm.tar: \
out/gcc.tgz \ out/gcc.tar \
out/python.tgz \ out/python.tar \
out/py-setuptools.tgz \ out/py-setuptools.tar \
out/perl.tgz \ out/perl.tar \
out/binutils.tgz \ out/binutils.tar \
out/cmake.tgz \ out/cmake.tar \
out/ninja.tgz \ out/ninja.tar \
out/busybox.tgz \ out/busybox.tar \
out/zlib.tgz \ out/zlib.tar \
out/musl.tgz out/musl.tar
$(call build,core,llvm) $(call build,core,llvm)
$(BUILDER) tag $(REGISTRY)/llvm $(REGISTRY)/llvm:16 $(BUILDER) tag $(REGISTRY)/llvm $(REGISTRY)/llvm:16
$(BUILDER) tag $(REGISTRY)/llvm $(REGISTRY)/llvm:16.0.6 $(BUILDER) tag $(REGISTRY)/llvm $(REGISTRY)/llvm:16.0.6
out/rust1.54.tgz: \ out/rust1.54.tar: \
out/gcc.tgz \ out/gcc.tar \
out/bash.tgz \ out/bash.tar \
out/zlib.tgz \ out/zlib.tar \
out/python.tgz \ out/python.tar \
out/py-setuptools.tgz \ out/py-setuptools.tar \
out/perl.tgz \ out/perl.tar \
out/libunwind.tgz \ out/libunwind.tar \
out/pkgconf.tgz \ out/pkgconf.tar \
out/llvm13.tgz \ out/llvm13.tar \
out/binutils.tgz \ out/binutils.tar \
out/cmake.tgz \ out/cmake.tar \
out/make.tgz \ out/make.tar \
out/busybox.tgz \ out/busybox.tar \
out/musl.tgz out/musl.tar
$(call build,core,rust,1.54.0,bootstrap-package) $(call build,core,rust,1.54.0,bootstrap-package)
out/rust1.55.tgz: out/rust1.54.tgz out/rust1.55.tar: out/rust1.54.tar
$(call build,core,rust,1.55.0,package,--build-arg BUILD_VERSION=1.54.0) $(call build,core,rust,1.55.0,package,--build-arg BUILD_VERSION=1.54.0)
out/rust1.56.tgz: out/rust1.55.tgz out/rust1.56.tar: out/rust1.55.tar
$(call build,core,rust,1.56.0,package,--build-arg BUILD_VERSION=1.55.0) $(call build,core,rust,1.56.0,package,--build-arg BUILD_VERSION=1.55.0)
out/rust1.57.tgz: out/rust1.56.tgz out/rust1.57.tar: out/rust1.56.tar
$(call build,core,rust,1.57.0,package,--build-arg BUILD_VERSION=1.56.0) $(call build,core,rust,1.57.0,package,--build-arg BUILD_VERSION=1.56.0)
out/rust1.58.tgz: out/rust1.57.tgz out/rust1.58.tar: out/rust1.57.tar
$(call build,core,rust,1.58.0,package,--build-arg BUILD_VERSION=1.57.0) $(call build,core,rust,1.58.0,package,--build-arg BUILD_VERSION=1.57.0)
out/rust1.59.tgz: out/rust1.58.tgz out/rust1.59.tar: out/rust1.58.tar
$(call build,core,rust,1.59.0,package,--build-arg BUILD_VERSION=1.58.0) $(call build,core,rust,1.59.0,package,--build-arg BUILD_VERSION=1.58.0)
out/rust1.60.tgz: out/rust1.59.tgz out/rust1.60.tar: out/rust1.59.tar
$(call build,core,rust,1.60.0,package,--build-arg BUILD_VERSION=1.59.0) $(call build,core,rust,1.60.0,package,--build-arg BUILD_VERSION=1.59.0)
out/rust1.61.tgz: out/rust1.60.tgz out/rust1.61.tar: out/rust1.60.tar
$(call build,core,rust,1.61.0,package,--build-arg BUILD_VERSION=1.60.0) $(call build,core,rust,1.61.0,package,--build-arg BUILD_VERSION=1.60.0)
out/rust1.62.tgz: out/rust1.61.tgz out/rust1.62.tar: out/rust1.61.tar
$(call build,core,rust,1.62.0,package,--build-arg BUILD_VERSION=1.61.0) $(call build,core,rust,1.62.0,package,--build-arg BUILD_VERSION=1.61.0)
out/rust1.63.tgz: out/rust1.62.tgz out/rust1.63.tar: out/rust1.62.tar
$(call build,core,rust,1.63.0,package,--build-arg BUILD_VERSION=1.62.0) $(call build,core,rust,1.63.0,package,--build-arg BUILD_VERSION=1.62.0)
out/rust1.64.tgz: out/rust1.63.tgz out/rust1.64.tar: out/rust1.63.tar
$(call build,core,rust,1.64.0,package,--build-arg BUILD_VERSION=1.63.0) $(call build,core,rust,1.64.0,package,--build-arg BUILD_VERSION=1.63.0)
out/rust1.65.tgz: out/rust1.64.tgz out/rust1.65.tar: out/rust1.64.tar
$(call build,core,rust,1.65.0,package,--build-arg BUILD_VERSION=1.64.0) $(call build,core,rust,1.65.0,package,--build-arg BUILD_VERSION=1.64.0)
out/rust1.66.tgz: out/rust1.65.tgz out/rust1.66.tar: out/rust1.65.tar
$(call build,core,rust,1.66.0,package,--build-arg BUILD_VERSION=1.65.0) $(call build,core,rust,1.66.0,package,--build-arg BUILD_VERSION=1.65.0)
out/rust1.67.tgz: out/rust1.66.tgz out/rust1.67.tar: out/rust1.66.tar
$(call build,core,rust,1.67.0,package,--build-arg BUILD_VERSION=1.66.0) $(call build,core,rust,1.67.0,package,--build-arg BUILD_VERSION=1.66.0)
out/rust1.68.tgz: out/rust1.67.tgz out/rust1.68.tar: out/rust1.67.tar
$(call build,core,rust,1.68.0,package,--build-arg BUILD_VERSION=1.67.0) $(call build,core,rust,1.68.0,package,--build-arg BUILD_VERSION=1.67.0)
out/rust1.69.tgz: out/rust1.68.tgz out/llvm.tgz out/rust1.69.tar: out/rust1.68.tar out/llvm.tar
$(call build,core,rust,1.69.0,package,--build-arg BUILD_VERSION=1.68.0 --build-arg LLVM_VERSION=16) $(call build,core,rust,1.69.0,package,--build-arg BUILD_VERSION=1.68.0 --build-arg LLVM_VERSION=16)
out/rust1.70.tgz: out/rust1.69.tgz out/rust1.70.tar: out/rust1.69.tar
$(call build,core,rust,1.70.0,package,--build-arg BUILD_VERSION=1.69.0 --build-arg LLVM_VERSION=16) $(call build,core,rust,1.70.0,package,--build-arg BUILD_VERSION=1.69.0 --build-arg LLVM_VERSION=16)
out/rust1.71.tgz: out/rust1.70.tgz out/rust1.71.tar: out/rust1.70.tar
$(call build,core,rust,1.71.0,package,--build-arg BUILD_VERSION=1.70.0 --build-arg LLVM_VERSION=16) $(call build,core,rust,1.71.0,package,--build-arg BUILD_VERSION=1.70.0 --build-arg LLVM_VERSION=16)
out/rust1.72.tgz: out/rust1.71.tgz out/rust1.72.tar: out/rust1.71.tar
$(call build,core,rust,1.72.0,package,--build-arg BUILD_VERSION=1.71.0 --build-arg LLVM_VERSION=16) $(call build,core,rust,1.72.0,package,--build-arg BUILD_VERSION=1.71.0 --build-arg LLVM_VERSION=16)
out/rust1.73.tgz: out/rust1.72.tgz out/rust1.73.tar: out/rust1.72.tar
$(call build,core,rust,1.73.0,package,--build-arg BUILD_VERSION=1.72.0 --build-arg LLVM_VERSION=16) $(call build,core,rust,1.73.0,package,--build-arg BUILD_VERSION=1.72.0 --build-arg LLVM_VERSION=16)
out/rust.tgz: out/rust1.73.tgz out/rust.tar: out/rust1.73.tar
$(call build,core,rust,1.74.0,package,--build-arg BUILD_VERSION=1.73.0 --build-arg LLVM_VERSION=16) $(call build,core,rust,1.74.0,package,--build-arg BUILD_VERSION=1.73.0 --build-arg LLVM_VERSION=16)
out/bison.tgz: \ out/bison.tar: \
out/busybox.tgz \ out/busybox.tar \
out/gcc.tgz \ out/gcc.tar \
out/binutils.tgz \ out/binutils.tar \
out/musl.tgz \ out/musl.tar \
out/make.tgz out/make.tar
$(call build,core,bison) $(call build,core,bison)
out/gettext.tgz: \ out/gettext.tar: \
out/busybox.tgz \ out/busybox.tar \
out/gcc.tgz \ out/gcc.tar \
out/binutils.tgz \ out/binutils.tar \
out/musl.tgz \ out/musl.tar \
out/make.tgz out/make.tar
$(call build,core,gettext) $(call build,core,gettext)
out/flex.tgz: \ out/flex.tar: \
out/busybox.tgz \ out/busybox.tar \
out/gcc.tgz \ out/gcc.tar \
out/autoconf.tgz \ out/autoconf.tar \
out/libtool.tgz \ out/libtool.tar \
out/binutils.tgz \ out/binutils.tar \
out/gettext.tgz \ out/gettext.tar \
out/bison.tgz \ out/bison.tar \
out/musl.tgz \ out/musl.tar \
out/make.tgz out/make.tar
$(call build,core,flex) $(call build,core,flex)
out/argp-standalone.tgz: \ out/argp-standalone.tar: \
out/libtool.tgz \ out/libtool.tar \
out/automake.tgz \ out/automake.tar \
out/autoconf.tgz \ out/autoconf.tar \
out/make.tgz \ out/make.tar \
out/musl.tgz \ out/musl.tar \
out/m4.tgz \ out/m4.tar \
out/gcc.tgz out/gcc.tar
$(call build,core,argp-standalone) $(call build,core,argp-standalone)
out/musl-fts.tgz: \ out/musl-fts.tar: \
out/libtool.tgz \ out/libtool.tar \
out/automake.tgz \ out/automake.tar \
out/autoconf.tgz \ out/autoconf.tar \
out/make.tgz \ out/make.tar \
out/musl.tgz \ out/musl.tar \
out/m4.tgz \ out/m4.tar \
out/pkgconf.tgz \ out/pkgconf.tar \
out/gcc.tgz out/gcc.tar
$(call build,core,musl-fts) $(call build,core,musl-fts)
out/musl-obstack.tgz: \ out/musl-obstack.tar: \
out/libtool.tgz \ out/libtool.tar \
out/automake.tgz \ out/automake.tar \
out/autoconf.tgz \ out/autoconf.tar \
out/make.tgz \ out/make.tar \
out/musl.tgz \ out/musl.tar \
out/m4.tgz \ out/m4.tar \
out/pkgconf.tgz \ out/pkgconf.tar \
out/gcc.tgz out/gcc.tar
$(call build,core,musl-obstack) $(call build,core,musl-obstack)
out/meson.tgz: \ out/meson.tar: \
out/busybox.tgz \ out/busybox.tar \
out/cmake.tgz \ out/cmake.tar \
out/llvm.tgz \ out/llvm.tar \
out/python.tgz \ out/python.tar \
out/py-setuptools.tgz \ out/py-setuptools.tar \
out/linux-headers.tgz \ out/linux-headers.tar \
out/zlib.tgz out/zlib.tar
$(call build,core,meson) $(call build,core,meson)
out/libzstd.tgz: \ out/libzstd.tar: \
out/busybox.tgz \ out/busybox.tar \
out/meson.tgz \ out/meson.tar \
out/python.tgz \ out/python.tar \
out/zlib.tgz out/zlib.tar
$(call build,core,libzstd) $(call build,core,libzstd)
out/elfutils.tgz: \ out/elfutils.tar: \
out/busybox.tgz \ out/busybox.tar \
out/argp-standalone.tgz \ out/argp-standalone.tar \
out/musl.tgz \ out/musl.tar \
out/musl-fts.tgz \ out/musl-fts.tar \
out/musl-obstack.tgz \ out/musl-obstack.tar \
out/binutils.tgz \ out/binutils.tar \
out/bison.tgz \ out/bison.tar \
out/flex.tgz \ out/flex.tar \
out/linux-headers.tgz \ out/linux-headers.tar \
out/libtool.tgz \ out/libtool.tar \
out/gettext.tgz \ out/gettext.tar \
out/libzstd.tgz \ out/libzstd.tar \
out/pkgconf.tgz \ out/pkgconf.tar \
out/autoconf.tgz \ out/autoconf.tar \
out/automake.tgz \ out/automake.tar \
out/m4.tgz \ out/m4.tar \
out/make.tgz \ out/make.tar \
out/gcc.tgz \ out/gcc.tar \
out/zlib.tgz out/zlib.tar
$(call build,core,elfutils) $(call build,core,elfutils)

View File

@ -1,18 +1,18 @@
.PHONY: linux .PHONY: linux
linux: \ linux: \
out/linux-generic.tgz out/linux-generic.tar
out/linux-generic.tgz: \ out/linux-generic.tar: \
out/gcc.tgz \ out/gcc.tar \
out/binutils.tgz \ out/binutils.tar \
out/make.tgz \ out/make.tar \
out/musl.tgz \ out/musl.tar \
out/bison.tgz \ out/bison.tar \
out/pkgconf.tgz \ out/pkgconf.tar \
out/libzstd.tgz \ out/libzstd.tar \
out/openssl.tgz \ out/openssl.tar \
out/perl.tgz \ out/perl.tar \
out/zlib.tgz \ out/zlib.tar \
out/flex.tgz \ out/flex.tar \
out/elfutils.tgz out/elfutils.tar
$(call build,kernel,linux-generic) $(call build,kernel,linux-generic)

View File

@ -1,18 +1,18 @@
out/libxml2.tgz: \ out/libxml2.tar: \
out/busybox.tgz \ out/busybox.tar \
out/gcc.tgz \ out/gcc.tar \
out/binutils.tgz \ out/binutils.tar \
out/musl.tgz \ out/musl.tar \
out/make.tgz \ out/make.tar \
out/bash.tgz \ out/bash.tar \
out/python.tgz \ out/python.tar \
out/sed.tgz \ out/sed.tar \
out/m4.tgz \ out/m4.tar \
out/autoconf.tgz \ out/autoconf.tar \
out/automake.tgz \ out/automake.tar \
out/pkgconf.tgz \ out/pkgconf.tar \
out/libtool.tgz out/libtool.tar
$(call build,libs,libxml2) $(call build,libs,libxml2)
out/ca-certificates.tgz: out/ca-certificates.tar:
$(call build,libs,ca-certificates) $(call build,libs,ca-certificates)

View File

@ -27,6 +27,7 @@ define build
$(eval TARGET := $(if $(4),$(4),package)) $(eval TARGET := $(if $(4),$(4),package))
$(eval EXTRA_ARGS := $(if $(5),$(5),)) $(eval EXTRA_ARGS := $(if $(5),$(5),))
$(eval REVISION := $(shell git rev-list HEAD -1 src/$(CATEGORY)/$(NAME))) $(eval REVISION := $(shell git rev-list HEAD -1 src/$(CATEGORY)/$(NAME)))
$(eval TEMPFILE := out/.$(notdir $(basename $@)).tmp.tar)
$(eval BUILD_CMD := \ $(eval BUILD_CMD := \
DOCKER_BUILDKIT=1 \ DOCKER_BUILDKIT=1 \
BUILDKIT_MULTI_PLATFORM=1 \ BUILDKIT_MULTI_PLATFORM=1 \
@ -40,22 +41,23 @@ define build
--platform $(PLATFORM) \ --platform $(PLATFORM) \
--progress=plain \ --progress=plain \
$(if $(filter latest,$(VERSION)),,--build-arg VERSION=$(VERSION)) \ $(if $(filter latest,$(VERSION)),,--build-arg VERSION=$(VERSION)) \
--output type=oci,force-compression=true,name=$(NAME),annotation.org.opencontainers.image.revision=$(REVISION),annotation.org.opencontainers.image.version=$(VERSION),dest=$(basename $@).tar \ --output type=oci,force-compression=true,name=$(NAME),annotation.org.opencontainers.image.revision=$(REVISION),annotation.org.opencontainers.image.version=$(VERSION),dest=$(TEMPFILE) \
--target $(TARGET) \ --target $(TARGET) \
$(EXTRA_ARGS) \ $(EXTRA_ARGS) \
$(NOCACHE_FLAG) \ $(NOCACHE_FLAG) \
-f src/$(CATEGORY)/$(NAME)/Containerfile \ -f src/$(CATEGORY)/$(NAME)/Containerfile \
src/$(CATEGORY)/$(NAME) \ src/$(CATEGORY)/$(NAME) \
&& tar -tf $(basename $@).tar \
&& gzip < $(basename $@).tar > $@ \
&& rm $(basename $@).tar \
&& gunzip -c $@ | docker load; \
) )
$(eval TIMESTAMP := $(shell TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ")) $(eval TIMESTAMP := $(shell TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ"))
mkdir -p out/ set -eux; \
echo $(TIMESTAMP) $(BUILD_CMD) >> out/build.log mkdir -p out/; \
$(BUILD_CMD) echo $(TIMESTAMP) $(BUILD_CMD) start >> out/build.log; \
$(BUILD_CMD); \
tar -tf $(TEMPFILE); \
docker load < $(TEMPFILE); \
mv $(TEMPFILE) $@; \
tar -xf $@ index.json -O \ tar -xf $@ index.json -O \
| jq -r '.manifests[].digest | sub("sha256:";"")' \ | jq -r '.manifests[].digest | sub("sha256:";"")' \
> $@.digest > $(basename $@).digest; \
echo $(TIMESTAMP) $(BUILD_CMD) end >> out/build.log;
endef endef

View File

@ -1,31 +1,31 @@
out/curl.tgz: \ out/curl.tar: \
out/gcc.tgz \ out/gcc.tar \
out/musl.tgz \ out/musl.tar \
out/busybox.tgz \ out/busybox.tar \
out/make.tgz \ out/make.tar \
out/binutils.tgz \ out/binutils.tar \
out/openssl.tgz \ out/openssl.tar \
out/ca-certificates.tgz out/ca-certificates.tar
$(call build,tools,curl) $(call build,tools,curl)
out/gen_initramfs.tgz: \ out/gen_initramfs.tar: \
out/gcc.tgz \ out/gcc.tar \
out/binutils.tgz \ out/binutils.tar \
out/musl.tgz out/musl.tar
$(call build,tools,gen_initramfs) $(call build,tools,gen_initramfs)
out/cpio.tgz: \ out/cpio.tar: \
out/gcc.tgz \ out/gcc.tar \
out/binutils.tgz \ out/binutils.tar \
out/musl.tgz out/musl.tar
$(call build,tools,cpio) $(call build,tools,cpio)
out/tofu.tgz: \ out/tofu.tar: \
out/busybox.tgz \ out/busybox.tar \
out/go.tgz out/go.tar
$(call build,tools,tofu) $(call build,tools,tofu)
out/sops.tgz: \ out/sops.tar: \
out/busybox.tgz \ out/busybox.tar \
out/go.tgz out/go.tar
$(call build,tools,sops) $(call build,tools,sops)