Merge pull request #531 from wolfmanjm/upstreamedge
[clinton/Smoothieware.git] / mac_install
CommitLineData
3b1e82d2 1#! /usr/bin/env bash
8fcce42e 2# Copyright 2012 Adam Green (http://mbed.org/users/AdamGreen/)
3b1e82d2
AW
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15
16
17# Logs the command to be run and then executes the command while logging the results.
18RunAndLog () {
19 echo `date` Executing $@>>$LOGFILE
20 $@ 1>>$LOGFILE 2>$ERRORFILE
21 if [ "$?" != "0" ] ; then
22 cat $ERRORFILE >>$LOGFILE
23 echo `date` Failure forced early exit>>$LOGFILE
24 cat $LOGFILE
25 rm -f $ERRORFILE
26 popd >/dev/null
27 read -n 1 -sp "Press any key to continue..." dummy ; echo
28 exit 1
29 fi
30}
31
32
33# Setup script variables.
34ROOTDIR=$0
35ROOTDIR=${ROOTDIR%/*}
36pushd $ROOTDIR
37ROOTDIR=$PWD
38LOGFILE=$ROOTDIR/mac_install.log
39ERRORFILE=$ROOTDIR/mac_install.err
ce6ee091
JM
40GCC4ARM_VERSION=gcc-arm-none-eabi-4_8-2014q1
41GCC4ARM_FILENAME=gcc-arm-none-eabi-4_8-2014q1-20140314-mac.tar.bz2
42GCC4ARM_URL=https://launchpad.net/gcc-arm-embedded/4.8/4.8-2014-q1-update/+download/$GCC4ARM_FILENAME
8fcce42e 43GCC4ARM_TAR=$ROOTDIR/$GCC4ARM_FILENAME
ce6ee091 44GCC4ARM_MD5=5d34d95a53ba545f1585b9136cbb6805
8fcce42e
AG
45GCC4ARM_EXTRACT=$ROOTDIR/$GCC4ARM_VERSION
46GCC4ARM_DIR=$ROOTDIR/gcc-arm-none-eabi
47GCC4ARM_BINDIR=$GCC4ARM_DIR/bin
172d42d9 48MACBIN_DIR=$ROOTDIR/build/osx64
3b1e82d2
AW
49BUILDSHELL_CMD=$ROOTDIR/BuildShell
50
51
3b1e82d2
AW
52echo Logging install results to $LOGFILE
53echo `date` Starting $0 $*>$LOGFILE
54
8fcce42e
AG
55echo Downloading GNU Tools for ARM Embedded Processors...
56echo `date` Executing curl -L0 $GCC4ARM_URL>>$LOGFILE
57curl -L0 $GCC4ARM_URL >$GCC4ARM_FILENAME
3b1e82d2 58
8fcce42e
AG
59echo Validating md5 signature of GNU Tools for ARM Embedded Processors...
60echo `date` Validating md5 signature of GNU Tools for ARM Embedded Processors>>$LOGFILE
61archive_match=`md5 -q $GCC4ARM_FILENAME | grep -c $GCC4ARM_MD5`
3b1e82d2 62if [ "$archive_match" != "1" ] ; then
8fcce42e 63 echo $GCC4ARM_FILENAME failed MD5 signature check.>>$LOGFILE
3b1e82d2
AW
64 echo `date` Failure forced early exit>>$LOGFILE
65 cat $LOGFILE
66 rm -f $ERRORFILE
67 popd >/dev/null
68 read -n 1 -sp "Press any key to continue..." dummy ; echo
69 exit 1
70fi
71
8fcce42e
AG
72echo Extracting GNU Tools for ARM Embedded Processors...
73rm -r $GCC4ARM_DIR >/dev/null 2>/dev/null
74RunAndLog tar xf $GCC4ARM_TAR
75RunAndLog mv $GCC4ARM_EXTRACT $GCC4ARM_DIR
3b1e82d2 76
172d42d9
AG
77echo Installing patched 64-bit Intel Mac OS X GDB binaries...
78RunAndLog cp $MACBIN_DIR/arm-none-eabi-gdb* $GCC4ARM_BINDIR/
3b1e82d2
AW
79
80echo Creating helper scripts...
81echo "#! /usr/bin/env bash">$BUILDSHELL_CMD
82echo "# Modify next line and set destination drive to match mbed device">>$BUILDSHELL_CMD
172d42d9 83echo "export LPC_DEPLOY='cp PROJECT.bin /Volumes/MBED/ ; sync'">>$BUILDSHELL_CMD
3b1e82d2
AW
84echo>>$BUILDSHELL_CMD
85echo "SCRIPT_PATH=\$0">>$BUILDSHELL_CMD
86echo "SCRIPT_PATH=\${SCRIPT_PATH%/*}">>$BUILDSHELL_CMD
87echo "cd \$SCRIPT_PATH">>$BUILDSHELL_CMD
88echo "SCRIPT_PATH=\$PWD">>$BUILDSHELL_CMD
172d42d9 89echo "export PATH=\$SCRIPT_PATH/gcc-arm-none-eabi/bin:\$SCRIPT_PATH/build/osx64:\$PATH">>$BUILDSHELL_CMD
3b1e82d2
AW
90echo "exec bash">>$BUILDSHELL_CMD
91chmod +x $BUILDSHELL_CMD
92
8fcce42e 93echo Cleaning up intermediate files...
8fcce42e 94RunAndLog rm $GCC4ARM_TAR
3b1e82d2
AW
95
96echo
172d42d9 97echo To build Smoothie, you will first need to run the following script
3b1e82d2
AW
98echo so that your environment variables are set correctly:
99echo $BUILDSHELL_CMD
100echo You will want to run this each time you start a new Terminal. You
101echo can simply double-click on this script file from Finder to launch a
172d42d9
AG
102echo bash Terminal that has been properly initialized for building. Feel
103echo free to customize it as you desire.
3b1e82d2
AW
104echo
105echo You can also just edit your existing setup script such as \~/.profile
106echo to update the PATH environment variable to include:
8fcce42e 107echo $GCC4ARM_BINDIR
3b1e82d2
AW
108
109
110# Restore current directory and exit script on success.
111echo `date` Finished successfully>>$LOGFILE
112echo Finished successfully
113rm -f $ERRORFILE
114popd >/dev/null
115read -n 1 -sp "Press any key to continue..." dummy ; echo