update
This commit is contained in:
+81
-38
@@ -1,50 +1,93 @@
|
||||
language: c
|
||||
sudo: required
|
||||
dist: xenial
|
||||
compiler: gcc
|
||||
os: linux
|
||||
compiler:
|
||||
- gcc
|
||||
os:
|
||||
- linux
|
||||
- osx
|
||||
env:
|
||||
- t=aarch64-danio-linux
|
||||
- t=alpha-danio-linux
|
||||
- t=arm-danio-eabi
|
||||
- t=arc-danio-linux
|
||||
- t=c6x-danio-linux
|
||||
- t=parisc64-danio-linux
|
||||
- t=parisc-danio-linux
|
||||
- t=i386-danio-linux
|
||||
# - t=i686-danio-gnu
|
||||
- t=ia64-danio-linux
|
||||
- t=m68k-danio-linux
|
||||
- t=microblaze-danio-linux
|
||||
- t=mips64-danio-linux
|
||||
- t=mips-danio-linux
|
||||
- t=powerpc32-danio-linux
|
||||
- t=powerpc64-danio-linux
|
||||
- t=s390-danio-linux
|
||||
- t=sh2-danio-linux
|
||||
- t=sh4-danio-linux
|
||||
- t=riscv32-danio-linux
|
||||
- t=riscv64-danio-linux
|
||||
- t=sparc-danio-linux
|
||||
- t=sparc64-danio-linux
|
||||
- t=x86_64-danio-linux
|
||||
- t=xtensa-danio-linux
|
||||
- t=nds32le-danio-linux
|
||||
- t=or1k-danio-linux
|
||||
- t=hexagon-danio-linux
|
||||
- t=am33_2.0-danio-linux
|
||||
- t=bfin-danio-linux
|
||||
- t=crisv32-danio-linux
|
||||
- t=frv-danio-linux
|
||||
- t=m32r-danio-linux
|
||||
- t=tilepro-danio-linux
|
||||
- t=tilegx-danio-linux
|
||||
- t=aarch64-danio-linux METHOD=newlib
|
||||
- t=alpha-danio-linux METHOD=newlib
|
||||
- t=arm-danio-eabi METHOD=newlib
|
||||
- t=arc-danio-linux METHOD=newlib
|
||||
- t=c6x-danio-linux METHOD=newlib
|
||||
- t=parisc64-danio-linux METHOD=newlib
|
||||
- t=parisc-danio-linux METHOD=newlib
|
||||
- t=i386-danio-linux METHOD=newlib
|
||||
- t=ia64-danio-linux METHOD=newlib
|
||||
- t=m68k-danio-linux METHOD=newlib
|
||||
- t=microblaze-danio-linux METHOD=newlib
|
||||
- t=microblaze64-danio-linux METHOD=newlib
|
||||
- t=mips64-danio-linux METHOD=newlib
|
||||
- t=mips-danio-linux METHOD=newlib
|
||||
- t=powerpc32-danio-linux METHOD=newlib
|
||||
- t=powerpc64-danio-linux METHOD=newlib
|
||||
- t=s390-danio-linux METHOD=newlib
|
||||
- t=sh2-danio-linux METHOD=newlib
|
||||
- t=sh4-danio-linux METHOD=newlib
|
||||
- t=riscv32-danio-linux METHOD=newlib
|
||||
- t=riscv64-danio-linux METHOD=newlib
|
||||
- t=sparc-danio-linux METHOD=newlib
|
||||
- t=sparc64-danio-linux METHOD=newlib
|
||||
- t=x86_64-danio-linux METHOD=newlib
|
||||
- t=xtensa-danio-linux METHOD=newlib
|
||||
- t=nds32le-danio-linux METHOD=newlib
|
||||
- t=or1k-danio-linux METHOD=newlib
|
||||
- t=hexagon-danio-linux METHOD=newlib
|
||||
- t=am33_2.0-danio-linux METHOD=newlib
|
||||
- t=bfin-danio-linux METHOD=newlib
|
||||
- t=crisv32-danio-linux METHOD=newlib
|
||||
- t=frv-danio-linux METHOD=newlib
|
||||
- t=m32r-danio-linux METHOD=newlib
|
||||
- t=tilepro-danio-linux METHOD=newlib
|
||||
- t=tilegx-danio-linux METHOD=newlib
|
||||
|
||||
- t=aarch64-danio-linux METHOD=glibc
|
||||
- t=alpha-danio-linux METHOD=glibc
|
||||
- t=arm-danio-eabi METHOD=glibc
|
||||
- t=arc-danio-linux METHOD=glibc
|
||||
- t=c6x-danio-linux METHOD=glibc
|
||||
- t=parisc64-danio-linux METHOD=glibc
|
||||
- t=parisc-danio-linux METHOD=glibc
|
||||
- t=i386-danio-linux METHOD=glibc
|
||||
- t=ia64-danio-linux METHOD=glibc
|
||||
- t=m68k-danio-linux METHOD=glibc
|
||||
- t=microblaze-danio-linux METHOD=glibc
|
||||
- t=microblaze64-danio-linux METHOD=glibc
|
||||
- t=mips64-danio-linux METHOD=glibc
|
||||
- t=mips-danio-linux METHOD=glibc
|
||||
- t=powerpc32-danio-linux METHOD=glibc
|
||||
- t=powerpc64-danio-linux METHOD=glibc
|
||||
- t=s390-danio-linux METHOD=glibc
|
||||
- t=sh2-danio-linux METHOD=glibc
|
||||
- t=sh4-danio-linux METHOD=glibc
|
||||
- t=riscv32-danio-linux METHOD=glibc
|
||||
- t=riscv64-danio-linux METHOD=glibc
|
||||
- t=sparc-danio-linux METHOD=glibc
|
||||
- t=sparc64-danio-linux METHOD=glibc
|
||||
- t=x86_64-danio-linux METHOD=glibc
|
||||
- t=xtensa-danio-linux METHOD=glibc
|
||||
- t=nds32le-danio-linux METHOD=glibc
|
||||
- t=or1k-danio-linux METHOD=glibc
|
||||
- t=hexagon-danio-linux METHOD=glibc
|
||||
- t=am33_2.0-danio-linux METHOD=glibc
|
||||
- t=bfin-danio-linux METHOD=glibc
|
||||
- t=crisv32-danio-linux METHOD=glibc
|
||||
- t=frv-danio-linux METHOD=glibc
|
||||
- t=m32r-danio-linux METHOD=glibc
|
||||
- t=tilepro-danio-linux METHOD=glibc
|
||||
- t=tilegx-danio-linux METHOD=glibc
|
||||
|
||||
before_script: |
|
||||
chmod +x -v *.sh
|
||||
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
|
||||
sudo apt update -qq
|
||||
sudo apt install -qq -y rsync sshpass git-core gnupg flex bison lftp gperf m4 build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev libx11-dev lib32z-dev libxml2-utils xsltproc schedtool gettext texinfo
|
||||
sudo apt-get clean
|
||||
chmod +x -v *.sh
|
||||
else
|
||||
brew install rsync gcc git gnupg flex bison gperf gperftools m4 zip unzip curl zlib docbook-xsl gettext texinfo texi2html
|
||||
fi
|
||||
script: |
|
||||
build()
|
||||
{
|
||||
|
||||
+239
-115
@@ -1,125 +1,249 @@
|
||||
export TARGET="${1}"
|
||||
export PREFIX="`pwd`/rel-bin/${TARGET}"
|
||||
export PATH="${PREFIX}/bin:${PATH}"
|
||||
export OUT="`pwd`/out"
|
||||
#!/bin/bash
|
||||
|
||||
#### ZMIEŃ, JEŻELI CHCESZ INNE WERSJE, DOMYŚLNE "master", CZYLI "BLEEDING EDGE"
|
||||
export binutils_version="master"
|
||||
export libc_version="master"
|
||||
export linux_version="master"
|
||||
export gcc_version="master"
|
||||
set -e
|
||||
trap 'previous_command=$this_command; this_command=$BASH_COMMAND' DEBUG
|
||||
trap 'echo FAILED COMMAND: $previous_command' EXIT
|
||||
|
||||
#### TU NIE ZMIENIAJ vvv
|
||||
export nproc="$(( `grep -c "processor" /proc/cpuinfo` * 2 ))"
|
||||
export ARGS="--enable-multilib --enable-multiarch --enable-targets=all --disable-werror"
|
||||
#### TU NIE ZMIENIAJ ^^^
|
||||
|
||||
|
||||
echo "${libc_version}" >.tmp
|
||||
if grep -q "/" .tmp; then
|
||||
export _libc_version="`echo ${libc_version} | tr '/' '-'`"
|
||||
else
|
||||
export _libc_version="${libc_version}"
|
||||
fi
|
||||
rm -rf .tmp
|
||||
|
||||
case "${2}" in
|
||||
64)
|
||||
export CC="cc -m64"
|
||||
export CXX="c++ -m64" ;;
|
||||
32)
|
||||
export CC="cc -m32"
|
||||
export CXX="c++ -m32" ;;
|
||||
esac
|
||||
mkdir -pv out
|
||||
|
||||
download()
|
||||
runit()
|
||||
{
|
||||
if [ ! -d gcc-${gcc_version} ]; then
|
||||
git clone --depth=1 -b ${gcc_version} "git://github.com/gcc-mirror/gcc" gcc-${gcc_version} || return ${?}
|
||||
fi
|
||||
if [ ! -d glibc-${_libc_version} ]; then
|
||||
git clone --depth=1 -b ${libc_version} "git://github.com/bminor/glibc" glibc-${_libc_version} || return ${?}
|
||||
fi
|
||||
if [ ! -d linux-${linux_version} ]; then
|
||||
git clone --depth=1 -b ${linux_version} "git://github.com/torvalds/linux" linux-${linux_version} || return ${?}
|
||||
fi
|
||||
if [ ! -d binutils-gdb-${binutils_version} ]; then
|
||||
git clone --depth=1 -b ${binutils_version} "git://github.com/bminor/binutils-gdb" binutils-gdb-${binutils_version} || return ${?}
|
||||
fi
|
||||
}
|
||||
build()
|
||||
{
|
||||
make -C linux-${linux_version} ARCH="`echo ${TARGET} | cut -f 1 -d '-' | sed -e s/i.86/x86/ -e s/x86_64/x86/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/ -e s/s390x/s390/ -e s/parisc64/parisc/ -e s/ppc.*/powerpc/ -e s/mips.*/mips/ -e s/sh[234].*/sh/ -e s/aarch64.*/arm64/ -e s/riscv.*/riscv/`" INSTALL_HDR_PATH="${PREFIX}/${TARGET}" headers_install || return ${?}
|
||||
find ${PREFIX}/${TARGET} -name "..install.cmd" | xargs rm -rf || return ${?}
|
||||
find ${PREFIX}/${TARGET} -name ".install" | xargs rm -rf || return ${?}
|
||||
mkdir -pv build-binutils || return ${?}
|
||||
(cd build-binutils; ../binutils-gdb-${binutils_version}/configure --target="${TARGET}" --prefix="${PREFIX}" --disable-nls --enable-obsolete --disable-debug ${ARGS}) || return ${?}
|
||||
make -C build-binutils -j${nproc} || return ${?}
|
||||
make -C build-binutils -j${nproc} install || return ${?}
|
||||
if [ ! -e .dl_ok ]; then
|
||||
(cd gcc-${gcc_version}; contrib/download_prerequisites) || return ${?}
|
||||
touch .dl_ok || return ${?}
|
||||
fi
|
||||
mkdir -pv build-gcc || return ${?}
|
||||
(cd build-gcc; ../gcc-${gcc_version}/configure --target="${TARGET}" --prefix="${PREFIX}" --enable-languages="c,c++" --with-pkgversion="*DANiO* T00LCHAIN" ${ARGS} --disable-libgomp) || return ${?}
|
||||
make -C build-gcc -j${nproc} all-gcc || return ${?}
|
||||
make -C build-gcc -j${nproc} install-gcc || return ${?}
|
||||
mkdir -pv build-glibc || return ${?}
|
||||
env CC="${TARGET}-gcc" CXX="${TARGET}-g++" sh -c '(cd build-glibc; ../glibc-${_libc_version}/configure --prefix="${PREFIX}/${TARGET}" --host="${TARGET}" --with-headers="${PREFIX}/${TARGET}/include" --with-pkgversion="*DANiO* T00LCHAIN" --enable-add-ons ${ARGS})'
|
||||
make -C build-glibc -j${nproc} install-bootstrap-headers=yes install-headers || return ${?}
|
||||
make -C build-glibc -j${nproc} csu/subdir_lib || return ${?}
|
||||
mkdir -pv ${PREFIX}/${TARGET}/lib || return ${?}
|
||||
cp -ravf build-glibc/csu/crt1.o build-glibc/csu/crti.o build-glibc/csu/crtn.o ${PREFIX}/${TARGET}/lib || return ${?}
|
||||
${TARGET}-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o ${PREFIX}/${TARGET}/lib/libc.so || return ${?}
|
||||
touch ${PREFIX}/${TARGET}/include/gnu/stubs.h || return ${?}
|
||||
make -C build-gcc -j${nproc} all-target-libgcc || return ${?}
|
||||
make -C build-gcc -j${nproc} install-target-libgcc || return ${?}
|
||||
make -C build-glibc -j${nproc} || return ${?}
|
||||
make -C build-glibc -j${nproc} install || return ${?}
|
||||
make -C build-gcc -j${nproc} all-target-libstdc++-v3 || return ${?}
|
||||
make -C build-gcc -j${nproc} install-target-libstdc++-v3 || return ${?}
|
||||
}
|
||||
strip_n_pack()
|
||||
{
|
||||
find ${PREFIX} | xargs file | grep "ELF" | cut -f 1 -d ":" | xargs strip -S --strip-unneeded #for host
|
||||
find ${PREFIX}/${TARGET} | xargs file | grep "ELF" | cut -f 1 -d ":" | xargs ${TARGET}-strip -S --strip-unneeded #for sysroot
|
||||
if [ "${1}" == "64" ]; then
|
||||
(cd rel-bin; tar -cJvf "${OUT}/${TARGET}-GCC_${gcc_version}-`date +"%d-%m-%Y"`-`uname -s`_x86-64.txz" ${TARGET}) #|| return ${?}
|
||||
export TARGET="${1}"
|
||||
export PREFIX="`pwd`/rel-bin/${TARGET}"
|
||||
export PATH="${PREFIX}/bin:${PATH}"
|
||||
export OUT="`pwd`/out"
|
||||
|
||||
#### ZMIEŃ, JEŻELI CHCESZ INNE WERSJE, DOMYŚLNE "master", CZYLI "BLEEDING EDGE"
|
||||
export binutils_version="master"
|
||||
export glibc_version="master"
|
||||
export linux_version="master"
|
||||
export gcc_version="master"
|
||||
export newlib_version="master"
|
||||
|
||||
#### TU NIE ZMIENIAJ vvv
|
||||
if uname -s | grep -q -i "linux"; then
|
||||
export nproc="$(( `nproc --all` * 2 ))"
|
||||
elif uname -s | grep -q -i "darwin"; then
|
||||
export nproc="$(( `sysctl -n hw.ncpu` * 2 ))"
|
||||
else
|
||||
(cd rel-bin; tar -cJvf "${OUT}/${TARGET}-GCC_${gcc_version}-`date +"%d-%m-%Y"`-`uname -s`_x86-32.txz" ${TARGET}) #|| return ${?}
|
||||
if command -v nproc >/dev/null; then
|
||||
export nproc="$(( `nproc --all` * 2 ))"
|
||||
else
|
||||
#domyślnie dwa rdzenie
|
||||
export nproc="2"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
test_gcc()
|
||||
{
|
||||
echo -n "int main(){return 0;}" >test.cpp
|
||||
if ${TARGET}-g++ test.cpp -o test; then
|
||||
echo "${TARGET}-g++ TEST PASSED"
|
||||
rm -rf test{.cpp,}
|
||||
return 0
|
||||
else
|
||||
echo "${TARGET}-g++ TEST FAILED"
|
||||
rm -rf test{.cpp,}
|
||||
export ARGS="--enable-multilib --enable-multiarch --enable-targets=all --disable-werror"
|
||||
if [ "${buildnewlib}" -ne "0" ]; then
|
||||
export EXTRA_ARGS="--with-newlib"
|
||||
#--with-headers=\"`readlink -f newlib-dl/newlib/libc/include`\"
|
||||
fi
|
||||
#### TU NIE ZMIENIAJ ^^^
|
||||
|
||||
case "${2}" in
|
||||
64)
|
||||
export CC="cc -m64"
|
||||
export CXX="c++ -m64" ;;
|
||||
32)
|
||||
export CC="cc -m32"
|
||||
export CXX="c++ -m32" ;;
|
||||
esac
|
||||
mkdir -pv out
|
||||
|
||||
download()
|
||||
{
|
||||
if [ ! -d gcc-dl ]; then
|
||||
git clone --depth=1 -b ${gcc_version} "git://github.com/gcc-mirror/gcc" gcc-dl || return ${?}
|
||||
fi
|
||||
if [ ! -d glibc-dl ]; then
|
||||
git clone --depth=1 -b ${glibc_version} "git://github.com/bminor/glibc" glibc-dl || return ${?}
|
||||
fi
|
||||
if [ ! -d linux-dl ]; then
|
||||
git clone --depth=1 -b ${linux_version} "git://github.com/torvalds/linux" linux-dl || return ${?}
|
||||
fi
|
||||
if [ ! -d binutils-gdb-dl ]; then
|
||||
git clone --depth=1 -b ${binutils_version} "git://github.com/bminor/binutils-gdb" binutils-gdb-dl || return ${?}
|
||||
fi
|
||||
if [ ! -d newlib-dl ]; then
|
||||
git clone --depth=1 -b ${newlib_version} "git://github.com/bminor/newlib" newlib-dl || return ${?}
|
||||
fi
|
||||
}
|
||||
build()
|
||||
{
|
||||
if [ "${buildnewlib}" -eq "0" ]; then
|
||||
make -C linux-dl ARCH="`echo ${TARGET} | cut -f 1 -d '-' | sed -e s/i.86/x86/ -e s/x86_64/x86/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/ -e s/s390x/s390/ -e s/parisc64/parisc/ -e s/ppc.*/powerpc/ -e s/mips.*/mips/ -e s/sh[234].*/sh/ -e s/aarch64.*/arm64/ -e s/riscv.*/riscv/`" INSTALL_HDR_PATH="${PREFIX}/${TARGET}" headers_install || return ${?}
|
||||
find ${PREFIX}/${TARGET} -name "..install.cmd" | xargs rm -rf || return ${?}
|
||||
find ${PREFIX}/${TARGET} -name ".install" | xargs rm -rf || return ${?}
|
||||
fi
|
||||
mkdir -pv build-binutils || return ${?}
|
||||
(cd build-binutils; ../binutils-gdb-dl/configure --target="${TARGET}" --prefix="${PREFIX}" --disable-nls --enable-obsolete --disable-debug ${ARGS}) || return ${?}
|
||||
make -C build-binutils -j${nproc} || return ${?}
|
||||
make -C build-binutils -j${nproc} install || return ${?}
|
||||
if [ ! -e .dl_ok ]; then
|
||||
(cd gcc-dl; contrib/download_prerequisites) || return ${?}
|
||||
touch .dl_ok || return ${?}
|
||||
fi
|
||||
mkdir -pv build-gcc || return ${?}
|
||||
(cd build-gcc; ../gcc-dl/configure --target="${TARGET}" --prefix="${PREFIX}" --enable-languages="c,c++" --with-pkgversion="*DANiO* GCC (`echo ${TARGET} | cut -f 1 -d '-'`)" ${ARGS} ${EXTRA_ARGS}) || return ${?}
|
||||
make -C build-gcc -j${nproc} all-gcc || return ${?}
|
||||
make -C build-gcc -j${nproc} install-gcc || return ${?}
|
||||
if [ "${buildnewlib}" -ne "0" ]; then
|
||||
mkdir -pv build-newlib || return ${?}
|
||||
(cd build-newlib; ../newlib-dl/configure --prefix="${PREFIX}" --target="${TARGET}" ${ARGS}) || return ${?}
|
||||
make -C build-newlib -j${nproc} || return ${?}
|
||||
make -C build-newlib -j${nproc} install || return ${?}
|
||||
#(cd gcc-dl; ln -svf ../newlib-dl/newlib newlib; ln -svf ../newlib-dl/libgloss libgloss) || return ${?}
|
||||
make -C build-gcc -j${nproc} all-target-libgcc || return ${?}
|
||||
make -C build-gcc -j${nproc} install-target-libgcc || return ${?}
|
||||
make -C build-gcc -j${nproc} all-target-libstdc++-v3 || return ${?}
|
||||
make -C build-gcc -j${nproc} install-target-libstdc++-v3 || return ${?}
|
||||
#make -C build-gcc -j${nproc} || return ${?}
|
||||
#make -C build-gcc -j${nproc} install || return ${?}
|
||||
else
|
||||
mkdir -pv build-glibc || return ${?}
|
||||
env CC="${TARGET}-gcc" CXX="${TARGET}-g++" sh -c '(cd build-glibc; ../glibc-dl/configure --prefix="${PREFIX}/${TARGET}" --host="${TARGET}" --with-headers="${PREFIX}/${TARGET}/include" --with-pkgversion="*DANiO* GLIBC (`echo ${TARGET} | cut -f 1 -d '-'`)" --enable-add-ons ${ARGS})' || return ${?}
|
||||
make -C build-glibc -j${nproc} install-bootstrap-headers=yes install-headers || return ${?}
|
||||
make -C build-glibc -j${nproc} csu/subdir_lib || return ${?}
|
||||
mkdir -pv ${PREFIX}/${TARGET}/lib || return ${?}
|
||||
cp -ravf build-glibc/csu/crt1.o build-glibc/csu/crti.o build-glibc/csu/crtn.o ${PREFIX}/${TARGET}/lib || return ${?}
|
||||
${TARGET}-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o ${PREFIX}/${TARGET}/lib/libc.so || return ${?}
|
||||
touch ${PREFIX}/${TARGET}/include/gnu/stubs.h || return ${?}
|
||||
make -C build-gcc -j${nproc} all-target-libgcc || return ${?}
|
||||
make -C build-gcc -j${nproc} install-target-libgcc || return ${?}
|
||||
make -C build-glibc -j${nproc} || return ${?}
|
||||
make -C build-glibc -j${nproc} install || return ${?}
|
||||
make -C build-gcc -j${nproc} all-target-libstdc++-v3 || return ${?}
|
||||
make -C build-gcc -j${nproc} install-target-libstdc++-v3 || return ${?}
|
||||
fi
|
||||
}
|
||||
strip_n_pack()
|
||||
{
|
||||
find ${PREFIX} -type f | xargs file | grep "ELF" | cut -f 1 -d ":" | xargs strip -S --strip-unneeded #for host
|
||||
find ${PREFIX}/${TARGET} -type f -name "*.a" | xargs ${TARGET}-strip -S --strip-unneeded #for sysroot
|
||||
find ${PREFIX}/${TARGET} -type f -name "*.a" | xargs ${TARGET}-ranlib #for sysroot
|
||||
find ${PREFIX}/${TARGET} -type f | xargs file | grep "ELF" | cut -f 1 -d ":" | xargs ${TARGET}-strip -S --strip-unneeded #for sysroot
|
||||
if [ "${buildnewlib}" -ne "0" ]; then
|
||||
if [ "${1}" == "64" ]; then
|
||||
(cd rel-bin; tar -cJvf "${OUT}/${TARGET}-GCC_${gcc_version}-newlib-`date +"%d-%m-%Y"`-`uname -s`_x86-64.txz" ${TARGET}) #|| return ${?}
|
||||
else
|
||||
(cd rel-bin; tar -cJvf "${OUT}/${TARGET}-GCC_${gcc_version}-newlib-`date +"%d-%m-%Y"`-`uname -s`_x86-32.txz" ${TARGET}) #|| return ${?}
|
||||
fi
|
||||
else
|
||||
if [ "${1}" == "64" ]; then
|
||||
(cd rel-bin; tar -cJvf "${OUT}/${TARGET}-GCC_${gcc_version}-glibc-`date +"%d-%m-%Y"`-`uname -s`_x86-64.txz" ${TARGET}) #|| return ${?}
|
||||
else
|
||||
(cd rel-bin; tar -cJvf "${OUT}/${TARGET}-GCC_${gcc_version}-glibc-`date +"%d-%m-%Y"`-`uname -s`_x86-32.txz" ${TARGET}) #|| return ${?}
|
||||
fi
|
||||
fi
|
||||
}
|
||||
test_gcc()
|
||||
{
|
||||
echo -n "int main(){return 0;}" >test.cpp
|
||||
if ${TARGET}-g++ test.cpp -o test; then
|
||||
echo "${TARGET}-g++ TEST PASSED"
|
||||
rm -rf test{.cpp,}
|
||||
return 0
|
||||
else
|
||||
echo "${TARGET}-g++ TEST FAILED"
|
||||
rm -rf test{.cpp,}
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
if [ "${clean}" -ne "0" ]; then
|
||||
rm -rf build-*
|
||||
fi
|
||||
if ! download; then
|
||||
echo "Error at \"download_n_extract\" section"
|
||||
return 1
|
||||
fi
|
||||
if ! build; then
|
||||
echo "Error at \"build\" section"
|
||||
return 1
|
||||
fi
|
||||
if ! test_gcc; then
|
||||
echo "Error at \"test_gcc\" section"
|
||||
return 1
|
||||
fi
|
||||
if ! strip_n_pack ${2}; then
|
||||
echo "Error at \"strip_n_pack ${2}\" section"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
if [ -n "${clean}" ]; then
|
||||
rm -rf build-*
|
||||
fi
|
||||
if ! download; then
|
||||
echo "STAGE=${TARGET} MSG='at \"download_n_extract\" section'" >.error
|
||||
exit 1
|
||||
fi
|
||||
if ! build; then
|
||||
echo "STAGE=${TARGET} MSG='at \"build\" section'" >.error
|
||||
exit 1
|
||||
fi
|
||||
if ! test_gcc; then
|
||||
echo "STAGE=${TARGET} MSG='at \"test_gcc\" section'" >.error
|
||||
exit 1
|
||||
fi
|
||||
if ! strip_n_pack ${2}; then
|
||||
echo "STAGE=${TARGET} MSG='at \"strip_n_pack ${2}\" section'" >.error
|
||||
exit 1
|
||||
targets="`grep ' - t=' .travis.yml | cut -f 2 -d =`"
|
||||
if [ "${AUTOBUILD}" -ne "0" ]; then
|
||||
export clean="1"
|
||||
if [ "${METHOD}" == "newlib" ]; then
|
||||
export buildnewlib="1"
|
||||
for i in ${targets}; do
|
||||
runit ${i} 32
|
||||
runit ${i} 64
|
||||
done
|
||||
elif [ "${METHOD}" == "glibc" ]; then
|
||||
export buildnewlib="0"
|
||||
for i in ${targets}; do
|
||||
if [ "`echo ${i} | cut -f 3 -d -`" == "eabi" ]; then continue; fi
|
||||
if [ "`echo ${i} | cut -f 3 -d -`" == "elf" ]; then continue; fi
|
||||
runit ${i} 32
|
||||
runit ${i} 64
|
||||
done
|
||||
else
|
||||
echo "UNKNOWN OR EMPTY LIBC!"
|
||||
echo "USE ONLY METHOD=\"glibc\" OR METHOD=\"newlib\" AS BASH EXVIRONMENT!"
|
||||
fi
|
||||
else
|
||||
while :; do
|
||||
reset || clear
|
||||
echo "Please select architecture:"
|
||||
for i in ${targets}; do
|
||||
echo ${i} | cut -f 1 -d '-'
|
||||
done
|
||||
echo "------"
|
||||
read arch
|
||||
break
|
||||
done
|
||||
while :; do
|
||||
reset || clear
|
||||
echo "Would you like to build:"
|
||||
echo "[1] is newlib toolchain"
|
||||
echo "[2] is glibc toolchain"
|
||||
echo "------"
|
||||
echo "NOTE: On \"eabi\" and \"elf\" toolchains use newlib!"
|
||||
read METHOD
|
||||
case ${METHOD} in
|
||||
1) export buildnewlib="1"; break ;;
|
||||
2) export buildnewlib="0"; break ;;
|
||||
*) echo "ONLY USE \"1\" or \"2\"!"; sleep 2 ;;
|
||||
esac
|
||||
done
|
||||
while :; do
|
||||
reset || clear
|
||||
echo "what kind of based toolchain?"
|
||||
echo "[1] is eabi"
|
||||
echo "[2] is linux"
|
||||
echo "[3] is elf"
|
||||
read BASE
|
||||
case ${BASE} in
|
||||
1) export BASE="eabi"; break ;;
|
||||
2) export BASE="linux"; break ;;
|
||||
2) export BASE="elf"; break ;;
|
||||
*) echo "ONLY USE \"1\", \"2\" or \"3\"!"; sleep 2 ;;
|
||||
esac
|
||||
done
|
||||
while :; do
|
||||
reset || clear
|
||||
echo "What kind of binary format for final toolchain?"
|
||||
echo "[1] is 32-bits (i686)"
|
||||
echo "[2] is 64-bits (amd64)"
|
||||
echo "------"
|
||||
echo "NOTE: On 32-bits (i686) host machine you *CAN NOT* build 64-bits (amd64) binary format of toolchain!"
|
||||
read BINARY
|
||||
case ${BINARY} in
|
||||
1) export BINARY="32"; break ;;
|
||||
2) export BINARY="64"; break ;;
|
||||
*) echo "ONLY USE \"1\" or \"2\"!"; sleep 2 ;;
|
||||
esac
|
||||
done
|
||||
runit "${arch}-danio-${BASE}" "${BINARY}"
|
||||
fi
|
||||
|
||||
trap - EXIT
|
||||
|
||||
Reference in New Issue
Block a user