diff -r 000000000000 -r 83f4b4db085c toolsandutils/productionbldtools/MakeISOs.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/toolsandutils/productionbldtools/MakeISOs.pl Tue Feb 02 01:39:43 2010 +0200 @@ -0,0 +1,225 @@ +#!perl + +# MakeISOs.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 +# Command: MakeISOs.pl [] [] +# +# + + +use File::Copy; + + +# ------------------------------------- Global variables ----------------------------------- + + +my $TargetDirectory = $ARGV[0]; +my $TargetDirectoryDefault = "\\_PACKAGES"; +my $BuildNumber = $ARGV[1]; +my $BuildNumberDefault = $ENV{'Buildnumber'}; + + + +my $DevKitDir = "\\_PACKAGES\\DevKit_CD"; +my $CustKitDir = "\\_PACKAGES\\CustKit_Extra_CD"; + +my $pkgSrcDefDevKitDir = "\\Product\\DevKit\\SourceDefinitions"; +my $sourceListDevKit = "DevKit.srcdef_EDITED"; + +my $sourceListDevKit1 = "DevKit1.srcdef"; +my $sourceListDevKit2 = "DevKit2.srcdef"; + +my $createPkgSrc = "\\generic\\epoc32\\tools\\createpkgsrc"; +my $createISO = "c:\\apps\\dao\\makeiso"; + + +my @PackagesToSplitOut = ( + + "com.symbian.src.connect", + "com.symbian.src.GT-general", + "com.symbian.src.GT-restricted-part1", + "com.symbian.src.GT-restricted-part2", + "com.symbian.src.GT-restricted-part3", + "com.symbian.src.GT-restricted-part4", + "com.symbian.src.GT-restricted-part5", + "com.symbian.src.GT-restricted-part6", + + "com.symbian.src.TechView-general", + "com.symbian.src.TechView-restricted", + + "com.symbian.devkit.src" ); + + + + +# --------------------------------- Start of Main() ---------------------------------------- + + +# set up target directory. +$TargetDirectory = EstablishTargetDirectory($ARGV[0]); + + +my $outputDevKitDir1 = "$TargetDirectory\\DevKit_CD_1"; +my $outputDevKitDir2 = "$TargetDirectory\\DevKit_CD_2"; + + +# create sub-directories +mkdir $outputDevKitDir1, 0777 if (! -e $outputDevKitDir1); +mkdir $outputDevKitDir2, 0777 if (! -e $outputDevKitDir2); + + +# split the .srcdef and copy required .sdkpkg files +SplitSrcdefAndCopyPackages(); + + +# copy non-packages (KSA etc.) files for the DevKits +CopyKSA($DevKitDir, $outputDevKitDir1); +CopyKSA($DevKitDir, $outputDevKitDir2); + + +# create the package source (package-list.xml.zip) for the DevKits +CreateSrc($outputDevKitDir1, "$TargetDirectory\\$sourceListDevKit1"); +CreateSrc($outputDevKitDir2, "$TargetDirectory\\$sourceListDevKit2"); + + +# check build number parameter +if ($BuildNumber eq "") +{ + $BuildNumber = $BuildNumberDefault; +} + + +# create the ISO images for the Kits (CustKit and DevKits) +system ("call $createISO $outputDevKitDir1 $TargetDirectory\\DevKit_CD_".$BuildNumber."_Source.ISO /BATCH /JOLIET /VOLUME=DevKit_Source"); +system ("call $createISO $outputDevKitDir2 $TargetDirectory\\DevKit_CD_$BuildNumber.ISO /BATCH /JOLIET /VOLUME=DevKit"); +system ("call $createISO $CustKitDir $TargetDirectory\\CustKit_Extra_CD_$BuildNumber.ISO /BATCH /JOLIET /VOLUME=CustKiT"); + + + + +# --------------------------------- Start of EstablishTargetDirectory() ---------------------------------------- +# set up target directory. If supplied, create dir if non-existant. If this fails or was not supplied, use default. + +sub EstablishTargetDirectory($) +{ + $CommandLineTargetDirectory = $_[0]; # target directory for the ISOs + + if ($CommandLineTargetDirectory ne "") + { + if ((-d $CommandLineTargetDirectory) or (mkdir $CommandLineTargetDirectory, 0777)) # exists or created OK + { + return $CommandLineTargetDirectory; + } + } + + # target not given or unable to create it, so try to use default, or set to "." + if (-d $TargetDirectoryDefault) + { + return $TargetDirectoryDefault; # returns default + } + else + { + return "."; + } +} + + + +# --------------------------------- Start of SplitSrcdefAndCopyPackages() ---------------------------------------- +# split the .srcdef and copy required .sdkpkg files + +sub SplitSrcdefAndCopyPackages() +{ + # read in original .srcdef file + open (FILE, "<$pkgSrcDefDevKitDir\\$sourceListDevKit") or die "Couldn't open file $pkgSrcDefDevKitDir\\$sourceListDevKit"; + my @srcList = ; + close(FILE); + + # open up two .srcdef files for new Kits + open (FILE1, ">$TargetDirectory\\$sourceListDevKit1") or die "Couldn't open file $TargetDirectory\\$sourceListDevKit1"; + open (FILE2, ">$TargetDirectory\\$sourceListDevKit2") or die "Couldn't open file $TargetDirectory\\$sourceListDevKit2"; + + + foreach my $line (@srcList) + { + if ($line !~ /; + + foreach my $FileName (@Files) + { + if ($FileName !~m/sdkpkg/i) + { + copy($FileName, $DistribDir) or die "Unable to copy $FileName into $DistribDir" ; + } + } +} + + + +# --------------------------------- Start of CreateSrc() ---------------------------------------- +# creates a package source (package-list.xml.zip) + +sub CreateSrc($$) +{ + chdir($_[0]) or die "Unable to change directory to $_[0]"; # directory to put file in to + + my $pkgSrcDefFile = $_[1] ; # full path location to the *.srcdef file + + # build the package source XML + my $command = $createPkgSrc." -s ".$pkgSrcDefFile ; + system($command) ; +} +