--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/kernel/eka/rombuild/romlaunch.bat Mon Oct 19 15:55:17 2009 +0100
@@ -0,0 +1,137 @@
+@rem
+@rem Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem All rights reserved.
+@rem This component and the accompanying materials are made available
+@rem under the terms of the License "Eclipse Public License v1.0"
+@rem which accompanies this distribution, and is available
+@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem
+@rem Initial Contributors:
+@rem Nokia Corporation - initial contribution.
+@rem
+@rem Contributors:
+@rem
+@rem Description:
+@rem
+
+@perl -x romlaunch.bat %*
+@goto end
+
+#! usr\bin\perl
+
+my $KFilename="rom.bat";
+
+# getDevicesPath()
+#
+# Discover the location of the devices API. They are expected to be found in an installed set of coresidency
+# stubs, in the path.
+#
+# Parameters: None
+#
+# Returns: The path to the devices API (UNIX style path)
+#
+# Dies: If no devices API can be found in the path.
+sub getDevicesPath()
+ {
+ my $devicepath = undef;
+ my $paths = $ENV{PATH};
+ $paths =~ s/\\/\//g;
+
+ foreach my $path (split(";", $paths))
+ {
+ if (-e "$path/CDevicesCLAccessor.pm")
+ {
+ $devicepath=$path;
+ }
+ }
+
+ if (defined($devicepath))
+ {
+ return $devicepath;
+ }
+ else
+ {
+ die "The '$KFilename' launcher cannot be used without the tools coresidency stubs.\n".
+ "Alternatively, please set EPOCROOT before calling '$KFilename' directly.\n";
+ }
+ }
+
+# Main
+
+use lib getDevicesPath();
+use lib getDevicesPath()."/perllib";
+use CDevicesCLAccessor;
+
+my $devicepath=getDevicesPath();
+$devicepath=~s/[^\/]+\/?$//; # Remove last path element
+my $deviceObject = New CDevicesCLAccessor($devicepath."/devices.xml");
+
+if (!defined($ENV{EPOCROOT}))
+ {
+ # Need to set EPOCROOT
+
+ my $deviceName;
+
+ if (defined($EHV{EPOCDEVICE}))
+ {
+ # Use EPOCDEVICE as default device
+ $deviceName = $ENV{EPOCDEVICE};
+ }
+ elsif (($deviceObject->getDefaultDevice()) ne "")
+ {
+ # Use main default device
+ $deviceName = $deviceObject->getDefaultDevice($deviceObject);
+ }
+ else
+ {
+ die "Please set a default device (using 'devices -setdefault') before using\n".
+ "the '$KFilename' launcher. Alternatively, set EPOCROOT and run\n".
+ "'$KFilename' directly\n";
+ }
+
+ if ( ($deviceObject->isValidName($deviceName))
+ || ($deviceObject->isValidAlias($deviceName))
+ )
+ {
+ # Get path to the epoc32 tree from device
+ my $epocroot = $deviceObject->getEpocRoot($deviceName);
+
+ $epocroot =~ s/^[A-Za-z]://; # Remove leading drive letter
+
+ # Ensure the correct slashes are present
+ $epocroot =~ s/\//\\/g;
+ if ($epocroot !~ /\\$/)
+ {
+ $epocroot = $epocroot."\\";
+ }
+
+ # Set EPOCROOT
+ $ENV{EPOCROOT} = $epocroot;
+ }
+ else
+ {
+ die "'$deviceName' is not a recognised device name.\n";
+ }
+ }
+
+# Enclose arguments in quote marks if needed
+
+my @args=@ARGV;
+my $index=scalar(@args);
+
+while ($index > 0)
+ {
+ $index--;
+
+ if ($args[$index] =~ /\s/)
+ {
+ $args[$index] = '"'.$args[$index].'"';
+ }
+ }
+
+# Call tool with arguments
+
+system($KFilename." ".join(" ",@args));
+
+__END__
+:end