From 03b624ffbbbb2f2d40390098dfb3394b351068ab Mon Sep 17 00:00:00 2001 From: Dave Murphy Date: Sun, 5 Mar 2017 01:26:03 +0000 Subject: [PATCH] add script to build toolchain --- dka64/scripts/build-gcc.sh | 174 +++++++++++++++++++++++++++++++++++++ 1 file changed, 174 insertions(+) create mode 100755 dka64/scripts/build-gcc.sh diff --git a/dka64/scripts/build-gcc.sh b/dka64/scripts/build-gcc.sh new file mode 100755 index 0000000..e66608b --- /dev/null +++ b/dka64/scripts/build-gcc.sh @@ -0,0 +1,174 @@ +#!/bin/sh +#--------------------------------------------------------------------------------- + +#--------------------------------------------------------------------------------- +# build and install binutils +#--------------------------------------------------------------------------------- + +mkdir -p $target/binutils +cd $target/binutils + +if [ ! -f configured-binutils ] +then + CFLAGS=$cflags LDFLAGS=$ldflags ../../binutils-$BINUTILS_VER/configure \ + --prefix=$prefix --target=$target --disable-nls --disable-werror \ + --enable-lto --enable-plugins --enable-poison-system-directories \ + $CROSS_PARAMS \ + || { echo "Error configuring binutils"; exit 1; } + touch configured-binutils +fi + +if [ ! -f built-binutils ] +then + $MAKE || { echo "Error building binutils"; exit 1; } + touch built-binutils +fi + +if [ ! -f installed-binutils ] +then + $MAKE install || { echo "Error installing binutils"; exit 1; } + touch installed-binutils +fi +cd $BUILDDIR + +#--------------------------------------------------------------------------------- +# build and install just the c compiler +#--------------------------------------------------------------------------------- +mkdir -p $target/gcc +cd $target/gcc + +if [ ! -f configured-gcc ] +then + CFLAGS="$cflags" \ + CXXFLAGS="$cflags" \ + LDFLAGS="$ldflags" \ + CFLAGS_FOR_TARGET="-O2 -ffunction-sections -fdata-sections" \ + CXXFLAGS_FOR_TARGET="-O2 -ffunction-sections -fdata-sections" \ + LDFLAGS_FOR_TARGET="" \ + ../../gcc-$GCC_VER/configure \ + --enable-languages=c,c++ \ + --with-gnu-as --with-gnu-ld --with-gcc \ + --with-march=armv8\ + --enable-cxx-flags='-ffunction-sections' \ + --disable-libstdcxx-verbose \ + --enable-poison-system-directories \ + --enable-interwork --enable-multilib \ + --enable-threads --disable-win32-registry --disable-nls --disable-debug\ + --disable-libmudflap --disable-libssp --disable-libgomp \ + --disable-libstdcxx-pch \ + --target=$target \ + --with-newlib \ + --with-headers=../../newlib-$NEWLIB_VER/newlib/libc/include \ + --prefix=$prefix \ + --enable-lto $plugin_ld\ + --with-system-zlib \ + --with-bugurl="http://wiki.devkitpro.org/index.php/Bug_Reports" --with-pkgversion="devkitA64 alpha 1" \ + $CROSS_PARAMS \ + || { echo "Error configuring gcc"; exit 1; } + touch configured-gcc +fi + +if [ ! -f built-gcc ] +then + $MAKE all-gcc || { echo "Error building gcc stage1"; exit 1; } + touch built-gcc +fi + +if [ ! -f installed-gcc ] +then + $MAKE install-gcc || { echo "Error installing gcc"; exit 1; } + touch installed-gcc +fi + + +unset CFLAGS +cd $BUILDDIR + +#--------------------------------------------------------------------------------- +# build and install newlib +#--------------------------------------------------------------------------------- +mkdir -p $target/newlib +cd $target/newlib + +if [ ! -f configured-newlib ] +then + CFLAGS_FOR_TARGET="-O2 -ffunction-sections -fdata-sections" \ + ../../newlib-$NEWLIB_VER/configure \ + --disable-newlib-supplied-syscalls \ + --enable-newlib-mb \ + --disable-newlib-wide-orient \ + --target=$target \ + --prefix=$prefix \ + || { echo "Error configuring newlib"; exit 1; } + touch configured-newlib +fi + +if [ ! -f built-newlib ] +then + $MAKE || { echo "Error building newlib"; exit 1; } + touch built-newlib +fi + + +if [ ! -f installed-newlib ] +then + $MAKE install -j1 || { echo "Error installing newlib"; exit 1; } + touch installed-newlib +fi + +#--------------------------------------------------------------------------------- +# build and install the final compiler +#--------------------------------------------------------------------------------- + +cd $BUILDDIR + +cd $target/gcc + +if [ ! -f built-stage2 ] +then + $MAKE all || { echo "Error building gcc stage2"; exit 1; } + touch built-stage2 +fi + +if [ ! -f installed-stage2 ] +then + $MAKE install || { echo "Error installing gcc stage2"; exit 1; } + touch installed-stage2 +fi + +rm -fr $prefix/$target/sys-include + +cd $BUILDDIR + +#--------------------------------------------------------------------------------- +# build and install the debugger +#--------------------------------------------------------------------------------- +mkdir -p $target/gdb +cd $target/gdb + +PLATFORM=`uname -s` + +if [ ! -f configured-gdb ] +then + CFLAGS="$cflags" \ + CXXFLAGS="$cflags" \ + LDFLAGS="$ldflags" \ + ../../gdb-$GDB_VER/configure \ + --disable-nls --prefix=$prefix --target=$target --disable-werror \ + $CROSS_PARAMS \ + || { echo "Error configuring gdb"; exit 1; } + touch configured-gdb +fi + +if [ ! -f built-gdb ] +then + $MAKE || { echo "Error building gdb"; exit 1; } + touch built-gdb +fi + +if [ ! -f installed-gdb ] +then + $MAKE install || { echo "Error installing gdb"; exit 1; } + touch installed-gdb +fi +