mirror of
https://github.com/devkitPro/buildscripts.git
synced 2026-03-21 17:44:41 -05:00
196 lines
5.3 KiB
Bash
Executable File
196 lines
5.3 KiB
Bash
Executable File
#!/bin/bash
|
|
#---------------------------------------------------------------------------------
|
|
# Check Parameters
|
|
#---------------------------------------------------------------------------------
|
|
|
|
#---------------------------------------------------------------------------------
|
|
# build and install ppc binutils
|
|
#---------------------------------------------------------------------------------
|
|
|
|
mkdir -p $target/binutils
|
|
cd $target/binutils
|
|
|
|
if [ ! -f configured-binutils ]
|
|
then
|
|
../../binutils-$BINUTILS_VER/configure \
|
|
--prefix=$prefix --target=$target --disable-nls --disable-shared --disable-debug \
|
|
--disable-werror \
|
|
--enable-poison-system-directories \
|
|
--enable-plugins --enable-lto \
|
|
--disable-werror $CROSS_PARAMS \
|
|
|| { echo "Error configuing ppc binutils"; exit 1; }
|
|
touch configured-binutils
|
|
fi
|
|
|
|
if [ ! -f built-binutils ]
|
|
then
|
|
$MAKE || { echo "Error building ppc binutils"; exit 1; }
|
|
touch built-binutils
|
|
fi
|
|
|
|
if [ ! -f installed-binutils ]
|
|
then
|
|
$MAKE install || { echo "Error installing ppc binutils"; exit 1; }
|
|
touch installed-binutils
|
|
fi
|
|
cd $BUILDDIR
|
|
|
|
|
|
#---------------------------------------------------------------------------------
|
|
# build and install mn10200 binutils
|
|
#---------------------------------------------------------------------------------
|
|
|
|
# Use modern config.sub for aarch64 host
|
|
cp binutils-$BINUTILS_VER/config.sub binutils-$MN_BINUTILS_VER/config.sub
|
|
|
|
mkdir -p mn10200/binutils
|
|
cd mn10200/binutils
|
|
|
|
if [ ! -f configured-binutils ]
|
|
then
|
|
../../binutils-$MN_BINUTILS_VER/configure \
|
|
--prefix=$prefix --target=mn10200 --disable-nls --disable-debug \
|
|
--disable-multilib \
|
|
--disable-werror $CROSS_PARAMS \
|
|
|| { echo "Error configuing mn10200 binutils"; exit 1; }
|
|
touch configured-binutils
|
|
fi
|
|
|
|
if [ ! -f built-binutils ]
|
|
then
|
|
$MAKE || { echo "Error building mn10200 binutils"; exit 1; }
|
|
touch built-binutils
|
|
fi
|
|
|
|
if [ ! -f installed-binutils ]
|
|
then
|
|
$MAKE install || { echo "Error installing mn10200 binutils"; exit 1; }
|
|
touch installed-binutils
|
|
fi
|
|
|
|
cd $BUILDDIR
|
|
|
|
#---------------------------------------------------------------------------------
|
|
# build and install just the c compiler
|
|
#---------------------------------------------------------------------------------
|
|
mkdir -p $target/gcc
|
|
cd $target/gcc
|
|
|
|
export gcc_cv_libc_provides_ssp=yes
|
|
|
|
if [ ! -f configured-gcc ]
|
|
then
|
|
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++,objc,lto \
|
|
--enable-lto \
|
|
--with-cpu=750 \
|
|
--disable-nls --disable-shared --enable-threads=dkp --disable-multilib \
|
|
--disable-win32-registry \
|
|
--disable-libstdcxx-pch \
|
|
--disable-libstdcxx-verbose \
|
|
--enable-libstdcxx-time=yes \
|
|
--enable-libstdcxx-filesystem-ts \
|
|
--disable-tm-clone-registry \
|
|
--disable-__cxa_atexit \
|
|
--disable-libssp \
|
|
--enable-cxx-flags='-ffunction-sections -fdata-sections' \
|
|
--target=$target \
|
|
--with-newlib \
|
|
--with-headers=../../newlib-$NEWLIB_VER/newlib/libc/include \
|
|
--prefix=$prefix \
|
|
--with-bugurl="https://github.com/devkitpro/buildscripts/issues" --with-pkgversion="devkitPPC release 46" \
|
|
$CROSS_PARAMS \
|
|
$CROSS_GCC_PARAMS \
|
|
$EXTRA_GCC_PARAMS \
|
|
CFLAGS_FOR_TARGET="-O2 -ffunction-sections -fdata-sections" \
|
|
|| { echo "Error configuring gcc stage 1"; exit 1; }
|
|
touch configured-gcc
|
|
fi
|
|
|
|
if [ ! -f built-gcc-stage1 ]
|
|
then
|
|
$MAKE all-gcc || { echo "Error building gcc stage1"; exit 1; }
|
|
touch built-gcc-stage1
|
|
fi
|
|
|
|
if [ ! -f installed-gcc-stage1 ]
|
|
then
|
|
$MAKE install-gcc || { echo "Error installing gcc stage1"; exit 1; }
|
|
touch installed-gcc-stage1
|
|
fi
|
|
|
|
#---------------------------------------------------------------------------------
|
|
# build and install newlib
|
|
#---------------------------------------------------------------------------------
|
|
cd $BUILDDIR
|
|
mkdir -p $target/newlib
|
|
cd $target/newlib
|
|
|
|
unset CFLAGS
|
|
unset LDFLAGS
|
|
|
|
OLD_CC=$CC
|
|
OLD_CXX=$CXX
|
|
unset CC
|
|
unset CXX
|
|
|
|
if [ ! -f configured-newlib ]
|
|
then
|
|
CFLAGS_FOR_TARGET="-O2 -ffunction-sections -fdata-sections -DCUSTOM_MALLOC_LOCK" \
|
|
../../newlib-$NEWLIB_VER/configure \
|
|
--target=$target \
|
|
--prefix=$prefix \
|
|
--enable-newlib-mb \
|
|
--enable-newlib-register-fini \
|
|
|| { 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
|
|
|
|
export CC=$OLD_CC
|
|
export CXX=$OLD_CXX
|
|
|
|
#---------------------------------------------------------------------------------
|
|
# 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
|
|
|
|
#---------------------------------------------------------------------------------
|
|
# Install and build the gamecube crt and libogc
|
|
#---------------------------------------------------------------------------------
|
|
|
|
echo "installing linkscripts ..."
|
|
cp $BUILDSCRIPTDIR/dkppc/crtls/*.ld $prefix/$target/lib/
|
|
|
|
cd $BUILDDIR
|