windows-nt/Source/XPSP1/NT/multimedia/directx/deliveryimages/cabpacks/win9x/makesrc.pl
2020-09-26 16:20:57 +08:00

73 lines
2 KiB
Perl

$SourceFiles=$ARGV[0];
$Language=($ARGV[1]);
$SRC=$ARGV[2];
$CATNAME=$ARGV[3];
$LocalizedRoot=$ARGV[4];
$CabType=$ARGV[5];
$RootDir=$ENV{DXROOT};
$BuildType=$ENV{NTDEBUG};
$AltSourceFiles=$ENV{_ALT_NTTREE};
$MultiLocalizedDirectory= "$LocalizedRoot\\multi";
$LocalizedDirectory = "$LocalizedRoot\\$Language";
$BuildErrorMsg="nmake : error DEPGEN : ";
$Path="$RootDir\\public\\sdk\\lib\\placefil.txt";
open(PLACEFIL, $Path) || die "$BuildErrorMsg Unable to open placefil.txt at ".$Path." for input\n";
@LocalizedFiles =grep(m/;localize/, <PLACEFIL>);
close (PLACEFIL);
open(SRCFILE,">$SRC") || die "$BuildErrorMsg Unable to open $SRC to write the dependency list out\n";
print SRCFILE "$CATNAME\n";
$Path=$RootDir."\\DeliveryImages\\inc\\redistfiles.dat";
open(REDISTFILES,$Path) || die "$BuildErrorMsg Unable to open redistfiles.dat at ".$Path." for input\n";
foreach (<REDISTFILES>)
{
if (!(m/;/i))
{
($FileName, $SubPath, $TimeDateStamp, $Filters) = split /,/,$_,4;
$FileName=~s/^\s*(.*?)\s*$/$1/;
$SubPath=~s/^\s*(.*?)\s*$/$1/;
$Filters=~s/^\s*(.*?)\s*$/$1/;
# if ($Filters!~m/nocab/i || $CabType!~m/core/i)
# {
# print SRCFILE "$SourceFiles\\$SubPath\\$FileName \\\n";
# }
if (grep(m/$FileName/i, @LocalizedFiles))
{
# if ($Filters=~m/SINGLELANGUAGE/ig )
if (!($Language eq "eng" && $FileName eq "dxdiag.exe"))
{
$SubPath=($Language ne "eng")?$LocalizedDirectory:$SubPath;
} else {
$SubPath=$MultiLocalizedDirectory;
}
}
if ($Filters=~m/PROTECTED/i)
{
# if ($BuildType eq "" || $BuildType eq "ntsdnodbg" || grep(m/$FileName/i, @LocalizedFiles))
if ($BuildType eq "" || $BuildType eq "ntsdnodbg" || (grep(m/$FileName/i, @LocalizedFiles) && ($Language ne "eng")))
{
print SRCFILE "$SourceFiles\\$SubPath\\$FileName\n";
} else {
if ($Filters=~m/SWITCHFILER/i){
print SRCFILE "$AltSourceFiles\\$SubPath\\$FileName\n";
} else {
print SRCFILE "$SourceFiles\\$SubPath\\$FileName\n";
}
}
}
}
}
close (REDISTFILES);
close (SRCFILE);
exit;