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 |