begin switching to iglunix-bootstrap
This commit is contained in:
parent
ae676959d1
commit
55f352d5d5
2 changed files with 130 additions and 0 deletions
111
autobuild.sh
Executable file
111
autobuild.sh
Executable file
|
@ -0,0 +1,111 @@
|
||||||
|
#!/bin/sh -e
|
||||||
|
|
||||||
|
mkdir -p build
|
||||||
|
|
||||||
|
cd build
|
||||||
|
# TODO: add option for using native toolchain for stage 0
|
||||||
|
[ -d 'iglunix-bootstrap' ] || git clone --depth=1 https://github.com/iglunix/iglunix-bootstrap
|
||||||
|
[ -d 'iglunix' ] || git clone --depth=1 https://github.com/iglunix/iglunix
|
||||||
|
[ -d 'iglupkg' ] || git clone --depth=1 https://github.com/iglunix/iglupkg
|
||||||
|
|
||||||
|
SYSROOT_S2=$(pwd)/sysroot
|
||||||
|
IP=$(pwd)/iglupkg/
|
||||||
|
|
||||||
|
LOGS=$(pwd)/logs
|
||||||
|
|
||||||
|
mkdir -p $LOGS
|
||||||
|
|
||||||
|
echo === STAGE 1 === Build cross toolchain
|
||||||
|
|
||||||
|
cd iglunix-bootstrap
|
||||||
|
MAKE=gmake bad --gmake ./boot.sh
|
||||||
|
SYSROOT_S1=$(pwd)/sysroot
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
echo === STAGE 1 === Done
|
||||||
|
|
||||||
|
s2_build() {
|
||||||
|
PKGDIR=$1
|
||||||
|
PKGNAME=$2
|
||||||
|
cd $1/$2
|
||||||
|
[ -f .s2 ] || ${IP}iglupkg.sh --with-cross=x86_64 --with-cross-dir=$SYSROOT_S1 --for-cross --for-cross-dir=/ fbp
|
||||||
|
touch .s2
|
||||||
|
# 2>$LOGS/$2.1.err > $LOGS/$2.1.out
|
||||||
|
cd ../../
|
||||||
|
}
|
||||||
|
|
||||||
|
s2_extract() {
|
||||||
|
PKGDIR=$1
|
||||||
|
PKGNAME=$2
|
||||||
|
cd $1/$2/out
|
||||||
|
tar -xf $2-*.tar.zst -C $SYSROOT_S2 -I zstd
|
||||||
|
cd ../../../
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
cd iglunix
|
||||||
|
|
||||||
|
echo === STAGE 2 === Build cross libs
|
||||||
|
|
||||||
|
s2_build linux musl
|
||||||
|
s2_build linux linux
|
||||||
|
s2_build base libunwind
|
||||||
|
s2_build base libcxx
|
||||||
|
|
||||||
|
echo === STAGE 2 === Assemble sysroot
|
||||||
|
|
||||||
|
[ -d "$SYSROOT_S2" ] || {
|
||||||
|
mkdir -p $SYSROOT_S2
|
||||||
|
|
||||||
|
s2_extract linux musl
|
||||||
|
s2_extract linux linux
|
||||||
|
s2_extract base libunwind
|
||||||
|
s2_extract base libcxx
|
||||||
|
}
|
||||||
|
|
||||||
|
echo === STAGE 3 === Build target packages
|
||||||
|
|
||||||
|
s3_build() {
|
||||||
|
PKGDIR=$1
|
||||||
|
PKGNAME=$2
|
||||||
|
cd $1/$2
|
||||||
|
[ -f .s3 ] || ${IP}iglupkg.sh --with-cross=x86_64 --with-cross-dir=$SYSROOT_S2 fbp
|
||||||
|
touch .s3
|
||||||
|
# 2>$LOGS/$2.2.err > $LOGS/$2.2.out
|
||||||
|
cd ../../
|
||||||
|
}
|
||||||
|
|
||||||
|
s3_build linux linux
|
||||||
|
s3_build linux musl
|
||||||
|
s3_build linux busybox
|
||||||
|
s3_build base mksh
|
||||||
|
s3_build base toybox
|
||||||
|
s3_build base libunwind
|
||||||
|
s3_build base libcxx
|
||||||
|
s3_build base llvm
|
||||||
|
|
||||||
|
touch .autobuilt
|
||||||
|
|
||||||
|
# order to build packages
|
||||||
|
#
|
||||||
|
# build stage 1 cross toolchain with stage 0:
|
||||||
|
#
|
||||||
|
# linux
|
||||||
|
# musl
|
||||||
|
# libunwind
|
||||||
|
# libcxx
|
||||||
|
# ...
|
||||||
|
#
|
||||||
|
# build stage 2 final packages
|
||||||
|
#
|
||||||
|
# linux
|
||||||
|
# musl
|
||||||
|
# libunwind
|
||||||
|
# libcxx
|
||||||
|
# llvm
|
||||||
|
#
|
||||||
|
# mksh
|
||||||
|
# toybox
|
||||||
|
# busybox
|
||||||
|
# clang
|
19
chroot.sh
Executable file
19
chroot.sh
Executable file
|
@ -0,0 +1,19 @@
|
||||||
|
#!/bin/sh -e
|
||||||
|
cd build
|
||||||
|
[ -f iglunix/.autobuilt ] || echo "ERROR: you need to run autobuild.sh first"
|
||||||
|
CHROOT=$(pwd)/chroot
|
||||||
|
mkdir -p $CHROOT
|
||||||
|
|
||||||
|
cex() {
|
||||||
|
PKGDIR=$1
|
||||||
|
PKGNAME=$2
|
||||||
|
tar -xf iglunix/$PKGDIR/$PKGNAME/out/$PKGNAME.*.tar.zst -I zstd -C $CHROOT
|
||||||
|
}
|
||||||
|
|
||||||
|
cex linux musl
|
||||||
|
cex linux busybox
|
||||||
|
cex base mksh
|
||||||
|
cex base toybox
|
||||||
|
cex base libunwind
|
||||||
|
cex base libcxx
|
||||||
|
cex base llvm
|
Loading…
Reference in a new issue