--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/BuildKit.pm Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,210 @@
+#!perl
+
+# package.pl
+
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Version Info:
+# Version 001: initial version
+# Version 002: Typhoon: InstallCustKit.pl added for CustKit
+# Version 003: Typhoon: calls GenerateLicenseeBuild.exe before building
+# Version 004: Typhoon: auto-generates packages before building;
+# produces differences between this report & previous build's
+# calls script to produce CustKit as ZIPs
+# Version 005: Typhoon: calls docplugintool script
+# Version 006: Typhoon: Master Codeline
+# Version 007: Master Codeline
+#
+#
+
+package BuildKit;
+
+use Cwd;
+use File::Basename;
+use File::Path;
+
+use KitStandardLocations;
+use KitPlatformSpecific;
+use SupplementalKits;
+
+
+
+# ------------------------------ Global variables ----------------------------
+
+my $Company = "Symbian";
+
+
+my $BuildNumber = $ARGV[0];
+$Kit_ID = $BuildNumber;
+
+my $pkgSrcDefDevKitDir = "$DevKitPath\\$SrcDefDir";
+my $pkgSrcDefCustKitDir ="$CustKitPath\\$SrcDefDir";
+
+my $outputDevKitDir = "$ProductPath\\_PACKAGES\\DevKit_CD";
+my $outputCustKitDir = "$ProductPath\\_PACKAGES\\CustKit_Extra_CD";
+my $outputCustKitZipsDir = "$ProductPath\\_PACKAGES\\CustKit_Zips";
+my $outputInternalZipsDir = "$ProductPath\\generated";
+
+my $sourceListDevKit = "DevKit.srcdef";
+my $sourceListCustKit = "CustKit.srcdef";
+
+my $buildPkg = "$OutputDir\\generic\\epoc32\\tools\\buildpkg";
+my $createPkgSrc = "$OutputDir\\generic\\epoc32\\tools\\createpkgsrc";
+my $diff = "$OutputDir\\generic\\epoc32\\gcc\\bin\\diff";
+
+my $scriptFile = "InstallCustKit.pl";
+my $scriptHelpFile = "ReadMe_First.txt";
+
+# ----------------- Start of main() ------------------------
+
+sub BuildKit()
+{
+ # build the Symbian supplied packages
+ buildPkgSet(\@KitPlatformSpecific::SymbianPkgs);
+
+ # create the packages etc. for the DevKit
+ createDistrib($outputDevKitDir, $pkgSrcDefDevKitDir."\\".$sourceListDevKit);
+
+ SupplementalKits::SupplementalKits();
+}
+
+
+
+# function builds a set of packages
+# function returns true if all the packages in the set were built correctly
+sub buildPkgSet()
+{
+ my ($packageSet)=@_ ;
+ my $success = 1;
+
+ # loop through all the packages in the package set
+ foreach my $packageDef (@$packageSet)
+ {
+ # build this package using the buildpkg tool
+
+ print "Building package ".$packageDef->[1]."\n";
+
+ my $srcRootArg = "";
+ my $srcroot = $packageDef->[0];
+
+ #check if the source root is empty
+ if(!($srcroot eq ""))
+ {
+ # the source root argument
+ $srcRootArg = " -s ".$srcroot;
+ }
+
+ my $command = $buildPkg." -v -f -o ".$packageDef->[2]." -b ".$BuildNumber." -k ".$Kit_ID.$srcRootArg." ".$packageDef->[1];
+ $success &= !system($command);
+ }
+ return $success;
+}
+
+
+
+
+# function collates the distribution directory contents
+sub createDistrib()
+{
+ my $DistribDir = $_[0] ;
+ my $PkgSrcList = $_[1];
+ print "Creating distribution directory in $DistribDir\n";
+
+ # create the package source for the CustKit
+ createSrc($DistribDir, $PkgSrcList);
+
+ # add the KSA files to make the kit installable
+ addKSA($DistribDir);
+
+ # create the setup.ini file for the kit
+ createSetupIni($DistribDir);
+}
+
+
+
+
+
+# function creates a package source
+sub createSrc()
+{
+ chdir($_[0]);
+
+ my $pkgSrcDefFile = $_[1] ;
+
+ print " creating package source using list in $pkgSrcDefFile \n";
+
+ # read source definition file
+ open (FILE, "<$pkgSrcDefFile") or die "Couldn't open file $pkgSrcDefFile ";
+ my @pkgList = <FILE>;
+ close(FILE);
+
+ # remove previous copy
+ unlink ($pkgSrcDefFile);
+
+ # write file with build number
+ open (FILE, ">$pkgSrcDefFile") or die "Couldn't open file $pkgSrcDefFile";
+ foreach $file (@pkgList)
+ {
+ $file =~ s/%version%/$BuildNumber/g ;
+ print FILE $file ;
+ }
+ close(FILE);
+
+ # build the package source XML
+ my $command = $createPkgSrc." -s ".$pkgSrcDefFile ;
+ system($command);
+}
+
+
+
+
+# function amends setup.ini file created by the KSA
+sub createSetupIni()
+{
+ chdir($_[0]);
+ print " amending setup.ini file\n";
+
+
+ # create setup.ini file
+ open (FILE, ">>setup.ini") or die "Couldn't open setup.ini";
+
+ print FILE "[Symbian]\n";
+ print FILE "KitID=$Kit_ID\n";
+ print FILE "TargetDirectory=Symbian";
+
+ close(FILE);
+}
+
+
+
+
+# function creates adds the KSA files to the Kit
+sub addKSA()
+{
+ chdir($_[0]);
+ print " copying KSA\n";
+
+ system("copy $OutputDir\\generic\\epoc32\\ksa\\autorun.inf");
+ system("copy $OutputDir\\generic\\epoc32\\ksa\\data1.cab");
+ system("copy $OutputDir\\generic\\epoc32\\ksa\\data1.hdr");
+ system("copy $OutputDir\\generic\\epoc32\\ksa\\data2.cab");
+ system("copy $OutputDir\\generic\\epoc32\\ksa\\ikernel.ex_");
+ system("copy $OutputDir\\generic\\epoc32\\ksa\\layout.bin");
+ system("copy $OutputDir\\generic\\epoc32\\ksa\\Setup.exe");
+ system("copy $OutputDir\\generic\\epoc32\\ksa\\setup.inx");
+ system("copy $OutputDir\\generic\\epoc32\\ksa\\setup.ini");
+ system("copy $OutputDir\\generic\\epoc32\\ksa\\ReadMe.*");
+}
+
+