Commit | Line | Data |
---|---|---|
3b1e82d2 | 1 | @echo off\r |
ce6ee091 | 2 | rem Copyright 2013 Adam Green (http://mbed.org/users/AdamGreen/)\r |
3b1e82d2 AW |
3 | rem\r |
4 | rem Licensed under the Apache License, Version 2.0 (the "License");\r | |
5 | rem you may not use this file except in compliance with the License.\r | |
6 | rem You may obtain a copy of the License at\r | |
7 | rem\r | |
8 | rem http://www.apache.org/licenses/LICENSE-2.0\r | |
9 | rem\r | |
10 | rem Unless required by applicable law or agreed to in writing, software\r | |
11 | rem distributed under the License is distributed on an "AS IS" BASIS,\r | |
12 | rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r | |
13 | rem See the License for the specific language governing permissions and\r | |
14 | rem limitations under the License.\r | |
15 | \r | |
16 | \r | |
17 | rem Setup batch file specific environment variables.\r | |
18 | setlocal\r | |
19 | set ROOTDIR=%~dp0\r | |
20 | set LOGFILE=%ROOTDIR%win_install.log\r | |
21 | set ERRORFILE=%ROOTDIR%win_install.err\r | |
ce6ee091 JM |
22 | set GCC4ARM_VERSION=gcc-arm-none-eabi-4_8-2014q1\r |
23 | set GCC4ARM_FILENAME=gcc-arm-none-eabi-4_8-2014q1-20140314-win32.zip\r | |
24 | set GCC4ARM_URL=https://launchpad.net/gcc-arm-embedded/4.8/4.8-2014-q1-update/+download/%GCC4ARM_FILENAME%\r | |
8fcce42e | 25 | set GCC4ARM_TAR=%ROOTDIR%%GCC4ARM_FILENAME%\r |
ce6ee091 JM |
26 | set GCC4ARM_MD5=09c19b3248863074f5498a88f31bee16\r |
27 | set GCC4ARM_MD5_FILENAME=%ROOTDIR%gcc-arm-none-eabi.md5\r | |
8fcce42e AG |
28 | set GCC4ARM_DIR=%ROOTDIR%gcc-arm-none-eabi\r |
29 | set GCC4ARM_BINDIR=%GCC4ARM_DIR%\bin\r | |
39bf9bed | 30 | set OUR_MAKE=%ROOTDIR%build\win32\make.exe\r |
8fcce42e | 31 | set BUILDENV_CMD=%GCC4ARM_BINDIR%\buildenv.cmd\r |
3b1e82d2 | 32 | set BUILDSHELL_CMD=%ROOTDIR%BuildShell.cmd\r |
ce6ee091 | 33 | set BUILDSHELL_DEBUG_CMD=%ROOTDIR%BuildShellDebug.cmd\r |
3b1e82d2 AW |
34 | \r |
35 | \r | |
36 | rem Make sure that we are running with current directory set to where this\r | |
37 | rem batch file is located.\r | |
38 | pushd %ROOTDIR%\r | |
39 | \r | |
40 | rem Initialize install log files.\r | |
41 | echo Logging install results to %LOGFILE%\r | |
42 | echo %DATE% %TIME% Starting %0 %*>%LOGFILE%\r | |
43 | \r | |
8fcce42e | 44 | echo Downloading GNU Tools for ARM Embedded Processors...\r |
39bf9bed JM |
45 | echo %DATE% %TIME% Executing build\win32\curl -kL0 %GCC4ARM_URL%>>%LOGFILE%\r |
46 | build\win32\curl -kL0 %GCC4ARM_URL% >%GCC4ARM_TAR%\r | |
8fcce42e AG |
47 | if errorlevel 1 goto ExitOnError\r |
48 | \r | |
ce6ee091 JM |
49 | echo Validating md5 signature of GNU Tools for ARM Embedded Processors...\r |
50 | echo %GCC4ARM_MD5% *%GCC4ARM_FILENAME%>%GCC4ARM_MD5_FILENAME%\r | |
39bf9bed | 51 | call :RunAndLog build\win32\md5sum --check %GCC4ARM_MD5_FILENAME%\r |
8fcce42e | 52 | if errorlevel 1 goto ExitOnError\r |
ce6ee091 | 53 | del "%GCC4ARM_MD5_FILENAME%"\r |
8fcce42e AG |
54 | \r |
55 | echo Extracting GNU Tools for ARM Embedded Processors...\r | |
56 | call :RunAndLog rd /s /q %GCC4ARM_DIR%\r | |
ce6ee091 | 57 | call :RunAndLog md %GCC4ARM_DIR%\r |
8fcce42e | 58 | if errorlevel 1 goto ExitOnError\r |
ce6ee091 | 59 | call :RunAndLog cd %GCC4ARM_DIR%\r |
39bf9bed | 60 | call :RunAndLog ..\build\win32\bsdtar xf %GCC4ARM_TAR%\r |
3b1e82d2 | 61 | if errorlevel 1 goto ExitOnError\r |
ce6ee091 | 62 | call :RunAndLog cd ..\r |
3b1e82d2 AW |
63 | \r |
64 | echo Creating helper scripts...\r | |
65 | echo @echo off>%BUILDENV_CMD%\r | |
66 | echo REM Uncomment next line and set destination drive to match mbed device>>%BUILDENV_CMD%\r | |
67 | echo REM SET LPC_DEPLOY=copy PROJECT.bin f:\>>%BUILDENV_CMD%\r | |
68 | echo.>>%BUILDENV_CMD%\r | |
39bf9bed | 69 | echo SET PATH=%%~dp0;%%~dp0..\..\build\win32;%%PATH%%>>%BUILDENV_CMD%\r |
3b1e82d2 | 70 | rem\r |
8fcce42e | 71 | echo @cmd.exe /K %%~dp0\gcc-arm-none-eabi\bin\buildenv.cmd>%BUILDSHELL_CMD%\r |
ce6ee091 JM |
72 | \r |
73 | rem Place GNU Tool for ARM Embedded Processors in the path before building gcc4mbed code.\r | |
39bf9bed | 74 | set path=%GCC4ARM_BINDIR%;%ROOTDIR%build\win32;%PATH%\r |
ce6ee091 JM |
75 | \r |
76 | echo Performing a clean build of the gcc4mbed samples...\r | |
77 | call :RunAndLog %OUR_MAKE% clean\r | |
78 | if errorlevel 1 goto ExitOnError\r | |
79 | call :RunAndLog %OUR_MAKE%\r | |
80 | if errorlevel 1 goto ExitOnError\r | |
3b1e82d2 | 81 | \r |
8fcce42e | 82 | echo Cleaning up intermediate files...\r |
8fcce42e AG |
83 | call :RunAndLog del /f %GCC4ARM_TAR%\r |
84 | \r | |
3b1e82d2 | 85 | echo **************************************************************************\r |
ce6ee091 | 86 | echo To build gcc4mbed samples, you will first need to run the following batch\r |
3b1e82d2 AW |
87 | echo file so that your environment variables are set correctly:\r |
88 | echo %BUILDSHELL_CMD%\r | |
89 | echo You will want to run this each time you start a new Command Prompt. You\r | |
90 | echo can simply double-click on this batch file from Explorer to launch a\r | |
ce6ee091 JM |
91 | echo Command Prompt that has been properly initialized for building gcc4mbed\r |
92 | echo based code.\r | |
3b1e82d2 AW |
93 | echo **************************************************************************\r |
94 | \r | |
95 | rem Restore current directory and exit batch file on success.\r | |
96 | echo %DATE% %TIME% Finished successfully>>%LOGFILE%\r | |
97 | echo Finished successfully\r | |
98 | goto Exit\r | |
99 | \r | |
100 | \r | |
101 | \r | |
102 | rem Logs the command to be run and then executes the command while logging the results.\r | |
103 | :RunAndLog\r | |
104 | echo %DATE% %TIME% Executing %*>>%LOGFILE%\r | |
105 | %* 1>>%LOGFILE% 2>%ERRORFILE%\r | |
106 | goto :EOF\r | |
107 | \r | |
108 | \r | |
109 | \r | |
110 | rem Exits the batch file due to error.\r | |
ce6ee091 JM |
111 | rem Make sure that any stderr text ends up in win_install.log and then restore\r |
112 | rem the current directory before forcing an early exit.\r | |
3b1e82d2 AW |
113 | :ExitOnError\r |
114 | type %ERRORFILE% >>%LOGFILE%\r | |
115 | echo %DATE% %TIME% Failure forced early exit>>%LOGFILE%\r | |
116 | type %LOGFILE%\r | |
117 | \r | |
118 | \r | |
119 | :Exit\r | |
120 | del %ERRORFILE%\r | |
121 | popd\r | |
ce6ee091 | 122 | pause\r |