| 1 | @echo off\r |
| 2 | rem Copyright 2013 Adam Green (http://mbed.org/users/AdamGreen/)\r |
| 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 |
| 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 |
| 25 | set GCC4ARM_TAR=%ROOTDIR%%GCC4ARM_FILENAME%\r |
| 26 | set GCC4ARM_MD5=09c19b3248863074f5498a88f31bee16\r |
| 27 | set GCC4ARM_MD5_FILENAME=%ROOTDIR%gcc-arm-none-eabi.md5\r |
| 28 | set GCC4ARM_DIR=%ROOTDIR%gcc-arm-none-eabi\r |
| 29 | set GCC4ARM_BINDIR=%GCC4ARM_DIR%\bin\r |
| 30 | set OUR_MAKE=%ROOTDIR%build\win32\make.exe\r |
| 31 | set BUILDENV_CMD=%GCC4ARM_BINDIR%\buildenv.cmd\r |
| 32 | set BUILDSHELL_CMD=%ROOTDIR%BuildShell.cmd\r |
| 33 | set BUILDSHELL_DEBUG_CMD=%ROOTDIR%BuildShellDebug.cmd\r |
| 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 |
| 44 | echo Downloading GNU Tools for ARM Embedded Processors...\r |
| 45 | echo %DATE% %TIME% Executing build\win32\curl -kL0 %GCC4ARM_URL%>>%LOGFILE%\r |
| 46 | build\win32\curl -kL0 %GCC4ARM_URL% >%GCC4ARM_TAR%\r |
| 47 | if errorlevel 1 goto ExitOnError\r |
| 48 | \r |
| 49 | echo Validating md5 signature of GNU Tools for ARM Embedded Processors...\r |
| 50 | echo %GCC4ARM_MD5% *%GCC4ARM_FILENAME%>%GCC4ARM_MD5_FILENAME%\r |
| 51 | call :RunAndLog build\win32\md5sum --check %GCC4ARM_MD5_FILENAME%\r |
| 52 | if errorlevel 1 goto ExitOnError\r |
| 53 | del "%GCC4ARM_MD5_FILENAME%"\r |
| 54 | \r |
| 55 | echo Extracting GNU Tools for ARM Embedded Processors...\r |
| 56 | call :RunAndLog rd /s /q %GCC4ARM_DIR%\r |
| 57 | call :RunAndLog md %GCC4ARM_DIR%\r |
| 58 | if errorlevel 1 goto ExitOnError\r |
| 59 | call :RunAndLog cd %GCC4ARM_DIR%\r |
| 60 | call :RunAndLog ..\build\win32\bsdtar xf %GCC4ARM_TAR%\r |
| 61 | if errorlevel 1 goto ExitOnError\r |
| 62 | call :RunAndLog cd ..\r |
| 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 |
| 69 | echo SET PATH=%%~dp0;%%~dp0..\..\build\win32;%%PATH%%>>%BUILDENV_CMD%\r |
| 70 | rem\r |
| 71 | echo @cmd.exe /K %%~dp0\gcc-arm-none-eabi\bin\buildenv.cmd>%BUILDSHELL_CMD%\r |
| 72 | \r |
| 73 | rem Place GNU Tool for ARM Embedded Processors in the path before building gcc4mbed code.\r |
| 74 | set path=%GCC4ARM_BINDIR%;%ROOTDIR%build\win32;%PATH%\r |
| 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 |
| 81 | \r |
| 82 | echo Cleaning up intermediate files...\r |
| 83 | call :RunAndLog del /f %GCC4ARM_TAR%\r |
| 84 | \r |
| 85 | echo **************************************************************************\r |
| 86 | echo To build gcc4mbed samples, you will first need to run the following batch\r |
| 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 |
| 91 | echo Command Prompt that has been properly initialized for building gcc4mbed\r |
| 92 | echo based code.\r |
| 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 |
| 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 |
| 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 |
| 122 | pause\r |