--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/kernel/eka/rombuild/cptest.pl Mon Oct 19 15:55:17 2009 +0100
@@ -0,0 +1,142 @@
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "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:
+#
+
+use Cwd;
+use Getopt::Long;
+my %opts=();
+my $result = GetOptions ( \%opts,
+ "iby=s",
+ "build=s",
+ "drive=s",
+ "udir=s",
+ "kdir=s",
+ "zip=s",
+ "verbose"
+ );
+
+
+if (!$result || !$opts{iby} || !$opts{build}) {
+ usage();
+ exit;
+}
+my $IbyFileName = $opts{iby};
+open IBY, $IbyFileName or die "Cannot open IBY file $IbyFileName\n";
+my $build = $opts{build};
+my $srcdrv = Cwd::getcwd();
+$srcdrv=~/(\w\:).*/;
+$srcdrv=$1;
+if ($opts{drive}) {
+ $srcdrv=$opts{drive};
+}
+my $udir = $opts{udir};
+my $kdir = $opts{kdir};
+my $zip = $opts{zip};
+my $verbose = $opts{verbose};
+
+if ($verbose) {
+ print "IBY file : $IbyFileName\n";
+ print "Build : $build\n";
+ print "Drive : $srcdrv\n";
+ print "User Dir : $udir\n";
+ print "Kernel Dir: $kdir\n";
+ print "ZIP file : $zip\n";
+}
+
+while(<IBY>) {
+ if (/^\s*\/\//) {
+ print "Comment: $_\n" if ($verbose);
+ next;
+ }
+ /^\s*(\w+)(.*)$/;
+ my $keyword=$1;
+ my $rest=$2;
+ unless ($keyword eq 'file' or $keyword eq 'data' or $keyword eq 'dll' or $keyword eq 'device') {
+ next;
+ }
+ if ($rest=~/^\s*\[\w+\](.*)$/) {
+ $rest=$1; # lose [MAGIC]
+ }
+ next unless ($rest=~/^\s*\=\s*(.*)$/);
+ $rest=$1;
+ my @word=split /\s+/, $rest;
+ my $source=$word[0];
+ my $dest=$word[1];
+ $source=~ s/##BUILD##/$build/g;
+ $source=~ s/##MAIN##/$udir/g;
+ $source=~ s/##ASSP##/$kdir/g;
+ $source=~ s/##KMAIN##/$kdir/g;
+ $source=~ s/##ELOCLDIR##/$udir/g;
+ $source=$srcdrv.$source;
+# print "$source->$dest\n";
+ my @destpath=split /(\/|\\)/,$dest;
+ while ($destpath[0]=~/^\s*$/ or $destpath[0] eq '\\' or $destpath[0] eq '\/') {
+ shift @destpath;
+ }
+ my $npathc=scalar(@destpath);
+ my $destfilename=pop @destpath;
+ my $destdirname=join '', @destpath;
+ if ($destdirname=~/^(.*)\\\s*$/) {
+ $destdirname=$1;
+ }
+ if ($destdirname=~/^\\(.*?)$/) {
+ $destdirname=$1;
+ }
+ print "$source->$destfilename @ $destdirname $npathc\n" if ($verbose);
+ unless (-d $destdirname) {
+ system "md $destdirname";
+ }
+ if (-e $source) {
+ system "copy $source $destdirname\\$destfilename >NUL";
+ } else {
+ warn "$source not found\n";
+ }
+}
+if ($zip) {
+ unless ($zip =~ /^(.*?)\.zip$/i) {
+ $zip .= '.zip';
+ }
+ system "del $zip";
+ system "zip -r $zip *";
+}
+
+exit;
+
+# END OF MAIN
+
+sub usage {
+ print <<EOT;
+
+perl cptest.pl <options>
+
+Copy tests to target directory structure
+
+The following options are required:
+ -i, --iby = <IBY file name>
+ -b, --build = <build> UDEB or UREL
+
+The following are optional:
+ -d, --drive = <drive with executables on>
+
+ Defaults to current drive
+
+ -u, --udir = <user directory> e.g. ARM4, X86
+ -k, --kdir = <kernel directory> e.g. MISA, NX86
+ -z, --zip = <zipfile name>
+ -v, --verbose
+
+EOT
+}
+