cd "$(dirname "$0")"
+export CARGO_HOME="$(pwd)/build/cargo"
+export RUSTUP_HOME="$(pwd)/build/rust"
+source "$(pwd)/build/cargo/env"
+
unset LC_CTYPE
unset LANG
+handle_crosscompile()
+{
+ if [ "`uname -m`" != 'aarch64' ]; then
+ export ARCH=arm64
+ export CROSS_COMPILE=aarch64-linux-gnu-
+ sudo apt install -y libc6-dev-arm64-cross
+ fi
+}
+
build_linux()
{
(
+ handle_crosscompile
test -d linux || git clone https://github.com/AsahiLinux/linux
cd linux
git fetch -a -t
- git reset --hard asahi-6.1-rc8-3;
- source "$HOME/.cargo/env"
+ git reset --hard asahi-6.3-7;
cat ../../config.txt > .config
- make LLVM=-15 olddefconfig
- make -j `nproc` LLVM=-15 V=0 bindeb-pkg > /dev/null
+ make LLVM=${CLANG_VERSION} rustavailable
+ make LLVM=${CLANG_VERSION} olddefconfig
+ make -j `nproc` LLVM=${CLANG_VERSION} V=0 bindeb-pkg > /dev/null
)
}
test -d m1n1 || git clone --recursive https://github.com/AsahiLinux/m1n1
cd m1n1
git fetch -a -t
- git reset --hard v1.2.3;
+ git reset --hard v1.2.9;
make -j `nproc`
)
}
build_uboot()
{
(
+ handle_crosscompile
test -d u-boot || git clone https://github.com/AsahiLinux/u-boot
cd u-boot
git fetch -a -t
- git reset --hard asahi-v2022.10-1;
+ git reset --hard asahi-v2023.04-2;
make apple_m1_defconfig
make -j `nproc`
package_boot_bin()
{
(
- export M1N1_VERSION=1.2.3-2
+ export M1N1_VERSION=1.2.9
rm -rf m1n1_${M1N1_VERSION}_arm64
mkdir -p m1n1_${M1N1_VERSION}_arm64/DEBIAN m1n1_${M1N1_VERSION}_arm64/usr/lib/m1n1/
cp u-boot.bin m1n1_${M1N1_VERSION}_arm64/usr/lib/m1n1/boot.bin
Next to m1n1 this also contains the device trees and u-boot.
EOF
- cat > m1n1_${M1N1_VERSION}_arm64/DEBIAN/postinst <<EOF
+ cat > m1n1_${M1N1_VERSION}_arm64/DEBIAN/postinst <<'EOF'
#!/bin/bash
export PATH=/bin
)
}
+if type clang-15; then
+ export CLANG_VERSION=-15
+elif type clang-11; then
+ export CLANG_VERSION=-11
+fi
+
mkdir -p build
cd build