2 # Copyright 2012 Adam Green (http://mbed.org/users/AdamGreen/)
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
8 # http://www.apache.org/licenses/LICENSE-2.0
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.
17 # Logs the command to be run and then executes the command while logging the results.
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"
27 read -n 1 -sp "Press any key to continue..." dummy
; echo
33 # Setup script variables.
38 LOGFILE
="$ROOTDIR"/mac_install.log
39 ERRORFILE
="$ROOTDIR"/mac_install.err
40 GCC4ARM_VERSION
=gcc-arm-none-eabi-4_8-2014q1
41 GCC4ARM_FILENAME
=gcc-arm-none-eabi-4_8-2014q1-20140314-mac.
tar.bz2
42 GCC4ARM_URL
=https
://launchpad.net
/gcc-arm-embedded
/4.8/4.8-2014-q1-update/+download
/$GCC4ARM_FILENAME
43 GCC4ARM_TAR
="$ROOTDIR"/$GCC4ARM_FILENAME
44 GCC4ARM_MD5
=5d34d95a53ba545f1585b9136cbb6805
45 GCC4ARM_EXTRACT
="$ROOTDIR"/$GCC4ARM_VERSION
46 GCC4ARM_DIR
="$ROOTDIR"/gcc-arm-none-eabi
47 GCC4ARM_BINDIR
=$GCC4ARM_DIR/bin
48 MACBIN_DIR
="$ROOTDIR"/build
/osx64
49 BUILDSHELL_CMD
="$ROOTDIR"/BuildShell
52 echo Logging
install results to
"$LOGFILE"
53 echo `date` Starting
$0 $
*>"$LOGFILE"
55 echo Downloading GNU Tools
for ARM Embedded Processors...
56 echo `date` Executing curl
-L0 $GCC4ARM_URL>>"$LOGFILE"
57 curl
-L0 $GCC4ARM_URL >$GCC4ARM_FILENAME
59 echo Validating md5 signature of GNU Tools
for ARM Embedded Processors...
60 echo `date` Validating md5 signature of GNU Tools
for ARM Embedded Processors
>>"$LOGFILE"
61 archive_match
=`md5 -q $GCC4ARM_FILENAME | grep -c $GCC4ARM_MD5`
62 if [ "$archive_match" != "1" ] ; then
63 echo $GCC4ARM_FILENAME failed MD5 signature check.
>>"$LOGFILE"
64 echo `date` Failure forced early
exit>>"$LOGFILE"
68 read -n 1 -sp "Press any key to continue..." dummy
; echo
72 echo Extracting GNU Tools
for ARM Embedded Processors...
73 rm -r "$GCC4ARM_DIR" >/dev
/null
2>/dev
/null
75 RunAndLog
tar xf
"$GCC4ARM_TAR"
76 RunAndLog
mv "$GCC4ARM_EXTRACT" "$GCC4ARM_DIR"
78 echo Installing patched
64-bit Intel Mac OS X GDB binaries...
79 RunAndLog
cp "$MACBIN_DIR"/arm-none-eabi-gdb
* "$GCC4ARM_BINDIR/"
81 echo Creating helper scripts...
82 echo "#! /usr/bin/env bash">"$BUILDSHELL_CMD"
83 echo "# Modify next line and set destination drive to match mbed device">>"$BUILDSHELL_CMD"
84 echo "export LPC_DEPLOY='cp PROJECT.bin /Volumes/MBED/ ; sync'">>"$BUILDSHELL_CMD"
85 echo>>"$BUILDSHELL_CMD"
86 echo "SCRIPT_PATH=\$0">>"$BUILDSHELL_CMD"
87 echo "SCRIPT_PATH=\${SCRIPT_PATH%/*}">>"$BUILDSHELL_CMD"
88 echo "cd \$SCRIPT_PATH">>"$BUILDSHELL_CMD"
89 echo "SCRIPT_PATH=\$PWD">>"$BUILDSHELL_CMD"
90 echo "export PATH=\$SCRIPT_PATH/gcc-arm-none-eabi/bin:\$SCRIPT_PATH/build/osx64:\$PATH">>"$BUILDSHELL_CMD"
91 echo "exec bash">>"$BUILDSHELL_CMD"
92 chmod +x
"$BUILDSHELL_CMD"
94 echo Cleaning up intermediate files...
95 RunAndLog
rm "$GCC4ARM_TAR"
98 echo To build Smoothie
, you will first need to run the following
script
99 echo so that your environment variables are
set correctly
:
101 echo You will want to run this each
time you start a new Terminal. You
102 echo can simply double-click on this
script file from Finder to launch a
103 echo bash Terminal that has been properly initialized
for building. Feel
104 echo free to customize it as you desire.
106 echo You can also just edit your existing setup
script such as \~
/.profile
107 echo to update the PATH environment variable to include
:
111 # Restore current directory and exit script on success.
112 echo `date` Finished successfully
>>"$LOGFILE"
113 echo Finished successfully
116 read -n 1 -sp "Press any key to continue..." dummy
; echo