sbsv1/abld/platform/cl_mingw.pm
author Zheng Shen <zheng.shen@nokia.com>
Wed, 27 Oct 2010 19:35:19 +0800
changeset 664 44b0e894b7ab
parent 599 fa7a3cc6effd
permissions -rw-r--r--
Merge again
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
599
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     1
# Copyright (c) 2008-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_mingw;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    18
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    19
my $MinGWInstall='$(EPOCROOT)epoc32\\gcc_mingw\\bin';
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    20
my $MinGWPreInclude='$(EPOCINC)\\gcc_mingw\\gcc_mingw.h';
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    21
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    22
my $GccPrefix='';
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    23
my $ToolPrefix='';
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    24
my $HelperLib='';
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    25
my %PlatOpt=(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    26
	'Dlltool'=>'',
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    27
    'Gcc'=>'',
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    28
	'Ld'=>'',
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    29
	# MinGW > 3.2.3 has been found to generate programs that crash (rombuild in particular) 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    30
	# and a workaround this appears to be to use specific optimisations rather than
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    31
	# specifying -O options
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    32
	'Optimize'=>'-fdefer-pop -fmerge-constants '.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    33
	  '-fthread-jumps -floop-optimize '.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    34
	  '-fif-conversion -fif-conversion2 '.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    35
	  '-fguess-branch-probability -fcprop-registers '.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    36
          '-fforce-mem -foptimize-sibling-calls -fstrength-reduce '.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    37
	  '-fcse-follow-jumps  -fcse-skip-blocks '.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    38
          '-frerun-cse-after-loop  -frerun-loop-opt '.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    39
          '-fgcse  -fgcse-lm  -fgcse-sm  -fgcse-las '.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    40
          '-fdelete-null-pointer-checks '.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    41
          '-fexpensive-optimizations '.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    42
          '-fregmove '.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    43
          '-fschedule-insns  -fschedule-insns2 '.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    44
          '-fsched-interblock  -fsched-spec '.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    45
          '-fcaller-saves '.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    46
          '-fpeephole2 '.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    47
          '-freorder-blocks  -freorder-functions '.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    48
          '-fstrict-aliasing '.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    49
          '-funit-at-a-time '.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    50
          '-falign-functions  -falign-jumps '.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    51
          '-falign-loops  -falign-labels '.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    52
          '-fcrossjumping'
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    53
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    54
);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    55
my $Dlltool;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    56
my $Archive;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    57
my $Link;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    58
my $Objcopy;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    59
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    60
my @Win32LibList=();
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    61
my $Win32StdHeaders;
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
require Exporter;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    65
@ISA=qw(Exporter);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    66
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    67
@EXPORT=qw(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    68
	PMHelp_Mmp
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    69
	PMCheckPlatformL
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    70
	PMPlatProcessMmp
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    71
	PMStartBldList
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    72
	PMBld
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    73
	PMStartSrcList
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    74
	PMStartSrc
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    75
	PMSrcDepend
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    76
	PMSrcBldDepend
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    77
	PMEndSrcBld
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    78
	PMEndSrc
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    79
	PMEndSrcList
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    80
);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    81
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    82
use cl_generic;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    83
use Genutl;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    84
use Winutl;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    85
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    86
sub PMHelp_Mmp {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    87
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    88
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    89
sub PMCheckPlatformL {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    90
	if ((&main::Plat eq 'TOOLS2') and (&main::BasicTrgType ne 'EXE') and (&main::BasicTrgType ne 'LIB'))
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    91
		{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    92
		die "Can't specify anything but EXE or LIB TARGETTYPEs for this platform\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    93
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    94
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    95
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    96
sub PMPlatProcessMmp (@) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    97
	&Winutl_DoMmp(\@_, "$ENV{EPOCROOT}epoc32\\gcc_mingw\\include");
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    98
	@Win32LibList=&Winutl_Win32LibList;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    99
	$Win32StdHeaders=&Winutl_Win32StdHeaders;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   100
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   101
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   102
my $Makecmd;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   103
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   104
sub PMStartBldList($) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   105
	($Makecmd) = @_;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   106
	my $BaseTrg=&main::BaseTrg;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   107
	my $BasicTrgType=&main::BasicTrgType;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   108
	my @BldList=&main::BldList;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   109
	my @SysIncPaths=&main::Path_Chop(&main::SysIncPaths);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   110
	my @UserIncPaths=&main::Path_Chop(&main::UserIncPaths);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   111
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   112
	my $EPOCPath=&main::EPOCPath;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   113
	my $LibPath=&main::LibPath;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   114
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   115
	my @MacroList=&main::MacroList();
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   116
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   117
	my $VariantFile=&main::VariantFile();
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   118
	my $Plat=&main::Plat;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   119
	my $Trg=&main::Trg;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   120
	my $TrgType=&main::TrgType;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   121
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   122
	my $ExportLibrary=&main::ExportLibrary;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   123
	my $NoExportLibrary=&main::NoExportLibrary;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   124
	my $CompilerOption=&main::CompilerOption("GCC");
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   125
	my $LinkerOption=&main::LinkerOption("GCC");
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   126
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   127
	$Dlltool=$ToolPrefix.'$(DLLTOOL)';
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   128
	$Archive=$ToolPrefix.'$(AR)';
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   129
	$Link=$ToolPrefix.'$(GCC)';
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   130
	$Objcopy=$ToolPrefix.'$(OBJCOPY)';
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   131
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   132
	&Generic_Header(0, $Makecmd);	# define standard things using absolute paths
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   133
	
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   134
	push @MacroList, "__TOOLS__";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   135
	push @MacroList, "__TOOLS2_WINDOWS__";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   136
	push @MacroList, "__SUPPORT_CPP_EXCEPTIONS__";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   137
	push @MacroList, "__PRODUCT_INCLUDE__=\\\"${VariantFile}\\\"" if ($VariantFile);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   138
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   139
	# Remove __GCC32__ for TOOLS2 builds from the macro list.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   140
	my $count = 0;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   141
	foreach my $item (@MacroList) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   142
		if ($item =~ m/GCC32/i) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   143
			splice (@MacroList,$count,1)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   144
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   145
		$count++;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   146
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   147
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   148
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   149
#	GCC needs a fully-qualified path
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   150
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   151
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   152
		"# must set both PATH and Path to make it work correctly\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   153
		"Path:=\$(Path)\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   154
		"PATH:=\$(Path)\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   155
		"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   156
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   157
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   158
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   159
		"INCDIR= -isystem \"$ENV{EPOCROOT}epoc32\\include\\tools\\stlport\" "
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   160
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   161
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   162
	foreach (@SysIncPaths) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   163
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   164
			" -isystem \"$_\""
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
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   168
	foreach (@UserIncPaths) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   169
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   170
			" -I \"$_\""
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
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   174
	if($VariantFile){
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   175
	    &main::Output("\\\n  -include $MinGWPreInclude");
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   176
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   177
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   178
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   179
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   180
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   181
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   182
		"\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
		"GCCFLAGS=$PlatOpt{Gcc} \\\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   187
		"\t\t-pipe -c -Wall -W -Wno-ctor-dtor-privacy -Wno-unknown-pragmas",
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
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   191
		" $CompilerOption",		# user-supplied compiler options
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   192
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   193
		"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   194
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   195
	
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   196
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   197
 		"\n# ADDITIONAL LINKER OPTIONS",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   198
 		"\nUSERLDFLAGS = ",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   199
 		$LinkerOption,
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   200
  		"\n\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   201
  	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   202
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   203
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   204
		"GCCDEFS="
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   205
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   206
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   207
	foreach(@MacroList) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   208
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   209
			" -D$_"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   210
		);
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
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   214
		" \$(USERDEFS)\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   215
		"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   216
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   217
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   218
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   219
		"MINGWPATH?=$MinGWInstall", "\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   220
		"DLLTOOL:=\$(MINGWPATH)\\dlltool", "\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   221
		"AR:=\$(MINGWPATH)\\ar", "\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   222
		"OBJCOPY:=\$(MINGWPATH)\\objcopy", "\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   223
		"GCC:=\$(MINGWPATH)\\g++", "\n" 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   224
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   225
	foreach (@BldList) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   226
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   227
			"GCC$_=\$(GCC)"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   228
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   229
		if (/^REL$/o) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   230
			&main::Output(' -s ', $PlatOpt{Optimize});
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   231
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   232
		elsif (/^DEB$/o) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   233
			&main::Output(' -g');
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   234
			unless (&main::SrcDbg) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   235
				&main::Output(' ', $PlatOpt{Optimize});
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
		&main::Output(' $(GCCFLAGS)');
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   239
		foreach (&main::MacroList($_)) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   240
			&main::Output(" -D$_");
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   241
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   242
		&main::Output(" \$(GCCDEFS)\n");
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   243
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   244
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   245
	&main::Output("\n","\n");
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   246
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   247
	foreach (@BldList) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   248
		&main::Output("$_ :");
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   249
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   250
		if ($BasicTrgType !~ /IMPLIB/io) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   251
			&main::Output (" \\\n\t",&Generic_Quote("\$(EPOCTRG$_)\\$Trg"));
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   252
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   253
		&main::Output("\n","\n");
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   254
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   255
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   256
	# Resource building is done entirely via cl_generic.pm
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   257
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   258
	foreach (@BldList) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   259
		&main::Output("\n",	"RESOURCE$_ : MAKEWORK$_");
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   260
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   261
	&main::Output("\n", "\n",);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   262
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   263
	&main::Output("LIBRARY : MAKEWORKLIBRARY");
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   264
	if ($BasicTrgType=~/^LIB$/o) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   265
#		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
   266
		foreach (@BldList) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   267
			&main::Output(" $_");
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   268
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   269
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   270
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   271
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   272
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   273
		"CLEANLIBRARY :\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   274
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   275
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   276
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   277
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   278
		"\n"
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
	&Generic_MakeWorkDir('MAKEWORKLIBRARY',"${LibPath}LIB");
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   282
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   283
	&Generic_Releaseables;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   284
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   285
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   286
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   287
sub PMBld {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   288
	my @SrcList=&main::SrcList;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   289
	my $BaseTrg=&main::BaseTrg;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   290
	my $Bld=&main::Bld;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   291
	my $ChopBldPath=&main::Path_Chop(&main::BldPath);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   292
	my $EPOCIncPath=&main::EPOCIncPath;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   293
	my $BasicTrgType=&main::BasicTrgType;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   294
	my @LibList;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   295
	my $LibPath=&main::LibPath;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   296
	my $ChopRelPath=&main::Path_Chop(&main::RelPath);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   297
	my $RelPath=&main::RelPath;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   298
	my @StatLibList=&main::StatLibList;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   299
	my $StatLinkPath=&main::StatLinkPath;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   300
	my $Trg=&main::Trg;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   301
	my $TrgType=&main::TrgType;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   302
	my $ExportLibrary=&main::ExportLibrary;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   303
	my $NoExportLibrary=&main::NoExportLibrary;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   304
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   305
	if ($Bld =~ /DEB/) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   306
		@LibList = &main::DebugLibList;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   307
	} else {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   308
		@LibList = &main::LibList;
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
	# REAL TARGETS
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   312
	#-------------
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   313
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   314
		"# REAL TARGET - BUILD VARIANT $Bld\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   315
		"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   316
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   317
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   318
#	releasables
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   319
	my @releaseables;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   320
	my $toolspath=&main::EPOCToolsPath();
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   321
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   322
	if ($BasicTrgType!~/^LIB$/io)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   323
		{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   324
		push @releaseables, "$toolspath$Trg";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   325
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   326
	else
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   327
		{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   328
		push @releaseables, "$RelPath$Trg";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   329
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   330
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   331
	if (!$NoExportLibrary && ($BasicTrgType!~/^(LIB|EXE)$/io)) {	
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   332
		push @releaseables, "\$(EPOCLINK$Bld)\\lib$ExportLibrary.a";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   333
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   334
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   335
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   336
		"WHAT$Bld : WHATGENERIC\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   337
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   338
		"CLEAN$Bld : CLEANBUILD$Bld CLEANRELEASE$Bld\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   339
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   340
		"CLEANBUILD$Bld : \n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   341
		"\t\@perl -S ermdir.pl \"\$(EPOCBLD$Bld)\"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   342
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   343
		"CLEANRELEASE$Bld : CLEANGENERIC\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   344
		"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   345
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   346
	&Generic_WhatCleanTargets($Bld, "WHAT$Bld", "CLEANRELEASE$Bld", @releaseables);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   347
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   348
	&Generic_MakeWorkDir("MAKEWORK$Bld",$ChopBldPath);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   349
	&Generic_MakeWorkDir("MAKEWORK$Bld",$ChopRelPath);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   350
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   351
	return if ($BasicTrgType=~/^IMPLIB$/io);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   352
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   353
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   354
		"LISTING$Bld : MAKEWORK$Bld"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   355
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   356
	foreach (@SrcList) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   357
		my $BaseSrc = &main::Path_Split('Base', $_);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   358
		my $Ext = &main::Path_Split('Ext', $_);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   359
   		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   360
			" \\\n\tLISTING$Bld$BaseSrc"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   361
   		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   362
   	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   363
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   364
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   365
		"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   366
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   367
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   368
	
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   369
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   370
		"OBJECTS$Bld="
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   371
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   372
	foreach (@SrcList) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   373
		my $BaseSrc = &main::Path_Split('Base', $_);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   374
		my $Ext = &main::Path_Split('Ext', $_);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   375
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   376
			" \\\n\t", &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.o")
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   377
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   378
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   379
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   380
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   381
		"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   382
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   383
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   384
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   385
		&Generic_Quote("\$(EPOCTRG$Bld)\\$Trg"), " : ",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   386
		&Generic_Quote("\$(OBJECTS$Bld)")
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   387
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   388
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   389
		" \$(LIBS$Bld)\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   390
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   391
#	Link target
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   392
	if ($BasicTrgType=~/^EXE/o) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   393
#		call g++ to link the target
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   394
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   395
			"\t$Link $PlatOpt{Ld}"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   396
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   397
		if ($Bld=~/^REL$/o) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   398
			&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   399
				" -s"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   400
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   401
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   402
		
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   403
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   404
			" -o \"\$(EPOCTRG$Bld)\\$Trg\" \\\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   405
			"\t\t\$(OBJECTS$Bld) \\\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   406
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   407
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   408
			"\t\t-L\$(EPOCTRG$Bld) \\\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   409
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   410
			
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   411
		# Add dynamic libraries (dlls on Windows, .so on *nix systems) to linker options
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   412
		if (scalar @LibList)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   413
		{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   414
			&main::Output("\t\t-Wl,-Bdynamic ");
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   415
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   416
		my $libs="";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   417
		foreach my $lib (@LibList)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   418
		{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   419
			$libs.="-l$lib ";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   420
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   421
		if ($libs ne "")
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   422
		{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   423
			&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   424
				"$libs \\\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   425
			);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   426
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   427
		
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   428
		# Add static libraries (.a on both Windows and *nix) to linker options
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   429
		if (scalar @StatLibList)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   430
		{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   431
			&main::Output("\t\t-Wl,-Bstatic ");
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   432
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   433
		my $statLibs="-lstlport.5.1 ";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   434
		foreach my $lib (@StatLibList)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   435
		{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   436
			$statLibs.="-l$lib ";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   437
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   438
		if ($statLibs ne "")
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   439
		{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   440
			$statLibs.="\\\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   441
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   442
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   443
			"$statLibs"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   444
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   445
		
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   446
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   447
			"\t\t \$(USERLDFLAGS)\n"
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
			"\tcopy \"\$(EPOCTRG$Bld)\\$Trg\" \"",&main::EPOCToolsPath,"$Trg\"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   451
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   452
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   453
	elsif ($BasicTrgType=~/^LIB$/o) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   454
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   455
			"\tif exist \"\$\@\" del \"\$\@\"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   456
			"\t$Archive cr \$\@ \$^\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   457
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   458
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   459
	elsif ($BasicTrgType =~ /^DLL$/o)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   460
	{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   461
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   462
			"\t$Link -shared -o \$@ -Wl,--out-implib,\$(EPOCLINK$Bld)\\" . "lib" . "$ExportLibrary.a \$(OBJECTS$Bld)",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   463
			"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   464
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   465
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   466
			"\tcopy \"\$@\" \"",&main::EPOCToolsPath,"$Trg\"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   467
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   468
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
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   472
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   473
		"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   474
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   475
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   476
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   477
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   478
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   479
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   480
sub PMStartSrcList {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   481
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   482
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   483
		"# SOURCES\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   484
		"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   485
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   486
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   487
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   488
sub PMStartSrc {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   489
	my $Src=&main::Src;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   490
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   491
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   492
		"# Source $Src\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   493
		"\n"
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
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   497
sub PMSrcDepend {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   498
	my @BldList=&main::BldList;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   499
	my @DepList=&main::DepList;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   500
	my $BaseSrc=&main::BaseSrc;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   501
	my $ExtSrc=&main::ExtSrc;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   502
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   503
	return if (@DepList == 0);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   504
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   505
	foreach (@BldList) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   506
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   507
			&Generic_Quote("\$(EPOCBLD$_)\\$BaseSrc.lis"), " ",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   508
			&Generic_Quote("\$(EPOCBLD$_)\\$BaseSrc.o"), " \\\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   509
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   510
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   511
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   512
		":"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   513
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   514
	foreach (@DepList) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   515
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   516
		" \\\n\t", &Generic_Quote($_)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   517
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   518
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   519
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   520
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   521
		"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   522
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   523
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   524
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   525
sub PMSrcBldDepend {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   526
	my $Bld=&main::Bld;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   527
	my @DepList=&main::DepList;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   528
	my $BaseSrc=&main::BaseSrc;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   529
	my $ExtSrc=&main::ExtSrc;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   530
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   531
	return if (@DepList == 0);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   532
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   533
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   534
		&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.lis"), " ",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   535
		&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.o"), " :",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   536
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   537
	foreach (@DepList) {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   538
		&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   539
			" \\\n\t", &Generic_Quote($_)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   540
		);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   541
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   542
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   543
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   544
		"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   545
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   546
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   547
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   548
sub PMEndSrcBld {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   549
	my $BaseSrc=&main::BaseSrc;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   550
	my $Bld=&main::Bld;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   551
	my $Src=&main::Src;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   552
	my $SrcPath=&main::Path_Chop(&main::SrcPath);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   553
	my $Ext=&main::Path_Split('Ext', $Src);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   554
	my $Plat=$main::Plat;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   555
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   556
	# Use GCC trick to get assembler source files preprocessed with CPP
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   557
	$Src =~ s/\.s$/.S/i;	
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   558
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   559
		&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.o"), " : ",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   560
		&Generic_Quote("$SrcPath\\$Src"), "\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   561
		"\techo $Src\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   562
		"\t\$(GCC$Bld) -I \"$SrcPath\" \$(INCDIR) -o \$\@ \"$SrcPath\\$Src\"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   563
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   564
#		generate an assembly listing target too
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   565
		"LISTING$Bld$BaseSrc : ", &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.lis"), "\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   566
		"\t", &Generic_CopyAction("$SrcPath\\$BaseSrc.tools2.lst"),
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   567
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   568
		&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.lis"), " : ",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   569
		&Generic_Quote("$SrcPath\\$Src"), "\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   570
		"\t\$(GCC$Bld) -Wa,-adln -I \"$SrcPath\" \$(INCDIR) -o nul: \"$SrcPath\\$Src\" > \$\@\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   571
		"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   572
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   573
	
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   574
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   575
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   576
sub PMEndSrc {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   577
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   578
	&main::Output(
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   579
		"\n",
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   580
		"\n"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   581
	);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   582
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   583
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   584
sub PMEndSrcList {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   585
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   586
	# Deal with accumulated MAKEDIRS etc.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   587
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   588
	&Generic_End;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   589
}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   590
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   591
1;