windows-nt/Source/XPSP1/NT/tools/sp/tsclient.cmd
2020-09-26 16:20:57 +08:00

186 lines
3.8 KiB
Batchfile

@REM -----------------------------------------------------------------
@REM
@REM tsclient.cmd - NadimA, MadanA
@REM Build terminal server client bits every build
@REM
@REM Copyright (c) Microsoft Corporation. All rights reserved.
@REM
@REM -----------------------------------------------------------------
@if defined _CPCMAGIC goto CPCBegin
@perl -x "%~f0" %*
@goto :EOF
#!perl
use strict;
use lib $ENV{RAZZLETOOLPATH} . "\\PostBuildScripts";
use lib $ENV{RAZZLETOOLPATH};
use PbuildEnv;
use ParseArgs;
use Logmsg;
sub Usage { print<<USAGE; exit(1) }
tsclient [-l <language>]
Build terminal server client bits.
USAGE
sub Dependencies {
if ( !open DEPEND, ">>$ENV{_NTPOSTBLD}\\..\\build_logs\\dependencies.txt" ) {
errmsg("Unable to open dependency list file.");
die;
}
print DEPEND<<DEPENDENCIES;
\[$0\]
IF {
msrdpcli.exe
msrdpcli.msi
mstsc.exe
mstscax.dll
mstsmhst.dll
mstsmmc.dll
tsmmc.msc
tscupgrd.exe
msrdp.cab
tsweb1.htm
mstsweb.cat
tscmsi01.w32
tscmsi02.w32
tscmsi03.w32
instmsia.exe
instmsiw.exe
}
ADD {
tsclient\\...
msrdp.ocx
mstsc.chm
}
DEPENDENCIES
close DEPEND;
exit;
}
my $qfe;
parseargs('?' => \&Usage,
'plan' => \&Dependencies,
'qfe:' => \$qfe);
if ( -f "$ENV{_NTPOSTBLD}\\..\\build_logs\\skip.txt" ) {
if ( !open SKIP, "$ENV{_NTPOSTBLD}\\..\\build_logs\\skip.txt" ) {
errmsg("Unable to open skip list file.");
die;
}
while (<SKIP>) {
chomp;
exit if lc$_ eq lc$0;
}
close SKIP;
}
# *** TEMPLATE CODE ***
$ENV{"_CPCMAGIC"}++;exit(system($0)>>8);
__END__
@:CPCBegin
@set _CPCMAGIC=
@setlocal ENABLEDELAYEDEXPANSION ENABLEEXTENSIONS
@if not defined DEBUG echo off
@REM *** CMD SCRIPT BELOW ***
REM
REM Check the sku's for the language
REM TSclient only is built for srv and higher products
REM
set _PER=1
set _BLA=1
set _SBS=1
set _SRV=1
set _ADS=1
set _DTC=1
perl %RazzleToolPath%\cksku.pm -t:per -l:%lang%
if errorlevel 1 set _PER=
perl %RazzleToolPath%\cksku.pm -t:bla -l:%lang%
if errorlevel 1 set _BLA=
perl %RazzleToolPath%\cksku.pm -t:sbs -l:%lang%
if errorlevel 1 set _SBS=
perl %RazzleToolPath%\cksku.pm -t:srv -l:%lang%
if errorlevel 1 set _SRV=
perl %RazzleToolPath%\cksku.pm -t:ads -l:%lang%
if errorlevel 1 set _ADS=
perl %RazzleToolPath%\cksku.pm -t:dtc -l:%lang%
if errorlevel 1 set _DTC=
:ValidSku
REM
REM Invoke the web building script
REM
if defined ia64 pushd %_NTPOSTBLD%\tsclient\win32\ia64
if defined amd64 pushd %_NTPOSTBLD%\tsclient\win32\amd64
if defined 386 pushd %_NTPOSTBLD%\tsclient\win32\i386
call ExecuteCmd.cmd "tscwebgen.cmd"
popd
REM
REM Only do this for X86 builds for now. Win64 will come later
REM repropagation will have to come into play for that
REM
if defined ia64 goto :TS64
if defined amd64 goto :TS64
if NOT defined 386 goto :EOF
REM
REM Build the tsclient MSI data cab
REM
pushd %_NTPOSTBLD%\tsclient\win32\i386
call ExecuteCmd.cmd "tscmsigen.cmd"
popd
:TS64
REM
REM Propagate the TS Client files to the root of binaries.
REM This is done via a makefile binplace to tsclient\congeal.
REM
call logmsg.cmd "Copying/renaming TS Client files and copying the root of binaries."
set makefile_path=%_NTPOSTBLD%\tsclient\congeal
if not exist %makefile_path%\mkrsys (
call errmsg.cmd "Unable to find %makefile_path%\mkrsys."
goto :EOF
)
set tscbin=%_NTPOSTBLD%\tsclient
REM
REM Run nmake on the tsclient\congeal makefile.
REM
pushd %makefile_path%
if errorlevel 1 (
call errmsg.cmd "Unable to change directory to %makefile_path%."
goto :EOF
)
REM
REM No 16 bit TS Client for FE languages.
REM
set NO_WIN16_TSCLIENT=
perl %RazzleToolPath%\cklang.pm -l:%lang% -c:@FE
if %errorlevel% EQU 0 set NO_WIN16_TSCLIENT=1
call ExecuteCmd.cmd "nmake /nologo /f %makefile_path%\mkrsys tscbin=%tscbin%"
popd