840 lines
34 KiB
Makefile
840 lines
34 KiB
Makefile
# First-time readers, refer to `build.sh` instead, it's more clear.
|
|
#
|
|
# This Makefile is optional and is all to aid debugging and add extra isolation.
|
|
#
|
|
# None of what's below in this Makefile is needed to build the project.
|
|
|
|
all:
|
|
@echo 'This Makefile is for debugging purposes, use ./build.sh'
|
|
exit 1
|
|
|
|
ISO_CHECKSUM=22a6339a46c627bf761d5e90f936ac8dcf5717f8858975796959e47245a1320b
|
|
|
|
# the no-dependencies way: full bootstrap with no make
|
|
all-raw: build.sh seed.sh download.sh recipes/*.sh recipes/*/* using-nix/*
|
|
./build.sh
|
|
cp stage/store/5-go-beyond-using-nix/ZilchOS-core.iso \
|
|
ZilchOS-core-raw.iso
|
|
sha256sum -c <<<"$(ISO_CHECKSUM) ZilchOS-core-raw.iso"
|
|
|
|
# the make scaffolding way: full bootstrap with make
|
|
all-with-make: iso all-pkgs all-tests verify-all-pkgs-checksums \
|
|
verify-all-nix-stage4-checksums verify-all-nix-stage5-checksums
|
|
|
|
# the your-nix way: build just the using-nix/ part with your nix
|
|
all-with-nix: verify-all-nix-plain-checksums
|
|
|
|
################################################################################
|
|
|
|
SHELL := bash
|
|
.SHELLFLAGS := -eu -o pipefail -c
|
|
.DELETE_ON_ERROR: # if only it also worked for dirs, see helpers/inject
|
|
CHROOT ?= $(shell command -v chroot 2>/dev/null || \
|
|
PATH=/sbin:/usr/sbin/ command -v chroot 2>/dev/null || \
|
|
echo chroot \
|
|
)
|
|
MAKEFLAGS += --warn-undefined-variables
|
|
MAKEFLAGS += --no-builtin-rules
|
|
.PHONY: all all-at-once all-with-make clean-stage clean deepclean iso \
|
|
verify-all-pkgs-checksums verify-pkgs-checksums update-pkgs-checksums \
|
|
verify-all-nix-stage4-checksums verify-all-nix-stage5-checksums \
|
|
verify-all-nix-plain-checksums verify-nix-plain-checksums \
|
|
me-suffer
|
|
NPROC ?= 1 # for inner make invocations, one can pass -j# this way
|
|
USE_CCACHE ?= 0 # for faster iterative debugging only
|
|
USE_NIX_CACHE ?= 0 # for faster iterative debugging only
|
|
USE_DISORDERFS ?= 0 # for more thorough reproducibility testing
|
|
SAVE_MISMATCHING_BUILD_TREES ?= 0 # for more thorough reproducibility testing
|
|
|
|
SOURCE_DATE_EPOCH ?= $(shell date '--date=01 Jan 1970 00:00:00 UTC' +%s)
|
|
TAR := tar
|
|
TAR_REPR = $(TAR) --sort=name '--mtime=@$(SOURCE_DATE_EPOCH)' \
|
|
--owner=0 --group=0 --numeric-owner \
|
|
--pax-option=exthdr.name=%d/PaxHeaders/%f,delete=atime,delete=ctime
|
|
|
|
downloads/%:
|
|
@echo "### Makefile: downloading required $*..."
|
|
ONLY="$*" ./download.sh
|
|
[[ -e downloads/$* ]]
|
|
|
|
################################################################################
|
|
|
|
stage/protosrc: seed.sh
|
|
stage/protosrc: recipes/1-stage1/syscall.h
|
|
stage/protosrc: recipes/1-stage1/seed.host-executed.sh
|
|
stage/protosrc: downloads/musl-1.2.4.tar.gz
|
|
stage/protosrc: downloads/busybox-1.36.1.tar.bz2
|
|
stage/protosrc: downloads/tinycc-mob-af1abf1.tar.gz
|
|
env DESTDIR=stage recipes/1-stage1/seed.host-executed.sh
|
|
|
|
NIXPKGS_HASH=21f524672f25f8c3e7a0b5775e6505fee8fe43ce
|
|
TCC_CHECKSUM=05aad934985939e9997127e93d63d6a94c88739313c496f10a90176688cc9167
|
|
tcc-seed:
|
|
@echo '### Makefile: you are supposed to supply a trusted tcc-seed'
|
|
@echo '### Makefile: since you have not, building one from nixpkgs...'
|
|
cat $$(nix build "nixpkgs/${NIXPKGS_HASH}#pkgsStatic.tinycc.out" \
|
|
--no-link --print-out-paths)/bin/tcc > tcc-seed
|
|
chmod +x tcc-seed
|
|
sha256sum -c <<<"$(TCC_CHECKSUM) tcc-seed"
|
|
@echo '### Makefile: using tcc-seed built with nix'
|
|
|
|
# Stage 0 is special in that there are no sources, we just pack up tcc-seed
|
|
pkgs/0-tcc-seed.pkg: tcc-seed
|
|
@echo '### Makefile: special stage 0: just packing up tcc-seed...'
|
|
mkdir -p tmp/build/0-tcc-seed/store pkgs
|
|
cp tcc-seed tmp/build/0-tcc-seed/store/0-tcc-seed
|
|
$(TAR_REPR) -Izstd -cf pkgs/0-tcc-seed.pkg -C tmp/build/0-tcc-seed \
|
|
store/0-tcc-seed
|
|
rm -rf tmp/build/0-tcc-seed
|
|
@echo '### Makefile: successfully packed up pkgs/0-tcc-seed.pkg'
|
|
|
|
# Stage 1 is special in that:
|
|
# * we patch up some sources on the host
|
|
# * we have no shell and execute 1-stage1.c with tcc-seed
|
|
pkgs/1-stage1.pkg: pkgs/0-tcc-seed.pkg
|
|
pkgs/1-stage1.pkg: recipes/1-stage1.c
|
|
pkgs/1-stage1.pkg: recipes/1-stage1/seed.host-executed.sh
|
|
pkgs/1-stage1.pkg: recipes/1-stage1/syscall.h
|
|
pkgs/1-stage1.pkg: recipes/1-stage1/protobusybox.c
|
|
pkgs/1-stage1.pkg: recipes/1-stage1/protobusybox.h
|
|
pkgs/1-stage1.pkg: recipes/1-stage1/hello.c
|
|
pkgs/1-stage1.pkg: downloads/musl-1.2.4.tar.gz
|
|
pkgs/1-stage1.pkg: downloads/tinycc-mob-af1abf1.tar.gz
|
|
pkgs/1-stage1.pkg: downloads/busybox-1.36.1.tar.bz2
|
|
pkgs/1-stage1.pkg:
|
|
@echo "### Makefile: creating temporary builddir tmp/build/1-stage1..."
|
|
rm -rf tmp/build/1-stage1
|
|
DISORDER=$(USE_DISORDERFS) helpers/builddir create tmp/build/1-stage1
|
|
@echo "### Makefile: injecting dependencies..."
|
|
helpers/inject tmp/build/1-stage1 $^
|
|
@echo "### Makefile: seeding special stage 1 (and patching sources)..."
|
|
DESTDIR=tmp/build/1-stage1 recipes/1-stage1/seed.host-executed.sh
|
|
@echo "### Makefile: special stage 1: executing stage1.c with tcc-seed"
|
|
DISORDER=$(USE_DISORDERFS) helpers/builddir pre-build tmp/build/1-stage1
|
|
env -i unshare -nr $(CHROOT) ./tmp/build/1-stage1 \
|
|
/store/0-tcc-seed -nostdinc -nostdlib -Werror \
|
|
-run recipes/1-stage1.c
|
|
DISORDER=$(USE_DISORDERFS) \
|
|
helpers/builddir post-build tmp/build/1-stage1
|
|
$(TAR_REPR) -Izstd -cf pkgs/1-stage1.pkg -C tmp/build/1-stage1 \
|
|
store/1-stage1
|
|
DISORDER=$(USE_DISORDERFS) helpers/builddir remove tmp/build/1-stage1
|
|
@echo "### Makefile: 1-stage1 has been built as pkgs/1-stage1.pkg"
|
|
|
|
# Consequent stages split up into packages have it simpler:
|
|
pkgs/%.pkg: recipes/%.sh
|
|
@echo "### Makefile: creating a temporary build area tmp/build/$*..."
|
|
if ! rm -rf "tmp/build/$*" 2>/dev/null; then \
|
|
chmod -R +w "tmp/build/$*"; \
|
|
rm -rf "tmp/build/$*"; \
|
|
fi
|
|
[ ! -e "tmp/build/$*" ]
|
|
DISORDER=$(USE_DISORDERFS) helpers/builddir create "tmp/build/$*"
|
|
helpers/inject "tmp/build/$*" $^
|
|
ifeq ($(USE_CCACHE), 1)
|
|
@echo "### Makefile: unpacking ccache from previous builds $*..."
|
|
mkdir -p "tmp/build/$*/ccache"
|
|
[[ ! -e "tmp/ccache/$*.tar.zstd" ]] || \
|
|
tar -Izstd -xf "tmp/ccache/$*.tar.zstd" -C "tmp/build/$*/ccache"
|
|
ln -sf /store/_2a0-ccache/wrap-available "tmp/build/$*/ccache/setup"
|
|
ln -sf /store/_2a0-ccache/bin "tmp/build/$*/ccache/bin"
|
|
endif
|
|
ifeq ($(USE_NIX_CACHE), 1)
|
|
@echo "### Makefile: unpacking nix store and db from previous build..."
|
|
if [[ $* =~ .*-using-nix ]] && [[ -e "pkgs/$*.pkg" ]]; then \
|
|
mkdir "tmp/build/$*/prev/"; \
|
|
tar --strip-components=2 \
|
|
-xf "pkgs/$*.pkg" -C "tmp/build/$*/prev/"; \
|
|
fi
|
|
endif
|
|
DISORDER=$(USE_DISORDERFS) helpers/builddir pre-build "tmp/build/$*"
|
|
@echo "### Makefile: building $* ..."
|
|
env \
|
|
DESTDIR="./tmp/build/$*" \
|
|
NPROC="$(NPROC)" \
|
|
SOURCE_DATE_EPOCH="$(SOURCE_DATE_EPOCH)" \
|
|
./helpers/chroot "/recipes/$*.sh"
|
|
DISORDER=$(USE_DISORDERFS) helpers/builddir post-build "tmp/build/$*"
|
|
@echo "### Makefile: packing up $* ..."
|
|
$(TAR_REPR) -Izstd -cf "pkgs/$*.pkg" -C "tmp/build/$*" "store/$*"
|
|
ifeq ($(USE_CCACHE), 1)
|
|
@echo "### Makefile: packing up $* ccache cache..."
|
|
if [[ -e "tmp/build/$*/store/_2a0-ccache/bin/ccache" ]]; then \
|
|
mkdir -p tmp/ccache; \
|
|
unshare -nr $(CHROOT) "tmp/build/$*" \
|
|
/store/_2a0-ccache/bin/ccache -sz; \
|
|
$(TAR_REPR) -Izstd -cf "tmp/ccache/$*.tar.zstd" \
|
|
-C "tmp/build/$*/ccache" .; \
|
|
fi
|
|
rm -rf "tmp/build/$*/store/_2a0-ccache"
|
|
rm -rf "tmp/build/$*/ccache"
|
|
endif
|
|
ifeq ($(SAVE_MISMATCHING_BUILD_TREES), 1)
|
|
computed_csum=$$(zstd -qcd "pkgs/$*.pkg" | sha256sum); \
|
|
computed_csum=$$(<<<$$computed_csum tr ' ' '\t' | cut -f1); \
|
|
if ! grep -q "$$computed_csum pkgs/$*" verify.pkgs.sha256; then \
|
|
short_csum=$$(<<<$$computed_csum head -c7); \
|
|
echo "### Makefile: packing up $* buildtree"; \
|
|
mkdir -p trees; \
|
|
$(TAR_REPR) -Izstd -cf "trees/$*-$$short_csum.pkg" \
|
|
-C "tmp/build/$*" .; \
|
|
fi
|
|
endif
|
|
@echo "### Makefile: cleaning up after $*"
|
|
DISORDER=$(USE_DISORDERFS) helpers/builddir remove "tmp/build/$*"
|
|
@echo "### Makefile: $* has been built as pkgs/$*.pkg"
|
|
|
|
# Dependency graph:
|
|
|
|
pkgs/2a0-static-gnumake.pkg: pkgs/1-stage1.pkg
|
|
pkgs/2a0-static-gnumake.pkg: downloads/make-4.4.1.tar.gz
|
|
|
|
ifeq ($(USE_CCACHE), 1)
|
|
pkgs/_2a0-ccache.pkg: pkgs/1-stage1.pkg
|
|
pkgs/_2a0-ccache.pkg: pkgs/2a0-static-gnumake.pkg
|
|
pkgs/_2a0-ccache.pkg: downloads/ccache-3.7.12.tar.xz
|
|
endif
|
|
|
|
pkgs/2/01-gnumake.pkg: pkgs/1-stage1.pkg
|
|
pkgs/2/01-gnumake.pkg: pkgs/2/00-intermediate-gnumake.pkg
|
|
pkgs/2/01-gnumake.pkg: downloads/make-4.4.1.tar.gz
|
|
|
|
pkgs/2a1-static-binutils.pkg: pkgs/1-stage1.pkg
|
|
pkgs/2a1-static-binutils.pkg: pkgs/2a0-static-gnumake.pkg
|
|
pkgs/2a1-static-binutils.pkg: downloads/binutils-2.39.tar.xz
|
|
|
|
pkgs/2a2-static-gnugcc4-c.pkg: pkgs/1-stage1.pkg
|
|
pkgs/2a2-static-gnugcc4-c.pkg: pkgs/2a0-static-gnumake.pkg
|
|
pkgs/2a2-static-gnugcc4-c.pkg: pkgs/2a1-static-binutils.pkg
|
|
pkgs/2a2-static-gnugcc4-c.pkg: downloads/gmp-4.3.2.tar.xz
|
|
pkgs/2a2-static-gnugcc4-c.pkg: downloads/mpfr-2.4.2.tar.xz
|
|
pkgs/2a2-static-gnugcc4-c.pkg: downloads/mpc-0.8.1.tar.gz
|
|
pkgs/2a2-static-gnugcc4-c.pkg: downloads/gcc-4.7.4.tar.bz2
|
|
|
|
pkgs/2a3-intermediate-musl.pkg: pkgs/1-stage1.pkg
|
|
pkgs/2a3-intermediate-musl.pkg: pkgs/2a0-static-gnumake.pkg
|
|
pkgs/2a3-intermediate-musl.pkg: pkgs/2a1-static-binutils.pkg
|
|
pkgs/2a3-intermediate-musl.pkg: pkgs/2a2-static-gnugcc4-c.pkg
|
|
pkgs/2a3-intermediate-musl.pkg: downloads/musl-1.2.4.tar.gz
|
|
|
|
pkgs/2a4-gnugcc4-cpp.pkg: pkgs/1-stage1.pkg
|
|
pkgs/2a4-gnugcc4-cpp.pkg: pkgs/2a0-static-gnumake.pkg
|
|
pkgs/2a4-gnugcc4-cpp.pkg: pkgs/2a1-static-binutils.pkg
|
|
pkgs/2a4-gnugcc4-cpp.pkg: pkgs/2a2-static-gnugcc4-c.pkg
|
|
pkgs/2a4-gnugcc4-cpp.pkg: pkgs/2a3-intermediate-musl.pkg
|
|
pkgs/2a4-gnugcc4-cpp.pkg: downloads/gmp-4.3.2.tar.xz
|
|
pkgs/2a4-gnugcc4-cpp.pkg: downloads/mpfr-2.4.2.tar.xz
|
|
pkgs/2a4-gnugcc4-cpp.pkg: downloads/mpc-0.8.1.tar.gz
|
|
pkgs/2a4-gnugcc4-cpp.pkg: downloads/gcc-4.7.4.tar.bz2
|
|
|
|
pkgs/2a5-gnugcc10.pkg: pkgs/1-stage1.pkg
|
|
pkgs/2a5-gnugcc10.pkg: pkgs/2a0-static-gnumake.pkg
|
|
pkgs/2a5-gnugcc10.pkg: pkgs/2a1-static-binutils.pkg
|
|
pkgs/2a5-gnugcc10.pkg: pkgs/2a3-intermediate-musl.pkg
|
|
pkgs/2a5-gnugcc10.pkg: pkgs/2a4-gnugcc4-cpp.pkg
|
|
pkgs/2a5-gnugcc10.pkg: downloads/gcc-10.5.0.tar.xz
|
|
pkgs/2a5-gnugcc10.pkg: downloads/gmp-6.1.0.tar.xz
|
|
pkgs/2a5-gnugcc10.pkg: downloads/mpc-1.0.3.tar.gz
|
|
pkgs/2a5-gnugcc10.pkg: downloads/mpfr-3.1.4.tar.xz
|
|
pkgs/2a5-gnugcc10.pkg: downloads/isl-0.18.tar.bz2
|
|
|
|
pkgs/2a6-linux-headers.pkg: pkgs/1-stage1.pkg
|
|
pkgs/2a6-linux-headers.pkg: pkgs/2a0-static-gnumake.pkg
|
|
pkgs/2a6-linux-headers.pkg: pkgs/2a1-static-binutils.pkg
|
|
pkgs/2a6-linux-headers.pkg: pkgs/2a3-intermediate-musl.pkg
|
|
pkgs/2a6-linux-headers.pkg: pkgs/2a5-gnugcc10.pkg
|
|
pkgs/2a6-linux-headers.pkg: downloads/linux-6.4.12.tar.xz
|
|
|
|
pkgs/2a7-cmake.pkg: pkgs/1-stage1.pkg
|
|
pkgs/2a7-cmake.pkg: pkgs/2a0-static-gnumake.pkg
|
|
pkgs/2a7-cmake.pkg: pkgs/2a1-static-binutils.pkg
|
|
pkgs/2a7-cmake.pkg: pkgs/2a3-intermediate-musl.pkg
|
|
pkgs/2a7-cmake.pkg: pkgs/2a5-gnugcc10.pkg
|
|
pkgs/2a7-cmake.pkg: pkgs/2a6-linux-headers.pkg
|
|
pkgs/2a7-cmake.pkg: downloads/cmake-3.27.4.tar.gz
|
|
|
|
pkgs/2a8-python.pkg: pkgs/1-stage1.pkg
|
|
pkgs/2a8-python.pkg: pkgs/2a0-static-gnumake.pkg
|
|
pkgs/2a8-python.pkg: pkgs/2a1-static-binutils.pkg
|
|
pkgs/2a8-python.pkg: pkgs/2a3-intermediate-musl.pkg
|
|
pkgs/2a8-python.pkg: pkgs/2a5-gnugcc10.pkg
|
|
pkgs/2a8-python.pkg: downloads/Python-3.12.0.tar.xz
|
|
|
|
pkgs/2a9-intermediate-clang.pkg: pkgs/1-stage1.pkg
|
|
pkgs/2a9-intermediate-clang.pkg: pkgs/2a0-static-gnumake.pkg
|
|
pkgs/2a9-intermediate-clang.pkg: pkgs/2a1-static-binutils.pkg
|
|
pkgs/2a9-intermediate-clang.pkg: pkgs/2a3-intermediate-musl.pkg
|
|
pkgs/2a9-intermediate-clang.pkg: pkgs/2a5-gnugcc10.pkg
|
|
pkgs/2a9-intermediate-clang.pkg: pkgs/2a6-linux-headers.pkg
|
|
pkgs/2a9-intermediate-clang.pkg: pkgs/2a7-cmake.pkg
|
|
pkgs/2a9-intermediate-clang.pkg: pkgs/2a8-python.pkg
|
|
pkgs/2a9-intermediate-clang.pkg: downloads/llvm-project-17.0.1.src.tar.xz
|
|
|
|
pkgs/2b0-musl.pkg: pkgs/1-stage1.pkg
|
|
pkgs/2b0-musl.pkg: pkgs/2a0-static-gnumake.pkg
|
|
pkgs/2b0-musl.pkg: pkgs/2a1-static-binutils.pkg
|
|
pkgs/2b0-musl.pkg: pkgs/2a3-intermediate-musl.pkg
|
|
pkgs/2b0-musl.pkg: pkgs/2a9-intermediate-clang.pkg
|
|
pkgs/2b0-musl.pkg: downloads/musl-1.2.4.tar.gz
|
|
|
|
pkgs/2b1-clang.pkg: pkgs/1-stage1.pkg
|
|
pkgs/2b1-clang.pkg: pkgs/2a0-static-gnumake.pkg
|
|
pkgs/2b1-clang.pkg: pkgs/2a3-intermediate-musl.pkg
|
|
pkgs/2b1-clang.pkg: pkgs/2a6-linux-headers.pkg
|
|
pkgs/2b1-clang.pkg: pkgs/2a7-cmake.pkg
|
|
pkgs/2b1-clang.pkg: pkgs/2a8-python.pkg
|
|
pkgs/2b1-clang.pkg: pkgs/2a9-intermediate-clang.pkg
|
|
pkgs/2b1-clang.pkg: pkgs/2b0-musl.pkg
|
|
pkgs/2b1-clang.pkg: downloads/llvm-project-17.0.1.src.tar.xz
|
|
|
|
pkgs/2b2-busybox.pkg: pkgs/1-stage1.pkg
|
|
pkgs/2b2-busybox.pkg: pkgs/2a0-static-gnumake.pkg
|
|
pkgs/2b2-busybox.pkg: pkgs/2b0-musl.pkg
|
|
pkgs/2b2-busybox.pkg: pkgs/2b1-clang.pkg
|
|
pkgs/2b2-busybox.pkg: pkgs/2a6-linux-headers.pkg
|
|
pkgs/2b2-busybox.pkg: downloads/busybox-1.36.1.tar.bz2
|
|
|
|
pkgs/2b3-gnumake.pkg: pkgs/2a0-static-gnumake.pkg
|
|
pkgs/2b3-gnumake.pkg: pkgs/2b0-musl.pkg
|
|
pkgs/2b3-gnumake.pkg: pkgs/2b1-clang.pkg
|
|
pkgs/2b3-gnumake.pkg: pkgs/2b2-busybox.pkg
|
|
pkgs/2b3-gnumake.pkg: downloads/make-4.4.1.tar.gz
|
|
|
|
pkgs/3a-sqlite.pkg: pkgs/2b0-musl.pkg
|
|
pkgs/3a-sqlite.pkg: pkgs/2b1-clang.pkg
|
|
pkgs/3a-sqlite.pkg: pkgs/2b2-busybox.pkg
|
|
pkgs/3a-sqlite.pkg: pkgs/2b3-gnumake.pkg
|
|
pkgs/3a-sqlite.pkg: downloads/sqlite-autoconf-3430000.tar.gz
|
|
|
|
pkgs/3a-boost.pkg: pkgs/2b0-musl.pkg
|
|
pkgs/3a-boost.pkg: pkgs/2b1-clang.pkg
|
|
pkgs/3a-boost.pkg: pkgs/2b2-busybox.pkg
|
|
pkgs/3a-boost.pkg: pkgs/2b3-gnumake.pkg
|
|
pkgs/3a-boost.pkg: pkgs/2a6-linux-headers.pkg
|
|
pkgs/3a-boost.pkg: downloads/boost_1_83_0.tar.bz2
|
|
|
|
pkgs/3a-mbedtls.pkg: pkgs/2b0-musl.pkg
|
|
pkgs/3a-mbedtls.pkg: pkgs/2b1-clang.pkg
|
|
pkgs/3a-mbedtls.pkg: pkgs/2b2-busybox.pkg
|
|
pkgs/3a-mbedtls.pkg: pkgs/2b3-gnumake.pkg
|
|
pkgs/3a-mbedtls.pkg: downloads/mbedtls-3.4.1.tar.gz
|
|
|
|
pkgs/3a-pkg-config.pkg: pkgs/2b0-musl.pkg
|
|
pkgs/3a-pkg-config.pkg: pkgs/2b1-clang.pkg
|
|
pkgs/3a-pkg-config.pkg: pkgs/2b2-busybox.pkg
|
|
pkgs/3a-pkg-config.pkg: pkgs/2b3-gnumake.pkg
|
|
pkgs/3a-pkg-config.pkg: downloads/pkg-config-0.29.2.tar.gz
|
|
|
|
pkgs/3a-curl.pkg: pkgs/2b0-musl.pkg
|
|
pkgs/3a-curl.pkg: pkgs/2b1-clang.pkg
|
|
pkgs/3a-curl.pkg: pkgs/2b2-busybox.pkg
|
|
pkgs/3a-curl.pkg: pkgs/2b3-gnumake.pkg
|
|
pkgs/3a-curl.pkg: pkgs/3a-mbedtls.pkg
|
|
pkgs/3a-curl.pkg: pkgs/3a-pkg-config.pkg
|
|
pkgs/3a-curl.pkg: downloads/curl-8.2.1.tar.xz
|
|
|
|
pkgs/3a-editline.pkg: pkgs/2b0-musl.pkg
|
|
pkgs/3a-editline.pkg: pkgs/2b1-clang.pkg
|
|
pkgs/3a-editline.pkg: pkgs/2b2-busybox.pkg
|
|
pkgs/3a-editline.pkg: pkgs/2b3-gnumake.pkg
|
|
pkgs/3a-editline.pkg: downloads/editline-1.17.1.tar.xz
|
|
|
|
pkgs/3a-brotli.pkg: pkgs/2b0-musl.pkg
|
|
pkgs/3a-brotli.pkg: pkgs/2b1-clang.pkg
|
|
pkgs/3a-brotli.pkg: pkgs/2b2-busybox.pkg
|
|
pkgs/3a-brotli.pkg: pkgs/2b3-gnumake.pkg
|
|
pkgs/3a-brotli.pkg: downloads/brotli-1.0.9.tar.gz
|
|
|
|
pkgs/3a-gnugperf.pkg: pkgs/2b0-musl.pkg
|
|
pkgs/3a-gnugperf.pkg: pkgs/2b1-clang.pkg
|
|
pkgs/3a-gnugperf.pkg: pkgs/2b2-busybox.pkg
|
|
pkgs/3a-gnugperf.pkg: pkgs/2b3-gnumake.pkg
|
|
pkgs/3a-gnugperf.pkg: downloads/gperf-3.1.tar.gz
|
|
|
|
pkgs/3a-seccomp.pkg: pkgs/2b0-musl.pkg
|
|
pkgs/3a-seccomp.pkg: pkgs/2b1-clang.pkg
|
|
pkgs/3a-seccomp.pkg: pkgs/2b2-busybox.pkg
|
|
pkgs/3a-seccomp.pkg: pkgs/2b3-gnumake.pkg
|
|
pkgs/3a-seccomp.pkg: pkgs/3a-gnugperf.pkg
|
|
pkgs/3a-seccomp.pkg: pkgs/2a6-linux-headers.pkg
|
|
pkgs/3a-seccomp.pkg: downloads/libseccomp-2.5.4.tar.gz
|
|
|
|
pkgs/3a-libarchive.pkg: pkgs/2b0-musl.pkg
|
|
pkgs/3a-libarchive.pkg: pkgs/2b1-clang.pkg
|
|
pkgs/3a-libarchive.pkg: pkgs/2b2-busybox.pkg
|
|
pkgs/3a-libarchive.pkg: pkgs/2b3-gnumake.pkg
|
|
pkgs/3a-libarchive.pkg: pkgs/3a-pkg-config.pkg
|
|
pkgs/3a-libarchive.pkg: downloads/libarchive-3.7.1.tar.xz
|
|
|
|
pkgs/3a-libsodium.pkg: pkgs/2b0-musl.pkg
|
|
pkgs/3a-libsodium.pkg: pkgs/2b1-clang.pkg
|
|
pkgs/3a-libsodium.pkg: pkgs/2b2-busybox.pkg
|
|
pkgs/3a-libsodium.pkg: pkgs/2b3-gnumake.pkg
|
|
pkgs/3a-libsodium.pkg: pkgs/3a-pkg-config.pkg
|
|
pkgs/3a-libsodium.pkg: downloads/libsodium-1.0.18.tar.gz
|
|
|
|
pkgs/3a-lowdown.pkg: pkgs/2b0-musl.pkg
|
|
pkgs/3a-lowdown.pkg: pkgs/2b1-clang.pkg
|
|
pkgs/3a-lowdown.pkg: pkgs/2b2-busybox.pkg
|
|
pkgs/3a-lowdown.pkg: pkgs/2b3-gnumake.pkg
|
|
pkgs/3a-lowdown.pkg: downloads/lowdown-1.0.2.tar.gz
|
|
|
|
pkgs/3a-nlohmann-json.pkg: pkgs/2b0-musl.pkg
|
|
pkgs/3a-nlohmann-json.pkg: pkgs/2b1-clang.pkg
|
|
pkgs/3a-nlohmann-json.pkg: pkgs/2b2-busybox.pkg
|
|
pkgs/3a-nlohmann-json.pkg: pkgs/2b3-gnumake.pkg
|
|
pkgs/3a-nlohmann-json.pkg: downloads/nlohmann-json-3.11.2.tar.xz
|
|
|
|
pkgs/3b-busybox-static.pkg: pkgs/2b0-musl.pkg
|
|
pkgs/3b-busybox-static.pkg: pkgs/2b1-clang.pkg
|
|
pkgs/3b-busybox-static.pkg: pkgs/2b2-busybox.pkg
|
|
pkgs/3b-busybox-static.pkg: pkgs/2b3-gnumake.pkg
|
|
pkgs/3b-busybox-static.pkg: pkgs/2a6-linux-headers.pkg
|
|
pkgs/3b-busybox-static.pkg: downloads/busybox-1.36.1.tar.bz2
|
|
|
|
pkgs/3b-tinycc-static.pkg: pkgs/2b0-musl.pkg
|
|
pkgs/3b-tinycc-static.pkg: pkgs/2b1-clang.pkg
|
|
pkgs/3b-tinycc-static.pkg: pkgs/2b2-busybox.pkg
|
|
pkgs/3b-tinycc-static.pkg: pkgs/2b3-gnumake.pkg
|
|
pkgs/3b-tinycc-static.pkg: downloads/tinycc-mob-af1abf1.tar.gz
|
|
|
|
pkgs/3b-nix.pkg: pkgs/2b0-musl.pkg
|
|
pkgs/3b-nix.pkg: pkgs/2b1-clang.pkg
|
|
pkgs/3b-nix.pkg: pkgs/2b2-busybox.pkg
|
|
pkgs/3b-nix.pkg: pkgs/2b3-gnumake.pkg
|
|
pkgs/3b-nix.pkg: pkgs/2a6-linux-headers.pkg
|
|
pkgs/3b-nix.pkg: pkgs/3a-sqlite.pkg
|
|
pkgs/3b-nix.pkg: pkgs/3a-boost.pkg
|
|
pkgs/3b-nix.pkg: pkgs/3a-pkg-config.pkg
|
|
pkgs/3b-nix.pkg: pkgs/3a-curl.pkg
|
|
pkgs/3b-nix.pkg: pkgs/3a-editline.pkg
|
|
pkgs/3b-nix.pkg: pkgs/3a-brotli.pkg
|
|
pkgs/3b-nix.pkg: pkgs/3a-seccomp.pkg
|
|
pkgs/3b-nix.pkg: pkgs/3a-libarchive.pkg
|
|
pkgs/3b-nix.pkg: pkgs/3a-libsodium.pkg
|
|
pkgs/3b-nix.pkg: pkgs/3a-lowdown.pkg
|
|
pkgs/3b-nix.pkg: pkgs/3a-nlohmann-json.pkg
|
|
pkgs/3b-nix.pkg: pkgs/3b-busybox-static.pkg
|
|
pkgs/3b-nix.pkg: downloads/queue.h
|
|
pkgs/3b-nix.pkg: downloads/nix-2.17.0-zilched.tar.xz
|
|
|
|
pkgs/4-rebootstrap-using-nix.pkg: pkgs/2b0-musl.pkg
|
|
pkgs/4-rebootstrap-using-nix.pkg: pkgs/2b1-clang.pkg
|
|
pkgs/4-rebootstrap-using-nix.pkg: pkgs/2b2-busybox.pkg
|
|
pkgs/4-rebootstrap-using-nix.pkg: pkgs/3a-boost.pkg
|
|
pkgs/4-rebootstrap-using-nix.pkg: pkgs/3a-pkg-config.pkg
|
|
pkgs/4-rebootstrap-using-nix.pkg: pkgs/3a-sqlite.pkg
|
|
pkgs/4-rebootstrap-using-nix.pkg: pkgs/3a-curl.pkg
|
|
pkgs/4-rebootstrap-using-nix.pkg: pkgs/3a-editline.pkg
|
|
pkgs/4-rebootstrap-using-nix.pkg: pkgs/3a-brotli.pkg
|
|
pkgs/4-rebootstrap-using-nix.pkg: pkgs/3a-seccomp.pkg
|
|
pkgs/4-rebootstrap-using-nix.pkg: pkgs/3a-libarchive.pkg
|
|
pkgs/4-rebootstrap-using-nix.pkg: pkgs/3a-libsodium.pkg
|
|
pkgs/4-rebootstrap-using-nix.pkg: pkgs/3a-lowdown.pkg
|
|
pkgs/4-rebootstrap-using-nix.pkg: pkgs/3a-nlohmann-json.pkg
|
|
pkgs/4-rebootstrap-using-nix.pkg: pkgs/3b-tinycc-static.pkg
|
|
pkgs/4-rebootstrap-using-nix.pkg: pkgs/3b-busybox-static.pkg
|
|
pkgs/4-rebootstrap-using-nix.pkg: pkgs/3b-nix.pkg
|
|
###
|
|
pkgs/4-rebootstrap-using-nix.pkg: stage/protosrc
|
|
###
|
|
pkgs/4-rebootstrap-using-nix.pkg: recipes/1-stage1.c
|
|
pkgs/4-rebootstrap-using-nix.pkg: recipes/1-stage1/seed.host-executed.sh
|
|
pkgs/4-rebootstrap-using-nix.pkg: recipes/1-stage1/syscall.h
|
|
pkgs/4-rebootstrap-using-nix.pkg: recipes/1-stage1/protobusybox.c
|
|
pkgs/4-rebootstrap-using-nix.pkg: recipes/1-stage1/protobusybox.h
|
|
pkgs/4-rebootstrap-using-nix.pkg: recipes/1-stage1/hello.c
|
|
###
|
|
pkgs/4-rebootstrap-using-nix.pkg: default.nix
|
|
pkgs/4-rebootstrap-using-nix.pkg: using-nix/1-stage1.nix
|
|
pkgs/4-rebootstrap-using-nix.pkg: using-nix/2a0-static-gnumake.nix
|
|
pkgs/4-rebootstrap-using-nix.pkg: using-nix/2a1-static-binutils.nix
|
|
pkgs/4-rebootstrap-using-nix.pkg: using-nix/2a2-static-gnugcc4-c.nix
|
|
pkgs/4-rebootstrap-using-nix.pkg: using-nix/2a3-intermediate-musl.nix
|
|
pkgs/4-rebootstrap-using-nix.pkg: using-nix/2a4-gnugcc4-cpp.nix
|
|
pkgs/4-rebootstrap-using-nix.pkg: using-nix/2a5-gnugcc10.nix
|
|
pkgs/4-rebootstrap-using-nix.pkg: using-nix/2a6-linux-headers.nix
|
|
pkgs/4-rebootstrap-using-nix.pkg: using-nix/2a7-cmake.nix
|
|
pkgs/4-rebootstrap-using-nix.pkg: using-nix/2a8-python.nix
|
|
pkgs/4-rebootstrap-using-nix.pkg: using-nix/2a9-intermediate-clang.nix
|
|
pkgs/4-rebootstrap-using-nix.pkg: using-nix/2b0-musl.nix
|
|
pkgs/4-rebootstrap-using-nix.pkg: using-nix/2b1-clang.nix
|
|
pkgs/4-rebootstrap-using-nix.pkg: using-nix/2b2-busybox.nix
|
|
###
|
|
pkgs/4-rebootstrap-using-nix.pkg: downloads/make-4.4.1.tar.gz
|
|
pkgs/4-rebootstrap-using-nix.pkg: downloads/binutils-2.39.tar.xz
|
|
pkgs/4-rebootstrap-using-nix.pkg: downloads/gcc-4.7.4.tar.bz2
|
|
pkgs/4-rebootstrap-using-nix.pkg: downloads/gmp-4.3.2.tar.xz
|
|
pkgs/4-rebootstrap-using-nix.pkg: downloads/mpfr-2.4.2.tar.xz
|
|
pkgs/4-rebootstrap-using-nix.pkg: downloads/mpc-0.8.1.tar.gz
|
|
pkgs/4-rebootstrap-using-nix.pkg: downloads/musl-1.2.4.tar.gz
|
|
pkgs/4-rebootstrap-using-nix.pkg: downloads/gcc-10.5.0.tar.xz
|
|
pkgs/4-rebootstrap-using-nix.pkg: downloads/gmp-6.1.0.tar.xz
|
|
pkgs/4-rebootstrap-using-nix.pkg: downloads/mpfr-3.1.4.tar.xz
|
|
pkgs/4-rebootstrap-using-nix.pkg: downloads/mpc-1.0.3.tar.gz
|
|
pkgs/4-rebootstrap-using-nix.pkg: downloads/isl-0.18.tar.bz2
|
|
pkgs/4-rebootstrap-using-nix.pkg: downloads/linux-6.4.12.tar.xz
|
|
pkgs/4-rebootstrap-using-nix.pkg: downloads/cmake-3.27.4.tar.gz
|
|
pkgs/4-rebootstrap-using-nix.pkg: downloads/Python-3.12.0.tar.xz
|
|
pkgs/4-rebootstrap-using-nix.pkg: downloads/llvm-project-17.0.1.src.tar.xz
|
|
pkgs/4-rebootstrap-using-nix.pkg: downloads/busybox-1.36.1.tar.bz2
|
|
|
|
pkgs/5-go-beyond-using-nix.pkg: pkgs/2b0-musl.pkg
|
|
pkgs/5-go-beyond-using-nix.pkg: pkgs/2b1-clang.pkg
|
|
pkgs/5-go-beyond-using-nix.pkg: pkgs/2b2-busybox.pkg
|
|
pkgs/5-go-beyond-using-nix.pkg: pkgs/3a-boost.pkg
|
|
pkgs/5-go-beyond-using-nix.pkg: pkgs/3a-pkg-config.pkg
|
|
pkgs/5-go-beyond-using-nix.pkg: pkgs/3a-sqlite.pkg
|
|
pkgs/5-go-beyond-using-nix.pkg: pkgs/3a-curl.pkg
|
|
pkgs/5-go-beyond-using-nix.pkg: pkgs/3a-editline.pkg
|
|
pkgs/5-go-beyond-using-nix.pkg: pkgs/3a-brotli.pkg
|
|
pkgs/5-go-beyond-using-nix.pkg: pkgs/3a-seccomp.pkg
|
|
pkgs/5-go-beyond-using-nix.pkg: pkgs/3a-libarchive.pkg
|
|
pkgs/5-go-beyond-using-nix.pkg: pkgs/3a-libsodium.pkg
|
|
pkgs/5-go-beyond-using-nix.pkg: pkgs/3a-lowdown.pkg
|
|
pkgs/5-go-beyond-using-nix.pkg: pkgs/3a-nlohmann-json.pkg
|
|
pkgs/5-go-beyond-using-nix.pkg: pkgs/3b-tinycc-static.pkg
|
|
pkgs/5-go-beyond-using-nix.pkg: pkgs/3b-busybox-static.pkg
|
|
pkgs/5-go-beyond-using-nix.pkg: pkgs/3b-nix.pkg
|
|
pkgs/5-go-beyond-using-nix.pkg: pkgs/4-rebootstrap-using-nix.pkg
|
|
###
|
|
pkgs/5-go-beyond-using-nix.pkg: stage/protosrc
|
|
###
|
|
pkgs/5-go-beyond-using-nix.pkg: recipes/1-stage1.c
|
|
pkgs/5-go-beyond-using-nix.pkg: recipes/1-stage1/seed.host-executed.sh
|
|
pkgs/5-go-beyond-using-nix.pkg: recipes/1-stage1/syscall.h
|
|
pkgs/5-go-beyond-using-nix.pkg: recipes/1-stage1/protobusybox.c
|
|
pkgs/5-go-beyond-using-nix.pkg: recipes/1-stage1/protobusybox.h
|
|
pkgs/5-go-beyond-using-nix.pkg: recipes/1-stage1/hello.c
|
|
###
|
|
pkgs/5-go-beyond-using-nix.pkg: default.nix
|
|
pkgs/5-go-beyond-using-nix.pkg: using-nix/1-stage1.nix
|
|
pkgs/5-go-beyond-using-nix.pkg: using-nix/2a0-static-gnumake.nix
|
|
pkgs/5-go-beyond-using-nix.pkg: using-nix/2a1-static-binutils.nix
|
|
pkgs/5-go-beyond-using-nix.pkg: using-nix/2a2-static-gnugcc4-c.nix
|
|
pkgs/5-go-beyond-using-nix.pkg: using-nix/2a3-intermediate-musl.nix
|
|
pkgs/5-go-beyond-using-nix.pkg: using-nix/2a4-gnugcc4-cpp.nix
|
|
pkgs/5-go-beyond-using-nix.pkg: using-nix/2a5-gnugcc10.nix
|
|
pkgs/5-go-beyond-using-nix.pkg: using-nix/2a6-linux-headers.nix
|
|
pkgs/5-go-beyond-using-nix.pkg: using-nix/2a7-cmake.nix
|
|
pkgs/5-go-beyond-using-nix.pkg: using-nix/2a8-python.nix
|
|
pkgs/5-go-beyond-using-nix.pkg: using-nix/2a9-intermediate-clang.nix
|
|
pkgs/5-go-beyond-using-nix.pkg: using-nix/2b0-musl.nix
|
|
pkgs/5-go-beyond-using-nix.pkg: using-nix/2b1-clang.nix
|
|
pkgs/5-go-beyond-using-nix.pkg: using-nix/2b2-busybox.nix
|
|
###
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/make-4.4.1.tar.gz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/binutils-2.39.tar.xz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/gcc-4.7.4.tar.bz2
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/gmp-4.3.2.tar.xz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/mpfr-2.4.2.tar.xz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/mpc-0.8.1.tar.gz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/musl-1.2.4.tar.gz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/gcc-10.5.0.tar.xz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/gmp-6.1.0.tar.xz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/mpfr-3.1.4.tar.xz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/mpc-1.0.3.tar.gz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/isl-0.18.tar.bz2
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/linux-6.4.12.tar.xz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/cmake-3.27.4.tar.gz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/Python-3.11.5.tar.xz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/llvm-project-17.0.1.src.tar.xz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/curl-8.2.1.tar.xz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/mbedtls-3.4.1.tar.gz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/boost_1_83_0.tar.bz2
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/editline-1.17.1.tar.xz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/brotli-1.0.9.tar.gz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/gperf-3.1.tar.gz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/libsodium-1.0.18.tar.gz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/libarchive-3.7.1.tar.xz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/lowdown-1.0.2.tar.gz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/libseccomp-2.5.4.tar.gz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/nlohmann-json-3.11.2.tar.xz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/nix-2.17.0-zilched.tar.xz
|
|
pkgs/5-go-beyond-using-nix.pkg: flake.nix
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/queue.h
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/ZilchOS-core-2023.10.1.tar.gz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/limine-5.20230830.0.tar.xz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/patchelf-0.18.0.tar.bz2
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/pkg-config-0.29.2.tar.gz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/sqlite-autoconf-3430000.tar.gz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/bison-3.8.2.tar.xz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/m4-1.4.19.tar.xz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/flex-2.6.4.tar.gz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/mtools-4.0.43.tar.bz2
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/xorriso-1.5.6.pl02.tar.gz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/nasm-2.16.01.tar.xz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/zstd-1.5.5.tar.gz
|
|
pkgs/5-go-beyond-using-nix.pkg: downloads/cacert-2023-08-22.pem
|
|
|
|
iso: ZilchOS-core.iso
|
|
|
|
ZilchOS-core.iso: pkgs/5-go-beyond-using-nix.pkg
|
|
tar --strip-components=2 -xf pkgs/5-go-beyond-using-nix.pkg \
|
|
store/5-go-beyond-using-nix/ZilchOS-core.iso
|
|
sha256sum -c <<<"$(ISO_CHECKSUM) ZilchOS-core.iso"
|
|
|
|
################################################################################
|
|
|
|
# Separate one for tests to help readability of the above
|
|
|
|
pkgs/_1.test.pkg: pkgs/1-stage1.pkg
|
|
|
|
pkgs/_2a3.test.pkg: pkgs/1-stage1.pkg
|
|
pkgs/_2a3.test.pkg: pkgs/2a0-static-gnumake.pkg
|
|
pkgs/_2a3.test.pkg: pkgs/2a1-static-binutils.pkg
|
|
pkgs/_2a3.test.pkg: pkgs/2a2-static-gnugcc4-c.pkg
|
|
pkgs/_2a3.test.pkg: pkgs/2a3-intermediate-musl.pkg
|
|
|
|
pkgs/_2a4.test.pkg: pkgs/1-stage1.pkg
|
|
pkgs/_2a4.test.pkg: pkgs/2a0-static-gnumake.pkg
|
|
pkgs/_2a4.test.pkg: pkgs/2a1-static-binutils.pkg
|
|
pkgs/_2a4.test.pkg: pkgs/2a3-intermediate-musl.pkg
|
|
pkgs/_2a4.test.pkg: pkgs/2a4-gnugcc4-cpp.pkg
|
|
|
|
pkgs/_2a5.test.pkg: pkgs/1-stage1.pkg
|
|
pkgs/_2a5.test.pkg: pkgs/2a0-static-gnumake.pkg
|
|
pkgs/_2a5.test.pkg: pkgs/2a1-static-binutils.pkg
|
|
pkgs/_2a5.test.pkg: pkgs/2a3-intermediate-musl.pkg
|
|
pkgs/_2a5.test.pkg: pkgs/2a5-gnugcc10.pkg
|
|
|
|
pkgs/_2a9.test.pkg: pkgs/1-stage1.pkg
|
|
pkgs/_2a9.test.pkg: pkgs/2a0-static-gnumake.pkg
|
|
pkgs/_2a9.test.pkg: pkgs/2a3-intermediate-musl.pkg
|
|
pkgs/_2a9.test.pkg: pkgs/2a9-intermediate-clang.pkg
|
|
|
|
pkgs/_2b1.test.pkg: pkgs/1-stage1.pkg
|
|
pkgs/_2b1.test.pkg: pkgs/2a0-static-gnumake.pkg
|
|
pkgs/_2b1.test.pkg: pkgs/2b0-musl.pkg
|
|
pkgs/_2b1.test.pkg: pkgs/2b1-clang.pkg
|
|
|
|
pkgs/_3b.test.pkg: pkgs/2b0-musl.pkg
|
|
pkgs/_3b.test.pkg: pkgs/2b1-clang.pkg
|
|
pkgs/_3b.test.pkg: pkgs/2b2-busybox.pkg
|
|
pkgs/_3b.test.pkg: pkgs/3a-boost.pkg
|
|
pkgs/_3b.test.pkg: pkgs/3a-pkg-config.pkg
|
|
pkgs/_3b.test.pkg: pkgs/3a-sqlite.pkg
|
|
pkgs/_3b.test.pkg: pkgs/3a-curl.pkg
|
|
pkgs/_3b.test.pkg: pkgs/3a-editline.pkg
|
|
pkgs/_3b.test.pkg: pkgs/3a-brotli.pkg
|
|
pkgs/_3b.test.pkg: pkgs/3a-seccomp.pkg
|
|
pkgs/_3b.test.pkg: pkgs/3a-libarchive.pkg
|
|
pkgs/_3b.test.pkg: pkgs/3a-libsodium.pkg
|
|
pkgs/_3b.test.pkg: pkgs/3a-lowdown.pkg
|
|
pkgs/_3b.test.pkg: pkgs/3b-nix.pkg
|
|
|
|
all-tests: pkgs/_1.test.pkg
|
|
all-tests: pkgs/_2a3.test.pkg
|
|
all-tests: pkgs/_2a4.test.pkg
|
|
all-tests: pkgs/_2a5.test.pkg
|
|
all-tests: pkgs/_2a9.test.pkg
|
|
all-tests: pkgs/_2b1.test.pkg
|
|
all-tests: pkgs/_3b.test.pkg
|
|
|
|
################################################################################
|
|
|
|
.PHONY: all-pkgs
|
|
all-pkgs: pkgs/0-tcc-seed.pkg
|
|
all-pkgs: pkgs/1-stage1.pkg
|
|
all-pkgs: pkgs/2a0-static-gnumake.pkg
|
|
all-pkgs: pkgs/2a1-static-binutils.pkg
|
|
all-pkgs: pkgs/2a2-static-gnugcc4-c.pkg
|
|
all-pkgs: pkgs/2a3-intermediate-musl.pkg
|
|
all-pkgs: pkgs/2a4-gnugcc4-cpp.pkg
|
|
all-pkgs: pkgs/2a5-gnugcc10.pkg
|
|
all-pkgs: pkgs/2a6-linux-headers.pkg
|
|
all-pkgs: pkgs/2a7-cmake.pkg
|
|
all-pkgs: pkgs/2a8-python.pkg
|
|
all-pkgs: pkgs/2a9-intermediate-clang.pkg
|
|
all-pkgs: pkgs/2b0-musl.pkg
|
|
all-pkgs: pkgs/2b1-clang.pkg
|
|
all-pkgs: pkgs/2b2-busybox.pkg
|
|
all-pkgs: pkgs/2b3-gnumake.pkg
|
|
all-pkgs: pkgs/3a-sqlite.pkg
|
|
all-pkgs: pkgs/3a-boost.pkg
|
|
all-pkgs: pkgs/3a-mbedtls.pkg
|
|
all-pkgs: pkgs/3a-pkg-config.pkg
|
|
all-pkgs: pkgs/3a-curl.pkg
|
|
all-pkgs: pkgs/3a-editline.pkg
|
|
all-pkgs: pkgs/3a-brotli.pkg
|
|
all-pkgs: pkgs/3a-gnugperf.pkg
|
|
all-pkgs: pkgs/3a-seccomp.pkg
|
|
all-pkgs: pkgs/3a-libarchive.pkg
|
|
all-pkgs: pkgs/3a-libsodium.pkg
|
|
all-pkgs: pkgs/3a-lowdown.pkg
|
|
all-pkgs: pkgs/3a-nlohmann-json.pkg
|
|
all-pkgs: pkgs/3b-busybox-static.pkg
|
|
all-pkgs: pkgs/3b-tinycc-static.pkg
|
|
all-pkgs: pkgs/3b-nix.pkg
|
|
all-pkgs: pkgs/4-rebootstrap-using-nix.pkg
|
|
all-pkgs: pkgs/5-go-beyond-using-nix.pkg
|
|
|
|
################################################################################
|
|
|
|
ifeq ($(USE_CCACHE), 1)
|
|
pkgs/2a1-static-binutils.pkg: pkgs/_2a0-ccache.pkg
|
|
pkgs/2a2-static-gnugcc4-c.pkg: pkgs/_2a0-ccache.pkg
|
|
pkgs/2a3-intermediate-musl.pkg: pkgs/_2a0-ccache.pkg
|
|
pkgs/2a4-gnugcc4-cpp.pkg: pkgs/_2a0-ccache.pkg
|
|
pkgs/2a5-gnugcc10.pkg: pkgs/_2a0-ccache.pkg
|
|
pkgs/2a6-linux-headers.pkg: pkgs/_2a0-ccache.pkg
|
|
pkgs/2a7-cmake.pkg: pkgs/_2a0-ccache.pkg
|
|
pkgs/2a8-python.pkg: pkgs/_2a0-ccache.pkg
|
|
pkgs/2a9-intermediate-clang.pkg: pkgs/_2a0-ccache.pkg
|
|
pkgs/2b0-musl.pkg: pkgs/_2a0-ccache.pkg
|
|
pkgs/2b1-clang.pkg: pkgs/_2a0-ccache.pkg
|
|
pkgs/2b2-busybox.pkg: pkgs/_2a0-ccache.pkg
|
|
pkgs/2b3-gnumake.pkg: pkgs/_2a0-ccache.pkg
|
|
pkgs/3a-sqlite.pkg: pkgs/_2a0-ccache.pkg
|
|
pkgs/3a-boost.pkg: pkgs/_2a0-ccache.pkg
|
|
pkgs/3a-mbedtls.pkg: pkgs/_2a0-ccache.pkg
|
|
pkgs/3a-pkg-config.pkg: pkgs/_2a0-ccache.pkg
|
|
pkgs/3a-curl.pkg: pkgs/_2a0-ccache.pkg
|
|
pkgs/3a-editline.pkg: pkgs/_2a0-ccache.pkg
|
|
pkgs/3a-brotli.pkg: pkgs/_2a0-ccache.pkg
|
|
pkgs/3a-gnugperf.pkg: pkgs/_2a0-ccache.pkg
|
|
pkgs/3a-seccomp.pkg: pkgs/_2a0-ccache.pkg
|
|
pkgs/3a-libarchive.pkg: pkgs/_2a0-ccache.pkg
|
|
pkgs/3a-libsodium.pkg: pkgs/_2a0-ccache.pkg
|
|
pkgs/3a-lowdown.pkg: pkgs/_2a0-ccache.pkg
|
|
pkgs/3b-busybox-static.pkg: pkgs/_2a0-ccache.pkg
|
|
pkgs/3b-tinycc-static.pkg: pkgs/_2a0-ccache.pkg
|
|
pkgs/3b-nix.pkg: pkgs/_2a0-ccache.pkg
|
|
pkgs/4-rebootstrap-using-nix.pkg: pkgs/_2a0-ccache.pkg
|
|
pkgs/5-go-beyond-using-nix.pkg: pkgs/_2a0-ccache.pkg
|
|
endif
|
|
|
|
################################################################################
|
|
|
|
.PHONY: verify-pkgs-checksums verify-all-pkgs-checksums update-pkgs-checksums
|
|
verify-pkgs-checksums:
|
|
@status=true; \
|
|
while read expected_csum pkgname; do \
|
|
pkg=$${pkgname%%.tar}.pkg; \
|
|
if [[ ! -e "$$pkg" ]]; then \
|
|
status=false; \
|
|
echo "MISSING $$pkgname"; \
|
|
continue; \
|
|
fi; \
|
|
computed_csum=$$(zstd -qcd "$$pkg" | sha256sum); \
|
|
computed_csum=$$(<<<$$computed_csum tr ' ' '\t' | cut -f1); \
|
|
short_csum=$$(<<<$$computed_csum head -c7); \
|
|
if [[ "$$pkg" == pkgs/0-tcc-seed.pkg ]]; then \
|
|
if ! sha256sum -c <<<"$(TCC_CHECKSUM) tcc-seed" \
|
|
>/dev/null; then \
|
|
echo "$$short_csum pkgs/0.tar CUSTOM"; \
|
|
continue; \
|
|
fi; \
|
|
fi; \
|
|
if make -sq "$$pkg"; then \
|
|
dated=''; \
|
|
else \
|
|
status=false; \
|
|
dated=" OUTDATED"; \
|
|
fi; \
|
|
if [[ "$$expected_csum" == "$$computed_csum" ]]; then \
|
|
echo "$$short_csum $$pkgname OK$$dated"; \
|
|
else \
|
|
status=false; \
|
|
echo "$$short_csum $$pkgname NOT OK$$dated"; \
|
|
echo " computed: $$computed_csum"; \
|
|
echo " expected: $$expected_csum"; \
|
|
fi; \
|
|
done < verify.pkgs.sha256; $$status\
|
|
|
|
verify-all-pkgs-checksums: all-pkgs
|
|
$(MAKE) verify-pkgs-checksums
|
|
|
|
update-pkgs-checksums:
|
|
@:> verify.pkgs.sha256
|
|
@find pkgs | grep '\.pkg$$' | grep -v '\/_' | sort | \
|
|
while read p; do \
|
|
name=$${p%%.pkg}.tar; \
|
|
csum=$$(zstd -qcd "$$p" | sha256sum | tr ' ' '\t' | cut -f1); \
|
|
short_csum=$$(<<<$$csum head -c7); \
|
|
echo "$$csum $$name" >> verify.pkgs.sha256; \
|
|
echo "$$short_csum $$name"; \
|
|
done
|
|
verify.pkgs.sha256: all-pkgs update-pkgs-checksums
|
|
|
|
nix-checksums-stage4: pkgs/4-rebootstrap-using-nix.pkg
|
|
tar tf pkgs/4-rebootstrap-using-nix.pkg store \
|
|
| grep -E 'store/[a-z0-9]{32}-[^/]*/?$$' \
|
|
| sed -E 's|.*/([a-z0-9]{32}-[^/]*)/?|\1|' \
|
|
| sort \
|
|
> nix-checksums-stage4
|
|
|
|
nix-checksums-stage5: pkgs/5-go-beyond-using-nix.pkg
|
|
tar Oxf pkgs/5-go-beyond-using-nix.pkg \
|
|
store/5-go-beyond-using-nix/hashes \
|
|
> nix-checksums-stage5
|
|
|
|
verify-all-nix-stage4-checksums: nix-checksums-stage4 verify.nix
|
|
@status=true; \
|
|
while IFS=" " read ref_hash pkg; do \
|
|
if grep -Fq "$$ref_hash-bootstrap" nix-checksums-stage4; then \
|
|
echo " $$ref_hash $$pkg"; \
|
|
else \
|
|
status=false; \
|
|
echo "! $$ref_hash $$pkg MISSING"; \
|
|
fi; \
|
|
done < verify.nix; $$status
|
|
|
|
verify-all-nix-stage5-checksums: downloads/ZilchOS-core-2023.10.1.tar.gz
|
|
verify-all-nix-stage5-checksums: nix-checksums-stage5 verify.nix
|
|
@status=true; \
|
|
tar -Oxf downloads/ZilchOS-core-2023.10.1.tar.gz \
|
|
--wildcards */.maint/hashes | \
|
|
while IFS=' ' read ref_hash pkg; do \
|
|
stage5_hash=$$(grep " $$pkg$$" nix-checksums-stage5 \
|
|
| sed -E 's|^([a-z0-9]{32}) .*|\1|'); \
|
|
if [[ "$$ref_hash" == "$$stage5_hash" ]]; then \
|
|
echo " $$ref_hash $$pkg"; \
|
|
else \
|
|
status=false; \
|
|
echo "- $$ref_hash $$pkg"; \
|
|
echo "+ $$stage5_hash $$pkg"; \
|
|
fi; \
|
|
done; $$status
|
|
NIX_BUILD_X = nix build --no-warn-dirty --option substitute false --no-link
|
|
verify-nix-plain-checksums: verify.nix
|
|
@status=true; \
|
|
while IFS=" " read ref_hash pkg; do \
|
|
plain_hash=$$($(NIX_BUILD_X) ".#$$pkg" --print-out-paths \
|
|
| sed -E 's|.*/([a-z0-9]{32})-.*|\1|'); \
|
|
if [[ "$$ref_hash" == "$$plain_hash" ]]; then \
|
|
echo " $$ref_hash $$pkg"; \
|
|
else \
|
|
status=false; \
|
|
echo "- $$ref_hash $$pkg"; \
|
|
echo "+ $$plain_hash $$pkg"; \
|
|
fi; \
|
|
done < verify.nix; $$status
|
|
|
|
verify-all-nix-plain-checksums: verify.nix
|
|
@$(NIX_BUILD_X) '.#toolchain' '.#libc' '.#musl'
|
|
@$(MAKE) verify-nix-plain-checksums
|
|
|
|
################################################################################
|
|
|
|
clean-tmp:
|
|
@echo "### Makefile: removing tmp, keeping stage, pkgs and downloads..."
|
|
rm -rf tmp
|
|
|
|
clean-stage:
|
|
@echo "### Makefile: removing stage, keeping tmp, pkgs and downloads..."
|
|
rm -rf stage
|
|
|
|
clean:
|
|
@echo "### Makefile: removing stage, tmp, pkgs, iso, keeping downloads..."
|
|
rm -rf stage tmp pkgs \
|
|
nix-checksums-stage4 nix-checksums-stage5 \
|
|
nix-checksums-stage5-custom \
|
|
ZilchOS-core.iso ZilchOS-core-raw.iso
|
|
|
|
deepclean:
|
|
@echo "### Makefile: removing stage, tmp, pkgs, iso and downloads..."
|
|
rm -rf stage tmp pkgs downloads \
|
|
nix-checksums-stage4 nix-checksums-stage5 \
|
|
nix-checksums-stage5-custom \
|
|
ZilchOS-core.iso ZilchOS-core-raw.iso
|