imgtools/romtools/rombuild/rombuild.cpp
author Mike Kinghan <mikek@symbian.org>
Tue, 13 Jul 2010 15:22:53 +0100
changeset 25 223dcf462b73
permissions -rwxr-xr-x
Re-adding erroneously forgotten files
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
25
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
     1
// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
     2
// All rights reserved.
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
     3
// This component and the accompanying materials are made available
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
     4
// under the terms of the License "Eclipse Public License v1.0"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
     5
// which accompanies this distribution, and is available
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
     7
//
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
     8
// Initial Contributors:
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    10
// 
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    11
// Contributors:
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    12
//
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    13
// Description:
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    14
//
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    15
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    16
#include <string.h>
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    17
#include <stdlib.h>
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    18
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    19
#include "h_utl.h"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    20
#include "h_ver.h"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    21
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    22
#include "r_global.h"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    23
#include "r_rom.h"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    24
#include "r_obey.h"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    25
#include "parameterfileprocessor.h"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    26
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    27
#include "r_dir.h"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    28
#include "r_coreimage.h"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    29
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    30
const TInt KRomLoaderHeaderNone=0;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    31
const TInt KRomLoaderHeaderEPOC=1;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    32
const TInt KRomLoaderHeaderCOFF=2;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    33
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    34
static const TInt RombuildMajorVersion=2;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    35
static const TInt RombuildMinorVersion=14;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    36
static const TInt RombuildPatchVersion=0;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    37
static TBool SizeSummary=EFalse;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    38
static TPrintType SizeWhere=EAlways;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    39
static char *CompareRom=NULL;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    40
static TInt MAXIMUM_THREADS = 128;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    41
static TInt DEFAULT_THREADS = 8;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    42
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    43
string filename;			// to store oby filename passed to Rombuild.
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    44
TBool reallyHelp=EFalse;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    45
TInt gCPUNum = 0;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    46
TInt gThreadNum = 0;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    47
char* g_pCharCPUNum = NULL;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    48
TBool gGenDepGraph = EFalse;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    49
char* gDepInfoFile = NULL;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    50
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    51
void PrintVersion()
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    52
	{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    53
	Print(EAlways,"\nROMBUILD - Rom builder");
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    54
  	Print(EAlways, " V%d.%d.%d\n", RombuildMajorVersion, RombuildMinorVersion, RombuildPatchVersion);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    55
  	Print(EAlways,Copyright);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    56
	}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    57
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    58
char HelpText[] = 
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    59
	"Syntax: ROMBUILD [options] obeyfilename\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    60
	"Option: -v verbose,  -?  \n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    61
	"        -type-safe-link  \n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    62
	"        -s[log|screen|both]           size summary\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    63
	"        -r<FileName>                  compare a sectioned Rom image\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    64
	"        -no-header                    suppress the image loader header\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    65
	"        -gendep                       generate the dependence graph for paged part\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    66
	"        -coff-header                  use a PE-COFF header rather than an EPOC header\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    67
	"        -d<bitmask>                   set trace mask (DEB build only)\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    68
	"        -compress[[=]paged|unpaged]   compress the ROM Image\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    69
	"									   without any argumentum compress both sections\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    70
	"									   paged 	compress paged section only\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    71
	"									   unpaged 	compress unpaged section only\n"	
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    72
	"        -fastcompress  compress files with faster bytepair and tradeoff of compress ratio\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    73
	"        -j<digit> do the main job with <digit> threads\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    74
	"        -compressionmethod <method>   method one of none|inflate|bytepair to set the compression\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    75
	"        -no-sorted-romfs              do not add sorted entries arrays (6.1 compatible)\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    76
	"        -geninc                       to generate include file for licensee tools to use\n"			// DEF095619
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    77
	"        -loglevel<level>              level of information to log (valid levels are 0,1,2,3,4).\n" //Tools like Visual ROM builder need the host/ROM filenames, size & if the file is hidden.
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    78
	"        -wstdpath                     warn if destination path provided for a file is not a standard path\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    79
	"        -argfile=<fileName>           specify argument-file name containing list of command-line arguments to rombuild\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    80
	"        -lowmem                       use memory-mapped file for image build to reduce physical memory consumption\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    81
	"        -coreimage=<core image file>  to pass the core image as input for extension ROM image generation\n";
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    82
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    83
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    84
char ReallyHelpText[] =
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    85
	"Priorities:\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    86
	"        low background foreground high windowserver\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    87
	"        fileserver realtimeserver supervisor\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    88
	"Languages:\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    89
	"        Test English French German Spanish Italian Swedish Danish\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    90
	"        Norwegian Finnish American SwissFrench SwissGerman Portuguese\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    91
	"        Turkish Icelandic Russian Hungarian Dutch BelgianFlemish\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    92
	"        Australian BelgianFrench\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    93
	"Compression methods:\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    94
	"        none     no compression on the individual executable image.\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    95
	"        inflate  compress the individual executable image.\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    96
	"        bytepair compress the individual executable image.\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    97
	"Log Level:\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    98
	"        0  produce the default logs\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    99
	"        1  produce file detail logs in addition to the default logs\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   100
	"        2  logs e32 header attributes(same as default log) in addition to the level 1 details\n";
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   101
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   102
void processParamfile(string aFileName);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   103
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   104
void processCommandLine(int argc, char *argv[], TBool paramFileFlag=EFalse)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   105
//
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   106
// Process the command line arguments, printing a helpful message if none are supplied
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   107
//
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   108
	{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   109
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   110
	// If "-argfile" option is passed to Rombuild, then process the parameters
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   111
	// specified in parameter-file first and then the options passed from the 
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   112
	// command-line.
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   113
	string ParamFileArg("-ARGFILE=");	
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   114
	if(paramFileFlag == EFalse)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   115
	{	
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   116
		for (int count=1; count<argc; count++)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   117
		{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   118
			string paramFile;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   119
			if (count < argc - 1) {
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   120
				strupr(argv[count]);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   121
			}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   122
			if(strncmp(argv[count],ParamFileArg.c_str(),ParamFileArg.length())==0)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   123
			{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   124
				paramFile.assign(&argv[count][ParamFileArg.length()]);					
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   125
				processParamfile(paramFile);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   126
			}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   127
		}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   128
	}	
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   129
	
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   130
	for (int i=1; i<argc; i++)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   131
		{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   132
		if (i < argc - 1) {	
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   133
			strupr(argv[i]);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   134
		}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   135
		if ((argv[i][0] == '-') || (argv[i][0] == '/'))
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   136
			{ // switch
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   137
			if (argv[i][1] == 'V')
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   138
				H.iVerbose = ETrue;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   139
			else if (argv[i][1] == 'S')
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   140
				{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   141
				SizeSummary=ETrue;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   142
				if (argv[i][2] == 'L')
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   143
					SizeWhere=ELog;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   144
				if (argv[i][2] == 'S')
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   145
					SizeWhere=EScreen;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   146
				}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   147
			else if (strcmp(argv[i], "-FASTCOMPRESS")==0)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   148
				gFastCompress = ETrue;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   149
			else if (strcmp(argv[i], "-GENDEP")==0)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   150
				gGenDepGraph = ETrue;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   151
			else if (strncmp(argv[i], "-J", 2)==0)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   152
				{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   153
					if(argv[i][2])
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   154
						gThreadNum = atoi(&argv[i][2]);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   155
					else
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   156
						{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   157
						Print(EWarning, "The option should be like '-j4'.\n");
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   158
						gThreadNum = 0;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   159
						}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   160
					if(gThreadNum <= 0 || gThreadNum > MAXIMUM_THREADS)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   161
						{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   162
						if(gCPUNum > 0 && gCPUNum <= MAXIMUM_THREADS)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   163
							{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   164
							Print(EWarning, "The number of concurrent jobs set by -j should be between 1 and 128. And the number of processors %d will be used as the number of concurrent jobs.\n", gCPUNum);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   165
							gThreadNum = gCPUNum;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   166
							}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   167
						else if(g_pCharCPUNum)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   168
							{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   169
							Print(EWarning, "The number of concurrent jobs set by -j should be between 1 and 128. And the NUMBER_OF_PROCESSORS is invalid, so the default value %d will be used.\n", DEFAULT_THREADS);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   170
							gThreadNum = DEFAULT_THREADS;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   171
							}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   172
						else
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   173
							{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   174
							Print(EWarning, "The number of concurrent jobs set by -j should be between 1 and 128. And the NUMBER_OF_PROCESSORS is not available, so the default value %d will be used.\n", DEFAULT_THREADS);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   175
							gThreadNum = DEFAULT_THREADS;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   176
							}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   177
						}	
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   178
				}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   179
			else if (strncmp(argv[i],ParamFileArg.c_str(),ParamFileArg.length())==0)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   180
			{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   181
				// If "-argfile" option is specified within parameter-file then process it 
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   182
				// otherwise ignore the option.
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   183
				if (paramFileFlag)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   184
				{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   185
					String paramFile;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   186
					paramFile.assign(&argv[i][ParamFileArg.length()]);		
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   187
					processParamfile(paramFile);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   188
				}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   189
				else
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   190
				{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   191
					continue;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   192
				}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   193
			}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   194
			else if (argv[i][1] == 'T')
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   195
				TypeSafeLink=ETrue;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   196
			else if (argv[i][1] == '?')
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   197
				reallyHelp=ETrue;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   198
			else if (argv[i][1] == 'R')
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   199
				CompareRom=strdup(&argv[i][2]);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   200
			else if (strcmp(argv[i], "-NO-HEADER")==0)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   201
				gHeaderType=KRomLoaderHeaderNone;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   202
			else if (strcmp(argv[i], "-EPOC-HEADER")==0)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   203
				gHeaderType=KRomLoaderHeaderEPOC;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   204
			else if (strcmp(argv[i], "-COFF-HEADER")==0)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   205
				gHeaderType=KRomLoaderHeaderCOFF;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   206
			else if (strcmp(argv[i], "-COMPRESS")==0)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   207
				{				
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   208
				if( (i+1) >= argc || argv[i+1][0] == '-')
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   209
					{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   210
					// No argument, compress both parts with default compression method
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   211
					// un-paged part compressed by Deflate
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   212
					gCompressUnpaged = ETrue;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   213
					gCompressUnpagedMethod = KUidCompressionDeflate;					
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   214
					// paged part compressed by the Bytepiar
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   215
					gEnableCompress=ETrue;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   216
					gCompressionMethod = KUidCompressionBytePair;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   217
					}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   218
				else 
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   219
					{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   220
					// An argument exists
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   221
					i++;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   222
					strupr(argv[i]);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   223
					if( strcmp(argv[i], "PAGED") == 0)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   224
						{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   225
						gEnableCompress=ETrue;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   226
						gCompressionMethod = KUidCompressionBytePair;	
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   227
						}	
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   228
					else if( strcmp(argv[i], "UNPAGED") == 0)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   229
						{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   230
						gCompressUnpaged=ETrue;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   231
						gCompressUnpagedMethod = KUidCompressionDeflate;	
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   232
						}	
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   233
					else
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   234
						{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   235
 						Print (EError, "Unknown -compression argument! Set it to default (no compression)!");
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   236
 						gEnableCompress=EFalse;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   237
						gCompressionMethod = 0;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   238
						gCompressUnpaged = EFalse;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   239
						gCompressUnpagedMethod = 0;					
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   240
						}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   241
					}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   242
				}	
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   243
			else if( strcmp(argv[i], "-COMPRESSIONMETHOD") == 0 )
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   244
				{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   245
				// next argument should be a method
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   246
				if( (i+1) >= argc || argv[i+1][0] == '-')
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   247
					{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   248
					Print (EError, "Missing compression method! Set it to default (no compression)!");
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   249
					gEnableCompress=EFalse;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   250
					gCompressionMethod = 0;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   251
					}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   252
				else 
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   253
					{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   254
					i++;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   255
					strupr(argv[i]);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   256
					if( strcmp(argv[i], "INFLATE") == 0)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   257
						{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   258
						gEnableCompress=ETrue;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   259
						gCompressionMethod = KUidCompressionDeflate;	
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   260
						}	
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   261
					else if( strcmp(argv[i], "BYTEPAIR") == 0)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   262
						{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   263
						gEnableCompress=ETrue;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   264
						gCompressionMethod = KUidCompressionBytePair;	
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   265
						}	
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   266
					else
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   267
						{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   268
 						if( strcmp(argv[i], "NONE") != 0)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   269
 							{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   270
 							Print (EError, "Unknown compression method! Set it to default (no compression)!");
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   271
 							}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   272
 						gEnableCompress=EFalse;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   273
						gCompressionMethod = 0;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   274
						}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   275
					}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   276
					
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   277
				}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   278
			else if (strcmp(argv[i], "-NO-SORTED-ROMFS")==0)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   279
				gSortedRomFs=EFalse;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   280
			else if (strcmp(argv[i], "-GENINC")==0)				// DEF095619
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   281
				gGenInc=ETrue;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   282
 			else if (strcmp(argv[i], "-WSTDPATH")==0)			// Warn if destination path provided for a file		
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   283
 				gEnableStdPathWarning=ETrue;					// is not a standard path as per platsec
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   284
			else if( strcmp(argv[i], "-LOGLEVEL") == 0)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   285
				{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   286
				// next argument should a be loglevel
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   287
				if( (i+1) >= argc || argv[i+1][0] == '-')
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   288
					{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   289
					Print (EError, "Missing loglevel!");
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   290
					gLogLevel = DEFAULT_LOG_LEVEL;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   291
					}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   292
				else
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   293
					{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   294
					i++;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   295
					if (strcmp(argv[i], "4") == 0)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   296
						gLogLevel = (LOG_LEVEL_FILE_DETAILS | LOG_LEVEL_FILE_ATTRIBUTES | LOG_LEVEL_COMPRESSION_INFO | LOG_LEVEL_SMP_INFO);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   297
					else if (strcmp(argv[i], "3") == 0)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   298
						gLogLevel = (LOG_LEVEL_FILE_DETAILS | LOG_LEVEL_FILE_ATTRIBUTES | LOG_LEVEL_COMPRESSION_INFO);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   299
					else if (strcmp(argv[i], "2") == 0)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   300
						gLogLevel = (LOG_LEVEL_FILE_DETAILS | LOG_LEVEL_FILE_ATTRIBUTES);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   301
					else if (strcmp(argv[i], "1") == 0)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   302
						gLogLevel = LOG_LEVEL_FILE_DETAILS;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   303
					else if (strcmp(argv[i], "0") == 0)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   304
						gLogLevel = DEFAULT_LOG_LEVEL;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   305
					else
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   306
						Print(EError, "Only loglevel 0, 1, 2, 3 or 4 is allowed!");
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   307
					}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   308
				}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   309
			else if( strcmp(argv[i], "-LOGLEVEL4") == 0)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   310
				gLogLevel = (LOG_LEVEL_FILE_DETAILS | LOG_LEVEL_FILE_ATTRIBUTES | LOG_LEVEL_COMPRESSION_INFO | LOG_LEVEL_SMP_INFO);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   311
			else if( strcmp(argv[i], "-LOGLEVEL3") == 0)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   312
				gLogLevel = (LOG_LEVEL_FILE_DETAILS | LOG_LEVEL_FILE_ATTRIBUTES | LOG_LEVEL_COMPRESSION_INFO);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   313
			else if( strcmp(argv[i], "-LOGLEVEL2") == 0)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   314
				gLogLevel = (LOG_LEVEL_FILE_DETAILS | LOG_LEVEL_FILE_ATTRIBUTES);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   315
			else if( strcmp(argv[i], "-LOGLEVEL1") == 0)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   316
				gLogLevel = LOG_LEVEL_FILE_DETAILS;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   317
			else if( strcmp(argv[i], "-LOGLEVEL0") == 0)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   318
				gLogLevel = DEFAULT_LOG_LEVEL;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   319
			else if (argv[i][1] == 'D')
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   320
				{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   321
				TraceMask=strtoul(argv[i]+2, 0, 0);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   322
				}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   323
			else if (strcmp(argv[i], "-LOWMEM") == 0)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   324
				gLowMem = ETrue;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   325
			else if (strncmp(argv[i], "-COREIMAGE=",11) ==0)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   326
			{  
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   327
				if(argv[i][11])	
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   328
				{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   329
					gUseCoreImage = ETrue; 
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   330
					gImageFilename = (TText*)strdup(&argv[i][11]);	
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   331
				}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   332
				else
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   333
				{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   334
					Print (EError, "Core ROM image file is missing\n"); 
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   335
				}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   336
			}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   337
			else 
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   338
				cout << "Unrecognised option " << argv[i] << "\n";
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   339
			}	
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   340
		else // Must be the obey filename
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   341
			filename=argv[i];
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   342
		}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   343
	if (paramFileFlag)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   344
		return;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   345
	if (filename.empty())
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   346
		{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   347
		PrintVersion();
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   348
		cout << HelpText;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   349
		if (reallyHelp)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   350
			{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   351
			ObeyFileReader::KeywordHelp();
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   352
			cout << ReallyHelpText;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   353
			}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   354
		else
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   355
			Print(EError, "Obey filename is missing\n");
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   356
		}	
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   357
	}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   358
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   359
/**
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   360
Function to process parameter-file. 
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   361
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   362
@param aFileName parameter-file name.
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   363
*/
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   364
void processParamfile(string aFileName)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   365
{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   366
	CParameterFileProcessor parameterFile(aFileName);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   367
	
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   368
	// Invoke fuction "ParameterFileProcessor" to process parameter-file.
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   369
	if(parameterFile.ParameterFileProcessor())
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   370
	{		
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   371
		TUint noOfParameters = parameterFile.GetNoOfArguments();
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   372
		char** parameters = parameterFile.GetParameters();
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   373
		TBool paramFileFlag=ETrue;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   374
		
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   375
		// Invoke function "processCommandLine" to process parameters read from parameter-file.
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   376
		processCommandLine(noOfParameters, parameters, paramFileFlag);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   377
	}	
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   378
}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   379
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   380
void GenerateIncludeFile(char* aRomName, TInt aUnpagedSize, TInt aPagedSize )
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   381
	{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   382
	
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   383
	const char * incFileNameExt = ".inc";
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   384
	
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   385
	TText* incFileName;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   386
	incFileName=new TText[strlen(aRomName) + strlen(incFileNameExt) + 1];  // Place for include file name and ".inc" extension and '\0'
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   387
	strcpy((char *)incFileName, aRomName);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   388
	
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   389
	char *p = (char*)strrchr((const char *)incFileName, '.');
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   390
	if( NULL != p)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   391
		{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   392
		strncpy(p, incFileNameExt, strlen(incFileNameExt) + 1);				// copy extension and the '\0'
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   393
		}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   394
	else
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   395
		{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   396
		strcat((char *)incFileName, incFileNameExt);		//Doesn't cotains extension, add to it.
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   397
		}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   398
		
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   399
	Print(EAlways," (%s)\n", (const char *)incFileName);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   400
	
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   401
	ofstream incFile((const char*)incFileName, ios::out);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   402
	if(!incFile)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   403
		{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   404
		Print(EError,"Cannot open include file %s for output\n",(const char *)incFileName);		
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   405
		}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   406
	else
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   407
		{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   408
		const char * incContent = 
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   409
					"/** Size of the unpaged part of ROM.\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   410
	    			"This part is at the start of the ROM image. */\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   411
					"#define SYMBIAN_ROM_UNPAGED_SIZE 0x%08x\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   412
					"\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   413
					"/** Size of the demand paged part of ROM.\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   414
	    			"This part is stored immediately after the unpaged part in the ROM image. */\n"
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   415
					"#define SYMBIAN_ROM_PAGED_SIZE 0x%08x\n";
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   416
		
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   417
		TText* temp = new TText[strlen(incContent)+ 2 * 8 + 1]; 	// for place of two hex representated values and '\0'
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   418
		
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   419
		sprintf((char *)temp,incContent, aUnpagedSize, aPagedSize);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   420
		incFile.write((const char *)temp, strlen((const char *)temp));
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   421
		
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   422
		incFile.close();
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   423
		delete[]  temp;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   424
		}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   425
	delete[]  incFileName;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   426
		
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   427
	}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   428
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   429
int main(int argc, char *argv[]) 
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   430
{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   431
	H.SetLogFile((unsigned char *)"ROMBUILD.LOG");
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   432
	TInt r = 0;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   433
	g_pCharCPUNum = getenv("NUMBER_OF_PROCESSORS");
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   434
	if(g_pCharCPUNum != NULL)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   435
		gCPUNum = atoi(g_pCharCPUNum);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   436
		
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   437
	// initialise set of all capabilities
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   438
	ParseCapabilitiesArg(gPlatSecAllCaps, "all");
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   439
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   440
 	processCommandLine(argc, argv);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   441
 	if(filename.empty())
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   442
   		return KErrGeneral;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   443
		
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   444
    if(gThreadNum == 0)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   445
	{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   446
		if(gCPUNum > 0 && gCPUNum <= MAXIMUM_THREADS)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   447
		{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   448
			Print(EAlways, "The number of processors (%d) is used as the number of concurrent jobs.\n", gCPUNum);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   449
			gThreadNum = gCPUNum;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   450
		}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   451
		else if(g_pCharCPUNum)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   452
		{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   453
			Print(EWarning, "The NUMBER_OF_PROCESSORS is invalid, and the default value %d will be used.\n", DEFAULT_THREADS);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   454
			gThreadNum = DEFAULT_THREADS;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   455
		}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   456
		else
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   457
		{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   458
			Print(EWarning, "The NUMBER_OF_PROCESSORS is not available, and the default value %d will be used.\n", DEFAULT_THREADS);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   459
			gThreadNum = DEFAULT_THREADS;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   460
		}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   461
	}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   462
 	TText *obeyFileName= (TText*)filename.c_str();	
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   463
 
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   464
	PrintVersion();
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   465
	
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   466
	ObeyFileReader *reader=new ObeyFileReader(obeyFileName);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   467
	if (!reader->Open())
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   468
	{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   469
		delete reader;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   470
		return KErrGeneral;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   471
	}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   472
	
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   473
	E32Rom* kernelRom=0;		// for image from obey file
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   474
	CoreRomImage *core= 0;		// for image from core image file
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   475
	MRomImage* imageInfo=0;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   476
	CObeyFile *mainObeyFile=new CObeyFile(*reader);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   477
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   478
	// need check if obey file has coreimage keyword
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   479
	TText *file = mainObeyFile->ProcessCoreImage();
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   480
	if (file)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   481
	{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   482
		// hase coreimage keyword but only use if command line option
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   483
		// for coreimage not already selected
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   484
		if (!gUseCoreImage)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   485
		{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   486
			gUseCoreImage = ETrue;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   487
			gImageFilename = file;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   488
		}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   489
	}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   490
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   491
	if (!gUseCoreImage)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   492
	{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   493
		r=mainObeyFile->ProcessKernelRom();
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   494
		if (r==KErrNone)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   495
		{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   496
				// Build a kernel ROM using the description compiled into the
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   497
				// CObeyFile object
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   498
				
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   499
				kernelRom = new E32Rom(mainObeyFile);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   500
				if (kernelRom == 0 || kernelRom->iData == 0)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   501
					return KErrNoMemory;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   502
				
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   503
				r=kernelRom->Create();
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   504
				if (r!=KErrNone)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   505
				{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   506
					delete kernelRom;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   507
					delete mainObeyFile;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   508
					return r;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   509
				}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   510
				if (SizeSummary)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   511
					kernelRom->DisplaySizes(SizeWhere);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   512
				
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   513
				r=kernelRom->WriteImages(gHeaderType);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   514
				if (r!=KErrNone)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   515
				{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   516
					delete kernelRom;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   517
					delete mainObeyFile;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   518
					return r;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   519
				}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   520
				
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   521
				if (CompareRom)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   522
				{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   523
					r=kernelRom->Compare(CompareRom, gHeaderType);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   524
					if (r!=KErrNone)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   525
					{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   526
						delete kernelRom;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   527
						delete mainObeyFile;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   528
						return r;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   529
					}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   530
				}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   531
				imageInfo = kernelRom;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   532
				mainObeyFile->Release();
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   533
		}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   534
		else if (r!=KErrNotFound)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   535
			return r;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   536
	}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   537
	else
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   538
	{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   539
		// need to use core image
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   540
		core = new CoreRomImage((char*)gImageFilename);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   541
		if (!core)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   542
		{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   543
			return KErrNoMemory;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   544
		}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   545
		if (!core->ProcessImage(gLowMem))
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   546
		{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   547
			delete core;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   548
			delete mainObeyFile;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   549
			return KErrGeneral;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   550
		}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   551
		
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   552
		NumberOfVariants = core->VariantCount();
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   553
		TVariantList::SetNumVariants(NumberOfVariants);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   554
		TVariantList::SetVariants(core->VariantList());
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   555
		
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   556
		core->SetRomAlign(mainObeyFile->iRomAlign);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   557
		core->SetDataRunAddress(mainObeyFile->iDataRunAddress);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   558
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   559
		gCompressionMethod = core->CompressionType();
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   560
		if(gCompressionMethod)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   561
		{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   562
			gEnableCompress = ETrue;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   563
		}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   564
		
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   565
		imageInfo = core;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   566
		if(!mainObeyFile->SkipToExtension())
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   567
		{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   568
			delete core;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   569
			delete mainObeyFile;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   570
			return KErrGeneral;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   571
		}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   572
	}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   573
	
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   574
	if(gGenInc)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   575
	{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   576
		Print(EAlways,"Generating include file for ROM image post-processors ");
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   577
		if( gPagedRom )
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   578
		{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   579
			Print(EAlways,"Paged ROM");
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   580
			GenerateIncludeFile((char*)mainObeyFile->iRomFileName, kernelRom->iHeader->iPageableRomStart, kernelRom->iHeader->iPageableRomSize);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   581
		}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   582
		else
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   583
		{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   584
			Print(EAlways,"Unpaged ROM");
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   585
			int headersize=(kernelRom->iExtensionRomHeader ? sizeof(TExtensionRomHeader) : sizeof(TRomHeader)) - sizeof(TRomLoaderHeader);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   586
			GenerateIncludeFile((char*)mainObeyFile->iRomFileName, kernelRom->iHeader->iCompressedSize + headersize, kernelRom->iHeader->iPageableRomSize);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   587
		}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   588
	}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   589
	
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   590
	do
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   591
	{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   592
		CObeyFile* extensionObeyFile = 0;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   593
		E32Rom* extensionRom = 0;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   594
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   595
		extensionObeyFile = new CObeyFile(*reader);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   596
		r = extensionObeyFile->ProcessExtensionRom(imageInfo);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   597
		if (r==KErrEof)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   598
		{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   599
			delete imageInfo;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   600
			delete mainObeyFile;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   601
			delete extensionObeyFile;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   602
			return KErrNone;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   603
		}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   604
		if (r!=KErrNone)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   605
		{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   606
			delete extensionObeyFile;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   607
			break;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   608
		}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   609
		
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   610
		extensionRom = new E32Rom(extensionObeyFile);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   611
		r=extensionRom->CreateExtension(imageInfo);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   612
		if (r!=KErrNone)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   613
		{
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   614
			delete extensionRom;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   615
			delete extensionObeyFile;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   616
			break;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   617
		}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   618
		if (SizeSummary)
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   619
			extensionRom->DisplaySizes(SizeWhere);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   620
		
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   621
		r=extensionRom->WriteImages(0);		// always a raw image
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   622
		
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   623
		delete extensionRom;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   624
		delete extensionObeyFile;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   625
	}
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   626
	while (r==KErrNone);
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   627
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   628
	delete imageInfo;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   629
	delete mainObeyFile;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   630
	free(gDepInfoFile); 
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   631
	return r;
223dcf462b73 Re-adding erroneously forgotten files
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   632
}