sbsv1/abld/platform/cl_x86.pm
author kelvzhu
Thu, 02 Sep 2010 15:02:14 +0800
changeset 632 934f9131337b
parent 599 fa7a3cc6effd
permissions -rw-r--r--
Delivery Blocks to SF
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
599
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     1
# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     2
# All rights reserved.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     3
# This component and the accompanying materials are made available
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     4
# under the terms of "Eclipse Public License v1.0"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     5
# which accompanies this distribution, and is available
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     6
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     7
#
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     8
# Initial Contributors:
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     9
# Nokia Corporation - initial contribution.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    10
#
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    11
# Contributors:
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    12
#
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    13
# Description:
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    14
#
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    15
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    16
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    17
package Cl_x86;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    18
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    19
# declare variables global for module
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    20
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    21
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    22
require Exporter;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    23
@ISA=qw(Exporter);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    24
@EXPORT=qw(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    25
	PMHelp_Mmp
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    26
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    27
	PMCheckPlatformL
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    28
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    29
	PMPlatProcessMmp
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    30
	
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    31
	PMStartBldList
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    32
		PMBld
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    33
	PMStartSrcList
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    34
		PMBitMapBld
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    35
		PMResrcBld
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    36
		PMAifBld
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    37
		PMStartSrc
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    38
		PMSrcDepend
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    39
			PMSrcBldDepend
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    40
			PMEndSrcBld
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    41
		PMEndSrc
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    42
	PMEndSrcList
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    43
);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    44
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    45
use Winutl;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    46
use cl_generic;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    47
use Genutl;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    48
use Pathutl;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    49
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    50
use constant NOCOMPRESSIONMETHOD => 0;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    51
use constant INFLATECOMPRESSIONMETHOD => 1;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    52
use constant BYTEPAIRCOMPRESSIONMETHOD => 2;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    53
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    54
use constant NOTPAGED => 0;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    55
use constant UNPAGED => 1;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    56
use constant PAGED => 2;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    57
sub PMHelp_Mmp {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    58
	&Winutl_Help_Mmp;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    59
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    60
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    61
sub PMCheckPlatformL {
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
sub PMPlatProcessMmp (@) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    65
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    66
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    67
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    68
sub PMStartBldList($) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    69
	my ($makecmd) = @_;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    70
	die "Cannot generate $makecmd makefiles\n" if ($makecmd ne "nmake");
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    71
	my $BaseTrg=&main::BaseTrg;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    72
	my @BldList=&main::BldList;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    73
	my @ChopSysIncPaths=&main::Path_Chop(&main::SysIncPaths);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    74
	my @ChopUserIncPaths=&main::Path_Chop(&main::UserIncPaths);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    75
	my $DefFile=&main::DefFile;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    76
	my $BasicTrgType=&main::BasicTrgType;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    77
	my $LinkAs=&main::LinkAs;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    78
	my $ExportLibrary=&main::ExportLibrary;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    79
	my $NoExportLibrary=&main::NoExportLibrary;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    80
	my $LibPath=&main::LibPath;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    81
	my @MacroList=&main::MacroList();
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    82
	my $VariantFile=&main::VariantFile();
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    83
	my $Plat=&main::Plat;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    84
	my $Trg=&main::Trg;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    85
	my $TrgType=&main::TrgType;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    86
	my @UidList=&main::UidList;	
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    87
	my $WarningLevel=&main::CompilerOption("MSVC");
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    88
	my %Version = &main::Version();
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    89
	my $ExtraExportLibrary;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    90
	my $PrimaryExportLibrary = $ExportLibrary;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    91
	unless ($Version{explicit}) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    92
		$ExtraExportLibrary = $ExportLibrary;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    93
		$ExtraExportLibrary =~ s/\{(\d|a|b|c|d|e|f){8}\}//i;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    94
		$PrimaryExportLibrary = $ExtraExportLibrary;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    95
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    96
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    97
	&Generic_Header(0,$makecmd);	# define standard things using absolute paths
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    98
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    99
#	set up LinkAs
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   100
	$UidList[2]=~/^0x(.*)$/o;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   101
	if ($1 ne '00000000') { # have to make sure than series of noughts in brackets doesn't appear in name for null uids
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   102
		$LinkAs=join '', &main::Path_Split('Base',$LinkAs),"[$1]",&main::Path_Split('Ext',$LinkAs);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   103
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   104
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   105
	my $TrgDir="";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   106
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   107
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   108
		"INCDIR  ="
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   109
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   110
	if($VariantFile){
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   111
        my $VariantFileFileName  = Path_Split('FILE',$VariantFile);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   112
        &main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   113
              " /FI \"$VariantFileFileName\"",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   114
              );
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   115
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   116
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   117
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   118
	foreach (@ChopUserIncPaths,@ChopSysIncPaths) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   119
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   120
			" /I \"$_\""
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   121
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   122
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   123
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   124
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   125
		"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   126
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   127
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   128
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   129
		"CLFLAGS = /nologo /Zp4 $WarningLevel /Zm256"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   130
		);	
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   131
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   132
		" /X"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   133
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   134
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   135
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   136
		"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   137
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   138
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   139
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   140
		"CLDEFS  ="
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   141
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   142
	foreach(@MacroList) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   143
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   144
			" /D \"$_\""
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   145
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   146
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   147
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   148
		" \$(USERDEFS)\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   149
		"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   150
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   151
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   152
	foreach (@BldList) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   153
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   154
			"CL$_ = cl.exe"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   155
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   156
		if (/DEB$/o) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   157
			&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   158
				' /Od /Gs0x10000 /Gy /GR- /GX-'
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   159
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   160
#			euser change to apply inlining on the _NAKED functions
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   161
			if ($BaseTrg=~/^EUSER$/oi) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   162
				&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   163
					' /Ob1'
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   164
				);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   165
			}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   166
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   167
		elsif (/REL$/o) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   168
