sbsv1/abld/group/setupprj.bat
author Bob Rosenberg <bob.rosenberg@nokia.com>
Fri, 27 Aug 2010 14:50:55 +0100
changeset 638 024a31e39848
parent 599 fa7a3cc6effd
permissions -rw-r--r--
Change bld.inf install location to epoc32\tools\sysdeftools
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
599
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     1
@REM Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     2
@REM All rights reserved.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     3
@REM This component and the accompanying materials are made available
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     4
@REM under the terms of "Eclipse Public License v1.0"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     5
@REM which accompanies this distribution, and is available
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     6
@REM at the URL "http://www.eclipse.org/legal/epl-v10.html".
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     7
@REM
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     8
@REM Initial Contributors:
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     9
@REM Nokia Corporation - initial contribution.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    10
@REM 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    11
@REM Contributors:
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    12
@REM
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    13
@REM Description:
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    14
@REM builds bld.bat files for subprojects within this component
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    15
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    16
@if exist %0.bat perl -w -x %0.bat %1 %2 %3 %4 %5
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    17
@if exist %0 perl -w -x %0 %1 %2 %3 %4 %5
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    18
@GOTO End
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    19
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    20
#!perl
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    21
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    22
use strict;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    23
use Cwd;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    24
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    25
my $EPOCRoot;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    26
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    27
BEGIN {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    28
	$EPOCRoot = $ENV{EPOCROOT};
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    29
	$EPOCRoot .= "\\" unless($EPOCRoot =~ /\\$/);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    30
	die "ERROR: Must set the EPOCROOT environment variable\n" if (!defined($EPOCRoot));
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    31
	$EPOCRoot =~ s-/-\\-go;	# for those working with UNIX shells
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    32
	die "ERROR: EPOCROOT must not be a UNC path\n" if ($EPOCRoot =~ /^\\\\/);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    33
	die "ERROR: EPOCROOT must end with a backslash\n" if ($EPOCRoot !~ /\\$/);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    34
	die "ERROR: EPOCROOT must specify an existing directory\n" if (!-d $EPOCRoot);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    35
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    36
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    37
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    38
my $EPOCToolsPath="${EPOCRoot}epoc32\\tools";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    39
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    40
my $EPOCToolsConfigFilePath="${EPOCRoot}epoc32\\tools\\compilation_config";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    41
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    42
my $DocsPath="${EPOCRoot}epoc32\\EngDoc\\E32toolp";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    43
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    44
my $TemplateFilePath="${EPOCRoot}epoc32\\tools\\makefile_templates";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    45
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    46
my $ShellFilePath="${EPOCRoot}epoc32\\tools\\shell";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    47
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    48
my $BinFilePath="${EPOCRoot}epoc32\\tools";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    49
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    50
if (scalar @ARGV > 1) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    51
	die "Too many arguments for setupprj.bat\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    52
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    53
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    54
# only the secure platform is now supported, but keep the argument
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    55
# checking as insurance against future developments.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    56
#
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    57
my $secure = 1;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    58
if (scalar @ARGV == 1) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    59
	my $option = $ARGV[0];
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    60
	if ($option !~ /^secure$/i) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    61
		die "Unknown option $ARGV[0] - did you mean \"secure\"?\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    62
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    63
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    64
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    65
my $GroupDir=$0;  # $0 is this script
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    66
$GroupDir=~s-^\w:(.*)$-$1-o;  # remove drive letter
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    67
$GroupDir=~s-\/-\\-go;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    68
unless ($GroupDir=~m-^\\-o)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    69
	{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    70
	# $GroupDir is relative
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    71
	my $Cwd=cwd();
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    72
	$Cwd=~s-^\w:(.*)$-$1-o;  # remove drive letter
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    73
	$Cwd=~s-\/-\\-go;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    74
	$Cwd=~s-^\\$--o;  # make sure we don't end in a backslash
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    75
	$GroupDir="$Cwd\\$GroupDir";  # append relative group dir to absolute Cwd
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    76
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    77
$GroupDir=~s-^(.*\\)[^\\]+$-$1-o; # remove filename, leaving just path
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    78
# strip the resulting path of excess occurrences of . and ..
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    79
while ($GroupDir=~s-\\\.\\-\\-go) { }
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    80
while ($GroupDir=~s-\\(?!\.{2}\\)[^\\]*\\\.{2}(?=\\)--go) { }
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    81
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    82
$GroupDir=~s-\\$--o;	# remove trailing backslash
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    83
chdir "$GroupDir" or die "Can't cd to $GroupDir: $!\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    84
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    85
my %Files=();
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    86
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    87
# read the component
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    88
opendir E32TOOLP, ".." or die "ERROR: Can't open dir ..\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    89
my $SubDir;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    90
foreach $SubDir (grep /^[^\.]/o, map lc $_, readdir E32TOOLP) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    91
	if ($SubDir!~/^(group|doc|test|binutils|maksym)$/o) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    92
		opendir SUBDIR, "..\\$SubDir" or die "ERROR: Can't open dir \"..\\$SubDir\"\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    93
		my @FileList = map lc $_, readdir SUBDIR;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    94
		foreach my $file (grep /^[^_\.].+\.(pm|pl|bat|cmd|config|bsf|xml|cwlink|txt)$/o, @FileList) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    95
			$Files{$file} = "$SubDir\\$file";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    96
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    97
		if ($secure) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    98
			# Look for additional files whose names start with _secure_
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    99
			my @securefiles = grep /^_secure_.+\.(pm|pl|bat|cmd|config|bsf|xml|cwlink|txt)$/o, @FileList;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   100
			foreach my $file (@securefiles) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   101
				my $dstfile = $file;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   102
				$dstfile =~ s/^_secure_//;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   103
				if (defined($Files{$dstfile})) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   104
					print "$dstfile: $SubDir\\$file overrides $Files{$dstfile}\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   105
				}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   106
				$Files{$dstfile} = "$SubDir\\$file";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   107
			}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   108
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   109
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   110
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   111
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   112
# read the compiler configuration files
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   113
my @ConfigFiles;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   114
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   115
opendir CONFIGDIR, "..\\platform" or die "ERROR: Can't open dir \"..\\platform\"\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   116
@ConfigFiles = grep /\.(mk|make)/i, readdir CONFIGDIR;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   117
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   118
closedir CONFIGDIR;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   119
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   120
opendir SUBDIR, "..\\doc" or die "ERROR: Can't open dir \"..\\doc\"\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   121
my @Docs = map lc $_, readdir SUBDIR;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   122
@Docs = grep /^[^\.].+\.(rtf|doc|changes|txt|html|htm)$/o, @Docs;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   123
	
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   124
closedir SUBDIR;	
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   125
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   126
open TEMPLATEFILESUBDIR, "\"dir \/s \/b \/a-d ..\\..\\buildsystem\\extension\" |";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   127
my @TemplateFiles=();
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   128
my %TemplateDirs;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   129
while (<TEMPLATEFILESUBDIR>)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   130
	{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   131
	next if ($_ !~ /\.(mk|meta)$/i);	
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   132
	$_ =~ s/^.*\\buildsystem\\extension\\//i;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   133
	chomp $_;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   134
	push @TemplateFiles, $_;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   135
	$_ =~ /^(.*\\)/o;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   136
	my $path = $1;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   137
	$path =~ s/\\$//;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   138
	$TemplateDirs{$path}=1;	
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   139
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   140
close TEMPLATEFILESUBDIR;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   141
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   142
opendir SHELLFILESUBDIR, "..\\..\\buildsystem\\shell" or die "ERROR: Can't open dir \"..\\..\\buildsystem\\shell\"\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   143
my @ShellFiles = map lc $_, readdir SHELLFILESUBDIR;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   144
@ShellFiles = grep /^[^\.].+\.(mk)$/o, @ShellFiles;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   145
closedir SHELLFILESUBDIR;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   146
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   147
open BINFILESUBDIR, "\"dir \/s \/b \/a-d ..\\..\\buildsystem\\bin\" |";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   148
my @BinFiles=();
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   149
my %BinDirs;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   150
while (<BINFILESUBDIR>)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   151
    	{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   152
    	next if ($_ !~ /\.(exe|jar)$/i);	
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   153
    	$_ =~ s/^.*\\buildsystem\\bin\\//i;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   154
    	chomp $_;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   155
    	push @BinFiles, $_;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   156
    	$_ =~ /^(.*\\)/o;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   157
    	my $path = $1;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   158
    	$path =~ s/\\$//;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   159
    	$BinDirs{$path}=1;	
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   160
    	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   161
close BINFILESUBDIR;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   162
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   163
my $PrintGroupDir=$GroupDir;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   164
$PrintGroupDir=~s-\\-\\\\-go;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   165
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   166
# Create BLD.BAT
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   167
my $OutTxt='';
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   168
&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   169
	"\@echo off\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   170
	"\@goto invoke\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   171
	"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   172
	"#!perl\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   173
	"unless (\@ARGV==1 && \$ARGV[0]=~/^(deb|rel|clean|releasables)\$/io) {\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   174
	"	die\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   175
	"		\"E32TOOLP's bld.bat - usage\\n\",\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   176
	"		\"BLD [param]\\n\",\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   177
	"		\"where\\n\",\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   178
	"		\"param = DEB or REL or CLEAN\\n\"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   179
	"	;\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   180
	"}\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   181
	"my \$Param=lc \$ARGV[0];\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   182
	"chdir \"$PrintGroupDir\";\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   183
	"if (\$Param =~ /releasables/i)\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   184
	"{\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   185
	"open PIPE, \"..\\\\..\\\\make-abld\\\\make -s -f e32toolp.make \$Param |\" or die \"Can't invoke make: \$!\\n\";\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   186
	"while (<PIPE>) { print \$_; }\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   187
	"close PIPE;\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   188
	"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   189
	"exit;\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   190
	"}\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   191
	"print \"..\\\\..\\\\make-abld\\\\make -s -f e32toolp.make \$Param\\n\";\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   192
	"open PIPE, \"..\\\\..\\\\make-abld\\\\make -s -f e32toolp.make \$Param |\" or die \"Can't invoke make: \$!\\n\";\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   193
	"while (<PIPE>) { }\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   194
	"close PIPE;\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   195
	"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   196
	"__END__\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   197
	"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   198
	":invoke\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   199
	"perl -x $GroupDir\\bld.bat %1 %2\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   200
);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   201
	
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   202
my $BLDFILE='bld.bat';
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   203
print "Creating File \"$BLDFILE\"\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   204
open BLDFILE,">$BLDFILE" or die "\nERROR: Can't open or create Batch file \"$BLDFILE\"\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   205
print BLDFILE "$OutTxt" or die "\nERROR: Can't write output to Batch file \"$BLDFILE\"\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   206
close BLDFILE or die "\nERROR: Can't close Batch file \"$BLDFILE\"\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   207
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   208
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   209
# Create the make file
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   210
$OutTxt='';
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   211
&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   212
	"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   213
	"ifeq (\$(OS),Windows_NT)\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   214
	"ERASE = \@erase 2>>nul\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   215
	"else\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   216
	"ERASE = \@erase\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   217
	"endif\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   218
	"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   219
	"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   220
	"$EPOCToolsPath :\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   221
	"\t\@perl -w ..\\genutil\\emkdir.pl $EPOCToolsPath\n", 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   222
	"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   223
	"$TemplateFilePath :\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   224
	"\t\@perl -w ..\\genutil\\emkdir.pl $TemplateFilePath\n", 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   225
	"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   226
);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   227
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   228
foreach (sort keys %TemplateDirs) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   229
	&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   230
	"$TemplateFilePath\\$_ :\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   231
	"\t\@perl -w ..\\genutil\\emkdir.pl $TemplateFilePath\\$_\n", 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   232
	"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   233
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   234
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   235
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   236
foreach (sort keys %BinDirs) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   237
 	&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   238
 	"$BinFilePath\\$_ :\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   239
 	"\t\@perl -w ..\\genutil\\emkdir.pl $BinFilePath\\$_\n", 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   240
 	"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   241
 	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   242
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   243
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   244
&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   245
	"$ShellFilePath :\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   246
	"\t\@perl -w ..\\genutil\\emkdir.pl $ShellFilePath\n", 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   247
	"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   248
	"$EPOCToolsConfigFilePath :\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   249
	"\t\@perl -w ..\\genutil\\emkdir.pl $EPOCToolsConfigFilePath\n", 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   250
	"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   251
	"$DocsPath :\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   252
	"\t\@perl -w ..\\genutil\\emkdir.pl $DocsPath\n", 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   253
	"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   254
	"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   255
	"deb : $EPOCToolsPath $EPOCToolsConfigFilePath $DocsPath $TemplateFilePath $ShellFilePath "
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   256
);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   257
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   258
foreach (sort keys %TemplateDirs) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   259
	&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   260
	"$TemplateFilePath\\$_ "
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   261
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   262
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   263
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   264
foreach (sort keys %BinDirs) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   265
 	&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   266
 	"$BinFilePath\\$_ "
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   267
 	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   268
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   269
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   270
&Output("\n");
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   271
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   272
my $File;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   273
foreach $File (keys %Files) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   274
	&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   275
		"\tcopy \"..\\$Files{$File}\" \"$EPOCToolsPath\\$File\" >nul\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   276
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   277
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   278
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   279
my $ConfigFile;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   280
foreach $ConfigFile (@ConfigFiles) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   281
	&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   282
		"\tcopy \"..\\platform\\$ConfigFile\" \"$EPOCToolsConfigFilePath\\$ConfigFile\" >nul\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   283
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   284
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   285
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   286
foreach $File (@Docs) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   287
	&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   288
			"\tcopy \"..\\doc\\$File\" \"$DocsPath\\$File\" >nul\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   289
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   290
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   291
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   292
my $tfile;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   293
foreach $tfile (@TemplateFiles) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   294
	&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   295
			"\tcopy \"..\\..\\buildsystem\\extension\\$tfile\" \"$TemplateFilePath\\$tfile\" >nul\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   296
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   297
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   298
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   299
my $bfile;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   300
foreach $bfile (@BinFiles) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   301
 	&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   302
 			"\tcopy \"..\\..\\buildsystem\\bin\\$bfile\" \"$BinFilePath\\$bfile\" >nul\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   303
 	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   304
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   305
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   306
my $sfile;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   307
foreach $sfile (@ShellFiles) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   308
	&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   309
			"\tcopy \"..\\..\\buildsystem\\shell\\$sfile\" \"$ShellFilePath\\$sfile\" >nul\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   310
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   311
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   312
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   313
&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   314
	"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   315
	"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   316
	"rel : $EPOCToolsPath $EPOCToolsConfigFilePath $DocsPath $TemplateFilePath $ShellFilePath "
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   317
);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   318
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   319
foreach (sort keys %TemplateDirs) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   320
	&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   321
	"$TemplateFilePath\\$_ "
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   322
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   323
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   324
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   325
foreach (sort keys %BinDirs) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   326
 	&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   327
 	"$BinFilePath\\$_ "
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   328
 	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   329
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   330
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   331
&Output("\n");
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   332
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   333
	
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   334
foreach $File (keys %Files) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   335
	&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   336
		"\t.\\perlprep.bat \"..\\$Files{$File}\" \"$EPOCToolsPath\\$File\"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   337
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   338
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   339
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   340
foreach $ConfigFile (@ConfigFiles) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   341
	&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   342
		"\tcopy \"..\\platform\\$ConfigFile\" \"$EPOCToolsConfigFilePath\\$ConfigFile\" >nul\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   343
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   344
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   345
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   346
foreach $File (@Docs) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   347
	&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   348
			"\tcopy \"..\\doc\\$File\" \"$DocsPath\\$File\" >nul\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   349
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   350
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   351
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   352
foreach $tfile (@TemplateFiles) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   353
	&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   354
			"\tcopy \"..\\..\\buildsystem\\extension\\$tfile\" \"$TemplateFilePath\\$tfile\" >nul\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   355
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   356
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   357
foreach $bfile (@BinFiles) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   358
 	&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   359
 			"\tcopy \"..\\..\\buildsystem\\bin\\$bfile\" \"$BinFilePath\\$bfile\" >nul\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   360
 	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   361
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   362
foreach $sfile (@ShellFiles) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   363
	&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   364
			"\tcopy \"..\\..\\buildsystem\\shell\\$sfile\" \"$ShellFilePath\\$sfile\" >nul\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   365
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   366
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   367
&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   368
	"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   369
	"rel deb : $EPOCToolsPath\\make.exe\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   370
	"$EPOCToolsPath\\make.exe: ..\\..\\make-abld\\make.exe\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   371
	"\tcopy \$\? \$\@\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   372
);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   373
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   374
&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   375
	"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   376
	"rel deb : $EPOCToolsPath\\scpp.exe\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   377
	"$EPOCToolsPath\\scpp.exe: ..\\..\\scpp-abld\\scpp.exe\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   378
	"\tcopy \$\? \$\@\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   379
);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   380
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   381
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   382
&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   383
	"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   384
	"clean :\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   385
);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   386
foreach $File (keys %Files) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   387
	&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   388
		"\t-\$(ERASE) \"$EPOCToolsPath\\$File\"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   389
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   390
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   391
foreach $ConfigFile (@ConfigFiles) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   392
	&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   393
		"\t-\$(ERASE) \"$EPOCToolsConfigFilePath\\$ConfigFile\"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   394
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   395
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   396
foreach $File (@Docs) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   397
	&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   398
			"\t-\$(ERASE) \"$DocsPath\\$File\"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   399
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   400
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   401
foreach $tfile (@TemplateFiles) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   402
	&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   403
			"\t-\$(ERASE) \"$TemplateFilePath\\$tfile\"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   404
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   405
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   406
foreach $bfile (@BinFiles) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   407
 	&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   408
 			"\t-\$(ERASE) \"$BinFilePath\\$bfile\"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   409
 	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   410
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   411
foreach $sfile (@ShellFiles) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   412
	&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   413
			"\t-\$(ERASE) \"$ShellFilePath\\$sfile\"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   414
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   415
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   416
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   417
&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   418
	"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   419
	"releasables :\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   420
);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   421
foreach $File (keys %Files) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   422
	&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   423
		"\t\@echo $EPOCToolsPath\\$File\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   424
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   425
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   426
foreach $ConfigFile (@ConfigFiles) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   427
	&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   428
		"\t\@echo $EPOCToolsConfigFilePath\\$ConfigFile\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   429
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   430
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   431
foreach $File (@Docs) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   432
	&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   433
			"\t\@echo $DocsPath\\$File\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   434
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   435
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   436
foreach $tfile (@TemplateFiles) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   437
	&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   438
			"\t\@echo $TemplateFilePath\\$tfile\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   439
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   440
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   441
foreach $bfile (@BinFiles) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   442
 	&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   443
 			"\t\@echo $BinFilePath\\$bfile\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   444
 	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   445
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   446
foreach $sfile (@ShellFiles) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   447
	&Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   448
			"\t\@echo $ShellFilePath\\$sfile\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   449
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   450
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   451
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   452
my $MAKEFILE="e32toolp.make";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   453
print "Creating File \"$MAKEFILE\"\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   454
open MAKEFILE,">$MAKEFILE" or die "\nERROR: Can't open or create Batch file \"$MAKEFILE\"\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   455
print MAKEFILE "$OutTxt" or die "\nERROR: Can't write output to Batch file \"$MAKEFILE\"\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   456
close MAKEFILE or die "\nERROR: Can't close Batch file \"$MAKEFILE\"\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   457
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   458
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   459
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   460
# this code autocreates the .rel file
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   461
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   462
my @ToolsDst = ("make.exe", "scpp.exe");
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   463
my @DocsDst = @Docs;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   464
my @ConfigFilesDst = @ConfigFiles;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   465
my @TemplateFilesDst = @TemplateFiles;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   466
my @BinFilesDst = @BinFiles;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   467
my @ShellFilesDst = @ShellFiles;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   468
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   469
push @ToolsDst, keys %Files;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   470
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   471
# TOOLS.REL file 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   472
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   473
my $RELFILE="tools.rel";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   474
print "Creating File \"$RELFILE\"\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   475
open RELFILE,">$RELFILE" or die "\nERROR: Can't open or create Rel file \"$RELFILE\"\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   476
print RELFILE "${EPOCRoot}epoc32\\tools\\";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   477
print RELFILE join("\n${EPOCRoot}epoc32\\tools\\", sort @ToolsDst);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   478
print RELFILE join("\n${EPOCRoot}epoc32\\tools\\compilation_config\\","", sort @ConfigFilesDst);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   479
print RELFILE join("\n${EPOCRoot}epoc32\\EngDoc\\E32toolp\\","", sort @DocsDst);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   480
close RELFILE or die "\nERROR: Can't close Rel file \"$RELFILE\"\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   481
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   482
# Check MRP file - the modern equivalent of tools.rel
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   483
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   484
my $NewMRPText = "component tools_e32toolp\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   485
$NewMRPText .= "# This file is generated by setupprj.bat\n\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   486
$NewMRPText .= "ipr T\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   487
$NewMRPText .= "ipr O  \\sf\\os\\buildtools\\sbsv1_os\\e32toolp\\binutils\n\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   488
$NewMRPText .= "source \\sf\\os\\buildtools\\sbsv1_os\\e32toolp\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   489
$NewMRPText .= "source \\sf\\os\\buildtools\\toolsandutils\\buildsystem\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   490
$NewMRPText .= join("\nbinary \\epoc32\\tools\\", "",sort @ToolsDst);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   491
# Don't include EngDoc files in the MRP file
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   492
$NewMRPText .= join("\nbinary \\epoc32\\tools\\compilation_config\\","", sort @ConfigFilesDst);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   493
$NewMRPText .= join("\nbinary \\epoc32\\tools\\makefile_templates\\","", sort @TemplateFilesDst);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   494
$NewMRPText .= join("\nbinary \\epoc32\\tools\\","", sort @BinFilesDst);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   495
$NewMRPText .= join("\nbinary \\epoc32\\tools\\shell\\","", sort @ShellFilesDst);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   496
$NewMRPText .= "\n\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   497
$NewMRPText .= "notes_source \\component_defs\\release.src\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   498
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   499
my $MRPFILE="abld.mrp";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   500
open MRPFILE,"<$MRPFILE" or die "\nERROR: Can't read MRP file \"$MRPFILE\"\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   501
my $OldMRPText = "";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   502
sysread MRPFILE, $OldMRPText, 100000;	# assumes MRP file is less than 100,000 bytes
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   503
close MRPFILE or die "\nERROR: Can't close MRP file \"$MRPFILE\"\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   504
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   505
if ($OldMRPText ne $NewMRPText) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   506
	print "REMARK: MRP file \"$MRPFILE\" differs from setupprj.bat generated content\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   507
	print "Creating suggested new MRP file \"$MRPFILE.new\"\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   508
	open MRPFILE,">$MRPFILE.new" or die "\nERROR: Can't open or create MRP file \"$MRPFILE.new\"\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   509
	print MRPFILE $NewMRPText;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   510
	close MRPFILE or die "\nERROR: Can't close MRP file \"$MRPFILE.new\"\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   511
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   512
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   513
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   514
# SUBROUTINE SECTION
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   515
####################
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   516
sub Output (@) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   517
	my $Txt;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   518
	foreach $Txt (@_) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   519
		$OutTxt.=$Txt;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   520
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   521
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   522
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   523
sub UpToRoot ($) {	#args: $_[0] Abs FilePath/Path
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   524
# return the path that will lead from the directory the path passed into the function
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   525
# specifies back up to the root directory
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   526
	return undef unless $_[0]=~m-^\\-o;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   527
	my $Path=$_[0];
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   528
	my $UpP;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   529
	while ($Path=~m-\\-go)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   530
		{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   531
		$UpP.="..\\";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   532
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   533
	undef $Path;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   534
	$UpP=~s-^(.*)\.\.\\-$1-o;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   535
	$UpP=".\\" unless $UpP;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   536
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   537
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   538
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   539
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   540
__END__
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   541
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   542
:End