eth0s/01-toolchain

125 lines
2.3 KiB
Text
Raw Normal View History

2021-04-18 08:19:42 +08:00
#!/bin/sh -e
fetch() {
for s in $source; do
filename=${s##*/}
if [ "$s" != "$filename" ]; then
if [ ! -f $SRCDIR/$filename ]; then
echo "fetching $s"
curl -C - -L --fail --ftp-pasv --retry 999 --retry-delay 3 -o $SRCDIR/$filename.part $s && \
mv $SRCDIR/$filename.part $SRCDIR/$filename || {
echo "failed fetch $s"
exit 1
}
fi
fi
done
}
unpack() {
rm -fr "$WORKDIR/$pkg"
mkdir -p "$WORKDIR/$pkg"
for src in $source; do
filename=${src##*/}
case $src in
*.tar|*.tar.gz|*.tar.Z|*.tgz|*.tar.bz2|*.tbz2|*.tar.xz|*.txz|*.tar.lzma|*.zip)
echo "extracting $filename..."
tar -xf "$SRCDIR/$filename" -C "$WORKDIR/$pkg" || {
echo "failed extracting $filename"
exit 1
};;
esac
done
}
2021-04-18 08:19:42 +08:00
buildtc() {
cd $WORKDIR/$name
2021-05-04 08:20:54 +08:00
(set -e -x; build)
if [ $? -ne 0 ]; then
echo "!!! build $name-$version failed !!!"
exit 1
else
echo "--- build $name-$version success ---"
fi
[ "$name" ] && rm -fr $WORKDIR/$name
echo $name-$version > $LFS/tools/$(basename $script)
}
checkdone() {
if [ -e $LFS/tools/$(basename $script) ]; then
echo "*** skip $(basename $script) ***"
return 1
2019-10-06 17:55:25 +08:00
else
echo ">>> building $(basename $script) <<<"
return 0
fi
}
2021-05-04 08:20:54 +08:00
build() {
:
}
main() {
for script in $TCDIR/[0-9][0-9]-*; do
checkdone || continue
2021-04-18 08:19:42 +08:00
cd $CWD
. $script
pkg=$name
fetch
unpack
buildtc
unset source name version build
#build_stage1 $script
done
}
2018-12-01 00:12:45 +08:00
2018-12-02 08:19:43 +08:00
if [ $(id -u) = 0 ]; then
echo "$0 script need to run as regular user!"
exit 1
fi
CWD=$PWD
2018-12-01 00:12:45 +08:00
2020-11-13 13:58:01 +08:00
if [ -f $CWD/config ]; then
source $CWD/config
fi
2018-12-02 08:19:43 +08:00
PATH=/tools/bin:/bin:/usr/bin
2018-12-02 08:19:43 +08:00
2020-06-28 23:38:04 +08:00
TCDIR=$CWD/toolchain
PATCHDIR=$CWD/patches
FILEDIR=$CWD/files
2020-11-13 13:58:01 +08:00
LFS_TGT=x86_64-lfs-linux-gnu
LFS_TGT32=i686-lfs-linux-gnu
MAKEFLAGS="${MAKEFLAGS:--j$(nproc)}"
2021-04-18 08:19:42 +08:00
LFS="${LFS:-$CWD/lfs-rootfs}"
2020-11-13 13:58:01 +08:00
PKGDIR="${PKGDIR:-$CWD/pkg}"
SRCDIR="${SRCDIR:-$CWD/src}"
2021-04-18 08:19:42 +08:00
WORKDIR="${WORKDIR:-$CWD/work}"
2020-11-13 13:58:01 +08:00
CFLAGS="${CFLAGS:--O2 -march=x86-64 -pipe}"
export LC_ALL=C PATH MAKEFLAGS LFS LFS_TGT LFS_TGT32
2020-11-13 13:58:01 +08:00
mkdir -p $SRCDIR $PKGDIR $WORKDIR
if [ ! -d $LFS/tools ]; then
2021-04-18 08:19:42 +08:00
mkdir -pv $LFS/tools
2018-12-02 08:19:43 +08:00
fi
if [ ! -w $LFS ]; then
2021-04-18 08:19:42 +08:00
echo "'$LFS' directory has no right access"
2021-05-04 08:20:54 +08:00
echo "Please run 'chown -Rv $USER:$USER $LFS' as root"
2021-04-18 08:19:42 +08:00
exit 1
fi
2018-12-01 00:12:45 +08:00
if [ ! -L /tools ] || [ $(realpath /tools) != $LFS/tools ]; then
2021-05-04 08:20:54 +08:00
echo "Please create required '/tools' symlink by running 'ln -svf $LFS/tools /tools' as root"
2021-04-18 08:19:42 +08:00
exit 1
fi
2018-12-01 00:12:45 +08:00
main $@
2018-12-01 00:12:45 +08:00
exit 0