Hao Wu a11928f331 BaseTools/Source/C/Makefiles: Fix NmakeSubdirs.bat always return 0
In batch script file NmakeSubdirs.bat, the value changes made to the
variable 'TOOL_ERROR' within the 'setlocal...endlocal' block will not be
reflected in the return value of the script. A value of 0 will always be
returned. Thus, the script will not reflect the result of the 'nmake'
command correctly when building BaseTool source codes.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2017-03-02 16:43:42 +08:00

47 lines
1.0 KiB
Batchfile

@REM ## @file
@REM # Makefile
@REM #
@REM # Copyright (c) 2007 - 2017, Intel Corporation. All rights reserved.<BR>
@REM # This program and the accompanying materials
@REM # are licensed and made available under the terms and conditions of the BSD License
@REM # which accompanies this distribution. The full text of the license may be found at
@REM # http://opensource.org/licenses/bsd-license.php
@REM #
@REM # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
@REM # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
@REM #
@echo off
setlocal
set TOOL_ERROR=0
SET NMAKE_COMMAND=%1
SHIFT
:loop
if "%1"=="" goto success
ECHO Building %1
pushd %1
nmake %NMAKE_COMMAND%
if ERRORLEVEL 1 (
set /A TOOL_ERROR= %TOOL_ERROR% + %ERRORLEVEL%
goto error
)
ECHO %1 built successfully (%NMAKE_COMMAND%)
ECHO.
shift
popd
goto loop
:success
goto exit
:error
popd
set /A TOOL_ERROR=%TOOL_ERROR%+%ERRORLEVEL%
ECHO Error while making %1!
VERIFY OTHER 2>NUL
:exit
exit /B %TOOL_ERROR%