Permalink
| @echo off | |
| rem Copyright 2013 Adam Green (http://mbed.org/users/AdamGreen/) | |
| rem | |
| rem Licensed under the Apache License, Version 2.0 (the "License"); | |
| rem you may not use this file except in compliance with the License. | |
| rem You may obtain a copy of the License at | |
| rem | |
| rem http://www.apache.org/licenses/LICENSE-2.0 | |
| rem | |
| rem Unless required by applicable law or agreed to in writing, software | |
| rem distributed under the License is distributed on an "AS IS" BASIS, | |
| rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| rem See the License for the specific language governing permissions and | |
| rem limitations under the License. | |
| rem Setup batch file specific environment variables. | |
| setlocal | |
| set ROOTDIR=%~dp0 | |
| set LOGFILE=%ROOTDIR%win_install.log | |
| set ERRORFILE=%ROOTDIR%win_install.err | |
| set GCC4ARM_VERSION=gcc-arm-none-eabi-4_8-2014q1 | |
| set GCC4ARM_FILENAME=gcc-arm-none-eabi-4_8-2014q1-20140314-win32.zip | |
| set GCC4ARM_URL=https://launchpad.net/gcc-arm-embedded/4.8/4.8-2014-q1-update/+download/%GCC4ARM_FILENAME% | |
| set GCC4ARM_TAR=%ROOTDIR%%GCC4ARM_FILENAME% | |
| set GCC4ARM_MD5=09c19b3248863074f5498a88f31bee16 | |
| set GCC4ARM_MD5_FILENAME=%ROOTDIR%gcc-arm-none-eabi.md5 | |
| set GCC4ARM_DIR=%ROOTDIR%gcc-arm-none-eabi | |
| set GCC4ARM_BINDIR=%GCC4ARM_DIR%\bin | |
| set OUR_MAKE=%ROOTDIR%build\win32\make.exe | |
| set BUILDENV_CMD=%GCC4ARM_BINDIR%\buildenv.cmd | |
| set BUILDSHELL_CMD=%ROOTDIR%BuildShell.cmd | |
| set BUILDSHELL_DEBUG_CMD=%ROOTDIR%BuildShellDebug.cmd | |
| rem Make sure that we are running with current directory set to where this | |
| rem batch file is located. | |
| pushd %ROOTDIR% | |
| rem Initialize install log files. | |
| echo Logging install results to %LOGFILE% | |
| echo %DATE% %TIME% Starting %0 %*>%LOGFILE% | |
| echo Downloading GNU Tools for ARM Embedded Processors... | |
| echo %DATE% %TIME% Executing build\win32\curl -kL0 %GCC4ARM_URL%>>%LOGFILE% | |
| build\win32\curl -kL0 %GCC4ARM_URL% >%GCC4ARM_TAR% | |
| if errorlevel 1 goto ExitOnError | |
| echo Validating md5 signature of GNU Tools for ARM Embedded Processors... | |
| echo %GCC4ARM_MD5% *%GCC4ARM_FILENAME%>%GCC4ARM_MD5_FILENAME% | |
| call :RunAndLog build\win32\md5sum --check %GCC4ARM_MD5_FILENAME% | |
| if errorlevel 1 goto ExitOnError | |
| del "%GCC4ARM_MD5_FILENAME%" | |
| echo Extracting GNU Tools for ARM Embedded Processors... | |
| call :RunAndLog rd /s /q %GCC4ARM_DIR% | |
| call :RunAndLog md %GCC4ARM_DIR% | |
| if errorlevel 1 goto ExitOnError | |
| call :RunAndLog cd %GCC4ARM_DIR% | |
| call :RunAndLog ..\build\win32\bsdtar xf %GCC4ARM_TAR% | |
| if errorlevel 1 goto ExitOnError | |
| call :RunAndLog cd .. | |
| echo Creating helper scripts... | |
| echo @echo off>%BUILDENV_CMD% | |
| echo REM Uncomment next line and set destination drive to match mbed device>>%BUILDENV_CMD% | |
| echo REM SET LPC_DEPLOY=copy PROJECT.bin f:\>>%BUILDENV_CMD% | |
| echo.>>%BUILDENV_CMD% | |
| echo SET PATH=%%~dp0;%%~dp0..\..\build\win32;%%PATH%%>>%BUILDENV_CMD% | |
| rem | |
| echo @cmd.exe /K %%~dp0\gcc-arm-none-eabi\bin\buildenv.cmd>%BUILDSHELL_CMD% | |
| rem Place GNU Tool for ARM Embedded Processors in the path before building gcc4mbed code. | |
| set path=%GCC4ARM_BINDIR%;%ROOTDIR%build\win32;%PATH% | |
| echo Performing a clean build of the gcc4mbed samples... | |
| call :RunAndLog %OUR_MAKE% clean | |
| if errorlevel 1 goto ExitOnError | |
| call :RunAndLog %OUR_MAKE% | |
| if errorlevel 1 goto ExitOnError | |
| echo Cleaning up intermediate files... | |
| call :RunAndLog del /f %GCC4ARM_TAR% | |
| echo ************************************************************************** | |
| echo To build gcc4mbed samples, you will first need to run the following batch | |
| echo file so that your environment variables are set correctly: | |
| echo %BUILDSHELL_CMD% | |
| echo You will want to run this each time you start a new Command Prompt. You | |
| echo can simply double-click on this batch file from Explorer to launch a | |
| echo Command Prompt that has been properly initialized for building gcc4mbed | |
| echo based code. | |
| echo ************************************************************************** | |
| rem Restore current directory and exit batch file on success. | |
| echo %DATE% %TIME% Finished successfully>>%LOGFILE% | |
| echo Finished successfully | |
| goto Exit | |
| rem Logs the command to be run and then executes the command while logging the results. | |
| :RunAndLog | |
| echo %DATE% %TIME% Executing %*>>%LOGFILE% | |
| %* 1>>%LOGFILE% 2>%ERRORFILE% | |
| goto :EOF | |
| rem Exits the batch file due to error. | |
| rem Make sure that any stderr text ends up in win_install.log and then restore | |
| rem the current directory before forcing an early exit. | |
| :ExitOnError | |
| type %ERRORFILE% >>%LOGFILE% | |
| echo %DATE% %TIME% Failure forced early exit>>%LOGFILE% | |
| type %LOGFILE% | |
| :Exit | |
| del %ERRORFILE% | |
| popd | |
| pause |