temperaturecontrol: allow setting background tool without activating
[clinton/Smoothieware.git] / linux_install
1 #! /usr/bin/env bash
2 # Copyright 2012 Adam Green (http://mbed.org/users/AdamGreen/)
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.
18 RunAndLog () {
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.
34 ROOTDIR=$0
35 ROOTDIR=${ROOTDIR%/*}
36 pushd $ROOTDIR
37 ROOTDIR=$PWD
38 LOGFILE=$ROOTDIR/linux_install.log
39 ERRORFILE=$ROOTDIR/linux_install.err
40 GCC4ARM_VERSION=gcc-arm-none-eabi-4_8-2014q1
41 GCC4ARM_FILENAME=gcc-arm-none-eabi-4_8-2014q1-20140314-linux.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=72b0d06ae16b303c25fd70b2883d3950
45 GCC4ARM_EXTRACT=$ROOTDIR/$GCC4ARM_VERSION
46 GCC4ARM_DIR=$ROOTDIR/gcc-arm-none-eabi
47 GCC4ARM_BINDIR=$GCC4ARM_DIR/bin
48 BUILDSHELL_CMD=$ROOTDIR/BuildShell
49
50
51 echo Logging install results to $LOGFILE
52 echo `date` Starting $0 $*>$LOGFILE
53
54 echo Downloading GNU Tools for ARM Embedded Processors...
55 rm $GCC4ARM_FILENAME >/dev/null 2>/dev/null
56 echo `date` Executing wget $GCC4ARM_URL>>$LOGFILE
57 wget $GCC4ARM_URL
58
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=`md5sum $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
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
70 fi
71
72 echo Extracting GNU Tools for ARM Embedded Processors...
73 rm -r $GCC4ARM_DIR >/dev/null 2>/dev/null
74 RunAndLog tar xf $GCC4ARM_TAR
75 RunAndLog mv $GCC4ARM_EXTRACT $GCC4ARM_DIR
76
77 echo Creating helper scripts...
78 echo "#! /usr/bin/env bash">$BUILDSHELL_CMD
79 echo "# Modify next line and set destination drive to match mbed device">>$BUILDSHELL_CMD
80 echo "export LPC_DEPLOY='cp PROJECT.bin /media/MBED/ ; sync'">>$BUILDSHELL_CMD
81 echo>>$BUILDSHELL_CMD
82 echo "SCRIPT_PATH=\$0">>$BUILDSHELL_CMD
83 echo "SCRIPT_PATH=\${SCRIPT_PATH%/*}">>$BUILDSHELL_CMD
84 echo "cd \$SCRIPT_PATH">>$BUILDSHELL_CMD
85 echo "SCRIPT_PATH=\$PWD">>$BUILDSHELL_CMD
86 echo "export PATH=\$SCRIPT_PATH/gcc-arm-none-eabi/bin:\$PATH">>$BUILDSHELL_CMD
87 echo "exec bash">>$BUILDSHELL_CMD
88 chmod +x $BUILDSHELL_CMD
89
90 echo Cleaning up intermediate files...
91 RunAndLog rm $GCC4ARM_TAR
92
93 echo
94 echo To build Smoothie, you will first need to run the following script
95 echo so that your environment variables are set correctly:
96 echo $BUILDSHELL_CMD
97 echo You will want to run this each time you start a new Terminal. You
98 echo can simply double-click on this script file from Finder to launch a
99 echo bash Terminal that has been properly initialized for building. Feel
100 echo free to customize it as you desire.
101 echo
102 echo You can also just edit your existing setup script such as \~/.profile
103 echo to update the PATH environment variable to include:
104 echo $GCC4ARM_BINDIR
105
106
107 # Restore current directory and exit script on success.
108 echo `date` Finished successfully>>$LOGFILE
109 echo Finished successfully
110 rm -f $ERRORFILE
111 popd >/dev/null
112 read -n 1 -sp "Press any key to continue..." dummy ; echo