3
# Cross-Compiler Toolchain for ${PLATFORM}
4
# by Martin Decky <martin@decky.cz>
11
if [ "$1" -ne "0" ]; then
13
echo "Script failed: $2"
18
if [ -z "${CROSS_PREFIX}" ] ; then
19
CROSS_PREFIX="/usr/local"
22
BINUTILS_VERSION="2.19.1"
25
BINUTILS="binutils-${BINUTILS_VERSION}.tar.gz"
26
GCC_CORE="gcc-core-${GCC_VERSION}.tar.bz2"
27
GCC_OBJC="gcc-objc-${GCC_VERSION}.tar.bz2"
28
GCC_CPP="gcc-g++-${GCC_VERSION}.tar.bz2"
30
BINUTILS_SOURCE="ftp://ftp.gnu.org/gnu/binutils/"
31
GCC_SOURCE="ftp://ftp.gnu.org/gnu/gcc/gcc-${GCC_VERSION}/"
35
TARGET="${PLATFORM}-pc-linux-gnu"
36
PREFIX="${CROSS_PREFIX}/${PLATFORM}"
37
BINUTILSDIR="${WORKDIR}/binutils-${BINUTILS_VERSION}"
38
GCCDIR="${WORKDIR}/gcc-${GCC_VERSION}"
39
OBJDIR="${WORKDIR}/gcc-obj"
41
echo ">>> Downloading tarballs"
43
if [ ! -f "${BINUTILS}" ]; then
44
wget -c "${BINUTILS_SOURCE}${BINUTILS}"
45
check_error $? "Error downloading binutils."
47
if [ ! -f "${GCC_CORE}" ]; then
48
wget -c "${GCC_SOURCE}${GCC_CORE}"
49
check_error $? "Error downloading GCC Core."
51
if [ ! -f "${GCC_OBJC}" ]; then
52
wget -c "${GCC_SOURCE}${GCC_OBJC}"
53
check_error $? "Error downloading GCC Objective C."
55
if [ ! -f "${GCC_CPP}" ]; then
56
wget -c "${GCC_SOURCE}${GCC_CPP}"
57
check_error $? "Error downloading GCC C++."
60
echo ">>> Creating destionation directory"
61
if [ ! -d "${PREFIX}" ]; then
64
check_error $? "Unable to create ${PREFIX}."
67
echo ">>> Creating GCC work directory"
68
if [ ! -d "${OBJDIR}" ]; then
71
check_error $? "Unable to create ${OBJDIR}."
74
echo ">>> Unpacking tarballs"
75
tar -xvzf "${BINUTILS}"
76
check_error $? "Error unpacking binutils."
77
tar -xvjf "${GCC_CORE}"
78
check_error $? "Error unpacking GCC Core."
79
tar -xvjf "${GCC_OBJC}"
80
check_error $? "Error unpacking GCC Objective C."
81
tar -xvjf "${GCC_CPP}"
82
check_error $? "Error unpacking GCC C++."
84
echo ">>> Compiling and installing binutils"
86
check_error $? "Change directory failed."
87
./configure "--target=${TARGET}" "--prefix=${PREFIX}" "--program-prefix=${TARGET}-" "--disable-nls"
88
check_error $? "Error configuring binutils."
90
check_error $? "Error compiling/installing binutils."
92
echo ">>> Compiling and installing GCC"
94
check_error $? "Change directory failed."
95
"${GCCDIR}/configure" "--target=${TARGET}" "--prefix=${PREFIX}" "--program-prefix=${TARGET}-" --with-gnu-as --with-gnu-ld --disable-nls --disable-threads --enable-languages=c,objc,c++,obj-c++ --disable-multilib --disable-libgcj --without-headers --disable-shared
96
check_error $? "Error configuring GCC."
97
PATH="${PATH}:${PREFIX}/bin" make all-gcc install-gcc
98
check_error $? "Error compiling/installing GCC."
101
echo ">>> Cross-compiler for ${TARGET} installed."