#			euser change to prevent minimum size optimisation from disrupting the maths functions
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   169
				&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   170
					' /O1 /Op /Gs0x10000 /Gy /GF /GR- /GX-'
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   171
				);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   172
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   173
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   174
			' $(CLFLAGS)'
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   175
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   176
		foreach (&main::MacroList($_)) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   177
			&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   178
				" /D $_"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   179
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   180
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   181
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   182
			" \$(CLDEFS) \$(INCDIR)\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   183
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   184
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   185
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   186
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   187
		"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   188
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   189
	
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   190
	foreach (@BldList) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   191
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   192
			"$_ :"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   193
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   194
		if ($BasicTrgType !~ /^IMPLIB$/io) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   195
			&main::Output (
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   196
				" \\\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   197
				"\t\"\$(EPOCTRG$_)\\$TrgDir$Trg\""
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   198
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   199
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   200
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   201
#		lib has to come after the main target so that a .DEF file will be generated if the project is not frozen
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   202
		if ($DefFile and not &main::ExportUnfrozen) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   203
			&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   204
				" \\\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   205
				"\tLIBRARY\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   206
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   207
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   208
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   209
			"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   210
			"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   211
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   212
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   213
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   214
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   215
	# Resource building is done entirely via cl_generic.pm
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   216
	
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   217
	foreach (@BldList) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   218
		my $makework="MAKEWORK$_";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   219
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   220
			"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   221
			"RESOURCE$_ : $makework"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   222
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   223
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   224
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   225
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   226
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   227
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   228
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   229
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   230
		"LIBRARY : MAKEWORKLIBRARY"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   231
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   232
	if ($BasicTrgType=~/^LIB$/o) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   233
#		code to ensure that the static libraries for all builds are built at the library stage
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   234
		foreach (@BldList) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   235
			&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   236
				" $_"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   237
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   238
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   239
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   240
	elsif ($DefFile and !$NoExportLibrary) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   241
		unless (&main::ExportUnfrozen) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   242
			if (-e $DefFile) { # effectively "if project frozen ..."
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   243
				&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   244
					" \"\$(EPOCLIB)\\UREL\\$PrimaryExportLibrary.LIB\"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   245
				);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   246
			}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   247
			else {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   248
				&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   249
					"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   250
					"\t\@echo WARNING: Not attempting to create \"\$(EPOCLIB)\\UREL\\$PrimaryExportLibrary.LIB\".\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   251
					"\t\@echo When exports are frozen in \"$DefFile\", regenerate Makefile.\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   252
				);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   253
			}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   254
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   255
		else {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   256
			&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   257
				"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   258
				"\t\@echo Not attempting to create \"\$(EPOCLIB)UREL\\$PrimaryExportLibrary.LIB\"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   259
				"\t\@echo from frozen .DEF file, since EXPORTUNFROZEN specified.\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   260
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   261
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   262
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   263
			"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   264
			"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   265
			"# REAL TARGET - LIBRARY\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   266
			"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   267
			"\"\$(EPOCLIB)\\UREL\\$ExportLibrary.LIB\" : \"$DefFile\"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   268
			"\tperl -S prepdef.pl \"$DefFile\" \"\$(EPOCBLD)\\$ExportLibrary.prep.def\"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   269
			"\tlib.exe /nologo /machine:i386 /nodefaultlib /subsystem:native /name:\"$LinkAs\" /def:\"\$(EPOCBLD)\\$ExportLibrary.prep.def\" /out:\"\$(EPOCLIB)\\UREL\\$ExportLibrary.LIB\"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   270
			"\tdel \"\$(EPOCLIB)\\UREL\\$ExportLibrary.exp\"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   271
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   272
		if ($ExtraExportLibrary) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   273
			&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   274
				"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   275
				&Generic_Quote("\$(EPOCLIB)\\UREL\\$ExtraExportLibrary.lib"), " : ",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   276
				&Generic_Quote("\$(EPOCLIB)\\UREL\\$ExportLibrary.lib"), "\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   277
				"\tcopy ", &Generic_Quote("\$(EPOCLIB)\\UREL\\$ExportLibrary.lib"), " \$@\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   278
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   279
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   280
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   281
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   282
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   283
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   284
		"FREEZE :\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   285
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   286
	if ($DefFile and $BasicTrgType !~ /^IMPLIB$/io) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   287
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   288
#			call perl on the script here so nmake will die if there are errors - this doesn't happen if calling perl in a batch file
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   289
			"\tperl -S efreeze.pl \$(EFREEZE_ALLOW_REMOVE) \"$DefFile\" \"\$(EPOCBLD)\\$ExportLibrary.def\" \n"
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
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   293
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   294
		"CLEANLIBRARY :\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   295
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   296
	if ($DefFile and !$NoExportLibrary) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   297
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   298
			"\t-\$(ERASE) \"\$(EPOCLIB)\\UREL\\$ExportLibrary.LIB\"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   299
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   300
		if ($ExtraExportLibrary) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   301
			&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   302
				"\t-\$(ERASE) \"\$(EPOCLIB)\\UREL\\$ExtraExportLibrary.LIB\"\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
	&Generic_MakeWorkDir('MAKEWORKLIBRARY',"${LibPath}UREL");
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   307
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   308
	&Generic_Releaseables;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   309
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   310
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   311
sub PMBld {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   312
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   313
	my @ASSPLibList=&main::ASSPLibList;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   314
	my @SrcList=&main::SrcList;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   315
	my $BaseTrg=&main::BaseTrg;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   316
	my $Bld=&main::Bld;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   317
	my $DefFile=&main::DefFile;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   318
	my $EPOCIncPath=&main::EPOCIncPath;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   319
	my $FirstLib=&main::FirstLib;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   320
	my $BasicTrgType=&main::BasicTrgType;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   321
	my @LibList;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   322
	my $LinkAs=&main::LinkAs;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   323
	my $ExportLibrary=&main::ExportLibrary;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   324
	my $NoExportLibrary=&main::NoExportLibrary;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   325
	my $LibPath=&main::LibPath;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   326
	my $RelPath=&main::RelPath;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   327
	my @StatLibList=&main::StatLibList;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   328
	my $Trg=&main::Trg;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   329
	my $TrgPath=&main::TrgPath;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   330
	my $TrgType=&main::TrgType;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   331
	my @UidList=&main::UidList;	
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   332
	my $HasExports=0;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   333
	if (-e $DefFile or scalar(&main::Exports)!=0) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   334
		$HasExports=1;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   335
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   336
	my %Version = &main::Version();
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   337
	my $ExtraExportLibrary;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   338
	unless ($Version{explicit}) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   339
		$ExtraExportLibrary = $ExportLibrary;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   340
		$ExtraExportLibrary =~ s/\{(\d|a|b|c|d|e|f){8}\}//i;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   341
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   342
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   343
	my $WarningLevel='/WARN:3';
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   344
	$WarningLevel='/WARN:1';    # avoid LNK4005 warnings about unused libraries
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   345
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   346
	if ($Bld =~ /DEB/) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   347
		@LibList=&main::DebugLibList;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   348
	} else {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   349
		@LibList=&main::LibList;
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
#	set up $LinkAs
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   353
	$UidList[2]=~/^0x(.*)$/o;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   354
	if ($1 ne '00000000') {	# have to make sure than series of noughts in brackets doesn't appear in name for null uids
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   355
		$LinkAs=join '', &main::Path_Split('Base',$LinkAs),"[$1]",&main::Path_Split('Ext',$LinkAs);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   356
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   357
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   358
	my $BLDTRGPATH = "\$(EPOCTRG$Bld)\\";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   359
	my $BLDDATAPATH = "\$(EPOCTRG$Bld)\\";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   360
	my $Entry="";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   361
	my $Include="";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   362
	my $EntrySymbol='';
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   363
	if ($BasicTrgType=~/^DLL$/o) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   364
		$Entry="_E32Dll";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   365
		$Include="/include:\"__E32Dll\"";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   366
		$EntrySymbol='_E32Dll';
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   367
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   368
	elsif ($BasicTrgType=~/^EXE$/o) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   369
		$Entry="_E32Startup";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   370
		$Include="/include:\"__E32Startup\"";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   371
		$EntrySymbol='_E32Startup';
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   372
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   373
	my $AbsentSubst = '';
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   374
	if ($EntrySymbol) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   375
		$AbsentSubst = " -absent $EntrySymbol";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   376
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   377
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   378
	# REAL TARGETS
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   379
	#-------------
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   380
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   381
		"# REAL TARGET - BUILD VARIANT $Bld\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   382
		"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   383
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   384
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   385
#	releasables
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   386
	my @releasables;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   387
 	push @releasables, "$RelPath$Trg" if ($BasicTrgType !~ /^IMPLIB$/io);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   388
   	if ($BasicTrgType=~/^(DLL|EXE)$/o) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   389
 		push @releasables, "$RelPath$Trg.MAP";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   390
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   391
	if (-e $DefFile and !$NoExportLibrary) { # effectively "if project frozen ..."
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   392
 		push @releasables, "$LibPath$ExportLibrary.LIB";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   393
 		push @releasables, "$LibPath$ExtraExportLibrary.LIB" if ($ExtraExportLibrary);
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
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   397
		"WHAT$Bld : WHATGENERIC\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   398
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   399
		"CLEAN$Bld : CLEANBUILD$Bld CLEANRELEASE$Bld\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   400
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   401
		"CLEANBUILD$Bld : \n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   402
		"\t\@perl -S ermdir.pl \"\$(EPOCBLD$Bld)\"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   403
		"\t-\$(ERASE) \"$BLDTRGPATH$BaseTrg.ILK\"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   404
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   405
		"CLEANRELEASE$Bld : CLEANGENERIC\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   406
		"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   407
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   408
 	&Generic_WhatCleanTargets($Bld, "WHAT$Bld", "CLEANRELEASE$Bld", @releasables);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   409
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   410
	&Generic_MakeWorkDir("MAKEWORK$Bld", &main::BldPath);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   411
	&Generic_MakeWorkDir("MAKEWORK$Bld", $BLDTRGPATH);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   412
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   413
 	return if ($BasicTrgType =~ /^IMPLIB$/io);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   414
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   415
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   416
		"LISTING$Bld : MAKEWORK$Bld"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   417
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   418
	foreach (@SrcList) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   419
		my $BaseSrc = &main::Path_Split('Base', $_);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   420
		my $Ext = &main::Path_Split('Ext', $_);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   421
		$BaseSrc.='_' if (lc($Ext) eq '.cia');
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   422
   		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   423
			" \\\n\tLISTING$Bld$BaseSrc"
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
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   427
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   428
		"\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
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   432
		"LIBS="
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   433
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   434
	foreach (@StatLibList) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   435
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   436
			" \\\n\t\"\$(EPOCSTATLINK$Bld)\\$_\""
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   437
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   438
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   439
	foreach (@ASSPLibList) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   440
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   441
			" \\\n\t\"\$(EPOCASSPLINK$Bld)\\$_\""
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   442
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   443
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   444
	foreach (@LibList) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   445
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   446
			" \\\n\t\"\$(EPOCLINK$Bld)\\$_\""
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   447
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   448
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   449
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   450
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   451
		"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   452
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   453
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   454
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   455
		"LINK_OBJS="
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   456
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   457
	foreach (@SrcList) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   458
		my $BaseSrc = &main::Path_Split('Base', $_);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   459
		my $Ext = &main::Path_Split('Ext', $_);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   460
		$BaseSrc.='_' if (lc($Ext) eq '.cia');
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   461
   		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   462
			" \\\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   463
			"\t\"\$(EPOCBLD$Bld)\\$BaseSrc.obj\""
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   464
   		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   465
   	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   466
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   467
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   468
		"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   469
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   470
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   471
	if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   472
		&main::OutFormat(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   473
			"STAGE1_LINK_FLAGS="
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   474
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   475
		&main::OutFormat(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   476
			"\"\$(EPOCSTATLINK$Bld)\\$FirstLib\" /PDB:NONE"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   477
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   478
		if ($BasicTrgType=~/^(DLL)$/o) {	# Add the DLL stub
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   479
			&main::OutFormat(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   480
				" \"\$(EPOCSTATLINK$Bld)\\EDLLSTUB.LIB\""
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   481
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   482
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   483
		&main::OutFormat(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   484
			" \$(LIBS) /nologo /entry:$Entry /subsystem:native"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   485
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   486
		if ($BasicTrgType=~/^DLL$/o) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   487
			&main::OutFormat(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   488
				" /dll"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   489
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   490
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   491
		if ($Bld=~/DEB$/o) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   492
			&main::OutFormat(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   493
				' /debug'
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   494
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   495
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   496
		&main::OutFormat(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   497
			" /incremental:no /machine:IX86 /nodefaultlib $Include /out:\"\$(EPOCBLD$Bld)\\$Trg\" $WarningLevel",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   498
			" /implib:\"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\"",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   499
			' /ignore:4089',		# LNK4089: all references to "dynamic-link library" discarded by /OPT:REF
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   500
			' /ignore:4005'			# LNK4005: no objects used from XXX
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   501
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   502
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   503
			"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   504
			"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   505
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   506
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   507
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   508
	&main::OutFormat(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   509
		'LINK_FLAGS='
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   510
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   511
	if ($BasicTrgType=~/^(EXE|DLL)$/o) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   512
		&main::OutFormat(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   513
			" \"\$(EPOCSTATLINK$Bld)\\$FirstLib\" /PDB:NONE "
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   514
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   515
		if ($BasicTrgType=~/^(DLL)$/o) {	# Add the DLL stub
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   516
			&main::OutFormat(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   517
				" \"\$(EPOCSTATLINK$Bld)\\EDLLSTUB.LIB\""
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   518
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   519
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   520
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   521
	&main::OutFormat(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   522
		' $(LIBS) /nologo'
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   523
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   524
	if ($BasicTrgType=~/^(EXE|DLL)$/o) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   525
		&main::OutFormat(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   526
			" /fixed:no "
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   527
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   528
		&main::OutFormat(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   529
			" /entry:$Entry"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   530
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   531
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   532
	&main::OutFormat(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   533
		' /subsystem:native'
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   534
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   535
	if ($BasicTrgType=~/^DLL$/o) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   536
		if ($HasExports) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   537
			&main::OutFormat(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   538
				" /dll \"\$(EPOCBLD$Bld)\\$ExportLibrary.exp\""
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   539
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   540
		} else {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   541
			&main::OutFormat(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   542
				" /dll"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   543
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   544
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   545
	} elsif ($TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   546
		&main::OutFormat(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   547
			" \"\$(EPOCBLD$Bld)\\$ExportLibrary.exp\""
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   548
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   549
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   550
	if (&main::HeapSize) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   551
		my %HeapSize=&main::HeapSize;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   552
		&main::OutFormat(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   553
			' /heap:',$HeapSize{Max},',',$HeapSize{Min}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   554
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   555
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   556
	if ($BasicTrgType=~/^(DLL|EXE)$/o) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   557
		if ($Bld=~/DEB$/o) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   558
			&main::OutFormat(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   559
				' /debug'
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   560
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   561
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   562
		elsif ($Bld=~/REL$/o) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   563
			&main::OutFormat(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   564
				' /incremental:no'
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   565
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   566
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   567
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   568
	&main::OutFormat(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   569
		' /machine:IX86',
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   570
		' /ignore:4089',	# LNK4089: all references to "dynamic-link library" discarded by /OPT:REF
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   571
		' /ignore:4005'		# LNK4005: no objects used from XXX
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   572
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   573
	&main::OutFormat(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   574
		" /nodefaultlib $Include"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   575
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   576
	if ($BasicTrgType=~/^(DLL|EXE)$/o) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   577
		&main::OutFormat(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   578
			" /out:\"\$(EPOCBLD$Bld)\\$Trg\"",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   579
			" /implib:\"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\""
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   580
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   581
		&main::OutFormat(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   582
			" $WarningLevel"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   583
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   584
	} else {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   585
		&main::OutFormat(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   586
			" /out:\"$BLDTRGPATH$Trg\""
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   587
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   588
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   589
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   590
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   591
		"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   592
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   593
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   594
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   595
		"\"$BLDTRGPATH$Trg\" : \$(LINK_OBJS)"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   596
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   597
	if (-e $DefFile) { # effectively "if project frozen ..."
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   598
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   599
			" \"$DefFile\""
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   600
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   601
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   602
	if ($BasicTrgType=~/^(DLL|EXE)$/o) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   603
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   604
			" \"\$(EPOCSTATLINK$Bld)\\$FirstLib\""
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   605
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   606
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   607
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   608
		" \$(LIBS)\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   609
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   610
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   611
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   612
#	Link by name first time round for dlls
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   613
	if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   614
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   615
			"\techo $Entry>\"\$(EPOCBLD$Bld)\\$ExportLibrary.ord\"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   616
			"\tlink.exe \@<<\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   617
			"\t\t\$(STAGE1_LINK_FLAGS) /order:@\"\$(EPOCBLD$Bld)\\$ExportLibrary.ord\" \$(LINK_OBJS)\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   618
			"<<\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   619
			"\tdel \"\$(EPOCBLD$Bld)\\$ExportLibrary.ord\"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   620
			"\tdel \"\$(EPOCBLD$Bld)\\$Trg\"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   621
#			"\tdel \"\$(EPOCBLD$Bld)\\$ExportLibrary.exp\"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   622
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   623
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   624
	if ($HasExports) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   625
	#		Generate an export info file
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   626
			&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   627
				"\tdumpbin /exports /out:\"\$(EPOCBLD$Bld)\\$ExportLibrary.inf\" \"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   628
				"\tdel \"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   629
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   630
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   631
	#		call makedef to reorder the export information
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   632
			&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   633
	#			call perl on the script here so nmake will die if there are errors - this doesn't happen if calling perl in a batch file
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   634
				"\tperl -S makedef.pl $AbsentSubst -Inffile \"\$(EPOCBLD$Bld)\\$ExportLibrary.inf\""
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   635
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   636
			if (-e $DefFile) { # effectively "if project frozen ..."
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   637
				&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   638
					" -Frzfile \"$DefFile\""
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   639
				);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   640
			}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   641
			# freeze ordinals, a maximum of 2, for polymorphic dlls
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   642
			my $Ordinal;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   643
			my $Num=1;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   644
			foreach $Ordinal (&main::Exports) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   645
#				replace "$" with "$$" so that NMAKE doesn't think there's a macro in the function name
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   646
				$Ordinal=~s-\$-\$\$-go;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   647
				&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   648
					" -$Num $Ordinal"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   649
				);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   650
				$Num++;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   651
			}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   652
			&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   653
				" \"\$(EPOCBLD)\\$ExportLibrary.def\" \n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   654
				"\tdel \"\$(EPOCBLD$Bld)\\$ExportLibrary.inf\"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   655
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   656
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   657
			# create the export object from the .DEF file
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   658
			&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   659
				"\tlib.exe  /nologo /machine:i386 /nodefaultlib /subsystem:native /name:\"$LinkAs\" /def:\"\$(EPOCBLD)\\$ExportLibrary.def\" /out:\"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   660
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   661
			if (&main::ExportUnfrozen) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   662
				&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   663
				"\tcopy \"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\" \"\$(EPOCLIB)\\UREL\\$ExportLibrary.lib\"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   664
				);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   665
				if ($ExtraExportLibrary) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   666
					&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   667
						"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   668
						"\tcopy \"\$(EPOCLIB)\\UREL\\$ExportLibrary.lib\" ",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   669
						"\"\$(EPOCLIB)\\UREL\\$ExtraExportLibrary.lib\"",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   670
						"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   671
					);						
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   672
				}				
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   673
			}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   674
			&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   675
				"\tdel \"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   676
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   677
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   678
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   679
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   680
	if ($BasicTrgType=~/^(DLL|EXE)$/o) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   681
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   682
			"\techo $Entry>\"\$(EPOCBLD$Bld)\\$ExportLibrary.ord\"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   683
			"\tlink.exe /order:@\"\$(EPOCBLD$Bld)\\$ExportLibrary.ord\" /MAPINFO:EXPORTS /MAP:\"$RelPath$Trg.MAP\" \@<<\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   684
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   685
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   686
	elsif ($BasicTrgType=~/^LIB$/o) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   687
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   688
			"\tlib.exe \@<<\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   689
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   690
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   691
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   692
		"\t\t\$(LINK_FLAGS) \$(LINK_OBJS)\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   693
		"<<\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   694
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   695
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   696
	if ($BasicTrgType=~/^(DLL|EXE)$/o) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   697
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   698
			"\tdel \"\$(EPOCBLD$Bld)\\$ExportLibrary.ord\"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   699
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   700
		if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   701
			if ($HasExports) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   702
				&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   703
					"\tdel \"\$(EPOCBLD$Bld)\\$ExportLibrary.exp\"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   704
				);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   705
			}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   706
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   707
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   708
			"\tperl -S findimp.pl \"$RelPath$Trg.MAP\" \"\$(EPOCBLD$Bld)\\$ExportLibrary.imp\"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   709
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   710
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   711
			"\tpetran -x86imp=\"\$(EPOCBLD$Bld)\\$ExportLibrary.imp\" -version ", &Genutl_VersionToUserString(%Version), " -sid ", &main::SecureId(), " \"\$(EPOCBLD$Bld)\\$Trg\" \$\@ \\\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   712
			"\t\t"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   713
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   714
		if (&main::AllowDllData) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   715
			&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   716
				' -allow'
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   717
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   718
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   719
		if (not &main::CallDllEntryPoints) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   720
			&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   721
				' -nocall'
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   722
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   723
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   724
		if (&main::DataLinkAddress) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   725
			&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   726
				' -datalinkaddress ',&main::DataLinkAddress
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   727
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   728
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   729
		if (&main::FixedProcess) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   730
			&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   731
				' -fixed'
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   732
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   733
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   734
		if (&main::HeapSize) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   735
			my %HeapSize=&main::HeapSize;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   736
			&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   737
				' -heap ',$HeapSize{Min},' ',$HeapSize{Max}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   738
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   739
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   740
		if (&main::ProcessPriority) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   741
			&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   742
				' -priority ',&main::ProcessPriority
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   743
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   744
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   745
		if (&main::SmpSafe) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   746
			&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   747
				' -smpsafe'
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   748
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   749
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   750
		if (&main::StackSize) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   751
			&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   752
				' -stack ',&main::StackSize
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   753
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   754
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   755
		my $i=1;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   756
		foreach (@UidList) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   757
			&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   758
				" -uid$i $_"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   759
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   760
			$i++;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   761
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   762
		if(&main::VendorId) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   763
			&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   764
				' -vid ',&main::VendorId
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   765
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   766
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   767
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   768
			' -capability ',&main::Capability,
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   769
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   770
		if (&main::CompressTarget)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   771
		    {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   772
		    &main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   773
		    " -nocompress"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   774
		    );
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   775
		    }
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   776
		else
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   777
		    {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   778
		    if(&main::CompressTargetMode == NOCOMPRESSIONMETHOD)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   779
			{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   780
				# Do nothing
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   781
			}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   782
		    elsif(&main::CompressTargetMode == INFLATECOMPRESSIONMETHOD)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   783
			{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   784
			&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   785
				" -compressionmethod deflate"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   786
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   787
			}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   788
		    elsif(&main::CompressTargetMode == BYTEPAIRCOMPRESSIONMETHOD)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   789
			{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   790
			&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   791
				" -compressionmethod bytepair"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   792
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   793
			}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   794
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   795
		    }
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   796
		if (&main::CodePagingTargetMode == UNPAGED) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   797
			&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   798
				' -codepaging unpaged'
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   799
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   800
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   801
		elsif (&main::CodePagingTargetMode == PAGED) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   802
			&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   803
				' -codepaging paged'
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   804
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   805
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   806
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   807
		if (&main::DataPagingTargetMode == UNPAGED) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   808
			&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   809
				' -datapaging unpaged'
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   810
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   811
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   812
		elsif (&main::DataPagingTargetMode == PAGED) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   813
			&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   814
				' -datapaging paged'
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   815
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   816
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   817
		&main::Output("\n");
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   818
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   819
			"\tdel \"\$(EPOCBLD$Bld)\\$Trg\"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   820
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   821
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   822
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   823
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   824
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   825
		"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   826
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   827
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   828
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   829
sub PMStartSrcList {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   830
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   831
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   832
		"# SOURCES\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   833
		"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   834
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   835
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   836
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   837
sub PMBitMapBld {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   838
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   839
	&Generic_BitMapBld;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   840
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   841
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   842
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   843
sub PMResrcBld {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   844
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   845
	&Generic_ResrcBld;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   846
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   847
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   848
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   849
sub PMAifBld {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   850
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   851
	&Generic_AifBld;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   852
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   853
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   854
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   855
sub PMStartSrc {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   856
	my $Src=&main::Src;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   857
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   858
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   859
		"# Source $Src\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   860
		"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   861
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   862
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   863
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   864
sub PMSrcDepend {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   865
	my @BldList=&main::BldList;	
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   866
	my @DepList=&main::DepList;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   867
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   868
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   869
		"DEPEND="
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   870
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   871
	foreach (@DepList) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   872
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   873
		" \\\n\t\"$_\""
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   874
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   875
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   876
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   877
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   878
		"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   879
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   880
	foreach (@BldList) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   881
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   882
			"DEPEND$_=\$(DEPEND)\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   883
			"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   884
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   885
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   886
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   887
		"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   888
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   889
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   890
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   891
sub PMSrcBldDepend {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   892
	my $Bld=&main::Bld;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   893
	my @DepList=&main::DepList;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   894
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   895
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   896
		"DEPEND$Bld="
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   897
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   898
	foreach (@DepList) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   899
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   900
			" \\\n\t\"$_\""
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   901
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   902
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   903
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   904
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   905
		"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   906
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   907
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   908
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   909
sub PMEndSrcBld {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   910
	my $BaseSrc=&main::BaseSrc;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   911
	my $Bld=&main::Bld;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   912
	my $Plat=&main::Plat;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   913
	my $Src=ucfirst lc &main::Src;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   914
	my $SrcPath=&main::SrcPath;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   915
	my $Ext=&main::ExtSrc;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   916
	my $Cia = (lc($Ext) eq '.cia') ? 1 : 0;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   917
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   918
	if ($Cia) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   919
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   920
			"\"\$(EPOCBLD$Bld)\\$BaseSrc\_.obj\" \"\$(EPOCBLD$Bld)\\$BaseSrc\_.sbr\" : \"$SrcPath$Src\" \$(DEPEND$Bld)\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   921
			"\tperl -S tranasm_x86.pl \"$SrcPath$Src\" \"\$(EPOCBLD$Bld)\\$BaseSrc\_.transd.cia\"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   922
			"\t\$(CL$Bld) /I \"$SrcPath\.\" /TP /Fo\"\$(EPOCBLD$Bld)\\$BaseSrc\_.obj\" /GF /c \"\$(EPOCBLD$Bld)\\$BaseSrc\_.transd.cia\"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   923
			"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   924
#			assembler listing target
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   925
			"LISTING$Bld$BaseSrc\_ : \"\$(EPOCBLD$Bld)\\$BaseSrc\_.lis\"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   926
			"\tcopy \$? \"$SrcPath$BaseSrc\_.$Plat.lst\"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   927
			"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   928
			"\"\$(EPOCBLD$Bld)\\$BaseSrc\_.lis\": \"$SrcPath$Src\" \$(DEPEND$Bld)\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   929
			"\t\$(CL$Bld) /TP /FAsc /Fa\"\$\@\" /Fo\"\$(EPOCBLD$Bld)\\$BaseSrc\_.obj\" /GF /c \"$SrcPath$Src\"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   930
			"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   931
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   932
	} else {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   933
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   934
			"\"\$(EPOCBLD$Bld)\\$BaseSrc.obj\" \"\$(EPOCBLD$Bld)\\$BaseSrc.sbr\" : \"$SrcPath$Src\" \$(DEPEND$Bld)\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   935
			"\t\$(CL$Bld) /Fo\"\$(EPOCBLD$Bld)/\" /GF /c \"$SrcPath$Src\"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   936
			"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   937
#			assembler listing target
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   938
			"LISTING$Bld$BaseSrc : \"\$(EPOCBLD$Bld)\\$BaseSrc.lis\"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   939
			"\tcopy \$? \"$SrcPath$BaseSrc.$Plat.lst\"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   940
			"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   941
			"\"\$(EPOCBLD$Bld)\\$BaseSrc.lis\": \"$SrcPath$Src\" \$(DEPEND$Bld)\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   942
			"\t\$(CL$Bld) /FAsc /Fa\"\$\@\" /Fo\"\$(EPOCBLD$Bld)/\" /GF /c \"$SrcPath$Src\"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   943
			"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   944
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   945
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   946
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   947
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   948
sub PMEndSrc {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   949
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   950
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   951
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   952
		"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   953
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   954
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   955
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   956
sub PMEndSrcList {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   957
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   958
	# Deal with accumulated MAKEDIRS etc.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   959
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   960
	&Generic_End;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   961
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   962
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   963
1;