TylkoLinux/Einrichter-as-LFS.sh

112 lines
3.6 KiB
Bash
Raw Normal View History

2024-10-23 20:54:05 +02:00
#!/bin/bash
main() {
eal.setup.env
eal.setup.toolchain
2024-10-23 20:54:05 +02:00
}
function eal.setup.env() {
2024-10-23 20:54:05 +02:00
echo "The installer is about to begin setting up the environment. Please wait..."
sleep 2
cat > ~/.bash_profile << "EOF"
2024-10-23 20:54:05 +02:00
exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
EOF
cat > ~/.bashrc << "EOF"
2024-10-23 20:54:05 +02:00
set +h
umask 022
LFS=/mnt/lfs
LC_ALL=POSIX
LFS_TGT=$(uname -m)-lfs-linux-gnu
PATH=/usr/bin
if [ ! -L /bin ]; then PATH=/bin:$PATH; fi
PATH=$LFS/tools/bin:$PATH
CONFIG_SITE=$LFS/usr/share/config.site
2024-11-02 23:10:12 +01:00
MAKEFLAGS=-j$(nproc)
export LFS LC_ALL LFS_TGT PATH CONFIG_SITE MAKEFLAGS
2024-10-23 20:54:05 +02:00
EOF
source ~/.bash_profile
}
2024-11-03 21:12:23 +01:00
function eal.notification.buildconf() {echo "I: -- The installer is now configuring the build options --" && sleep 0.2}
function eal.notification.compiling() {echo "I: -- The installer is now compiling the package $EIR_PKG --" && sleep 0.2}
function eal.notification.installing() {echo "I: -- The installer is now installing the package $EIR_PKG --" && sleep 0.2}
function eal.notification.extracting() {echo "I: -- The installer is now extracting the necessary archives for $EIR_PKG --" && sleep 0.2}
2024-11-02 23:10:12 +01:00
function eal.setup.toolchain() {
echo -e "I: The detected system triplet is $(/usr/bin/gcc -dumpmachine)."
2024-11-02 23:10:12 +01:00
export LFS_TGT=$(/usr/bin/gcc -dumpmachine)
echo
}
2024-11-03 21:12:23 +01:00
function eal.install.cross-toolchain() {
2024-11-02 23:10:12 +01:00
cd $LFS/sources/
2024-11-03 21:12:23 +01:00
EIR_PKG=binutils
eal.notification.extracting
2024-11-02 23:10:12 +01:00
sleep 0.5
tar -xvf $LFS/sources/binutils-2.43.1.tar.xz
cd $LFS/sources/binutils-2.43.1/
mkdir -v build
cd build
2024-11-03 21:12:23 +01:00
eal.notification.buildconf
2024-11-02 23:10:12 +01:00
sleep 0.5
../configure --prefix=$LFS/tools \
--with-sysroot=$LFS \
--target=$LFS_TGT \
--disable-nls \
--enable-gprofng=no \
--disable-werror \
--enable-new-dtags \
--enable-default-hash-style=gnu
2024-11-03 21:12:23 +01:00
eal.notification.compiling
2024-11-02 23:10:12 +01:00
make
2024-11-03 21:12:23 +01:00
eal.notification.installing
2024-11-02 23:10:12 +01:00
make install
2024-11-03 21:12:23 +01:00
eal.notification.extracting
pushd $LFS/sources/
tar -xvf gcc-14.2.0.tar.xz
mv -v gcc-14.2.0 gcc
pushd $LFS/sources/gcc/
tar -xf ../mpfr-4.2.1.tar.xz
mv -v mpfr-4.2.1 mpfr
tar -xf ../gmp-6.3.0.tar.xz
mv -v gmp-6.3.0 gmp
tar -xf ../mpc-1.3.1.tar.gz
mv -v mpc-1.3.1 mpc
case $(uname -m) in
x86_64)
sed -e '/m64=/s/lib64/lib/' \
-i.orig gcc/config/i386/t-linux64
;;
esac
mkdir -v build
cd build
eal.notification.buildconf
../configure \
--target=$LFS_TGT \
--prefix=$LFS/tools \
--with-glibc-version=2.40 \
--with-sysroot=$LFS \
--with-newlib \
--without-headers \
--enable-default-pie \
--enable-default-ssp \
--disable-nls \
--disable-shared \
--disable-multilib \
--disable-threads \
--disable-libatomic \
--disable-libgomp \
--disable-libquadmath \
--disable-libssp \
--disable-libvtv \
--disable-libstdcxx \
--enable-languages=c,c++
eal.notification.compiling
make
eal.notification.installing
make install
2024-11-02 23:10:12 +01:00
}
2024-10-23 20:54:05 +02:00
main