source: mainline/contrib/toolchain/toolchain.arm32.sh@ 5d7daff

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since 5d7daff was d630139, checked in by Jakub Jermar <jakub@…>, 19 years ago

Add arm32 architecture. The 32 suffix is used to specify that 16-bit Thumb
instructions are not used. The arm32 code is mostly composed of placeholders
that need to be replaced by real implementation. So far, the arm32 tree
only compiles. If run under GXEmul simulator, an infinit loop at the
kernel entry point will be entered.

  • Property mode set to 100755
File size: 2.8 KB
Line 
1#!/bin/bash
2
3# Cross-Compiler Toolchain for ${PLATFORM}
4# by Martin Decky <martin@decky.cz>
5#
6# GPL'ed, copyleft
7#
8
9
10check_error() {
11 if [ "$1" -ne "0" ]; then
12 echo
13 echo "Script failed: $2"
14 exit
15 fi
16}
17
18BINUTILS_VERSION="2.17"
19GCC_VERSION="4.1.1"
20
21BINUTILS="binutils-${BINUTILS_VERSION}.tar.gz"
22GCC_CORE="gcc-core-${GCC_VERSION}.tar.bz2"
23GCC_OBJC="gcc-objc-${GCC_VERSION}.tar.bz2"
24GCC_CPP="gcc-g++-${GCC_VERSION}.tar.bz2"
25
26BINUTILS_SOURCE="ftp://ftp.gnu.org/gnu/binutils/"
27GCC_SOURCE="ftp://ftp.gnu.org/gnu/gcc/gcc-${GCC_VERSION}/"
28
29PLATFORM="arm"
30WORKDIR=`pwd`
31TARGET="${PLATFORM}-linux-gnu"
32HOST="i86pc-linux-gnu"
33PREFIX="/usr/local/${PLATFORM}"
34BINUTILSDIR="${WORKDIR}/binutils-${BINUTILS_VERSION}"
35GCCDIR="${WORKDIR}/gcc-${GCC_VERSION}"
36OBJDIR="${WORKDIR}/gcc-obj"
37
38echo ">>> Downloading tarballs"
39
40if [ ! -f "${BINUTILS}" ]; then
41 wget -c "${BINUTILS_SOURCE}${BINUTILS}"
42 check_error $? "Error downloading binutils."
43fi
44if [ ! -f "${GCC_CORE}" ]; then
45 wget -c "${GCC_SOURCE}${GCC_CORE}"
46 check_error $? "Error downloading GCC Core."
47fi
48if [ ! -f "${GCC_OBJC}" ]; then
49 wget -c "${GCC_SOURCE}${GCC_OBJC}"
50 check_error $? "Error downloading GCC Objective C."
51fi
52if [ ! -f "${GCC_CPP}" ]; then
53 wget -c "${GCC_SOURCE}${GCC_CPP}"
54 check_error $? "Error downloading GCC C++."
55fi
56
57echo ">>> Creating destionation directory"
58if [ ! -d "${PREFIX}" ]; then
59 mkdir -p "${PREFIX}"
60 test -d "${PREFIX}"
61 check_error $? "Unable to create ${PREFIX}."
62fi
63
64echo ">>> Creating GCC work directory"
65if [ ! -d "${OBJDIR}" ]; then
66 mkdir -p "${OBJDIR}"
67 test -d "${OBJDIR}"
68 check_error $? "Unable to create ${OBJDIR}."
69fi
70
71echo ">>> Unpacking tarballs"
72tar -xvzf "${BINUTILS}"
73check_error $? "Error unpacking binutils."
74tar -xvjf "${GCC_CORE}"
75check_error $? "Error unpacking GCC Core."
76tar -xvjf "${GCC_OBJC}"
77check_error $? "Error unpacking GCC Objective C."
78tar -xvjf "${GCC_CPP}"
79check_error $? "Error unpacking GCC C++."
80
81echo ">>> Compiling and installing binutils"
82cd "${BINUTILSDIR}"
83check_error $? "Change directory failed."
84./configure "--host=${HOST}" "--target=${TARGET}" "--prefix=${PREFIX}" "--program-prefix=${TARGET}-" "--disable-nls"
85check_error $? "Error configuring binutils."
86make all install
87check_error $? "Error compiling/installing binutils."
88
89echo ">>> Compiling and installing GCC"
90cd "${OBJDIR}"
91check_error $? "Change directory failed."
92"${GCCDIR}/configure" "--host=${HOST}" "--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
93check_error $? "Error configuring GCC."
94PATH="${PATH}:${PREFIX}/bin" make all-gcc install-gcc
95check_error $? "Error compiling/installing GCC."
96
97echo
98echo ">>> Cross-compiler for ${TARGET} installed."
Note: See TracBrowser for help on using the repository browser.