mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
152 lines
3.2 KiB
152 lines
3.2 KiB
@echo off
|
|
setlocal EnableDelayedExpansion
|
|
|
|
|
|
REM
|
|
REM PlaceLdo.cmd
|
|
REM
|
|
REM Arguments: none
|
|
REM
|
|
REM Returns: 0 if successful, non-zero otherwise
|
|
REM
|
|
REM Purpose: this tool copies .ldo files resulting from prejitting
|
|
REM Freestyle managed code binaries from the LDO share point
|
|
REM into the build.
|
|
REM
|
|
|
|
set /a ErrorCount=0
|
|
|
|
if "%1"=="" goto :Usage
|
|
set LDO_PICKUP_SITE=%1
|
|
|
|
REM first, parse command line
|
|
REM :SwitchLoop
|
|
REM for %%a in (./ .- .) do if ".%1." == "%%a?." goto :Usage
|
|
REM if "%1" == "" goto :EndSwitchLoop
|
|
REM for /f "tokens=1,2 delims=:" %%a in ('echo %1') do (
|
|
REM set Switch=%%a
|
|
REM set Arg=%%b
|
|
REM for %%c in (./ .-) do (
|
|
REM if /i ".!Switch!." == "%%cl." (set Lang=!Arg!&&goto :ShiftArg)
|
|
REM )
|
|
REM REM if we're here, we didn't encounter any switches and thus we have
|
|
REM REM an unrecognized argument
|
|
REM goto :Usage
|
|
REM )
|
|
REM :ShiftArg
|
|
REM shift
|
|
REM goto :SwitchLoop
|
|
REM :EndSwitchLoop
|
|
|
|
|
|
REM begin
|
|
echo "Placing .ldo files for prejitted Freestyle managed code binaries ..."
|
|
|
|
|
|
REM
|
|
REM setup and initial verification
|
|
REM
|
|
|
|
REM 1) make sure the build is at %_nttree%
|
|
REM 2) make sure the LDO return share exists, and there are files there
|
|
|
|
REM 1) make sure the build is at %_nttree%
|
|
if not exist %_nttree% (
|
|
echo "No build found under %_nttree%, exiting"
|
|
set /a ErrorCount=!ErrorCount! + 1
|
|
goto :ErrEnd
|
|
)
|
|
|
|
|
|
REM 2) make sure the LDO return share exists, and there are files there
|
|
if "%LDO_PICKUP_SITE%" == "" (
|
|
echo "No LDO pickup site defined in LDO_PICKUP_SITE environement variable."
|
|
set /a ErrorCount=!ErrorCount! + 1
|
|
goto :ErrEnd
|
|
)
|
|
|
|
|
|
if not exist %LDO_PICKUP_SITE% (
|
|
echo "%LDO_PICKUP_SITE% specified in env var LDO_PICKUP_SITE does not exist, exiting."
|
|
set /a ErrorCount=!ErrorCount! + 1
|
|
goto :ErrEnd
|
|
)
|
|
|
|
echo "Will take LDO files from %LDO_PICKUP_SITE% ..."
|
|
|
|
REM Delete any old copies of the private placefile
|
|
if exist %LDO_PICKUP_SITE%\priv_place.txt del %LDO_PICKUP_SITE%\priv_place.txt
|
|
|
|
)
|
|
|
|
|
|
REM
|
|
REM now binplace LDO files into the build
|
|
REM
|
|
|
|
echo "Binplacing LDO files ..."
|
|
|
|
REM Build place file
|
|
for /f %%a in ('dir /b /a-d %LDO_PICKUP_SITE%') do (
|
|
echo %%a
|
|
echo %%a retail>>%LDO_PICKUP_SITE%\priv_place.txt
|
|
)
|
|
|
|
set BinplaceCmd=binplace -R %_NTPOSTBLD% -p %LDO_PICKUP_SITE%\priv_place.txt
|
|
set /a LdoFileCount=0
|
|
|
|
for /f %%a in ('dir /a-d /b %LDO_PICKUP_SITE%\*.ldo') do (
|
|
%BinplaceCmd% %LDO_PICKUP_SITE%\%%a
|
|
if !ErrorLevel! NEQ 0 (
|
|
echo "Failed to binplace %LDO_PICKUP_SITE%\%%a"
|
|
set /a ErrorCount=!ErrorCount! + 1
|
|
) else (
|
|
set /a LdoFileCount=!LdoFileCount! + 1
|
|
)
|
|
)
|
|
|
|
|
|
REM if there were errors at this point, say so, but continue
|
|
if !ErrorCount! NEQ 0 (
|
|
echo "Errors encountered, but script completed ..."
|
|
)
|
|
|
|
|
|
REM success
|
|
echo "%LdoFileCount% files were binplaced."
|
|
|
|
|
|
REM finished
|
|
echo "Finished."
|
|
|
|
|
|
goto :End
|
|
|
|
|
|
:Usage
|
|
echo Usage: %0 LDO_file_location
|
|
echo.
|
|
echo This tool will copy ldo files for Freestyle managed code binaries
|
|
echo into the build.
|
|
echo.
|
|
REM set ErrorCount=1
|
|
goto :End
|
|
|
|
|
|
:ErrEnd
|
|
if "!ErrorCount!" == "0" (
|
|
set /a ErrorCount=!ErrorCount! + 1
|
|
)
|
|
goto :End
|
|
|
|
|
|
:End
|
|
|
|
if "!ErrorCount!" NEQ "0" (
|
|
echo "encountered !ErrorCount! error(s)"
|
|
) else (
|
|
echo "success."
|
|
)
|
|
endlocal & goto :EOF
|
|
|
|
|