106 lines
3.3 KiB
Bash
Executable File
106 lines
3.3 KiB
Bash
Executable File
export TARGET="${1}"
|
|
export PREFIX="`pwd`/rel-bin/${TARGET}"
|
|
export PATH="${PREFIX}/bin:${PATH}"
|
|
export OUT="`pwd`/out"
|
|
|
|
case "${2}" in
|
|
64)
|
|
export CC="cc -m64"
|
|
export CXX="c++ -m64" ;;
|
|
32)
|
|
export CC="cc -m32"
|
|
export CXX="c++ -m32" ;;
|
|
*)
|
|
export CC="cc"
|
|
export CXX="c++" ;;
|
|
esac
|
|
|
|
#### JEŚLI BĘDĄ NOWE WERSJE BINUTILS'A i GCC PROSZĘ ZMIENIĆ NUMER!!!
|
|
export binutils_version="2.32" #TU ZMIENIAMY!
|
|
export newlib_version="master" #TU ZMIENIAMY!
|
|
export gcc_version="LATEST-4.9" #TU ZMIENIAMY!
|
|
export nproc="$(( `grep -c "processor" /proc/cpuinfo` * 2 ))"
|
|
export binutils_ext="tar.xz" #TU POD ŻADNYM POZOREM NIE ZMIENIAJ TYPU!!!!!
|
|
####
|
|
|
|
if ! command -v lftp >/dev/null; then
|
|
clear
|
|
printf "\n Nie znaleziono \"lftp\"!\n Prosze zanistaluj go na swoim obecnym systemie!\n\n"
|
|
exit 1
|
|
fi
|
|
|
|
(
|
|
if [ ! -e binutils-${binutils_version}${binutils_ext} ]; then
|
|
wget -c "http://ftp.gnu.org/gnu/binutils/binutils-${binutils_version}.${binutils_ext}"
|
|
fi
|
|
if [ ! -d binutils-${binutils_version} ]; then
|
|
tar -xf binutils-*.*
|
|
fi
|
|
) || exit 1
|
|
|
|
if ! (
|
|
mkdir -pv build-binutils
|
|
(cd build-binutils; ../binutils-*/configure --target="${TARGET}" --prefix="${PREFIX}" --disable-nls --disable-werror --enable-obsolete --disable-debug --with-gcc --with-gnu-as --with-gnu-ld)
|
|
make -C build-binutils -j${nproc}
|
|
make -C build-binutils -j${nproc} install
|
|
)
|
|
then
|
|
echo "STAGE=${TARGET}" > .error
|
|
exit 1
|
|
fi
|
|
|
|
(
|
|
if [ ! -e */gcc-*.* ]; then
|
|
lftp -c "open ftp://ftp.fu-berlin.de/unix/languages/gcc/snapshots ; mirror ${gcc_version}"
|
|
fi
|
|
if [ ! -d gcc-* ]; then
|
|
tar -xf */gcc-*.*
|
|
fi
|
|
) || exit 1
|
|
|
|
(
|
|
if [ ! -e newlib-*.tar.gz ]; then
|
|
wget -c "https://github.com/bminor/newlib/archive/master.tar.gz" -O newlib-${newlib_version}.tar.gz
|
|
fi
|
|
if [ ! -d newlib-* ]; then
|
|
tar -xf newlib-*.tar.gz
|
|
fi
|
|
) || exit 1
|
|
|
|
if ! (
|
|
(cd gcc-*; contrib/download_prerequisites; ln -svf ../newlib-${newlib_version}/newlib newlib)
|
|
mkdir -pv build-gcc
|
|
(cd build-gcc; ../gcc-*/configure --target="${TARGET}" --prefix="${PREFIX}" --disable-lto --disable-nls --disable-werror --enable-languages="c" --with-pkgversion="*DANiO* T00LCHAIN" --enable-obsolete --with-newlib --with-system-zlib --disable-shared --disable-debug --without-headers) #--disable-libquadmath --disable-libssp --disable-libgomp
|
|
make -C build-gcc -j${nproc} all-gcc
|
|
make -C build-gcc -j${nproc} install-gcc
|
|
)
|
|
then
|
|
echo "STAGE=${TARGET}" > .error
|
|
exit 1
|
|
fi
|
|
|
|
if (
|
|
|
|
mkdir -pv build-newlib
|
|
(cd build-newlib; ../newlib-${newlib_version}/configure --prefix="${PREFIX}" --target="${TARGET}")
|
|
make -C build-newlib -j${nproc}
|
|
make -C build-newlib -j${nproc} install
|
|
(cd build-gcc; ../gcc-*/configure --target="${TARGET}" --prefix="${PREFIX}" --disable-lto --disable-nls --disable-werror --enable-languages="c,c++" --with-pkgversion="*DANiO* T00LCHAIN" --enable-obsolete --with-newlib --with-system-zlib --disable-shared --disable-debug)
|
|
make -C build-gcc -j${nproc}
|
|
make -C build-gcc -j${nproc} install
|
|
)
|
|
then
|
|
find ${PREFIX} | xargs file | grep "ELF" | grep "executable" | cut -f 1 -d ":" | xargs strip -S 2>/dev/null
|
|
mkdir -pv out
|
|
if [ "${1}" == "64" ]; then
|
|
(cd ${PREFIX}; tar -cJf "${OUT}/${TARGET}-`date +"%d-%m-%Y"`_x86-64.txz" .)
|
|
else
|
|
(cd ${PREFIX}; tar -cJf "${OUT}/${TARGET}-`date +"%d-%m-%Y"`_x86-32.txz" .)
|
|
fi
|
|
rm -rf build-*
|
|
#printf "\n POPRAWNIE ZBUDOWANO GCC DLA ${TARGET}!\n\n"
|
|
else
|
|
echo "STAGE=${TARGET}" > .error
|
|
exit 1
|
|
fi
|