Advertisement
Guest User

Untitled

a guest
Jan 3rd, 2014
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.49 KB | None | 0 0
  1. #!/bin/sh
  2. TARGET="mips-unknown-linux-gnu"
  3. CLFS="$1"
  4. SYSROOT="$CLFS/root"
  5. HOST="x86_64-pc-linux-gnu"
  6. LINUX_VERSION=2.6.30
  7. BINUTILS_VERSION=2.24
  8. GCC_VERSION=4.8.2
  9. EGLIB_VERSION=2.18-r24148
  10. unset CFLAGS
  11. unset CXXFLAGS
  12. check_success() {
  13.    if [ $? -ne 0 ]
  14.    then
  15.       echo Failed
  16.       exit 1
  17.    fi
  18.    echo Done
  19. }
  20. if [ "$2" = "get" ]
  21. then
  22. echo -n "Download sources..."
  23. wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-$LINUX_VERSION.tar.bz2
  24. wget http://ftp.gnu.org/gnu/binutils/binutils-$BINUTILS_VERSION.tar.gz
  25. wget http://ftp.gnu.org/gnu/gcc/gcc-$GCC_VERSION/gcc-$GCC_VERSION.tar.bz2
  26. wget http://cross-lfs.org/files/eglibc-$EGLIB_VERSION.tar.xz
  27. echo -n "Extract archives..."
  28. tar -xjf linux-$LINUX_VERSION.tar.bz2
  29. tar -xf binutils-$BINUTILS_VERSION.tar.gz
  30. tar -xjf gcc-$GCC_VERSION.tar.bz2
  31. tar -xf eglibc-$EGLIB_VERSION.tar.xz
  32. cd ./gcc-$GCC_VERSION/
  33. ./contrib/download_prerequisites
  34. cd ..
  35. check_success
  36. fi
  37. if [ "$2" = "clear" ]
  38. then
  39. rm -rfv $CLFS
  40. mkdir -p $SYSROOT
  41. check_success
  42. exit 1
  43. fi
  44. mkdir -p $SYSROOT
  45.  
  46. InstallKernelHeader()
  47. {
  48. echo -n "Install kernel headers..."
  49. cd linux-$LINUX_VERSION/
  50. make mrproper
  51. make ARCH=mips headers_check
  52. make ARCH=mips INSTALL_HDR_PATH=$SYSROOT headers_install
  53. cd ..
  54. check_success
  55. }
  56. InstallBinutils()
  57. {
  58. echo -n "Install binutils..."
  59. mkdir mips-binutils
  60. cd mips-binutils
  61. rm -rf ./*
  62. ../binutils-$BINUTILS_VERSION/configure --prefix=$CLFS --target=$TARGET --with-sysroot=$SYSROOT --disable-nls --disable-static --disable-multilib --enable-plugins
  63. make
  64. check_success
  65. make install
  66. check_success
  67. cd ..
  68.  
  69. }
  70. InstallStaticGCC()
  71. {
  72. echo -n "Install static gcc..."
  73. mkdir mips-static-gcc
  74. cd mips-static-gcc
  75. rm -rf ./*
  76. ../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
  77. make all-gcc
  78. check_success
  79. make all-target-libgcc
  80. check_success
  81. make install-gcc install-target-libgcc
  82. check_success
  83. cd ..
  84. }
  85. InstallEGLIB()
  86. {
  87. echo -n "Install eglibs header files..."
  88. mkdir mips-eglibs
  89. cd mips-eglibs
  90. rm -rf ./*
  91. BUILD_CC="gcc" \
  92. CC="$CLFS/bin/$TARGET-gcc" \
  93. AR="$CLFS/bin/$TARGET-ar" \
  94. RANLIB="$CLFS/bin/$TARGET-ranlib" \
  95. ../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
  96. check_success
  97. make
  98. check_success
  99. make install
  100. check_success
  101. cd ..
  102.  
  103. }
  104. InstallFinallGCC()
  105. {
  106. echo -n "Install final gcc..."
  107. mkdir mips-final-gcc
  108. cd mips-final-gcc
  109. rm -rf ./*
  110. ../gcc-4.8.2/configure --prefix=$CLFS \
  111. --build=$HOST --target=$TARGET --host=$HOST \
  112. --with-sysroot=$SYSROOT --enable-shared --disable-static --enable-languages=c,c++ \
  113. --with-native-system-header-dir=/include \
  114. --with-libs=$SYSROOT/lib \
  115. --enable-__cxa_atexit --enable-c99 --enable-long-long --enable-threads=posix \
  116. --disable-multilib \
  117. --enable-checking=release \
  118. --disable-nls \
  119. --enable-libstdcxx-time
  120. make  AS_FOR_TARGET="$CLFS/bin/$TARGET-as" LD_FOR_TARGET="$CLFS/bin/$TARGET-ld"
  121. check_success
  122. make install
  123. check_success
  124. cd ..
  125. }
  126.  
  127. InstallKernelHeader
  128. InstallBinutils
  129. InstallStaticGCC
  130. InstallEGLIB
  131. InstallFinallGCC
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement