Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- TARGET="mips-unknown-linux-gnu"
- CLFS="$1"
- SYSROOT="$CLFS/root"
- HOST="x86_64-pc-linux-gnu"
- LINUX_VERSION=2.6.30
- BINUTILS_VERSION=2.24
- GCC_VERSION=4.8.2
- EGLIB_VERSION=2.18-r24148
- unset CFLAGS
- unset CXXFLAGS
- check_success() {
- if [ $? -ne 0 ]
- then
- echo Failed
- exit 1
- fi
- echo Done
- }
- if [ "$2" = "get" ]
- then
- echo -n "Download sources..."
- wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-$LINUX_VERSION.tar.bz2
- wget http://ftp.gnu.org/gnu/binutils/binutils-$BINUTILS_VERSION.tar.gz
- wget http://ftp.gnu.org/gnu/gcc/gcc-$GCC_VERSION/gcc-$GCC_VERSION.tar.bz2
- wget http://cross-lfs.org/files/eglibc-$EGLIB_VERSION.tar.xz
- echo -n "Extract archives..."
- tar -xjf linux-$LINUX_VERSION.tar.bz2
- tar -xf binutils-$BINUTILS_VERSION.tar.gz
- tar -xjf gcc-$GCC_VERSION.tar.bz2
- tar -xf eglibc-$EGLIB_VERSION.tar.xz
- cd ./gcc-$GCC_VERSION/
- ./contrib/download_prerequisites
- cd ..
- check_success
- fi
- if [ "$2" = "clear" ]
- then
- rm -rfv $CLFS
- mkdir -p $SYSROOT
- check_success
- exit 1
- fi
- mkdir -p $SYSROOT
- InstallKernelHeader()
- {
- echo -n "Install kernel headers..."
- cd linux-$LINUX_VERSION/
- make mrproper
- make ARCH=mips headers_check
- make ARCH=mips INSTALL_HDR_PATH=$SYSROOT headers_install
- cd ..
- check_success
- }
- InstallBinutils()
- {
- echo -n "Install binutils..."
- mkdir mips-binutils
- cd mips-binutils
- rm -rf ./*
- ../binutils-$BINUTILS_VERSION/configure --prefix=$CLFS --target=$TARGET --with-sysroot=$SYSROOT --disable-nls --disable-static --disable-multilib --enable-plugins
- make
- check_success
- make install
- check_success
- cd ..
- }
- InstallStaticGCC()
- {
- echo -n "Install static gcc..."
- mkdir mips-static-gcc
- cd mips-static-gcc
- rm -rf ./*
- ../gcc-$GCC_VERSION/configure --target=$TARGET --prefix=$CLFS --with-sysroot=$SYSROOT --disable-nls --disable-shared --without-headers --with-newlib --disable-decimal-float --disable-libgomp --disable-libmudflap --disable-libssp --disable-threads --disable-multilib --disable-libatomic --disable-libitm --disable-libsanitizer --disable-libquadmath --disable-target-libiberty --enable-languages=c --enable-checking=release
- make all-gcc
- check_success
- make all-target-libgcc
- check_success
- make install-gcc install-target-libgcc
- check_success
- cd ..
- }
- InstallEGLIB()
- {
- echo -n "Install eglibs header files..."
- mkdir mips-eglibs
- cd mips-eglibs
- rm -rf ./*
- BUILD_CC="gcc" \
- CC="$CLFS/bin/$TARGET-gcc" \
- AR="$CLFS/bin/$TARGET-ar" \
- RANLIB="$CLFS/bin/$TARGET-ranlib" \
- ../eglibc-2.18/configure --prefix=$SYSROOT --host=$TARGET --build=$HOST --disable-profile --with-tls --enable-kernel=2.6.30 --with-__thread --enable-obsolete-rpc --cache-file=config.cache --with-headers=$SYSROOT/include --with-binutils=$CLFS/bin
- check_success
- make
- check_success
- make install
- check_success
- cd ..
- }
- InstallFinallGCC()
- {
- echo -n "Install final gcc..."
- mkdir mips-final-gcc
- cd mips-final-gcc
- rm -rf ./*
- ../gcc-4.8.2/configure --prefix=$CLFS \
- --build=$HOST --target=$TARGET --host=$HOST \
- --with-sysroot=$SYSROOT --enable-shared --disable-static --enable-languages=c,c++ \
- --with-native-system-header-dir=/include \
- --with-libs=$SYSROOT/lib \
- --enable-__cxa_atexit --enable-c99 --enable-long-long --enable-threads=posix \
- --disable-multilib \
- --enable-checking=release \
- --disable-nls \
- --enable-libstdcxx-time
- make AS_FOR_TARGET="$CLFS/bin/$TARGET-as" LD_FOR_TARGET="$CLFS/bin/$TARGET-ld"
- check_success
- make install
- check_success
- cd ..
- }
- InstallKernelHeader
- InstallBinutils
- InstallStaticGCC
- InstallEGLIB
- InstallFinallGCC
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement