#!/bin/bash # Combine a root filesystem directory and a control image into an $ARCH-specific # chroot containing native build control files, suitable for chrooting into. if test $Argc -ne 2 { echo "usage: $0 "'$ARCH $CONTROL_IMAGE' > !2 exit 1 } # Make sure prerequisites exist for i in [build/{root-filesystem,native-compiler}-"$1" $2] { if test ! -e $i { echo "No $i" > !2 exit 1 } } if test $[id -u] -ne 0 { echo "Not root"> !2 exit 1 } # Zap old stuff (if any) test -z $CHROOT && setglobal CHROOT = ""build/chroot-$1"" trap 'more/zapchroot.sh "$CHROOT"' EXIT if test -e $CHROOT { more/zapchroot.sh $CHROOT || exit 1 } # Copy root filesystem and native compiler cp -lan "build/root-filesystem-$1/." $CHROOT || exit 1 cp -lan "build/native-compiler-$1/." $CHROOT || exit 1 # splice in control image if test -d $2 { mount -o bind $2 "$CHROOT/mnt" && mount -o remount,ro "$CHROOT/mnt"|| exit 1 } else { mount -o loop $2 "$CHROOT/mnt" || exit 1 } # Output some usage hints env CPUS=1 HOST=$1 chroot $CHROOT /sbin/init.sh