Last active
December 6, 2016 12:44
-
-
Save albttx/8dab199c6fddab9b0916645f0826239e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
LFS=/mnt/ft_linux | |
LFS_TGT=$(uname -m)-lfs-linux-gnu | |
SRCS=$LFS/sources | |
ARCHIVES=$SRCS/archives | |
TAR="tar -xvf" | |
LOGFILE=$LFS/install_log.txt | |
################################### | |
# Launch this script as user: lfs # | |
################################### | |
if [ $(whoami) != lfs ]; | |
then | |
echo "Please move to user lfs" | |
exit | |
fi | |
############ | |
# BINUTILS # | |
############ | |
cd $SRCS | |
$TAR $ARCHIVES/binutils-2.26.tar.bz2 | |
cd binutils-2.26 | |
mkdir -pv build && cd build | |
../configure --prefix=/tools --with-sysroot=$LFS --with-lib-path=/tools/lib --target=$LFS_TGT --disable-nls --disable-werror | |
make | |
case $(uname -m) in | |
x86_64) mkdir -v /tools/lib && ln -sv lib /tools/lib64 ;; | |
esac | |
make install | |
########### | |
# GCC - 1 # | |
########### | |
cd $SRCS | |
$TAR $ARCHIVES/gcc-5.3.0.tar.bz2 | |
cd gcc-5.3.0 | |
tar -xf $ARCHIVES/mpfr-3.1.3.tar.xz | |
mv -v mpfr-3.1.3 mpfr | |
tar -xf $ARCHIVES/gmp-6.1.0.tar.xz | |
mv -v gmp-6.1.0 gmp | |
tar -xf $ARCHIVES/mpc-1.0.3.tar.gz | |
mv -v mpc-1.0.3 mpc | |
for file in \ | |
$(find gcc/config -name linux64.h -o -name linux.h -o -name sysv4.h) | |
do | |
cp -uv $file{,.orig} | |
sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' \ | |
-e 's@/usr@/tools@g' $file.orig > $file | |
echo ' | |
#undef STANDARD_STARTFILE_PREFIX_1 | |
#undef STANDARD_STARTFILE_PREFIX_2 | |
#define STANDARD_STARTFILE_PREFIX_1 "/tools/lib/" | |
#define STANDARD_STARTFILE_PREFIX_2 ""' >> $file | |
touch $file.orig | |
done | |
mkdir -pv build && cd build | |
../configure \ | |
--target=$LFS_TGT \ | |
--prefix=/tools \ | |
--with-glibc-version=2.11 \ | |
--with-sysroot=$LFS \ | |
--with-newlib \ | |
--without-headers \ | |
--with-local-prefix=/tools \ | |
--with-native-system-header-dir=/tools/include \ | |
--disable-nls \ | |
--disable-shared \ | |
--disable-multilib \ | |
--disable-decimal-float \ | |
--disable-threads \ | |
--disable-libatomic \ | |
--disable-libgomp \ | |
--disable-libquadmath \ | |
--disable-libssp \ | |
--disable-libvtv \ | |
--disable-libstdcxx \ | |
--enable-languages=c,c++ | |
make && make install | |
##################### | |
# LINUX HTTP HEADER # | |
##################### | |
cd $SRCS | |
$TAR $ARCHIVES/linux-4.4.2.tar.xz | |
cd linux-4.4.2 | |
make mrproper | |
make INSTALL_HDR_PATH=dest headers_install | |
cp -rv dest/include/* /tools/include | |
######### | |
# GlibC # | |
######### | |
cd $SRCS | |
$TAR $ARCHIVES/glibc-2.23.tar.xz | |
cd glibc-2.23 | |
mkdir -pv build && cd build | |
../configure \ | |
--prefix=/tools \ | |
--host=$LFS_TGT \ | |
--build=$(../scripts/config.guess) \ | |
--disable-profile \ | |
--enable-kernel=2.6.32 \ | |
--enable-obsolete-rpc \ | |
--with-headers=/tools/include \ | |
libc_cv_forced_unwind=yes \ | |
libc_cv_ctors_header=yes \ | |
libc_cv_c_cleanup=yes | |
make && make install | |
echo 'int main(){}' > dummy.c | |
$LFS_TGT-gcc dummy.c | |
readelf -l a.out | grep ': /tools' | |
rm -v dummy.c a.out | |
############# | |
# LIBSTCD++ # | |
############# | |
cd $SRCS/gcc-5.3.0/libstdc++-v3 | |
mkdir -pv build && cd build | |
../configure \ | |
--host=$LFS_TGT \ | |
--prefix=/tools \ | |
--disable-multilib \ | |
--disable-nls \ | |
--disable-libstdcxx-threads \ | |
--disable-libstdcxx-pch \ | |
--with-gxx-include-dir=/tools/$LFS_TGT/include/c++/5.3.0 | |
make && make install | |
################ | |
# BINUTILS - 2 # | |
################ | |
cd $SRCS | |
rm -rf binutils-2.26 | |
$TAR $ARCHIVES/binutils-2.26.tar.bz2 | |
cd binutils-2.26 | |
mkdir -pv build && cd build | |
CC=$LFS_TGT-gcc \ | |
AR=$LFS_TGT-ar \ | |
RANLIB=$LFS_TGT-ranlib \ | |
../configure \ | |
--prefix=/tools \ | |
--disable-nls \ | |
--disable-werror \ | |
--with-lib-path=/tools/lib \ | |
--with-sysroot | |
make && make install | |
make -C ld clean | |
make -C ld LIB_PATH=/usr/lib:/lib | |
cp -v ld/ld-new /tools/bin | |
############ | |
# GCC - 2 # | |
############ | |
cd $SRCS | |
rm -rf gcc-5.3.0 | |
$TAR $ARCHIVES/gcc-5.3.0.tar.bz2 | |
cd gcc-5.3.0 | |
tar -xf $ARCHIVES/mpfr-3.1.3.tar.xz | |
mv -v mpfr-3.1.3 mpfr | |
tar -xf $ARCHIVES/gmp-6.1.0.tar.xz | |
mv -v gmp-6.1.0 gmp | |
tar -xf $ARCHIVES/mpc-1.0.3.tar.gz | |
mv -v mpc-1.0.3 mpc | |
mkdir -pv build && cd build | |
CC=$LFS_TGT-gcc \ | |
CXX=$LFS_TGT-g++ \ | |
AR=$LFS_TGT-ar \ | |
RANLIB=$LFS_TGT-ranlib \ | |
../configure \ | |
--prefix=/tools \ | |
--with-local-prefix=/tools \ | |
--with-native-system-header-dir=/tools/include \ | |
--enable-languages=c,c++ \ | |
--disable-libstdcxx-pch \ | |
--disable-multilib \ | |
--disable-bootstrap \ | |
--disable-libgomp | |
make && make install | |
ln -sv gcc /tools/bin/cc | |
echo 'int main(){}' > dummy.c | |
cc dummy.c | |
readelf -l a.out | grep ': /tools' | |
rm -v dummy.c a.out | |
############ | |
# TCL-CORE # | |
############ | |
cd $SRCS | |
$TAR $ARCHIVES/tcl-core8.6.4-src.tar.gz | |
cd tcl8.6.4 | |
cd unix | |
./configure --prefix=/tools | |
make | |
TZ=UTC make test | |
make install | |
chmod -v u+w /tools/lib/libtcl8.6.so | |
make install-private-headers | |
ln -sv tclsh8.6 /tools/bin/tclsh | |
########## | |
# EXPECT # | |
########## | |
cd $SRCS | |
$TAR $ARCHIVES/expect5.45.tar.gz | |
cd expect5.45 | |
cp -v configure{,.orig} | |
sed 's:/usr/local/bin:/bin:' configure.orig > configure | |
./configure --prefix=/tools \ | |
--with-tcl=/tools/lib \ | |
--with-tclinclude=/tools/include | |
make && make test | |
make SCRIPTS="" install | |
############ | |
# DEJA GNU # | |
############ | |
cd $SRCS | |
$TAR $ARCHIVES/dejagnu-1.5.3.tar.gz | |
cd dejagnu-1.5.3 | |
./configure --prefix=/tools | |
make install && make check | |
######### | |
# check # | |
######### | |
cd $SRCS | |
$TAR $ARCHIVES/check-0.10.0.tar.gz | |
cd check-0.10.0 | |
PKG_CONFIG= ./configure --prefix=/tools | |
make && make check && make install | |
########### | |
# NCURSES # | |
########### | |
cd $SRCS | |
$TAR $ARCHIVES/ncurses-6.0.tar.gz | |
cd ncurses-6.0 | |
sed -i s/mawk// configure | |
./configure --prefix=/tools \ | |
--with-shared \ | |
--without-debug \ | |
--without-ada \ | |
--enable-widec \ | |
--enable-overwrite | |
make && make install | |
######## | |
# Bash # | |
######## | |
cd $SRCS | |
$TAR $ARCHIVES/bash-4.3.30.tar.gz | |
cd bash-4.3.30 | |
./configure --prefix=/tools --without-bash-malloc | |
make && make test && make install | |
ln -sv bash /tools/bin/sh | |
########## | |
# BZIP 2 # | |
########## | |
cd $SRCS | |
$TAR $ARCHIVES/bzip2-1.0.6.tar.gz | |
cd bzip2-1.0.6 | |
make | |
make PREFIX=/tools install | |
############## | |
# Core Utils # | |
############## | |
cd $SRCS | |
$TAR $ARCHIVES/coreutils-8.25.tar.xz | |
cd coreutils-8.25 | |
./configure --prefix=/tools --enable-install-program=hostname | |
make | |
make RUN_EXPENSIVE_TESTS=yes check | |
make install | |
############## | |
# Diff utils # | |
############## | |
cd $SRCS | |
$TAR $ARCHIVES/diffutils-3.3.tar.xz | |
cd diffutils-3.3 | |
./configure --prefix=/tools | |
make && make check && make install | |
######## | |
# FILE # | |
######## | |
cd $SRCS | |
$TAR $ARCHIVES/file-5.25.tar.gz | |
cd file-5.25 | |
./configure --prefix=/tools | |
make && make check && make install | |
############## | |
# Find utils # | |
############## | |
cd $SRCS | |
$TAR $ARCHIVES/findutils-4.6.0.tar.gz | |
cd findutils-4.6.0 | |
./configure --prefix=/tools | |
make && make check && make install | |
######## | |
# GAWK # | |
######## | |
cd $SRCS | |
$TAR $ARCHIVES/gawk-4.1.3.tar.xz | |
cd gawk-4.1.3 | |
./configure --prefix=/tools | |
make && make check && make install | |
############ | |
# GET Text # | |
############ | |
cd $SRCS | |
$TAR $ARCHIVES/gettext-0.19.7.tar.xz | |
cd gettext-0.19.7 | |
cd gettext-tools | |
EMACS="no" ./configure --prefix=/tools --disable-shared | |
make -C gnulib-lib | |
make -C intl pluralx.c | |
make -C src msgfmt | |
make -C src msgmerge | |
make -C src xgettext | |
cp -v src/{msgfmt,msgmerge,xgettext} /tools/bin | |
######## | |
# GREP # | |
######## | |
cd $SRCS | |
$TAR $ARCHIVES/grep-2.23.tar.xz | |
cd grep-2.23 | |
./configure --prefix=/tools | |
make && make check && make install | |
######## | |
# GZIP # | |
######## | |
cd $SRCS | |
$TAR $ARCHIVES/gzip-1.6.tar.xz | |
cd gzip-1.6 | |
./configure --prefix=/tools | |
make && make check && make install | |
###### | |
# M4 # | |
####### | |
cd $SRCS | |
$TAR $ARCHIVES/m4-1.4.17.tar.xz | |
cd m4-1.4.17 | |
./configure --prefix=/tools | |
make && make check && make install | |
######## | |
# MAKE # | |
######## | |
cd $SRCS | |
$TAR $ARCHIVES/make-4.1.tar.bz2 | |
cd make-4.1 | |
./configure --prefix=/tools --without-guile | |
make && make check && make install | |
######### | |
# PATCH # | |
######### | |
cd $SRCS | |
$TAR $ARCHIVES/patch-2.7.5.tar.xz | |
cd patch-2.7.5.tar.xz | |
./configure --prefix=/tools | |
make && make check && make install | |
######## | |
# PERL # | |
######## | |
cd $SRCS | |
$TAR $ARCHIVES/perl-5.22.1.tar.bz2 | |
cd perl-5.22.1 | |
sh Configure -des -Dprefix=/tools -Dlibs=-lm | |
make | |
cp -v perl cpan/podlators/pod2man /tools/bin | |
mkdir -pv /tools/lib/perl5/5.22.1 | |
cp -Rv lib/* /tools/lib/perl5/5.22.1 | |
####### | |
# SED # | |
####### | |
cd $SRCS | |
$TAR $ARCHIVES/sed-4.2.2.tar.bz2 | |
cd sed-4.2.2 | |
./configure --prefix=/tools | |
make && make check && make install | |
####### | |
# TAR # | |
####### | |
cd $SRCS | |
$TAR $ARCHIVES/tar-1.28.tar.xz | |
cd tar-1.28 | |
./configure --prefix=/tools | |
make && make check && make install | |
############ | |
# TEXTINFO # | |
############ | |
cd $SRCS | |
$TAR $ARCHIVES/texinfo-6.0.tar.xz | |
cd texinfo-6.0 | |
./configure --prefix=/tools | |
make && make check && make install | |
############## | |
# UTIL LINUX # | |
############## | |
cd $SRCS | |
$TAR $ARCHIVES/util-linux-2.27.1.tar.xz | |
cd util-linux-2.27.1 | |
./configure --prefix=/tools \ | |
--without-python \ | |
--disable-makeinstall-chown \ | |
--without-systemdsystemunitdir \ | |
PKG_CONFIG="" | |
make && make install | |
###### | |
# XZ # | |
###### | |
cd $SRCS | |
$TAR $ARCHIVES/xz-5.2.2.tar.xz | |
cd xz-5.2.2 | |
./configure --prefix=/tools | |
make && make check && make install | |
################## | |
# DELETE SYMBOLS # | |
################## | |
strip --strip-debug /tools/lib/* /usr/bin/strip --strip-unneeded /tools/{,s}bin/* | |
rm -rf /tools/{,share}/{info,man,doc} | |
echo "------ END ------" | |
echo "please now visit :" | |
echo "http://www.fr.linuxfromscratch.org/view/lfs-7.9-fr/chapter05/changingowner.html" | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
LFS=/mnt/ft_linux | |
SRCS=$LFS/sources | |
ARCHIVES=$SRCS/archives | |
TAR="tar -xvf" | |
cd $LFS | |
mkdir -pv $LFS/{dev,proc,sys,run} | |
mknod -m 600 $LFS/dev/console c 5 1 | |
mknod -m 666 $LFS/dev/null c 1 3 | |
mount -v --bind /dev $LFS/dev | |
mount -vt devpts devpts $LFS/dev/pts -o gid=5,mode=620 | |
mount -vt proc proc $LFS/proc | |
mount -vt sysfs sysfs $LFS/sys | |
mount -vt tmpfs tmpfs $LFS/run | |
if [ -h $LFS/dev/shm ]; then | |
mkdir -pv $LFS/$(readlink $LFS/dev/shm) | |
fi | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment