toolsandutils/e32tools/group/release.txt
changeset 0 83f4b4db085c
child 63 d706e2bc01db
equal deleted inserted replaced
-1:000000000000 0:83f4b4db085c
       
     1 Version is unchanged
       
     2 ===============
       
     3 Made by Zheng Shen 24/08/2009
       
     4   1. REQ12628 Tools codeline refactoring for SymTB9.2
       
     5      ROM Tools are removed from MCL.
       
     6 
       
     7 Version 2.2.0 (readimage)
       
     8 ===============
       
     9 Made by Zhi Dou 31/07/2009
       
    10 
       
    11   1.	PREQ2465 REQ12562 Byte-pair compression update
       
    12 
       
    13 Version 2.12.0 (rombuild)
       
    14 ================
       
    15 (Made by Zhi Dou, 31/07/2009)
       
    16   1. PREQ2465 REQ12562 Byte-pair compression update
       
    17 
       
    18 Version 2.5.0 (rofsbuild)
       
    19 ================
       
    20 (Made by Zhi Dou, 31/07/2009)
       
    21   1. PREQ2465 REQ12562 Byte-pair compression update
       
    22 
       
    23 Version 2.11.0 (rombuild)
       
    24 ================
       
    25 (Made by Zheng Shen, 23/07/2009)
       
    26   1. PREQ2465 REQ11939  Warnings for unpaged memory size overflows
       
    27 
       
    28 Version 2.10.1 (rombuild)
       
    29 ===============
       
    30 Made by Zhi Dou 29/07/2009
       
    31 
       
    32   1. DEF140763 ROMBUILD should prevent kernel extensions linking to user side 
       
    33 
       
    34 Version 2.10.0 (rombuild)
       
    35 ===============
       
    36 Made by Zhi Dou 20/07/2009
       
    37 
       
    38   1. REQ13110 HCR file in ROM (ROMBUILD)
       
    39 
       
    40 Version 2.4.0 (rofsbuild)
       
    41 ===============
       
    42 Made by Zhi Dou 20/07/2009
       
    43 
       
    44   1. REQ13111 HCR file in a separate NAND partition (ROFSBUILD)
       
    45 
       
    46 Version 2.1.602
       
    47 ===============
       
    48 Made by Vino Jose 10/07/2009
       
    49 
       
    50 1.	ChrisN
       
    51 	1.	MILESTONE: SymTB9.2, GT0419, MS3.36, DS.1815 PREQ2621 System Architecture Relocating header files - K&HS support
       
    52 
       
    53 Version 2.1.601
       
    54 ===============
       
    55 Made by DeleOgunjumelo 15/01/2009
       
    56 
       
    57 1.	JonCo
       
    58 	1.	MILESTONE: Diran, GT0421, MS3.20, DS1210, REQ11822: WDP support for SBSv1
       
    59 	2.	MILESTONE: Diran, GT0421, MS3.20, DS1210, REQ11823: WDP support for romtools
       
    60 		PREQ1954 Writeable data paging: prototype release 
       
    61 
       
    62 Version 2.1.600
       
    63 ===============
       
    64 Released by Kun Xu, 20/06/2008
       
    65 	1. DEF122540: Slight issue with readimage and sis files that specify a drive letter.
       
    66 
       
    67 Version 2.1.599
       
    68 ===============
       
    69 Released by Kun Xu, 17/06/2008
       
    70 	1. DEF122721 READIMAGE:Files are extracted in 'reftsp.ini' directory for an ROFS image.
       
    71 
       
    72 Version 2.1.598
       
    73 ===============
       
    74 Released by Kun Xu, 02/06/2008
       
    75 	1. DEF122243: ROMBuild deal with file contain line more than 255 characters incorrectly 
       
    76 
       
    77 Version 2.1.597
       
    78 ===============
       
    79 Released by Kun Xu, 02/06/2008
       
    80 	1. DEF122827: Rom build failure with _ONENAND switch
       
    81 	2. DEF119470: ROFSBUILD hangs when an empty OBY file is passed as input
       
    82 	3. DEF122024: Many warnings when compiling readimage tool with MSVC++ 6.0
       
    83 	4. DEF122533: ROFSBUILD loglevel2 generates logs which don't work for interpretsis
       
    84 	
       
    85 Version 2.1.596
       
    86 ===============
       
    87 Released by ReubenH, 12/05/2008
       
    88 	1. DEF115401: Incomplete validation of data in loader 
       
    89 
       
    90 Version 2.1.595
       
    91 ===============
       
    92 Released by Mool Chand Tyagi, 13/12/2007
       
    93 	1. PDEF115166 	Symbian rombuild.exe work incorrectly when compression is used
       
    94 
       
    95 Version 2.1.594
       
    96 ===============
       
    97 Released by Tamilarasu Byran, 04/12/2007
       
    98 	1. PDEF114692: elf2e32 - failed to report relocation data.
       
    99 
       
   100 Version 2.1.593
       
   101 ===============
       
   102 Released by Tamilarasu Byran, 07/11/2007
       
   103 	1. DEF113140: Buildrom fails with error "Use the keyword 'romsize' " for extension ROFS image.
       
   104 
       
   105 Version 2.1.592
       
   106 ===============
       
   107 Released by Madhu, 31/10/2007
       
   108 	1. PDEF107501: readimage is not able to display output of the patched dll.
       
   109 
       
   110 Version 2.1.591
       
   111 ===============
       
   112 Released by Tamilarasu Byran, 26/10/2007
       
   113 	1. INC112577: Readimage tool crashes when run on S60 3.2 rom image.
       
   114 
       
   115 Version 2.1.590
       
   116 ===============
       
   117 Released by Tamilarasu Byran, 25/10/2007
       
   118 	1. DEF107096: Postlinker ignores references to imports from the data segment.
       
   119 	2. DEF112586: Buildrom fails while building extension rofs image.
       
   120 
       
   121 Version 2.1.589
       
   122 ===============
       
   123 Released by Saurabh, 11/10/2007
       
   124 	1.	INC112241: Operator precedence bug in Rombuild  
       
   125 
       
   126 Version 2.1.588
       
   127 ===============
       
   128 Released by Moolchand, 10/10/2007
       
   129 	1.	PDEF109724: Rombuild/Rofsbuild should warn if dll or exe is located outside standard paths 
       
   130 
       
   131 Version 2.1.587
       
   132 ===============
       
   133 Released by Saurabh, 03/10/2007
       
   134 	1.	DEF111903: Elf2e32 GT warning base e32  
       
   135 
       
   136 Version 2.1.586
       
   137 ===============
       
   138 Released by Madhu, 28/09/2007
       
   139 	1.	PDEF102323: rofsbuild crashes without generating appropriate error message 
       
   140 
       
   141 Version 2.1.585
       
   142 ===============
       
   143 Released by Tamilarasu Byran, 25/09/2007
       
   144 	1.	DEF111695: Data drive image generation failed
       
   145 	2.	DEF104630: elf2e32 crashes
       
   146 
       
   147 Version 2.1.584
       
   148 ===============
       
   149 Released by AndrewSmi, 09/08/2007
       
   150 1.	AndrewSmi
       
   151 	1.	DEF110094: Run mode debug: debuggable keyword not supported for armv5_abiv1 in MCL
       
   152 
       
   153 Version 2.1.583
       
   154 ===============
       
   155 Released by Tamilarasu Byran, 08/08/2007
       
   156 	1.	DEF106861: Specifying a compression method in buildrom doesn't work
       
   157 
       
   158 Version 2.1.582
       
   159 ===============
       
   160 Released by MiguelB, 06/06/2007
       
   161 
       
   162 1.	Andrew Haigh
       
   163 	1.	PREQ1426: Added Debuggable bitfield to E32 header and associated changes
       
   164 
       
   165 
       
   166 Version 2.1.581
       
   167 ===============
       
   168 Released by ???, dd/mm/yyyy
       
   169 1.  SivashankarN
       
   170 	1.	EC114: Core OS: Enhance File Server to solve 1085/1086 interoperability issue. 
       
   171 			Enhanced rofsbuild tools to handle the special attributes to create the rofs image
       
   172 
       
   173 Version 2.1.580
       
   174 ===============
       
   175 Released by JonC, 03/04/2007
       
   176 
       
   177 	1) DEF104558 ELF2E32 should build dynamically for TOOLS2 rather than statically for TOOLS
       
   178 
       
   179 Version 2.1.579
       
   180 ===============
       
   181 Released by KunalM, 27/03/2007
       
   182 
       
   183 	1) Seclib built as part of the system build
       
   184 
       
   185 Version 2.1.578
       
   186 ===============
       
   187 Released by KunalM, 20/03/2007
       
   188 
       
   189 	1) ROM building tools (ROMBUILD,ROFSBUILD) ported to the TOOLS2 platform, under PREQ1182, MS3.1
       
   190 
       
   191 Version 2.00.577
       
   192 ==========================
       
   193 (Made by SushmitaR, 19/03/2007)
       
   194 
       
   195 1) OlegI
       
   196 	DEFECT FIX: PDEF102522: DP: unhandled exception readimage.exe when using a XIP ROM paged core image 
       
   197 
       
   198 Version 2.1.576
       
   199 ===============
       
   200 Released by KunalM, 06/03/2007
       
   201 
       
   202 	1) Build tools (elfdump,uidcrc) ported to the TOOLS2 platform, under PREQ1182, MS3.6.2
       
   203 	2) Seclib and Zlib added as pre-built libraries in the MCL for TOOLS2
       
   204 
       
   205 
       
   206 Version 2.00.575
       
   207 ==========================
       
   208 (Made by JonathanM, 07/02/2007)
       
   209 
       
   210 1) JonathanM
       
   211 	DEFECT FIX: DEF101095: DP: Rofsbuild doesn't support paged, unpaged and pagingoverride keywords
       
   212 
       
   213 Version 2.00.574
       
   214 ==========================
       
   215 (Made by Dusko, 12/12/2006)
       
   216 
       
   217 1) Dusko
       
   218 	DEF097419: DemandPaging:Keywords paged/unpaged are case sensitive
       
   219 
       
   220 Version 2.00.573
       
   221 ==========================
       
   222 (Made by Dusko, 11/10/2006)
       
   223 
       
   224 1) Dusko
       
   225 	DEF095506: Change in behaviour for 0 length files (rofsbuild)
       
   226 
       
   227 Version 2.00.572
       
   228 ==========================
       
   229 (Made by Dusko, 27/09/2006)
       
   230 
       
   231 1.	Dusko
       
   232 	DEF093537: Re-Introducing warnings when creating demand paged ROMs
       
   233 
       
   234 2.	RajeswariR
       
   235 	DEF087061 : PR0104 test failures - Incorrect function call, incorrect msg checking
       
   236 	DEF088937: Incorrect usage of $ChopSrcPath in cl_bpabi.pm.
       
   237 	DEF091008: ignorenoncallablefunction not supported in ABIV2 mode toolchain.
       
   238 	DEF093342: Symbol name for absent exports present in the DSO file.
       
   239 	DEF093344: ABIV2 fixup should not happen for export table relocation entries in postlinker.
       
   240 	DEF093345: Support for no exception compiler option in the ABIV2 mode toolchain.
       
   241 	DEF094731: Workaround to handle ARM linker veneer problem.	
       
   242 
       
   243 Version 2.00.571
       
   244 ==========================
       
   245 (Made by RichardC, 13/09/2006)
       
   246 
       
   247 1.	RichardCo
       
   248 	1.	DEF093954: GetSecurityInfo does not support opening unicode filenames
       
   249 	2.	DEF092758: E32ImageFile::Open does not support opening unicode filenames
       
   250 
       
   251 Version 2.00.570
       
   252 ==========================
       
   253 (Made by Dusko, 05/09/2006)
       
   254 
       
   255 1.	Dusko
       
   256 	INC088317 Elftran crashes during compilation of ARMV5 dll 
       
   257 
       
   258 Version 2.00.569
       
   259 ==========================
       
   260 (Made by JonathanM, 01/09/2006)
       
   261 
       
   262 1.	DanH
       
   263 	1.	DEF091669: Several rombuild problems in demand paged roms.
       
   264 		Fixed various rombuild problems with different demand paging configurations, including
       
   265 		unhandled exceptions with certain edge cases and missing support for the 'alwayspage'
       
   266 		value for the pagingoverride keyword.
       
   267 
       
   268 Version 2.00.568
       
   269 ==========================
       
   270 (Made by Dusko, 23/08/2006)
       
   271 
       
   272 1.	Dusko
       
   273 	DEF092459: Warnings when creating demand paged ROMs
       
   274 
       
   275 Version 2.00.567
       
   276 ==========================
       
   277 (Made by ????, ??/??/2006)
       
   278 
       
   279 1.	AttilaV
       
   280 	1.	DEF090973: elf2e32 can't dump header of a byte pair compressed binary
       
   281 		Added missing image header wirting code fragment into e32imagefile.cpp 
       
   282 		E32ImageFile::WriteImage()method Bytepair compressed image generation branch.
       
   283 		Added new case: branch for display bytepair compression method in t the imgdump.cpp 
       
   284 		E32ImageFile::DumpHeader method. 
       
   285 
       
   286 	2.	DEF091564: Spurious warnings when using BytePair compression.
       
   287 		In \e32tools\e32image\e32image.cpp there are spuriou 'warning' messages whenever 
       
   288 		BytePair compression is used in "ostream& operator<<". These should be deleted. 
       
   289 
       
   290 Version 2.00.566
       
   291 ==========================
       
   292 (Made by RobertJ, 20/07/2006)
       
   293 
       
   294 1.	DanH
       
   295 	1. 	DEF090813: Rofsbuild has warnings when creating demand paged ROMs
       
   296 		Added support for paged/unpaged attributes in rofsbuild. No action is taken with these 
       
   297 		attributes yet (not needed until "Code Paging" support is added) but the warnings have
       
   298 		been removed when DP ROMs are created.
       
   299 
       
   300 Version 2.00.565
       
   301 ===========================
       
   302 (Made by DmitryL, 28/06/2006)
       
   303 
       
   304 1.	AttilaV
       
   305 	1.	DEF088473: ELF2E32 tool terminates if --compressionmethod bytepair CLI parameter presents
       
   306 		Fixed an uninitialised pointer use at create byte pair compressed executable image.
       
   307 
       
   308 
       
   309 Version 2.00.564
       
   310 ===========================
       
   311 (Made by Dusko, 19/06/2006)
       
   312 
       
   313 1.	JohanG
       
   314 	DEF088447 Change in the rom log file format breaks CW debugging ...
       
   315 
       
   316 
       
   317 Version 2.00.563
       
   318 ===========================
       
   319 (Made by Dusko, 19/06/2006)
       
   320 
       
   321 1.	JohanG
       
   322 	1.	DEF079348: ROMBUILD doesn't always fail cleanly on OOM
       
   323 	2.	DEF083206: elftran only dumps inferred relocations, not code or data
       
   324 
       
   325 
       
   326 Version 2.00.562
       
   327 ===========================
       
   328 (Made by DjordjeK, 06/06/2006)
       
   329 
       
   330 1.	AttilaV
       
   331 	1.	DEF081770: The Loader should verify compression type.
       
   332 
       
   333 
       
   334 Version 2.00.561
       
   335 ===========================
       
   336 (Made by DavidM, 26/05/2006)
       
   337 
       
   338 1.	AttilaV
       
   339 	Milestone: Argus,GT0286,MS3.2
       
   340 	Extended PETRAN, ELFTRAN, ELF2E32, ROMBUILD, ROFSBUILD to handle new compression method Byte Pair 
       
   341 	and new executable image compressed by the new compression
       
   342 
       
   343 
       
   344 Version 2.00.560
       
   345 ===========================
       
   346 (Made by DuskoJ, 30/05/2006)
       
   347 1) SatyakamM
       
   348 	DEF083920: Rofsbuild crashes on using patchdata for ABIV2 DLL (ABIV1 works fine)
       
   349 
       
   350 Version 2.00.559
       
   351 ===========================
       
   352 (Made by DuskoJ, 13/04/2006)
       
   353 1) Dusko
       
   354 	DEF083116 Validaterel always fails 
       
   355 
       
   356 Version 2.00.558
       
   357 ===========================
       
   358 (Made by DuskoJ, 16/03/2006)
       
   359 1) JonC
       
   360 	DEF082002 - EVALID can't deal with case differences in ARMV5 DLL
       
   361 
       
   362 Version 2.00.557
       
   363 ===========================
       
   364 (Made by JonathanM, 06/03/2006)
       
   365 
       
   366 1)	JonathanM
       
   367 	MILESTONE: Argus GT0286, MS3.1 PREQ209 Demand Paging Prototype.
       
   368 	First delivery of demand paging prototype. Delivery step DS204.
       
   369 
       
   370 Version 2.00.556
       
   371 ===========================
       
   372 (Made by KuldipN, 08/02/2006)
       
   373 1) KuldipN
       
   374 	DEF078510 buildrom does not validate new XML files 
       
   375 	DEF077827 buildrom feature management - should disallow default ranges with extra flags 
       
   376 
       
   377 Version 2.00.555
       
   378 ===========================
       
   379 (Made by DuskoJ, 24/01/2006)
       
   380 1) DuskoJ
       
   381 	DEF075849 Feature registry API returning error when featreg.cfg file is greater than 64KB
       
   382 	DEF077941 VA_* macros cannot be used with GCCE 
       
   383 
       
   384 Version 2.00.554
       
   385 ===========================
       
   386 (Made by JonathanM, 04/01/2006)
       
   387 
       
   388 1) JonathanM
       
   389 	PREQ1030 - Kernel support for device driver test suites - Generic Logging Engine.
       
   390 	This adds support for the following keywords into ROMBUILD:
       
   391 		btrace, btracemode and btracebuffer
       
   392 	See base/documentation/Base_How_To_BTrace.doc
       
   393 
       
   394 Version 2.00.553
       
   395 ===========================
       
   396 (Made by KuldipN, 21/10/2005)
       
   397 1) KuldipN
       
   398 	PREQ1086 - Device Feature Management (DS 069)
       
   399 Version 2.00.552
       
   400 ===========================
       
   401 (Made by KuldipN, 12/10/2005)
       
   402 1) KuldipN
       
   403 	PREQ1028 - Plug-in compiler integration (DS 063)
       
   404 Version 2.00.551
       
   405 ===========================
       
   406 (Made by KuldipN, 06/10/2005)
       
   407 1) KuldipN
       
   408 	PREQ1085 Flexible device ROM configuration
       
   409 Version 2.00.550
       
   410 ===========================
       
   411 (Made by KuldipN, 14/09/2005)
       
   412 1) KuldipN
       
   413 	REQ5412: Enhance ROM tools compression options  (part of PREQ1192)
       
   414 
       
   415 Version 2.00.549
       
   416 ===========================
       
   417 (Made by DuskoJ, 12/07/2005)
       
   418 1) RajeswariR
       
   419 	DEF065105 Using GCC-E should not require modification of existing bld.inf files
       
   420 	DEF063447 Postlinker crashes with unsupported outfile
       
   421 
       
   422 Version 2.00.548
       
   423 ================
       
   424 (Made by JonC, 21/07/2005)
       
   425 1) JonC
       
   426       PREQ1032 Hardware-dependent support for "VFP" floating point acceleration and accelerated maths functions
       
   427 
       
   428 Version 2.00.547
       
   429 ===========================
       
   430 (Made by DuskoJ, 13/07/2005)
       
   431 1) Dusko
       
   432 	DEF063791 ROFSBUILD resets main ROFS file attributes when processing a ROFS extension
       
   433 
       
   434 Version 2.00.546
       
   435 ===========================
       
   436 (Made by DuskoJ, 01/07/2005)
       
   437 
       
   438 1) Dusko
       
   439 	DEF062362 PE_DUMP does not report all significant content in NSIS files 
       
   440 	DEF064173 secdump.exe blows up when you try and use it 
       
   441 
       
   442 Version 2.00.545
       
   443 ===========================
       
   444 (Made by KuldipN, 22/06/2005)
       
   445 
       
   446 1) KuldipN
       
   447 		DEF060825  PR0104: Addition of GCCE support to CodeWarrior 
       
   448 
       
   449 Version 2.00.544
       
   450 ===========================
       
   451 (Made by KuldipN, 10/06/2005)
       
   452 
       
   453 1) KuldipN
       
   454 		DEF062125  PR104: Custom DLL generation is failing 
       
   455 
       
   456 Version 2.00.543
       
   457 ===========================
       
   458 (Made by DuskoJ, 10/06/2005)
       
   459 
       
   460 1) Dusko
       
   461 		DEF061701 Petran.exe can crash on certain non E32 files
       
   462 
       
   463 Version 2.00.542
       
   464 ===========================
       
   465 (Made by KuldipN, 27/05/2005)
       
   466 
       
   467 1) KuldipN
       
   468 	PREQ413   Changes to support the GCCE toolchain.
       
   469       	PREQ414   Enable Commercial Compatible Compilers
       
   470       	DEF061420 Elf2e32 Problems
       
   471 
       
   472 Version 2.00.541
       
   473 ===========================
       
   474 (Made by DuskoJ, 27/05/2005)
       
   475 
       
   476 1) BalaT
       
   477 	DEF060837 RVCT2.2 emits unresolved symbols which ELFTRAN does not notice.
       
   478 
       
   479 
       
   480 Version 2.00.540
       
   481 ===========================
       
   482 (Made by KuldipN, 11/05/2005)
       
   483 
       
   484 1) KuldipN
       
   485 	DEF060826 - PR0104 - PostLinker Memory Leaks
       
   486 
       
   487 Version 2.00.539
       
   488 ===========================
       
   489 (Made by KuldipN, 3/05/2005)
       
   490 
       
   491 1) KuldipN
       
   492 	PREQ413 - Changes to support the GCCE toolchain.
       
   493 
       
   494 Version 2.00.538
       
   495 ===========================
       
   496 (Made by BalaT, 1/04/2005)
       
   497 
       
   498 1) BalaT
       
   499 	DEF058002 - [System Build] Failed to build EIKCORE.DLL using RVCT2.2 
       
   500 
       
   501 Version 2.00.537
       
   502 ===========================
       
   503 (Made by MiguelB, 1/03/2005)
       
   504 
       
   505 1) MiguelB
       
   506 	DEF055301 - ROFSBUILD, COREIMAGE keyword: problem with single-char files/directories 
       
   507 
       
   508 Version 2.00.536
       
   509 ===========================
       
   510 (Made by Bala, 22/02/2005)
       
   511 1) Bala
       
   512 	PREQ1027 Submission of RVCT 2.2 Run-Time ABI Compliance to MCL
       
   513 
       
   514 Version 2.00.535
       
   515 ===========================
       
   516 (Made by Dusko, 21/02/2005)
       
   517 
       
   518 1)	BalaT
       
   519 	DEF051265 Problems debugging .cia files in ARMV5 builds.
       
   520 
       
   521 Version 2.00.534
       
   522 ===========================
       
   523 (Made by Dusko, 19/01/2005)
       
   524 
       
   525 1)	Dusko
       
   526 	DEF052809 - GENSTUB ERROR: can't open output file....
       
   527 
       
   528 Version 2.00.533
       
   529 ===========================
       
   530 (Made by Dusko, 23/11/2004)
       
   531 
       
   532 1)	BalaT
       
   533 	1) DEF051128 - armv5 library build in parallel cause conflicts
       
   534 
       
   535 Version 2.00.532
       
   536 ===========================
       
   537 (Made by KamranN, 11/11/2004)
       
   538 
       
   539 1)	KamranN
       
   540 	1)	Fix for defect DEF051421  Problems with binary search in ROFS  
       
   541 
       
   542 Version 2.00.531
       
   543 ===========================
       
   544 (Made by Dusko, 08/10/2004)
       
   545 
       
   546 1)	BalaT
       
   547 	1) DEF047934 - ROMBUILD:EXE corrupts ROM directory of an extension ROM 
       
   548 
       
   549 Version 2.00.530
       
   550 ===========================
       
   551 (Made by Dusko, 04/10/2004)
       
   552 
       
   553 1)	BalaT
       
   554     1.	Fix for DEF046271 - EVALID cannot cope with differing temp paths present in some ARMV5 .lib files.
       
   555 
       
   556 Patch to Version 2.00.529
       
   557 ===========================
       
   558 (Made by ???, ??/??/2004)
       
   559 
       
   560 1.	JonathanM
       
   561 	1.	Fix for -dump option in PETRAN.
       
   562 
       
   563 Patch to Version 2.00.529
       
   564 ===========================
       
   565 (Made by MichaelP, 27/08/2004)
       
   566 
       
   567 1.	JonathanM
       
   568 	1.	Defect Fix: DEF048051 - ROMBUILD can when PlatSecEnforceSysBin is ON
       
   569 
       
   570 
       
   571 Version 2.00.529
       
   572 ===========================
       
   573 (Made by KuldipN, 25/08/2004)
       
   574 
       
   575 1.	NaheedA
       
   576 	1.  DEF047579 - petran fails to report a corrupted input file.
       
   577 	2.  DEF046271 - EVALID cannot cope with differing temp paths present in some ARMV5 .lib files
       
   578 
       
   579 Patch to Version 2.00.528
       
   580 ===========================
       
   581 (Made by JonathanM, 19/08/2004)
       
   582 
       
   583 1.	JonathanM
       
   584 	1.	Defect Fix: DEF048015 - [System Build] ROMs failed to build for MCL 03344 8.1b/9.0
       
   585 
       
   586 Version 2.00.528
       
   587 ===========================
       
   588 (Made by DjordjeK, 18/08/2004)
       
   589 
       
   590 1.	JonathanM
       
   591 	1.	Added -dump option to PETRAN and ELFTRAN to select what information should
       
   592 		be displayed about an image file. This takes a string argument consisting
       
   593 		of letters to select the information to be dumped:
       
   594 			h	All header info
       
   595 			s	Platform Security info
       
   596 			c	Code section
       
   597 			d	Data section
       
   598 			e	Exports
       
   599 			i	Imports
       
   600 		These letters can be used in any combinations, e.g. "PETRAN -dump ie foo.exe"
       
   601 		will show all Imports and Exports of FOO.EXE
       
   602 
       
   603 Version 2.00.527
       
   604 ===========================
       
   605 (Made by JonathanM, 26/07/2004)
       
   606 
       
   607 1.	JonathanM
       
   608 	1.	Added PlatSecEnforceSysBin setting to ROMBUILD which forces all binary files to
       
   609 		be placed under the \sys\bin\ directory.
       
   610 		Part of Yankee,GT0217,MS3.1.4 PS6.3.2 Ignore path information for binary files
       
   611 		within ROM build and loader.
       
   612 		
       
   613 Version 2.00.526
       
   614 ===========================
       
   615 (Made by JonathanM, 26/05/2004)
       
   616 
       
   617 1.	DennisM
       
   618 	1.	Fixed defect DEF041434 EKA2 ROMBUILD can't build extension ROMs
       
   619 	2.	ROMBUILD now checks that kernel side code doesn't link to user side
       
   620 		code, and vice-versa.
       
   621 
       
   622 Version 2.00.525
       
   623 ================
       
   624 Made by Dusko, 18/05/2004
       
   625 
       
   626 1) Dusko
       
   627 	1) Fix for DEF045146  EVALID does not correctly handle ARMV5 lib files or RVCT .MAP files.
       
   628 
       
   629 Version 2.00.524
       
   630 ================
       
   631 Made by JonC, 29/04/2004
       
   632 
       
   633 1) Jon
       
   634 	Fixes for:
       
   635 	1) DEF044567 gendirective obtains ELF section header data incorrectly
       
   636 	2) DEF044048 RVCT version of DEF2DLL camplains about DLLs not having exports 
       
   637 
       
   638 Version 2.00.523
       
   639 ===========================
       
   640 (Made by JonathanM, 19/03/2004)
       
   641 
       
   642 1.	JonathanM
       
   643 	1.	Implemented the requirements:
       
   644 		REQ2632 - Configurability of the enforcement of capabilities
       
   645 		REQ2633 - Security violation diagnostic
       
   646 		REQ3142 - Associate Platform Security information with an executable.
       
   647 		See /cedar/generic/base/documentation/Base_How_To_Configure_Platform_Security_Settings.doc
       
   648 
       
   649 Version 2.00.522
       
   650 ===========================
       
   651 (Made by JonathanM, 26/02/2004)
       
   652 
       
   653 1)	JonathanM
       
   654 	1)	Modifications made for implementation of
       
   655 		Change Request JDOD-5VUJ7F - Change in executable format of EKA2 binaries.
       
   656 	2)	Tools now use the sytax "cap1+cap2+cap3" to specify a named set of capabilities
       
   657 		(Rather than specifying a single hexadecimal number.)
       
   658 	3)	Added three new keywords to ROMBUILD:
       
   659 			PlatSecEnforcement
       
   660 			PlatSecDiagnostics
       
   661 			PlatSecDiasabledCaps cap1+cap2+cap3
       
   662 		these are used for specifying Platform Security settings which are then placed
       
   663 		in the ROM Header.
       
   664 
       
   665 Version 1.00.521
       
   666 ================
       
   667 Made by DuskoJ, 16/02/2004
       
   668 
       
   669 1) Dusko
       
   670 	1) Fix for DEF042440 - elfdump creates a new file with zero length.
       
   671 
       
   672 
       
   673 Version 2.01.520
       
   674 ================
       
   675 Made by AndrewJ, 13/02/2004
       
   676 
       
   677 1) StephanGu
       
   678 	Implemented CLCT-5VEK4P - "Binary search in ROFS 
       
   679 	together with 'expanding ROFS entries with UIDs'".
       
   680 	Changed Rofsbuild to provide a sorted array of offsets
       
   681 	in order to allow the file system to perform binary search
       
   682 	through the image.  Also expended the TRofsEntry structure
       
   683 	to include a copy of the file UID data.
       
   684 
       
   685 
       
   686 Version 2.01.519
       
   687 ================
       
   688 Made by DuskoJ, 30/01/2004
       
   689 
       
   690 1) Jon
       
   691 	1) Fix for - DEF040324 PETRAN access violation whilst converting THUMB build EXEDLL
       
   692 	   (Further amendment).
       
   693 
       
   694 Version 2.01.518
       
   695 ================
       
   696 Made by DuskoJ, 22/01/2004
       
   697 
       
   698 1) Kuldip
       
   699 	1) Fix for DEF40965 Changes to stop overwriting readonly attribute for directories.
       
   700 
       
   701 
       
   702 Version 2.01.517
       
   703 ================
       
   704 Made by DuskoJ, 05/01/2004
       
   705 
       
   706 1) Kuldip
       
   707 	Fix for DEF039055  "Change in behaviour for 0 length files"
       
   708 
       
   709 Version 2.01.516
       
   710 ================
       
   711 Made by DuskoJ, 19/12/2003
       
   712 
       
   713 1) Dusko
       
   714 	1)	fix for DEF039365 - Petran ignores -fixed keyword	
       
   715 
       
   716 
       
   717 Version 2.01.515
       
   718 ================
       
   719 Made by Dusko, 17/12/2003
       
   720 
       
   721 1. Kuldip
       
   722 	1)	REQ1733, A3.2 Improved Command Line Build Tools
       
   723         ROFSBUILD ROM flexing, Automatic sizing behaviour
       
   724 		Automatic XIP-extension OBEYFILE, header generation
       
   725 
       
   726 Version 2.01.514
       
   727 ================
       
   728 Made by Dusko, 24/11/2003
       
   729 
       
   730 1. Dusko
       
   731 	1)	DEF039411  pediff does not ignore the header CRC 
       
   732 		File changed pediff.cpp
       
   733 
       
   734 Version 2.01.513
       
   735 ================
       
   736 Made by Dusko, 03/11/2003
       
   737 
       
   738 1. Dusko
       
   739 	1.	fix for DEF039536 Non existing files referenced in  Tools_e32tools.mrp...
       
   740 
       
   741 
       
   742 1) William
       
   743 	1)	Added PE_DUMP to support the new EVALID.
       
   744 
       
   745 Version 2.01.512
       
   746 ================
       
   747 Made by Dusko, 10/10/2003
       
   748 
       
   749 1. Dusko
       
   750 	1.	Zephyr,PRO0085,REQ1663, Remove dependencies on MSDEV	
       
   751 	  	Changes to BIN2COFF and  WVECONV in order to build with CW
       
   752 
       
   753 
       
   754 Version 2.01.511
       
   755 ================
       
   756 Made by Dusko, 02/10/2003
       
   757 
       
   758 1. Dusko
       
   759 	1.	fix for DEF037065 Problem with error message from uidcrc
       
   760 
       
   761 Version 2.01.510
       
   762 ================
       
   763 
       
   764 Made by Dennis, 24/09/2003
       
   765 
       
   766 1. Dennis
       
   767 	1.	ROMBUILD adds sorted offsets to directory structures to enable binary
       
   768 		searching of the ROM file system.
       
   769 	2.	Implemented CR ATHE-5PZEAU (Add Version Numbers to Symbian OS Executables).
       
   770 
       
   771 Version 1.00.505
       
   772 ================
       
   773 Made by DuskoJ, 22/08/2003
       
   774 
       
   775 1) Morgan
       
   776 	Ported ROFSBUILD extension support from beech
       
   777 	1) 	Added ROFSBUILD extension support.  Start a ROFS extension with obey file 
       
   778 		commands
       
   779 			extensionrofs = <filename>
       
   780 			rofssize = <size>
       
   781 		Added support for ALIASing, HIDEing and RENAMEing.  Semantics and syntax
       
   782 		for these commands are the same as ROMBUILD.
       
   783 		Core image and extension can be joined together with 
       
   784 			tools\e32tools\rombuild\addextensions.pl
       
   785 		Added TRofsExtensionHeader to ROFS.H
       
   786 		Padding, Alignment and Repro assumptions: 
       
   787 		The extension assumes it will be added TRofsHeader::iMaxSize bytes
       
   788 		after the start of the core image.  It is assumed the max size of the core
       
   789 		image will be aligned appropriately for the underlying ROM device.
       
   790 		Core image has signature "ROFS" at offset 0, extension has signature
       
   791 		"ROFx" at offset 0 into extension (= iMaxSize after start of core image).
       
   792 
       
   793 2) Morgan
       
   794 	1)	Added rofsbuild\dumpdirs.pl - utility for dumping the ROFS directory
       
   795 		structure.
       
   796 	2)	Ported ROFSBUILD executable compression from beech
       
   797 
       
   798 3) Dusko	Changes to a number of e32tools components in order to build cleanly with CodeWarrior
       
   799 
       
   800 
       
   801 Version 1.00.504
       
   802 ================
       
   803 Made by DuskoJ, 25/07/2003
       
   804 
       
   805 1. Jon
       
   806 	1. Fixed DEF036679 by adding copyright statements where appropriate.
       
   807 
       
   808 
       
   809 Version 2.00.503
       
   810 ================
       
   811 
       
   812 1) Morgan
       
   813 	1) Removed ROMBUILD build warning
       
   814 
       
   815 Version 2.00.503
       
   816 ================
       
   817 
       
   818 1) Dennis
       
   819 	
       
   820 	ROMBUILD changes:
       
   821 
       
   822 	1)	'kernelstackaddress' keyword removed. This is now always calculated by
       
   823 		ROMBUILD.
       
   824 	2)	Address allocation strategy modified. The initial stack is now placed
       
   825 		immediately after the kernel .data/.bss area. The kernel heap follows
       
   826 		the initial stack (as before). In the moving model, fixed process data
       
   827 		chunks are placed after the kernel heap (on chunk boundaries).
       
   828 	3)	TRomHeader::iKernStackAddress replaced with TRomHeader::iKernelLimit,
       
   829 		which gives the end of the kernel heap rounded up to a chunk boundary
       
   830 		except on the moving memory model where it is advanced past the space
       
   831 		reserved for fixed process data chunks.
       
   832 
       
   833 
       
   834 Version 2.00.502
       
   835 ================
       
   836 
       
   837 1) Dennis
       
   838 	1)	Pulled out general E32Image file handling code into e32tools/e32image/...
       
   839 		directories. This includes compression/decompression and all stuff which
       
   840 		doesn't require	the native PE or ELF file.
       
   841 	2)	Merged the two versions of ROMBUILD. ROMBUILD.EXE now accepts E32Image
       
   842 		files derived from either PE or ELF. It no longer accepts the native
       
   843 		PE/ELF files directly. XIPRMBLD.EXE is no longer built.
       
   844 	3)	Added a special instruction (TST PC, #0) to the beginning of all EKA2
       
   845 		entry points. This is detected by PETRAN/ELFTRAN and the file marked as
       
   846 		having an EKA2 style entry point. The ELF-derived and JFormat flags have
       
   847 		been generalised into header format, import format and ABI fields. An
       
   848 		entry point type field has been added to distinguish EKA1 and EKA2 entry
       
   849 		points.
       
   850 	4)	Add 'nowrapper' keyword to ROMBUILD. If specified in OBY file it causes
       
   851 		the 256 byte wrapper to be omitted. This setting can still be overridden
       
   852 		on the command line.
       
   853 
       
   854 
       
   855 
       
   856 ======================
       
   857 ELFDUMP version 1.0.0
       
   858 1) Dusko
       
   859      1) Adding elfdump.cpp. Elfdump is required to be a standalone program     
       
   860     	which can present an ELF object file in a form suitable for use with 
       
   861     	EVALID. It prints hex dumps of relevant sections, directive section as 
       
   862     	text and relocation information showing the symbol the name and of the 
       
   863     	section in which the relocation occurs.
       
   864 
       
   865 Version 1.00.501
       
   866 ================
       
   867 EKA2 Tools
       
   868 
       
   869 1) RobertJ
       
   870 	1) Support for compressed executables introduced. Source code for the compression
       
   871 	& decompression is in petran\szip. Changed PEDUMP to dump compressed executables
       
   872 	added -compress & -nocompress options to PETRAN
       
   873 	2) Bumped version number of written executables to 1.10
       
   874 	3) Added a new format bit to iFlags JFormat (Jetstream format)
       
   875 
       
   876 Version 1.00.500
       
   877 ================
       
   878 EKA2 Tools
       
   879 
       
   880 1) Dennis
       
   881 	1) Added support for the x86 development target to PETRAN
       
   882 	2) Added various values to the ROM header for EKA2 in ROMBUILD
       
   883 2) William
       
   884 	1) Added -capability <mask> option to PETRAN. There isn't yet an iCapability field in the
       
   885 	   E32ImageHeader, but everything else is ready to go.
       
   886 
       
   887 
       
   888 ================
       
   889 ROMBUILD version 2.05
       
   890 
       
   891 1) William
       
   892 	1)	Fixed defect ROS-52XF6E "ROMBUILD produces incorrect S-Record checksums" by getting the length
       
   893 		right (actually by checksumming the bytes we write instead of calculating the values twice).
       
   894 	2)	Disable the 3-byte address form of S-Record with a #define, since it upsets some external
       
   895 		tools and only benefitted serial download to M*Core.
       
   896 	3)	Fixed defect ROS-52ZED7 "ROMBUILD crashes if section 1 overflows in 2 section ROMs" by
       
   897 		checking for overflows in the right place.
       
   898 	4)	Made verification failure use Print(EError, ...) in all cases, so that it will cause a 
       
   899 		ROMBUILD failure rather than just a small complaint at the end of the log file.
       
   900 	5)	Extend checkstubs.pl to handle the R3UNUSED Thumb stubs, and update stubs.lst
       
   901 
       
   902 Todo
       
   903 handle section 1 DLLs linking to section 2 DLLs so that section 2 can be replaced
       
   904 respect the E32Image flags for dll static data and called entrypoints 
       
   905 			
       
   906 
       
   907 2) Chris
       
   908 	1)	Updated romimage.rtf to remove screensize keyword
       
   909 
       
   910 3) Nicolas (work done as part of CR JPAR-54XMZD)
       
   911 	1)	Added new keyword: DEBUGPORT.  It takes a numeric argument
       
   912 		which is a magic cookie as far as rombuild is concerned and
       
   913 		is stored in the ROM header for interpretation by the
       
   914 		kernel and bootstrap.  The default value is -1.
       
   915 	2)	Updated romimage.rtf to include DEBUGPORT.	
       
   916 
       
   917 
       
   918 ================
       
   919 ROMBUILD version 2.04
       
   920 
       
   921 1) Nicolas
       
   922 	1)  Fixed bug where EPOC crashes during boot if there is a non-empty
       
   923 	    area after an empty one in the relocation table.
       
   924 	2)  Modified the way the kernel extensions list is built to
       
   925 	    ensure the extensions are always in the same order in the
       
   926 	    list as in the obey file even when some extensions are in
       
   927 	    areas and other aren't.  This is necessary because the
       
   928 	    kernel extension ordering in the obey file is important
       
   929 	    (for example an extension registering a power handler
       
   930 	    *must* be loaded after the extension that loads the power
       
   931 	    model).
       
   932 	3)  Fixed bug in AreaSet::AddArea() (overlap was not detected
       
   933 	    when an existing area is embedded in the new one).
       
   934 	4)  Overlap unit tests updated.
       
   935 	5)	Fixed bug in TDllExportInfo ctor: The ptr to the export directory in
       
   936 	  	the ROM buffer was wrong when the file was relocated to a non-default
       
   937 	  	area (iRunAddress / iImageAddr mismatch).
       
   938 
       
   939 
       
   940 ================
       
   941 ROMBUILD version 2.03
       
   942 
       
   943 1) William
       
   944 	1)  Set the default srecordbase to zero, and remove the srecordbase validation.
       
   945 	2)  Added "data-align" attribute, and used it in the calculation of dataOffset for
       
   946 	    things sharing the SvData. It's not a great name, but it will do for now...
       
   947 	3)  Added "KeepIAT" attribute, which builds an old-style Import Address Table instead
       
   948 	    of pointing the stubs directly at the export data.  NB. this won't work for
       
   949 	    section 1 DLLs, because I haven't reinstated the machinery for putting the IAT into
       
   950 	    the second section.
       
   951 	4)  Fix defect CLE-4ZEJBB "rom building: fatal error when file to hide isn't found" by
       
   952 	    dealing with (aKeyword==EKeywordHide) before testing for !existingFile, and issuing
       
   953 	    a warning if the existing file wasn't found.
       
   954 	5)  Export checkstubs.pl to \epoc32\rom\tools
       
   955 
       
   956 ---------------------
       
   957 ROMBUILD version 2.02
       
   958 
       
   959 1) Nicolas
       
   960 
       
   961 	1) ROMBUILD: Introduced new area syntax (incompatible with the existing
       
   962        scheme):
       
   963 
       
   964 		a) The "area <name> <start> <size>" statement declares an area
       
   965 		(there is no need to declare the default ROM area).
       
   966 
       
   967 		b) The "area=<name>" file attribute relocates individual files to
       
   968 		the designated area.
       
   969 
       
   970 		c) When invoking rombuild with -s, a summary of the free and used
       
   971 		space in each area is printed.
       
   972 
       
   973 		d) Areas can be used only in the first section of a sectioned ROM
       
   974 		and are forbidden in extension ROMs.
       
   975 
       
   976 		e) It is forbidden to patch a relocated file.
       
   977 
       
   978 	2) ROMBUILD: Introduced classes Area and AreaSet and associated
       
   979        iterators to replace all the existing dynamic arrays and indexes
       
   980        used to store the area-related state.  Unit tests for these are
       
   981        built using r_t_areaset.mmp.  Refactored existing code (notably
       
   982        E32Rom::LayoutRom()) to use those new classes.
       
   983 
       
   984 	3) ROMBUILD: Moved global variables from rombuild.cpp to r_global.cpp
       
   985        to allow build of r_t_areaset.exe.  Made static the globals which
       
   986        were used only in rombuild.cpp.
       
   987 
       
   988 	4) ROMBUILD: Merged TAddressSet into TAddressRange.  Renamed every
       
   989        "i.*Set" variable to either "i.*Range" or "i.*Section" (previously
       
   990        existing "i.*Section" variables have been suffixed with "Number").
       
   991 
       
   992 	5) ROMBUILD: Updated version number to 2.02.
       
   993 
       
   994 	6) HOST: Turned the various overloads of Val() into a template
       
   995        function.
       
   996 
       
   997 ---------------------
       
   998 ROMBUILD version 2.01
       
   999 
       
  1000 1) William
       
  1001 	1)  Fixed bug in ParseArea() which reused the area address as the area length
       
  1002 	2)  Allow for executables generated before GCC 530 by changing the assertion about 
       
  1003 	    unexpected data. If it looks as though the rdata is after the IAT, then the whole
       
  1004 	    of the E32ImageFile text area is included in the ROM.
       
  1005 	3)  The rounding up for the ROM size to a multiple of a megabyte must not exceed the
       
  1006 	    originally specified size.
       
  1007 	4)  Increased the ROMBUILD version to 2.01
       
  1008 
       
  1009 Version 1.00.174
       
  1010 ================
       
  1011 Made by William, 23/03/2001
       
  1012 
       
  1013 1) William
       
  1014 	1)  Removed the old .ipr files associated with the predecessor to DISTRIBUTION.TXT
       
  1015 	2)  Moved ROMBUILD.MMP into the ROMBUILD directory
       
  1016 	3)  Gave ROMBUILD it's own major and minor version numbers - now 2.0
       
  1017 	4)  Moved the collapsing routines into ROMBUILD\R_COLLAPSE.CPP
       
  1018 	5)  Substantial rework of the way that the E32Image files are put into the ROM: it's now
       
  1019 	    almost the case that the ROM layout is established before copying any data. The layout
       
  1020 	    is expressed by setting up TAddressRange and TImageSection values in the TRomBuilderEntry,
       
  1021 	    and the rest of the relocation and copying to the ROM image follows from those values.
       
  1022 	6)  Change of approach on relocation: instead of relocating the file contents after copying
       
  1023 	    into the ROM image, do the relocation beforehand. This allows the relocation to operate on
       
  1024 	    a simple fixed layout (the one which PETRAN set up), and frees the ROM layout to be
       
  1025 	    entirely different.
       
  1026 	7)  Unified all the various ROM flavours: in particular the "areas" support is part of the
       
  1027 	    normal layout process. The use of TAddressSets and their derived forms makes this
       
  1028 	    pretty painless.
       
  1029 	8)  Removed the Import Address Tables, saving ~240K in a Quartz 6.1 ROM. The import stubs
       
  1030 	    are fixed up to point directly into the export directory for the relevant DLL. In two 
       
  1031 	    section ROMs the export directories are now placed at the start of the upper section 
       
  1032 	    to support patching: this was previously done using the import address tables.
       
  1033 	9)  Various special case handling for the Primary has been reworked using generic support.
       
  1034 	    In particular the primary now gets a default code alignment of 4K, which allows the 
       
  1035 	    gap to be occupied by other files if the obey file is suitably arranged.
       
  1036 	10) Area relocation is more pervasive than before. The import stubs in relocated executable
       
  1037 	    no longer refer back to the unrelocated original contents of the area.
       
  1038 	11) The sizes of the DLL reference tables are now reported in the log.
       
  1039 	12) Fixed a bug which caused ROMBUILD to crash if a file was marked as "patched" in a 
       
  1040 	    two section ROM.
       
  1041 	13) Size information in the ROM is more consistent: the size in the ROM filesystem is always
       
  1042 	    the length of the contiguous section beginning at the given address, and the size summary
       
  1043 	    in the log file reports the SizeInRom() information for the file, which should always
       
  1044 	    reflect the real cost in ROM of the file regardless of layout.
       
  1045 
       
  1046 Version 1.00.173
       
  1047 ================
       
  1048 Made by Morgan, 08/03/2001
       
  1049 
       
  1050 1) Morgan
       
  1051 	1)	Fixed ROMBUILD to accept DLLs with no imports and DLLs with no exports
       
  1052 
       
  1053 
       
  1054 Version 1.00.172
       
  1055 ================
       
  1056 Made by William, 07/12/2000
       
  1057 
       
  1058 1) William
       
  1059 	1)  Introduced ROMBUILD support for extension ROMs, the deliverable from project PR0027.
       
  1060 	    Lots of churn, but the key new data structure is the TRomNode which separates the
       
  1061 	    ROM directory structure information from the individual files (TRomBuilderEntry). The
       
  1062 	    TRomNodes handle the DLL name matching and are used to drive the multiple-variant clever
       
  1063 	    directory structure operations.
       
  1064 	2)  Reworked the ROMBUILD parsing strategy to remove the need for "files=", allowing the
       
  1065 	    header statements and file statements to be mixed freely in the OBY file.
       
  1066 	3)  Use the tables which now drive the ROMBUILD parsing to generate the help information.
       
  1067 	4)  Don't create ROMBUILD.LOG unless processing an OBY file, and put extra useful information
       
  1068 	    into the log. In particular, print a line include the ROM image name before processing
       
  1069 	    the files and after writing the ROM image, e.g.
       
  1070 
       
  1071 	        Creating Rom image testrom.IMG
       
  1072 		...
       
  1073 	        Writing Rom image with repro header to file testrom.IMG
       
  1074 
       
  1075 	    Also report the "Writing" line to the screen, as a comfort to the user.
       
  1076 	5)  Fix ROS-4RJPTK "ROMBUILD checksums are incorrect" by computing the checksum at the 
       
  1077 	    right stage, and cross check to make sure it's still right when displaying the ROM stats.
       
  1078 	    ROMs built with this version of ROMBUILD are likely to be different in up to 4 bytes
       
  1079 	    at offsets 0x1A8 to 0x1AB (0xA8 to 0xAB for images without a REPRO header).
       
  1080 	6)  Make "unicode" the default, and introduce sensible defaults for various other keywords.
       
  1081 	7)  Remove the ROMBUILD support for bigendian images (it's still present in the files
       
  1082 	    shared with PETRAN.
       
  1083 	8)  Added dumpdirs.pl which prints out the ROM root directory structures.
       
  1084 	9)  Added addextension.pl which concatenates a kernel ROM and an extension ROM, making a 
       
  1085 	    combined image suitable for use with Brutus.
       
  1086 	10) Try harder to continue reporting errors rather than stopping immediately. In particular,
       
  1087 	    report all of the unresolved DLL linkages rather than just the first one.
       
  1088 	11) Introduce new keywords "hide", "alias" and "rename" to manipulate the directory structure.
       
  1089 	12) Added romimage.rtf documentation (from the BPK, but somewhat edited) and export it to
       
  1090 	    \epoc32\engdoc\e32tools
       
  1091 
       
  1092 
       
  1093 Version 1.00.171
       
  1094 ================
       
  1095 Made by Nicolas, 19/10/2000
       
  1096 
       
  1097 1) William
       
  1098 	1)  Rework internals of ROMBUILD to remove arrays indexed by file number.
       
  1099 	    TRomBuilderEntry is now derived from E32ImageFile, and the various arrays
       
  1100 	    have become member data in the associated TRomBuilderEntry - OO, dontcha just love it!
       
  1101 	2)  Added -coff-header option, which could remove the need for bin2coff
       
  1102 	3)  Use the .idata information to get the DLL ordinals, not the IAT. 
       
  1103 	    This is preparation for the IAT removal idea, which involves turning the IAT into
       
  1104 	    a table of pointers back to the associated stubs.
       
  1105 	4)  Added a range check to TRomBuilderEntry::AddressOfOrdinal
       
  1106 	5)  Added documentation about various forms of import stub, and checkstubs.pl which
       
  1107 	    scans all of the stubs in a ROM to check that they lead to a function of the
       
  1108 	    correct name.
       
  1109 	6)  Introduced TAddressSet for recording the various addresses associated with
       
  1110 	    code in a ROM (address of ROMBUILD.EXE working copy, address in ROM, execution address).
       
  1111 	    Currently used for handling ImportAddressTable and DllRefTable and seems to work in
       
  1112 	    a two-section Brutus ROM.
       
  1113 	7)  Partial fix for EDNRFID-4J6DV3 "Corrupt reloc table generated"
       
  1114 	    Allow for the possibility that there is only .bss with no .data when applying the
       
  1115 	    heuristic for relocs that don't point into any known section.
       
  1116 	    Fix printf format specifier typo by changing %0x8 -> %08x
       
  1117 	8)  Added a verbose option to W32REPRO
       
  1118 
       
  1119 
       
  1120 Version 1.00.170
       
  1121 ================
       
  1122 Made by Dennis, 13/09/2000
       
  1123 
       
  1124 1) William
       
  1125 	1)  Dust off the S-Record support in ROMBUILD
       
  1126 	    Use the full 78-bytes available per line, and add support for the
       
  1127 	    3-byte address form, since this is beneficial to M*Core Cogent.
       
  1128 	2)  Use "srecordfilename=*" to mean "append .srec to romname and use that"
       
  1129 	    Same approach for "romnameodd=*" and "romnameeven=*" filenames.
       
  1130 	3)  Set the RomHeader iSize to be iSizeUsed rounded up to a megabyte. This is
       
  1131 	    particularly beneficial on platforms which RAM-load a ROM image (Brutus, Cogent)
       
  1132 	    because it allows the bootstrap to use only the amount of RAM really needed
       
  1133 	    for the ROM image.
       
  1134 	4)  Add "hide" keyword to ROMBUILD, as requested by a licensee. This stops the
       
  1135 	    specified file from being included in the ROM directory, but doesn't stop other
       
  1136 	    ROM files from linking to the hidden file. A consequence of hiding a DLL is that
       
  1137 	    it can't be dynamically loaded, which means that you can't hide kernel extensions.
       
  1138 
       
  1139 
       
  1140 Version 1.00.156
       
  1141 ================
       
  1142 Made by Morgan, 5/7/2000
       
  1143 
       
  1144 1) Anon
       
  1145 	1) Changes to ETOUCH
       
  1146 	==== //EPOC/development/base/6.0/e32tools/ETOUCH/ETOUCH.CPP#1
       
  1147 	@@ -3,6 +3,10 @@
       
  1148 	 // Copyright (c) 1996-1999 Symbian Ltd.  All rights reserved.
       
  1149 	 //
       
  1150 
       
  1151 	+#if defined(__VC32__)
       
  1152 	+#pragma warning(disable : 4710)        // function '...' not expanded
       
  1153 	+#endif
       
  1154 	+
       
  1155 
       
  1156 
       
  1157 Version 1.00.155
       
  1158 ================
       
  1159 Made by Dennis 22-06-2000.
       
  1160 
       
  1161 1)	Dennis
       
  1162 	1)	Modified W32REPRO so that the -HEX option only makes it receive in hex.
       
  1163 		It always transmits in base 10. This is so it works with REPROC.
       
  1164 	2)	Fixed bug in ROMBUILD - it didn't like files with no imports.
       
  1165 
       
  1166 Version 1.00.154
       
  1167 ================
       
  1168 (Made by Alastair, 10.3.2000)
       
  1169 
       
  1170 1)	William
       
  1171 	1)	Added M*Core support
       
  1172 		Basically just another PE magic number and another TCpu code.
       
  1173 
       
  1174 Version 1.00.153
       
  1175 ================
       
  1176 (Made by Pete, 24/02/2000)
       
  1177 
       
  1178 1)	William
       
  1179 	1)	Updated PETRAN to report exports with value 0 as
       
  1180 
       
  1181 			WARNING: No export specified for ordinal 62
       
  1182 
       
  1183 		and promoted the non-zero exports from an unknown section to be errors.
       
  1184 	2)	Added more information to the warning about failure to identify a section for relocation,
       
  1185 		just in case it ever happens...
       
  1186 
       
  1187 2)	Simon
       
  1188 	1)	Added bin2coff, a utility to add a coff header to a binary
       
  1189 	  	image. Mainly for use with the cogent smartfirmware
       
  1190 
       
  1191 Version 1.00.152
       
  1192 ================
       
  1193 (Made by Dennis, 19/01/2000)
       
  1194 
       
  1195 1)	William
       
  1196 	1)	Updated W32REPRO usage statement to remove misleading limit on the baud rate
       
  1197 		The baud rate is actually passed directly to the Win32 comms device, so it should
       
  1198 		be possible to specify any baud rate supported by the device.
       
  1199 	2)	Updated W32REPRO to add a -RAW option for use with Brutus REPROB (and others).
       
  1200 		This tells W32REPRO not to expect a 256-byte header on the image, but it will
       
  1201 		still pretend that there is one, as expected by the existing REPRO code.
       
  1202 	3)	Updated W32REPRO to a -BOOT <boostrap_image> and -HEX options, to support
       
  1203 		the Cirrus Logic board. The bootstrap is sent at 9600 baud before starting the
       
  1204 		normal REPRO protocol, and -HEX changes the protocol to use base 16 rather than
       
  1205 		base 10 for numbers transmitted between W32REPRO and the other end.
       
  1206 	4)	Added W32REPRO protocol support for a new command 'D' which tells W32REPRO to
       
  1207 		disconnect after a successful transfer: REPROB could usefully be extended to
       
  1208 		send this command...
       
  1209 
       
  1210 2)	Morgan
       
  1211 	1)	Fixed ROMBUILD so it gives appropriate errors if passed an empty file
       
  1212 	2)	ROMBUILD.LOG reports inclusion of 256 ROM repro header (Defect EDN147097)
       
  1213 	3)	Fixed EDN580686 Rombuild is not very tolerant
       
  1214 	4)	Fixed EDN210727 PEDIFF returns stupid result codes
       
  1215 		PEDIFF now returns 0 for identical files, and 2 for different files
       
  1216 	5)	Improved PETRAN dump output (Fixed EDNGLAY-463LNN)
       
  1217 
       
  1218 
       
  1219 Version 1.00.151
       
  1220 ================
       
  1221 (Made by Morgan, 3/12/99)
       
  1222 
       
  1223 1)	Alastair
       
  1224 	1)	Created a new utility, ERUNTEST.EXE, which will take a batch file
       
  1225 		listing tests as generated by ABLD and run each test in turn, checking
       
  1226 		whether each test has succeeded or not by checking the return value from
       
  1227 		the process and also checking output to the EPOCWIND.OUT file in the
       
  1228 		temporary directory.  ERUNTEST.EXE logs output to standard output.
       
  1229 		Obviously this utility will only run WINS/WINC tests.  It must be invoked
       
  1230 		from the directory in which the test executables reside.
       
  1231 
       
  1232 2)	Morgan
       
  1233 	1)	Fixed some warnings
       
  1234 
       
  1235 
       
  1236 Version 1.00.150
       
  1237 ================
       
  1238 (Made by Morgan, 27/9/99)
       
  1239 
       
  1240 1)	Alastair
       
  1241 	1)	Created new directory COLTAB and added COLTAB.CPP, BASEKEYS.TXT,
       
  1242 		COMPKEYS.TXT and README.TXT.  COLTAB comes from Graham Asher, and is a
       
  1243 		tool for writing the collation tables in COLLATE.CPP.  README.TXT
       
  1244 		contains details of the URL from which data files BASEKEYS.TXT and
       
  1245 		COMPKEYS.TXT were sourced.  Type COLTAB without any parameters for help,
       
  1246 		and/or read the header in COLTAB.CPP.  Console APP COLTAB.EXE will be
       
  1247 		built into \EPOC32\Tools\.
       
  1248 
       
  1249 2)	Malcolm
       
  1250 	1)	Added code to allow the kernel debug mask to be set via the ROM.OBY
       
  1251 		file via the new KERNELTRACE keyword.
       
  1252 
       
  1253 3)	Morgan
       
  1254 	1)	ROMBUILD internal directory structure is now sorted wrt a unique
       
  1255 		identifier for each Dir.  This (hopefully) fixes the reproducability
       
  1256 		problems ("drifting-directories") experienced when building identical
       
  1257 		Roms in different NT environments.
       
  1258 
       
  1259 
       
  1260 Version 1.00.125
       
  1261 ================
       
  1262 (Made by Morgan, 26/8/99)
       
  1263 
       
  1264 1)	Dennis
       
  1265 	1)	Added "defaultstackreserve" keyword. The argument to this keyword is
       
  1266 		added to the combined size of .data and .bss to determine the address
       
  1267 		space to reserve for the $DAT chunk of a 'fixed' process. The value
       
  1268 		defaults to zero for compatibility with previous versions.
       
  1269 		Added "stackreserve" keyword to override the default setting on a
       
  1270 		per-file basis.
       
  1271 
       
  1272 
       
  1273 Version 1.00.124
       
  1274 ================
       
  1275 (Made by Alastair, 2nd August 1999)
       
  1276 
       
  1277 1)	Jonathan
       
  1278 	1)	Removed MAKSYM - moved to e32toolp.
       
  1279 
       
  1280 
       
  1281 Version 1.00.123
       
  1282 ================
       
  1283 (Made by Kal Patel, 22 July 1999)
       
  1284 
       
  1285 1) Morgan
       
  1286 	1)	New ROMMASK.  Added a -verbose flag for logging, and added a -no-header
       
  1287 		for Roms with no Epoc header.
       
  1288 
       
  1289 2) Malcolm
       
  1290    
       
  1291     1) Added Area support to ROMBUILD for Roxette.  This allows the
       
  1292        code to be fixed up to execute outside the rom where it's stored.
       
  1293        Relocation info is written into the rom and the bootstrap uses
       
  1294        this to copy the info out to its final location.  Any file can 
       
  1295        be in any arbitrary area.  This is only enabled in
       
  1296        singleprocess mode, since the same effect can be achieved with
       
  1297        an MMU on a real system.
       
  1298 
       
  1299 	   This is enabled by placing a "areas=<num>" line in the first
       
  1300 	   section of the .oby file.  Then, in the files= section, the
       
  1301 	   next tranche of files can be sent to another area with a
       
  1302 	   directive like "area 0x81000000 0x100000" where the first value 
       
  1303 	   is the address and the next the length. Up to <num> area lines
       
  1304 	   can be in the file section.
       
  1305 
       
  1306 	   A relocation table is placed in ROM for the bootstrap.  Its
       
  1307 	   address is stored in the romheader info that rombuild uses.
       
  1308 	   The table is a list of <length> <src> <dest> triples, ending
       
  1309 	   with a <0,0,0> tuple.
       
  1310 
       
  1311 	   Note that any bootstrap that uses this should not process a
       
  1312 	   relocation table address of 0, as this maintains backwards
       
  1313 	   compatability with old rombuilds which will put zero in the
       
  1314 	   address location.
       
  1315 
       
  1316 3)	Alastair
       
  1317 	1)	Removed all .DSP and .MAK files, now that makefiles are generated.
       
  1318 	2)	Fixed minor typo in W32Repro.
       
  1319 
       
  1320 
       
  1321 Version 1.00.122
       
  1322 ================
       
  1323 (Made by Alastair, 12.7.99)
       
  1324 
       
  1325 1) Alastair
       
  1326 	1)	Added fetcher definition file, E32TOOLS.FTC, to the group directory.
       
  1327 	2)	Added William's new version of E32UID.CPP which no longer requires
       
  1328 		WINDOWS.H.
       
  1329 	3)	Added William's new UIDCRC.EXE, which provides a simple way to calculate
       
  1330 		the checksum:
       
  1331 
       
  1332 			uidcrc <uid1> <uid2> <uid3> [<outputfile>]
       
  1333 
       
  1334 		This reads the three uids (using strtoul, so decimal and 0x9999 hex are 
       
  1335 		found), computes the checksum, and either prints the 4 hex values to standard
       
  1336 		output or creates <outputfile> as the 32 byte sequence which is the specified
       
  1337 		UIDs and checksum in little-endian byte order.
       
  1338 
       
  1339 
       
  1340 Version 1.00.121
       
  1341 ================
       
  1342 (Made by Alastair, 16.6.99)
       
  1343 
       
  1344 1)	Alastair
       
  1345 	1)	Fixed EDN459831 "Wveconv help is out of date" .
       
  1346 	2)	Removed MAKTRAN, DEFMAKE and DEFTOOL.
       
  1347 	3)	Converted all projects to MAKMAKE building for the new TOOLS platform.
       
  1348 	4)	Changed zip of releasables onto the network - this is now called
       
  1349 		TOOLS.<ver> rather than E32TOOLS.<ver>.  It also contains full paths to
       
  1350 		the releasables so make sure you're in the root of your EPOC drive
       
  1351 		before calling, say, "getrel e32tools tools 121".
       
  1352 	5)	Updated MNT.CMD in various ways, including adding an MNT CHECKREL.
       
  1353 	6)	Added dopcvs.pl and lock.pl to GROUP directory for use with MNT.BAT.
       
  1354 
       
  1355 
       
  1356 Version 1.00.120
       
  1357 ================
       
  1358 (Made by Morgan, 30th March 1999)
       
  1359 
       
  1360 1)	Morgan
       
  1361 	1)	Fixed EDNGBON-46BQK4, "ROMBUILD "patched" keyword is broken".
       
  1362 		(merged in from ER5 release E32TOOLS 110)
       
  1363 	2)	Left a gap in the build numbers for ER5 maintenance releases
       
  1364 	3)	Introduced a new version of ROMMASK.EXE.  The syntax has changed
       
  1365 		from previous versions.  Type "ROMMASK" to see the new syntax.
       
  1366 		For example, to produce a 10Meg image split into 8 and 2,
       
  1367 		type the following:     
       
  1368 rommask -rom p2rom.img -output rom.img -log rom.log -size 10 -section 8 -section 2
       
  1369 		(You can leave off the final -section 2, and ROMMASK will do the
       
  1370 		calculations for you.)
       
  1371 		The output of Rommask will be "rom.log", and the 2 mask files
       
  1372 		"rom.img" and "rom.im2"
       
  1373 		ROMMASK still expects the image to contain a Psion 256byte header.
       
  1374 
       
  1375 
       
  1376 Version 1.00.100
       
  1377 ================
       
  1378 (Made by Morgan, 16th February 1999
       
  1379 
       
  1380 1)	Morgan
       
  1381 	1)	Added the keyword 'srecordbase' to change the base address of
       
  1382 		the motorola srecord output file.  (Defaults to address 0x0000)
       
  1383 	2)	Fixed srecord output for big and little endians.
       
  1384 	3)	Removed unused dependencies from MNT GETCOMPS
       
  1385 
       
  1386 
       
  1387 Version 1.00.099
       
  1388 ================
       
  1389 (Made by Jonathan, 8th February 1999)
       
  1390 
       
  1391 1)	Alastair
       
  1392 	1)	Edited PETRAN.MAK so that sources depend upon
       
  1393 	  	\Epoc32\Include\E32uid.h rather than ..\E32uid\E32uid.h. This
       
  1394 		change should complete the fixing of bug EDN057832 "E32Tools won't
       
  1395 		rebuild on my PC".
       
  1396 
       
  1397 2)	Jonathan
       
  1398 	1)	Fixed ROMBUILD defect EDN853437 "Dual Boot ROM does not function on
       
  1399 	  	Series 5" by applying Dennis' fix to fix up data as well as
       
  1400 	  	executables in dual-boot images.
       
  1401 
       
  1402 
       
  1403 Version 1.00.098
       
  1404 ================
       
  1405 (Made by Jonathan, 1st February 1999)
       
  1406 
       
  1407 1)	Petteri
       
  1408 	1)	Applied boilerplate copyright to sources.
       
  1409 
       
  1410 2)	Jonathan
       
  1411 	1)	Fixed copyright message in executables.
       
  1412 	2)	Removed odbc32.lib and odbccp32.lib from all .DSP and .MAK files
       
  1413 	  	since these libraries are neither required nor always installed.
       
  1414 
       
  1415 
       
  1416 Version 1.00.97
       
  1417 ===============
       
  1418 (Made by Alastair, 28th January 1999)
       
  1419 
       
  1420 1)	Alastair
       
  1421 	GENERAL
       
  1422 	1)	Created and added VC5 .DSP files for all projects for debugging.
       
  1423 	2)	Removed hard-coded drive letters from .DSP files.
       
  1424 	3)	Re-generated makefiles from .DSP files.
       
  1425 	4)	Reinstated E32UID directory containing files E32UID.CPP and STDAFX.H
       
  1426 		required for building ROMBUILD, PEDIFF and PETRAN.
       
  1427 	5)	Replaced hard-coded instances of 'R:' in MNT.CMD with '%s%'.
       
  1428 	MAKSYM
       
  1429 	1)	Added proper handling of two functions appearing at the same address in
       
  1430 		a ROM.
       
  1431 	2)	Removed an unnecessary destructor to prevent allocated memory being
       
  1432 		deleted twice.
       
  1433 	TMAKTRAN
       
  1434 	1)	Removed MAKTRAN tests.
       
  1435 	PEIGER, PREPRO
       
  1436 	1)	Removed these executables.  Previously MNT.CMD attempted to unzip these
       
  1437 		from S:\ptool\ and then zip them up again in the e32tools release zip
       
  1438 		file.  Plans are afoot to provide these tools elsewhere, since we no
       
  1439 		longer have access to S:.
       
  1440 
       
  1441 
       
  1442 Version 1.00.096
       
  1443 ================
       
  1444 (Made by Morgan, 21st January 1999)
       
  1445 
       
  1446 1)	Morgan
       
  1447 	GENERAL
       
  1448 	1)	Removed E32UID
       
  1449 	2)	Converted all makefiles to VC5
       
  1450 	3)	Built with VC5
       
  1451 	ROMBUILD
       
  1452 	4)	Rectified the drifting directory problem.  ROM images can now
       
  1453 		be reproduced and validated reliably.
       
  1454 	READTYPE
       
  1455 	5)	Removed definitions for "true" and "false" so readtype will
       
  1456 		compile with VC5.
       
  1457 
       
  1458 
       
  1459 Version 0.01.095
       
  1460 ================
       
  1461 (Made by Alastair, 18th August 1998)
       
  1462 
       
  1463 Morgan
       
  1464 ROMBUILD
       
  1465 1) Big-endian bug fix
       
  1466 
       
  1467 Alastair
       
  1468 DEFMAKE
       
  1469 1) Fixed Epoc S/W Problem SW1-141 - 'DEFMAKE adds an "E" to the end of
       
  1470    the generated DEF file'
       
  1471 ROMBUILD
       
  1472 1) Fixed Bluebell defect SW1-734 - "What do the tools have against August?".
       
  1473    A rom time of 08/08/2008 08:08:08 is now acceptable.
       
  1474 
       
  1475 
       
  1476 Version 0.01.094
       
  1477 ================
       
  1478 (Made by Jonathan, 10th June 1998)
       
  1479 
       
  1480 1)	Morgan
       
  1481 	ROMBUILD
       
  1482 	1)	Added extra info to log output.
       
  1483 
       
  1484 2)	Graham Asher
       
  1485 	READTYPE
       
  1486 	1)	New uniflds.txt and unidata2.txt from release 2.1 of the charater
       
  1487 		database from Unicode Inc. Many additions and corrections have been
       
  1488 		made. One of them fixes defect SW1-42 (User::UpperCase is wrong for
       
  1489 		Greek final sigma (03C2) in the Unicode build) in the EPOC32
       
  1490 		Software Problems database.
       
  1491 	2)	Changes to readtype.cpp to accommodate the new character categories
       
  1492 		in unidata2.txt.
       
  1493 
       
  1494 Version 0.01.093
       
  1495 ================
       
  1496 (Made by Morgan, 15th May 1998)
       
  1497 
       
  1498 1) Dennis
       
  1499     ROMBUILD
       
  1500 1)	Added support to ROMBUILD for multiple-boot ROMs:
       
  1501  a)	Added keywords 'singlekernel' and 'multikernel' to declare whether a
       
  1502 	single kernel ROM or multiple-kernel ROM is required (defaults to single).
       
  1503  b)	Added keyword 'variant' to declare which files define hardware variants;
       
  1504 	this keyword should be applied to the variant DLL (ECUST.DLL) of each
       
  1505 	hardware variant to be supported.
       
  1506  c)	Added keywords 'extension' and 'device'. These define kernel-mode DLLs
       
  1507 	which may have global data, the address of which is generated by ROMBUILD.
       
  1508 	'device' DLLs are simply LDDs or PDDs with global data.
       
  1509 	'extension' DLLs are not yet supported by E32.
       
  1510  d)	Files declared with one of the keywords
       
  1511 		{primary, file, data, dll, variant, extension, device}
       
  1512 	may have an additional hardware variant discriminator specified by means
       
  1513 	of the syntax
       
  1514 		file[0x05040001]=filename
       
  1515 	The hardware variant discriminator (HWVD) is an 8-digit hex number whose
       
  1516 	purpose is to specify which hardware variants the file is relevant to.
       
  1517 	The top 16 bits indicate which conceptual layer the file belongs to:
       
  1518 		0100=independent - file is required by all hardware variants
       
  1519 		xx03=CPU-specific - file is required by all variants with same CPU
       
  1520 		yyxx=ASIC/variant specific - file is required by all variants with
       
  1521 			 CPU xx and ASIC yy.
       
  1522 
       
  1523 	The bottom 16 bits are only relevant in the last of these three cases.
       
  1524 	They form a bit mask indicating which specific variants the file is
       
  1525 	required for. A file declared with the variant keyword must be totally
       
  1526 	variant-specific, i.e. must have only one bit set in the bit mask.
       
  1527 	If the HWVD is not specified, a value of 01000000 is assumed, which means
       
  1528 	that the file appears in all hardware variants.
       
  1529 
       
  1530 	Examples (from forthcoming Bluebell/Protea upgrade ROM):
       
  1531 
       
  1532 	primary[0504ffff] - kernel for EIGER
       
  1533 	primary[0706ffff] - kernel for WINDERMERE (different CPU core and ASIC)
       
  1534 	variant[05040001] - variant DLL for PROTEA
       
  1535 	variant[07060001] - variant DLL for BLUEBELL v.1
       
  1536 	variant[07060002] - variant DLL for BLUEBELL v.2 (for illustration)
       
  1537 
       
  1538 	Static linkage between files is now restricted by the HWVDs of those
       
  1539 	files. It is possible for file A to link statically to file B iff
       
  1540 	{variants V | V requires A} is a subset of {variants V | V requires B}.
       
  1541 	For the example above, variant[0x05040001] can link to primary[0x0504ffff]
       
  1542 	but not the other way round.
       
  1543 
       
  1544 	It is possible to have two or more files of the same name in the same
       
  1545 	directory provided that they have HWVDs which are mutually exclusive, so
       
  1546 	that the two files can never appear on the same machine. The HWVD is used
       
  1547 	to determine which of the files to use to resolve any static linkage.
       
  1548 
       
  1549  e)	The ROM file system now has multiple root directories and directory trees,
       
  1550 	one for each hardware variant supported by the ROM. This automatically
       
  1551 	ensures that F32 only sees the files which are relevant to the hardware
       
  1552 	on which it is running.
       
  1553 
       
  1554  f) DLLs declared with one of the keywords {variant, device, extension} can
       
  1555 	have global data (.data and .bss) which will be allocated in the kernel
       
  1556 	static data chunk after the kernel data itself.
       
  1557 
       
  1558 2)	The 'fixed' flag is now propagated through from PETRAN.
       
  1559 
       
  1560 3)	The 'kernstackaddress' keyword is now optional - if it is not present in
       
  1561 	the obey file, ROMBUILD uses a default value of 
       
  1562 	kerneldataaddress + Round(kernel-mode dataBss size) +
       
  1563 		Sum over all fixed .EXEs(Round(DataBss size of .EXE file))
       
  1564 	where Round(x) rounds up to the PDE size (1Mb on ARM).
       
  1565 
       
  1566 
       
  1567 Version 0.01.092
       
  1568 ================
       
  1569 (Made by Morgan, 25th February 1998)
       
  1570 
       
  1571 ROMBUILD
       
  1572 1) Fixed the 'code-align' file attribute
       
  1573 2) Forced the image file size to a multiple of 4k for the good of Rome.
       
  1574 
       
  1575 
       
  1576 Version 0.01.091
       
  1577 ================
       
  1578 (Made by Alastair, 18th February 1998)
       
  1579 
       
  1580 Removed MAKMAKE and BLDMAKE - these tools are now part of
       
  1581 new project E32TOOLP.
       
  1582 
       
  1583 
       
  1584 Version 0.01.090
       
  1585 ================
       
  1586 (Made by Morgan, 13th February 1998)
       
  1587 
       
  1588 ROMBUILD
       
  1589 1)	Added support for 'fix'ing LDDs with global static data in Rom.
       
  1590 2)	The 'file=' specifier now honours the KNoCallEntryPoints flag in
       
  1591 	the image header (as set by PETRAN).  This means all 'dll='
       
  1592 	specifiers should be changed to 'file=' and MAKMAKE used to
       
  1593 	control the entrypoint behaviour with the CALLDLLENTRYPOINTS
       
  1594 	keyword.
       
  1595 3)	Added a '-no-header' switch to suppress the Rom loader header.
       
  1596 
       
  1597 
       
  1598 Version 0.01.089
       
  1599 ================
       
  1600 (Made by Alastair, 9th February 1998)
       
  1601 
       
  1602 DEFMAKE
       
  1603 1)  Changed defmake.exe so that it processes freeze files without
       
  1604     carraige returns at the end of the last line correctly. 
       
  1605     Fixes SW1-803.
       
  1606 2)  Put in warning for unfrozen exports.
       
  1607 
       
  1608 MAKMAKE
       
  1609 1)  Changed the warning generated if parameters appear with the
       
  1610     NOSTRICTDEF keyword so that it doesn't just appear when MAKMAKE
       
  1611     is invoked with the -V flag.  The NOSTRICTDEF keyword,
       
  1612     if required, should be used in addition to the DEFFILE keyword,
       
  1613     not instead of it.
       
  1614 2)  Intermediate deffiles created by command-line makefiles no
       
  1615     longer have the basename extensions, eg D for narrow debug,
       
  1616 	if the NOSTRICTDEF keyword is specified.	
       
  1617 2)  Added warning for any SUBPROJECT keyword appearing before a
       
  1618     project has been specified with the PROJECT keyword.  This
       
  1619     is now necessary because MAKMAKE now stores SUBPROJECT directories
       
  1620     as absolute paths rather than paths relative to the PROJECT directory.
       
  1621     If a SUBPROJECT statement specifies a directory beginning with a
       
  1622     backslash, it will be treated as an absolute directory; otherwise
       
  1623     it will be treated as a directory relative to the PROJECT directory,
       
  1624     as before.
       
  1625 3)  Added warnings for the non-existence of SYSTEMINCLUDE, USERINCLUDE,
       
  1626     \PROJECT, SUBPROJECT and \PROJECT\SUBPROJECT directories.
       
  1627 4)  Put in START WINS .. END block option, NOBROWSEINFO, which can
       
  1628     be used to stop generation of .SBR and .BSC files for command-line
       
  1629     WINS and WINC builds.
       
  1630 5)  Changed MAKMAKE.BAT so that the help for the batch command "CALL"
       
  1631     is no longer produced if MAKMAKE /? is typed.
       
  1632 6)  Moved all makmake releasables out of \epoc32\tools\makmake into
       
  1633     \epoc32\tools.
       
  1634 7)  Changed MAKMAKE.BAT over to using the -S PERL switch so that the
       
  1635     system path is searched for MAKMAKE.PL, then MAKMAKE.PL searches
       
  1636     for the modules it depends upon in whichever \epoc32\tools is
       
  1637     specified in the system path.  This means that makmake can be
       
  1638     installed on one drive and called to operate on .MMP files from
       
  1639     another.
       
  1640 8)  The second UID for targettypes APP, LDD and PDD will now be added
       
  1641     if not present.
       
  1642 9)  Restructured MAKMAKE and moved some functionality into new modules
       
  1643     to facilitate code reuse.  MAKMAKE and BLDMAKE now depend upon the
       
  1644     following shared modules
       
  1645     PARSECOM.PM, E32ENV.PM, E32TVER.PM, MODLOAD.PM, PATHUTL.PM, PREPFILE.PM.
       
  1646     MMP.PM and GENUTL.PM are currently only used by MAKMAKE but may be
       
  1647     useful for other purposes in the future.
       
  1648 10)  Renamed MAKPREP.PM MAKDEPS.PM.
       
  1649 
       
  1650 
       
  1651 BLDMAKE
       
  1652 1)  Added warning that BLDMAKE ALL won't create batchfiles for preparing
       
  1653     IDE makefiles.
       
  1654   
       
  1655 
       
  1656 Version 0.01.088
       
  1657 ================
       
  1658 (Made by Morgan, 29th January 1998)
       
  1659 
       
  1660 MAKMAKE
       
  1661 1)	Inserted '-bigendian' on the PETRAN command line for BE builds
       
  1662 
       
  1663 PETRAN and ROMBUILD
       
  1664 1)	Added -bigendian switches to both tools
       
  1665 
       
  1666 From Simon Lewis
       
  1667 1)	Added a new file attribute 'code-align' to ROMBUILD
       
  1668 2)	Added the switches '-align-const-section' and
       
  1669 	'const-section-address-mask' to PETRAN
       
  1670 
       
  1671 
       
  1672 Version 0.01.087
       
  1673 ================
       
  1674 (Made by Alastair, 23th January 1998)
       
  1675 
       
  1676 MAKMAKE
       
  1677 1)  Changed paths within created makefiles so that they are relative
       
  1678     to the directory where MAKMAKE was invoked rather than relative
       
  1679     to the makefile.  If you are using the /D makmake command-line
       
  1680     flag and invoking makmake from directory \[project]\group there
       
  1681     is therefore no longer a need to change directory to
       
  1682     \Epoc32\Make\[platform] before calling NMAKE.
       
  1683 
       
  1684 2)  Deffiles created by the build process in the build directories
       
  1685     now have the build-variant dependent U, D, and UD suffixes, and
       
  1686     are removed by a makmake -clean.
       
  1687 
       
  1688 3)  Changed handling of EXEDLL targettypes so that they can export
       
  1689     functions under MARM.  MAKMAKE will expect EXEDLL targettypes to
       
  1690     be function exporters for MARM if a deffile is specified in the
       
  1691     MMP file, otherwise it will make no use of the intermediate deffile
       
  1692     created during the build process.  This means that, until a fix for
       
  1693     dlltool becomes available from Cygnus, the first time functions are
       
  1694     frozen for EXEDLL targettypes for MARM it is necessary to build once,
       
  1695     put a deffile statement for MARM in the MMP file, put the intermediate
       
  1696     deffile where the MMP deffile statement expects the freeze file to be,
       
  1697     and build once again so that the target is frozen by ordinal.
       
  1698 
       
  1699 4)  Changed MAKMAKE warnings so they go to STDERR rather than STDOUT.
       
  1700 
       
  1701 5)  Added LONGBLDPATH keyword to MAKMAKE which inserts an extra directory
       
  1702     into the build path for a project.  The extra directory may be
       
  1703     specified as a parameter to the new keyword but will default
       
  1704     to the basename of the MMP file if the keyword is specified
       
  1705     without a parameter.
       
  1706 
       
  1707 6)  Added new TARGETTYPE, LIB, for creating static libraries.  This
       
  1708     is not yet implemented for MSVC5.0.  The object file compiled
       
  1709     from the first source file specified in the mmpfile is copied
       
  1710     into the target directory and given the same basename as the
       
  1711     target.  The behaviour for this keyword is not yet finalised.
       
  1712 
       
  1713 7)  Added new TARGETTYPE, IMPLIB, for creating import libraries
       
  1714     for DLLs with mutual imports.  Specify a new MMP file for
       
  1715     one of the DLLs, give the name of the DLL as the argument
       
  1716     for the TARGET keyword (so that the .LIB produced contains
       
  1717     the right DLL name) and set the TARGETTYPE as IMPLIB.
       
  1718     This is not yet implemented for IDE makefiles and the behaviour
       
  1719     for this keyword is not yet finalised.
       
  1720 
       
  1721 8)  Added handling of Win32 Resource files to command-line WINS
       
  1722     and VC4 and VC5 makefiles because the kernel uses one.
       
  1723 
       
  1724 9)  Added new MARM MMP file keywords to cater for unusual scenarios
       
  1725     START MARM
       
  1726     ALLOWDLLDATA // for dlls requiring static data
       
  1727 	DATALINKADDRESS [address] // for relocation address for dll data
       
  1728     DLLNAME [dll basename for linking] // for dlls which are built
       
  1729     // as one thing but linked in the ROM as another
       
  1730 	STACKSIZE // for stack size other than the default
       
  1731     END
       
  1732 
       
  1733 10) Added new module SARMBE.PM for creating big-endian single-process
       
  1734     arm makefiles
       
  1735 
       
  1736 11) Implemented more stringent checking of the format of UIDs in mmp files
       
  1737     and made sure dlls with null uids link as mydll.dll rather than
       
  1738     mydll[00000000].dll for consistency with rombuild.
       
  1739 
       
  1740 12) Made all relative paths in VC4 and VC5 makefiles absolute.
       
  1741 
       
  1742 BLDMAKE
       
  1743 1)  Added new perl tool, bldmake, which creates batch files to
       
  1744     control the building of E32 and F32.  Type bldmake without
       
  1745     any parameters for options.
       
  1746 
       
  1747 
       
  1748 Version 0.01.086
       
  1749 ================
       
  1750 (Made by Alastair, 5th January 1998)
       
  1751 
       
  1752 DEFMAKE
       
  1753 1)  Added .E32_UID and .rsrc to the list of recognised sections so that,
       
  1754     eg, "WARNING: Section '.E32_UID' removed" no longer appears during
       
  1755     WINS builds.
       
  1756 
       
  1757 MAKMAKE
       
  1758 1)  Changed cl_arm.pm and cl_win.pm so that makmake -clean will remove
       
  1759     resource headers from \Epoc32\Include if a resource file is specified.
       
  1760 
       
  1761 Version 0.01.085
       
  1762 ================
       
  1763 (Made by Alastair, 9th December 1997)
       
  1764 
       
  1765 MAKMAKE
       
  1766 1)  Removed automatic addition of kernel32.lib and libc.lib to list
       
  1767     of Win32 libraries for WINC EXE targettypes as this addition is
       
  1768     apparently unnecessary.
       
  1769 
       
  1770 
       
  1771 Version 0.01.084
       
  1772 ================
       
  1773 (Made by Alastair, 9th December 1997)
       
  1774 
       
  1775 MAKMAKE
       
  1776 1)  Changed handling of targettype EXE for WINC, VC4WINC and VC5WINC
       
  1777     platforms so that the LINK.EXE flag /subsystem:console is used
       
  1778     rather that /subsystem:windows, and kernel32.lib and libc.lib
       
  1779     are automatically added to the list of Win32 libraries to be linked
       
  1780     to.
       
  1781 
       
  1782 2)  Targettypes LDD and PDD makefiles for MSVC IDEs now require the
       
  1783     presence of \epoc32\include\lddwins.def and \epoc32\include\pddwins.def
       
  1784     respectively.
       
  1785 
       
  1786 
       
  1787 Version 0.01.083
       
  1788 ================
       
  1789 (Made by Alastair, 20th November 1997)
       
  1790 
       
  1791 Some Makmake Bug Fixes
       
  1792 1)  Makmake invoked with the /CLEAN flag will now erase the autouid
       
  1793     object file if the Win32 autouid keyword is used.
       
  1794 
       
  1795 2)  Makmake now uses the environmental variable "INCLUDE" rather
       
  1796     than "MsDevDir" to decide which standard include directories
       
  1797     should be searched for Win32 header files if a project is
       
  1798     linking to Win32 libraries, so that the wrong standard
       
  1799     include directories aren't searched when creating MSVC5
       
  1800     project files.
       
  1801     Fixes SW1-698.
       
  1802 
       
  1803 3)  Fixed bug caused by CPP inserting a space after expanding
       
  1804     macros in .mmp files by taking the space out again.  This was
       
  1805     causing problems where, for example, a path specified as
       
  1806     "\EPOC32\RELEASE\WINS\APP.DEF" in the .mmp file would become
       
  1807     "\EPOC32\RELEASE\WINS \APP.DEF" after preprocessing prior
       
  1808     to creating a WINS makefile.  Lower case paths were not
       
  1809     affected.
       
  1810 
       
  1811 4)  Replaced link.exe flag
       
  1812     /EXPORT:?NewApplication@@YAPAVCApaApplication@@XZ,@1,NONAME
       
  1813     in VC4 and VC5 makefiles where the targettype is APP with the
       
  1814     flag /def:\EPOC32\RELEASE\WINS\APP.DEF, because the former flag
       
  1815     failed to ensure that the function in question was exported
       
  1816     at ordinal one.  This solution means that if no deffile is
       
  1817     specified in the .mmp file for an APP, \EPOC32\RELEASE\WINS\APP.DEF
       
  1818     must be present for the project to link.  Command-line Win32
       
  1819     makefiles will link properly without the presence of APP.DEF
       
  1820     because they use a defmake flag to ensure the function is
       
  1821     exported at the right ordinal.
       
  1822     Targettypes LDD and PDD will link by name in MSVC until
       
  1823     their deffiles are released to
       
  1824     \epoc32\release\wins or somewhere else suitable. 
       
  1825 
       
  1826 Version 0.01.082
       
  1827 ================
       
  1828 (Made by Alastair, 12th November 1997)
       
  1829 
       
  1830 MAKMAKE
       
  1831 1)  Added link-libraries and e(dll|exe) object as dependencies of
       
  1832     main target.  This cannot be done for MSVC IDE makefiles.
       
  1833     Fixes SW1-565.
       
  1834 
       
  1835 2)  Added new targettypes LDD and PDD.  A frozen first ordinal export,
       
  1836     the respective gate funtion for the targettype, is specified for
       
  1837     these targettypes and for targettype APP if no deffile is specified
       
  1838     for the project, otherwise the deffile controls the order of
       
  1839     exported functions.  This applies for all supported platforms.  Apart
       
  1840     from this feature, projects specifying one of these targettypes build
       
  1841     in the same way as projects with targettype DLL.
       
  1842     Fixes SW1-666.
       
  1843 
       
  1844 3)  Changed MAKMAKE help information so that the build version appears and
       
  1845     a list of platform choices appears.  This list of platforms is produced
       
  1846     by a search of .PM modules in \EPOC32\TOOLS\MAKMAKE for the comment line
       
  1847     "# Can call in makmake command line".  If the line is present in the module
       
  1848     then the basename of the module is added to the list.  This is a cheap way
       
  1849     of producing a list of available platforms while preserving MAKMAKE's
       
  1850     extensibility, and doesn't involve the loading of every .PM module and all
       
  1851     the modules that each one of those depends on.
       
  1852         The module controlling MAKMAKE help is loaded only when required and
       
  1853     provides a brief guide to MMP file syntax if makmake is invoked
       
  1854 	    MAKMAKE /MMP {PLATFORM}
       
  1855     If PLATFORM is specified, syntax for the START .. END block relating to
       
  1856     the platform is displayed as well as platform-independent MMP syntax.
       
  1857     Fixes SW1-653.
       
  1858 
       
  1859 4)  The macros "WIN32" and "_WINDOWS" are now only used in compilation by MAKMAKE-
       
  1860     generated Win32 makefiles if the project's MMP file states that the project
       
  1861     needs to link to Win32 libraries by listing the libraries it needs with the
       
  1862     WIN32_LIBRARY keyword in a Win32 START .. END block. 
       
  1863     Fixes SW1-652.
       
  1864 
       
  1865 5)  New MMP file keyword - OBJECT - is available.  This keyword is intended to
       
  1866     be used by projects having access not to the source files but only the compiled
       
  1867     code for certain objects.  Specify the basename of the object only.  Created Win32
       
  1868     makefiles will expect object <basename>.OBJ to exist in the build directories
       
  1869     for a project, while MARM makefiles will look for <basename>.o.  These object
       
  1870     files will appear in the dependency list for the main target in command-line
       
  1871     makefiles - this is not possible in MSVC IDE makefiles.
       
  1872 
       
  1873 6)  Command-line makefiles now contain extra targets MAKEWORK, MAKEWORKDEB,
       
  1874     MAKEWORKREL, etc.  The build-specific targets are included in the list of
       
  1875     dependencies for the main makefile build-specific target, so that work
       
  1876     directories will be automatically created when building with command-line
       
  1877     makefiles if these directories do not already exist.  The new targets could
       
  1878     also be used to make the work directories for a project with NMAKE
       
  1879         e.g.  NMAKE /f <command line makefile> MAKEWORK
       
  1880     would create all the makefiles for a project for all builds.
       
  1881 
       
  1882 7)  Win32 command line makefiles now generate SBR and BSC browse files for DEBUG
       
  1883     builds so that if a DEBUG build of a project has already been done with a Win32
       
  1884     command line makefile, subsequent building of the DEBUG build of the project
       
  1885     within the MSVC IDE will not recompile everything to generate the browse files.
       
  1886 
       
  1887 8)  Added new module MAKPREP.PM to handle everything relating to MAKMAKE's use of
       
  1888     \EPOC32\GCC\BIN\CPP.EXE to generate lists of dependencies for source files.
       
  1889     This module now identifies missing system and user headers -
       
  1890           - if missing system headers have the extension .RSG or .MBG, the header is
       
  1891         listed as existing in \EPOC32\INCLUDE, so there is no longer a need for
       
  1892         MAKMAKE to generate a dummy resource header in \EPOC32\INCLUDE to fool CPP.
       
  1893           - platform modules can specify standard directories to search for missing
       
  1894        system headers.  This means, e.g., Win32 makefiles can specify the MSDEV include
       
  1895        directory for those projects linking to Win32 libraries.  If the missing system
       
  1896        header is found by the module in the standard directory, it will be left out
       
  1897        of the dependency list since the MSVC tools will know where to find it and it
       
  1898        can be trusted to be there and unchanged.
       
  1899           - if a missing system header fails to satisfy both the above tests then
       
  1900        makmake will issue a warning since the generated makefile will probably fail to
       
  1901        build.
       
  1902  	      - a warning is issued for any user headers not found in the user include or
       
  1903        system include paths, where the user include path is the source directory if no
       
  1904        user include paths are specified explicitly.
       
  1905 
       
  1906 9)  Processing of MMP files now involves a lot more syntax checking and produces
       
  1907     corresponding warnings, especially if MAKMAKE is invoked with the -V switch.
       
  1908 
       
  1909 10) MAKMAKE will now automatically generate WINS uid source files when creating Win32
       
  1910     makefiles, but only if the new keyword - AUTOUID - is specified in a Win32 START ..
       
  1911     END MMP file block.  The keyword is necessary since LINK.EXE would fail for projects
       
  1912     which already specified UIDS in the source code, so remove WINS UID specification in
       
  1913     the project's source code before using AUTOUID.  MAKMAKE works out UID 1 from a
       
  1914     project's targettype and takes UIDs 2 and 3, if specified, from the MMP file.  It
       
  1915     then creates the UID source file in the same directory as the MAKEFILE it is to create
       
  1916     with the name "<target basename>.UID.cpp".  The source file will look something like this
       
  1917 
       
  1918         // Makmake-generated uid source file
       
  1919         #include <E32STD.H>
       
  1920         #pragma data_seg("E32_UID")
       
  1921         __WINS_UID(0x10000079,0x1000008D,0x100002C3)
       
  1922         #pragma data_seg()
       
  1923 
       
  1924 	The file will be created only if it doesn't already exist or if it is older than the
       
  1925     project's MMP file.
       
  1926 
       
  1927 11) In MARM makefiles, multiple calls to GNU tool "ar" to archive the object files for
       
  1928     a project prior to linking have been replaced by a single call to ar.  The single
       
  1929     call passes a script listing the object files to ar.  This changes speeds up the
       
  1930     archiving stage of MARM building considerably.
       
  1931 
       
  1932 12) Renamed MAKMAKE.CMD MAKMAKE.BAT for Windows 95 compatibility.
       
  1933 
       
  1934 13) Changed MSVC5 dependency generation to be the same as for other platforms,
       
  1935     but with system headers stripped out of the list later.  Before, vc5 dependencies
       
  1936     called CPP such that only user headers were generated.  This change means that
       
  1937     CPP will no longer fail if one of the user headers is expecting a macro definition
       
  1938     from a system header and forcing CPP to fail if it doesn't get it.
       
  1939 
       
  1940 14) Replaced relative with absolute filepaths where possible in CL_WIN.PM.
       
  1941 
       
  1942 15) Changed \e32tools\makmake\makmake.mak so that debug utilities like
       
  1943 	the perl -w switch and use of module strict.pm apply for "DEB" builds.
       
  1944     of MAKMAKE only.
       
  1945 
       
  1946 16) Added SARM.PM module to be used by the base for building SARM makefiles.
       
  1947 
       
  1948 17) Improved path utilities module MAKPATH.PM to do more error checking
       
  1949     and handle extra functions.
       
  1950 
       
  1951 GROUP
       
  1952 1)  Changed e32tools\group\mnt.cmd so that makmake is released in a way more similar
       
  1953     to other e32tools project - from \epoc32\build\e32tools\makmake\rel.
       
  1954 
       
  1955 
       
  1956 Version 0.01.081
       
  1957 ================
       
  1958 (Made by Morgan, 4th November 1997)
       
  1959 
       
  1960 ROMBUILD
       
  1961 1)	Added fixed keyword for use with EXE files. This keyword results in the
       
  1962 	file being loaded as a fixed address process. The data section base address
       
  1963 	is allocated in the region between the kernel data address and the kernel
       
  1964 	stack address. The multiprocess keyword can be used to specify the chunk
       
  1965 	size; it defaults to 1Mb.
       
  1966 
       
  1967 PETRAN
       
  1968 1)	Added -fixed and -moving options which set and clear KImageFixedAddressExe
       
  1969 	flag respectively.
       
  1970 
       
  1971 2)	Added the following switches
       
  1972 		-heap <min> <max>
       
  1973 		-allowdlldata
       
  1974 		-datalinkaddress <base>
       
  1975 
       
  1976 MAKSYM
       
  1977 1)	Removed duplicate function address error message.
       
  1978 
       
  1979 
       
  1980 Version 0.01.080
       
  1981 ================
       
  1982 (Made by Alastair, 30th September 1997)
       
  1983 
       
  1984 MAKMAKE
       
  1985 1)	Changed Makmake.pl so that if a project uses a resource file
       
  1986 	and the resource header file is not yet present in \epoc32\include
       
  1987 	a dummy header file will be created there so that MAKMAKE's generation
       
  1988 	of dependencies does not assume that the missing header file is
       
  1989 	in some other location.
       
  1990 
       
  1991 2)	Changed /Fd compiler flag in Ide_vc4.pm so that pdb files have the right
       
  1992 	name rather than vc40.pdb. 
       
  1993 
       
  1994 
       
  1995 Version 0.01.079
       
  1996 ================
       
  1997 (Made by Morgan, 22nd September 1997)
       
  1998 
       
  1999 ROMBUILD
       
  2000 1)	Integrated the code for building ROMs for the single process
       
  2001 	version of E32.  Currently this code is protected with a
       
  2002 	__SINGLE__ macro.
       
  2003 	Use the keyword 'singleprocess <ChunkSize>' to generate a
       
  2004 	single process ROM.  Default is 'multiprocess'.
       
  2005 
       
  2006 
       
  2007 Version 0.01.078
       
  2008 ================
       
  2009 (Made by Alastair, 15th September 1997)
       
  2010 
       
  2011 MAKMAKE
       
  2012 
       
  2013 0)	Forget to say about release 077 that \[project]\bwinc is the default
       
  2014 	directory for which WINC def files are searched if the file specified
       
  2015 	with the DEFFILE keyword has no path.
       
  2016 
       
  2017 1)	Improved MMP file reading so that a warning is generated if MAKMAKE
       
  2018 	ignores a line because it doesn't recognise the syntax.
       
  2019 
       
  2020 2)	Makmake.pl - added new code to trap dependency generation errors.
       
  2021 
       
  2022 3)	Makmake.pl - minor changes required to support creation of MSVC5 project
       
  2023 	files.
       
  2024 
       
  2025 4)	Added new modules VC5.PM and VC5WINC.PM to support MSVC5.  These modules
       
  2026 	will create .DSP MSVC5 project control files.  When an MSVC5 .DSP file is
       
  2027 	created with makmake project files with the following extensions will be
       
  2028 	deleted - .dsw,.mak,.mdb,.ncb,.opt,.plg.  The new features of MSVC5 which
       
  2029 	distinguish between header files belonging to the project and system header
       
  2030 	files are supported.
       
  2031 
       
  2032 5)	Added new module MISA.PM to support MISA command-line makefiles.
       
  2033 
       
  2034 6)	Tidied up VC4.PM.
       
  2035 
       
  2036 7)	Changed MAKMAKE internal structure so that implementaion modules can
       
  2037 	share modules controlling the layout of the makefile and other common
       
  2038 	features.  This change does not affect the way that MAKMAKE is invoked.
       
  2039 
       
  2040 		VC5.PM and VC5WINC.PM share IDE_VC5.PM
       
  2041 		VC4.PM and VC4WINC.PM share IDE_VC4.PM
       
  2042 		WINS.PM and WINC.PM share CL_WIN.PM
       
  2043 		MARM.PM and MISA.PM share CL_ARM.PM
       
  2044 
       
  2045 8)	Changed CL_WIN.PM and CL_MARM.PM to use an inline batch file in the
       
  2046 	makefile for calling fc4bat to decide whether a resource header file
       
  2047 	needs rewriting or not.  Previously, if fc4bat returned an error to
       
  2048 	indicate that the header file should be rewritten, nmake would die.
       
  2049 
       
  2050 9)	Added Makmake.mak to \e32tools\makmake\ for building makmake source to
       
  2051 	\epoc32\tools and \epoc32\tools\makmake in a way similar to C++ projects.
       
  2052 
       
  2053 10)	Changed all .PM modules to ensure that they return a true value
       
  2054 	when loaded successfully.
       
  2055 
       
  2056 E32TOOLS MNT
       
  2057 
       
  2058 1)	Changed e32tools.rel file so that readtype.exe is released.
       
  2059 
       
  2060 2)	Updated MNT MAKEWORK and MNT GETBLD so that PGETBLD and MNT BLDALL will
       
  2061 	now work on a clean drive.  Changed readtype.mak so that it searches
       
  2062 	\epoc32\include rather than \e32\inc for system header files.
       
  2063 	File \e32\inc\unicode.h needs to be listed in e32\inc\incc.prj 
       
  2064 	at some point.
       
  2065 
       
  2066 3)  Modernised MNT BLDALL so that NMAKE is invoked with the /nologo flag.
       
  2067 
       
  2068 4)	Modernised MNT VALID so that pediff is used instead of fc /b for binary
       
  2069 	file comparison.  Makmake is now included and e32uid.exe removed since it's
       
  2070 	not used or released.
       
  2071 
       
  2072 
       
  2073 Version 0.01.077
       
  2074 ================
       
  2075 (Made by Alastair, 8th September 1997)
       
  2076 
       
  2077 MAKMAKE
       
  2078 
       
  2079 1)	Changed 1st stage of linking (by name) for WINS command-line builds so that
       
  2080 	linking is not attemped incrementally to stop unnecessary warning appearing.
       
  2081 
       
  2082 2)	Added two new modules, WINC.PM and VC4WINC.PM, for use in creating WINC
       
  2083 	command-line and IDE makefiles respectively.  For command-line makefiles,
       
  2084 	type "makmake {options} [project] WINC;  for IDE makefiles, type
       
  2085 	"makmake {options} [project] VC4WINC.  DIfferences between WINC and WINS
       
  2086 	makefiles are slight - WINC appears where WINS would otherwise appear, and
       
  2087 	WINC source files are preprocessed with the macros "__WINC__" and "__XCON__"
       
  2088 	defined as well as all the usual WINS macros including "__WINS__".  Note that,
       
  2089 	in line with the macro scheme applied to source files, MAKMAKE will preprocess
       
  2090 	XXX.MMP files with macros "WINS" AND "WINC" defined when creating WINC makefiles,
       
  2091 	so keywords within "#if defined(WINS) ... #endif" and "START WINS ... END" blocks
       
  2092 	will apply for WINC builds too.  This scheme required changes to the way
       
  2093 	MAKMAKE.PL processes START ... END blocks.
       
  2094 
       
  2095 3)	Removed possibility of passing extra macros to makmake for preprocessing XXX.MMP
       
  2096 	files - this possibility was never documented and has never been requested so
       
  2097 	is now presumed unnecessary.
       
  2098 
       
  2099 4)	Introduced keyword option which, if specified in XXX.MMP files, will cause
       
  2100 	MAKMAKE to search for the same deffile for all build variants rather than
       
  2101 	several files differentiated by suffixes "U","D" and "UD".	The new keyword
       
  2102 	is "NOSTRICTDEF", originally enough.  Hopefully deffiles for LDDs and PDDs
       
  2103 	can soon be done away with by having targettypes for LDDs and PDDs and having
       
  2104 	MAKMAKE implementation modules pass the correct mangled names as 1st ordinal
       
  2105 	command-line option arguments to DEFTOOL and DEFMAKE instead.
       
  2106 
       
  2107 5)	Changed resource handling to be entirely compatible with eikrs.bat - the basename
       
  2108 	of XXX.RSS is used for XXX.R$(EPOCLANG) and all intermediate resource files.  This
       
  2109 	change still does not fix SW1-204, for which a spec decision regarding the handling
       
  2110 	of differing licensee resource file requirements is required.
       
  2111 	
       
  2112 
       
  2113 Version 0.01.076
       
  2114 ================
       
  2115 (Made by Alastair, 15th August 1997)
       
  2116 
       
  2117 MAKMAKE
       
  2118 
       
  2119 1)  Changed MARM and WINS modules so that rcomp is called to compile resources
       
  2120     directly rather than via eikrs.bat.  This change will mean that resources will
       
  2121     be compiled into the correct directory for MARM builds, and that the *.rss file
       
  2122 	need no longer be in the same directory as the makefile.  This change addresses
       
  2123 	SW1-204 and SW1-212.
       
  2124 2)  The STRICTDEF keyword is no longer recognised by makmake.  Its function in
       
  2125 	appending "D", "U", and "UD" to the base name of *.DEF files for DEB, UREL and
       
  2126 	UDEB builds is now carried out by default.  There should now be a *.def file for
       
  2127 	each of these build variants in use if any definition files are used at all.
       
  2128 	This change addresses SW1-196.
       
  2129 3)  Makmake.cmd has been improved.  If makmake fails, a basic perl operation will be
       
  2130 	attempted.  If this fails, the user will be asked if the correct version of perl
       
  2131 	is installed.  This change addresses SW1-345.
       
  2132 
       
  2133 Version 0.01.075
       
  2134 ================
       
  2135 (Made by Alastair, 24th July 1997)
       
  2136 
       
  2137 DEFTOOL (from William Roberts)
       
  2138 
       
  2139 1)	Modified DEFTOOL.CPP and DEFTOOL.H
       
  2140 	Basically just improved error reporting so that
       
  2141 	a)	When it tells you that there are "frozen ordinals missing from supplied
       
  2142 		def file" it also tells you which ordinal numbers have been lost.
       
  2143 	b)	If your DLL exports functions that weren't in the freeze file then it
       
  2144 		gives you a gentle warning, because that's not something which we'd 
       
  2145 		want to allow in a release.
       
  2146 
       
  2147 MAKMAKE
       
  2148 
       
  2149 1)	Changed makmake so that target makefile is created in the current
       
  2150 	working directory rather than the directory containing the *.mmp
       
  2151 	file.
       
  2152 2)  Added line of code to makpath.pm so that single dot directories
       
  2153 	are stripped from paths.
       
  2154 3)	Removed repeat occurrence of deffile flag in the link command for 
       
  2155 	*.wins makefiles.
       
  2156 4)	Changed RELGDB path macros for MARM makefiles so that they are prefixed
       
  2157 	with ".\" rather than "..\\..<absolute path to makefile directory>".
       
  2158 	This is a neater way to get them to expand to something textually different
       
  2159 	from REL path macros while still specifying the same path.
       
  2160 5)	Changed "ar q" lines within MARM makefiles to include 8 object files maximum
       
  2161 	rather than 4 - this should improve efficiency without breaking limits on
       
  2162 	command-line lengths.
       
  2163 6)	Changed WINS.PM so that the $(LINK_OBJS) macro is used in the link command line
       
  2164 	in *.wins makefiles rather than a list of all the objects concerned.
       
  2165 7)	Changed MARM.PM so that the first stage of linking (by name) for a dll target
       
  2166 	creates the dll in the build directory rather than the release directory.
       
  2167 	The	second stage of linking (by number) creates a dll in the build directory
       
  2168 	rather than the release directory too, overwriting the first dll.  Finally,
       
  2169 	this target is petranned to the release directory and the dll left in the
       
  2170 	build directory is deleted. This change solves the problem of nmake thinking
       
  2171 	that the target has been successfully created when the build has failed
       
  2172 	anywhere between the first link stage and the petranning stage, because of
       
  2173 	the presence of an apparently up-to-date dll in the release directory.
       
  2174 8)	Changed WINS.PM similarly so that *.wins makefiles do a two-stage link.  Defmake
       
  2175 	is called between the two link stages with a "freeze" file if one is specified
       
  2176 	with the DEFFILE statement (see below).  The defmake-created def file is then
       
  2177 	used for the second-stage link (by number).  The first stage of linking creates
       
  2178 	the target dll in the intermediate directory while the second stage creates the
       
  2179 	final target dll in the target directory and the first dll is deleted.
       
  2180 9)	Removed /NAME flag from MAKMAKE - no longer necessary due to (8).
       
  2181 10)	Radically changed behaviour of MAKMAKE towards DEFFILE and FRZFILE statements
       
  2182 	within *.mmp files.  There is no longer handling of FRZFILE statements.  As
       
  2183 	before, if a DEFFILE statement is placed within an #if defined(WINS) ... #endif
       
  2184 	block, the statement will be used by both WINS and VC4 makefiles but not MARM
       
  2185 	makefiles, and vice versa if a #if defined(MARM) ... #endif block is used.  If
       
  2186 	the file specified has no path, the file is assumed to be in directory 
       
  2187 	\<project>\bwins\ for WINS and VC4 makefiles and \<project>\bmarm\ for MARM
       
  2188 	makefiles.  For VC4 makefiles, the specified file is passed to LINK.EXE as 
       
  2189 	before.  For WINS makefiles, the file is not used in the first stage of linking.
       
  2190 	Defmake is called and uses the file as a freeze file in the creation of a new
       
  2191 	deffile which will include any new exports produced by changes to the source code
       
  2192 	for the project.  The new deffile created is used in the second stage of linking.
       
  2193 	For MARM makefiles, the specified file works in much the same way as for WINS
       
  2194 	makefiles.
       
  2195 		In other words, the DEFFILE statement should now be used to specify "freeze"
       
  2196 	files.  WINS *.def files were in effect "freeze" files anyway.  The choice of
       
  2197 	"DEFFILE" rather than "FRZFILE" for the new statement within *.mmp file reflects
       
  2198 	the widespread understanding of "def" vocabulary outside Psion.  For more
       
  2199 	information, see the discussion on e32proposals - tools - makmake and frz files.
       
  2200 		The STRICTDEF keyword is still required if differently-named "freeze" files
       
  2201 	are required for different builds, but this requirement is under review together
       
  2202 	with potential default directories for components not using directories
       
  2203 	\<project>\bwins and \<project>\bmarm.  Note that if these directories are not
       
  2204 	being used and files specified with the DEFFILE statement include a path then is
       
  2205 	is essential to place DEFFILE statements with #if defines because WINS and VC4
       
  2206 	builds should never use the same "freeze" file as MARM builds due to the compilers
       
  2207 	mangling function names in different ways.
       
  2208 11)	A file specified with the DEFFILE statement is now put in the list of 
       
  2209 	dependencies for a target in WINS and MARM makefiles, but not yet VC4.
       
  2210 12)	Changed MAKMAKE to allow for use of the WINDOWS API.  If you are using this API,
       
  2211 	specify the windows libraries you wish to link to in *.mmp as follows
       
  2212 
       
  2213 	START WINS
       
  2214 	BASEADDRESS		0x43500000
       
  2215 	WIN32_LIBRARY	kernel32.lib gdi32.lib user32.lib
       
  2216 	END
       
  2217 
       
  2218 		ie, put the WIN32_LIBRARY statement somewhere in a START WINS ... END block
       
  2219 	and	list the libraries after it.  Please note that these START WINS ... END
       
  2220 	blocks are very different from #if defined(WINS) ... #endif blocks.  Makmake
       
  2221 	always preprocesses the *.mmp file when invoked, and later passes any text within
       
  2222 	START ... END blocks onto the perl module specific to the platform in question.
       
  2223 	When makmake is invoked with the VC4 argument, the *.mmp file is preprocessed
       
  2224 	the WINS macro defined.
       
  2225 13) Fixed bug causing AIF file subroutine to be ignored
       
  2226 14)	Fixed bug causing path specified with TARGETPATH statement to be left out of
       
  2227 	path to resource target for WINS makefiles.
       
  2228 15) Changed resource file building command so that the base name of the target
       
  2229 	resource file is the same as the base name of the releasable rather than
       
  2230 	the base name of the file specified with the RESOURCE or SYSTEMRESOURCE
       
  2231 	statement.
       
  2232 16) Changed name for target AIF from the base name of the releasable + ".aif" to
       
  2233 	the name specified by the AIF statement.
       
  2234 18)	Changed code designed to warn the user if the version of perl they are using
       
  2235 	is not supported by MAKMAKE so that it is activated before rather than after
       
  2236 	compilation - untested.
       
  2237 
       
  2238 
       
  2239 Version 0.01.074
       
  2240 ================
       
  2241 (Made by Alastair, 1st July 1997)
       
  2242 
       
  2243 MAKMAKE
       
  2244 1)  Fixed egregious error causing the content of LIBRARY
       
  2245     statements in *.MMP files to be ignored.  This error
       
  2246     is present in e32tools releases 071, 072 and 073.
       
  2247 
       
  2248 
       
  2249 Version 0.01.073
       
  2250 ================
       
  2251 (Made by Morgan, 18th June 1997)
       
  2252 
       
  2253 1) ROMBUILD
       
  2254    Added 'time' keyword for specifying the date/time stamp
       
  2255    in the rom header.
       
  2256    Syntax:
       
  2257       time=dd/mm/yyyy hh:mm:ss
       
  2258 
       
  2259    Added 'reloc' file attribute to specify user process
       
  2260    data run address for Exes.
       
  2261 
       
  2262    Added 'align' keyword to align files on particular
       
  2263    alignment boundries.
       
  2264 
       
  2265 
       
  2266 Version 0.01.072
       
  2267 ================
       
  2268 (Made by Alastair, 16th June 1997)
       
  2269 
       
  2270 MAKMAKE
       
  2271 1)  Added line of code to makmake.pl so that makmake will refuse
       
  2272 	to work with versions of PERL released prior to version 
       
  2273 	5.003_07   .  To find out what version of PERL you are using,
       
  2274 	type  perl -v<return>  in a DOS box.
       
  2275 
       
  2276 
       
  2277 Version 0.01.071
       
  2278 ================
       
  2279 (Made by Alastair, 9th June 1997)
       
  2280 
       
  2281 MAKMAKE
       
  2282 1)  Added new preprocessor macro, __PSISOFT32__, defined for all
       
  2283 	projects using MAKMAKE regardless of platform or build variant.
       
  2284 
       
  2285 
       
  2286 Version 0.01.070
       
  2287 ================
       
  2288 (Made by Matthew, 4th June 1997)
       
  2289 
       
  2290 Added new tool ROMMASK, for generating rom images suitable for masking.
       
  2291 
       
  2292 
       
  2293 Version 0.01.069
       
  2294 ================
       
  2295 (Made by Alastair, 4th June 1997)
       
  2296 
       
  2297 MAKMAKE
       
  2298 
       
  2299 1)      Fixed bugs causing _UNICODE macro to be output
       
  2300 	without the initial underscore by marm.pm and
       
  2301 	wins.pm.
       
  2302 
       
  2303 2)      Single call to gcc archiving tool "ar" replaced
       
  2304 	by multiple call to avoid overriding of command-line
       
  2305 	length limits for projects comprising many source
       
  2306 	files.
       
  2307 
       
  2308 3)      Fixed bug in \e32tools\makmake\mnt.cmd so that
       
  2309 	makpath.pm is copied to directory
       
  2310 	\epoc32\tools\makmake.
       
  2311 
       
  2312 
       
  2313 Version 0.01.068
       
  2314 ================
       
  2315 (Made by Alastair, 2nd June 1997)
       
  2316 
       
  2317 MAKMAKE
       
  2318 
       
  2319 1)      Removals
       
  2320 	makmake.txt - SDK documentation now available
       
  2321 	revmak.pl - redundant
       
  2322 	winsname.pm - redundant
       
  2323 
       
  2324 2)      Fixes
       
  2325 
       
  2326 a)      fixed dependency macro bug for VC4 platform
       
  2327 b)      fixed problem with mmp file specification of
       
  2328 	multiple subprojects
       
  2329 c)      Other minor bug fixes
       
  2330 
       
  2331 3)      Internal Changes
       
  2332 
       
  2333 a)      Improved generation of dependencies
       
  2334 b)      Improved path utility functions
       
  2335 c)      Moved path utility functions out of makmake.pl to
       
  2336 	new module "MAKPATH.PM"
       
  2337 d)      Other structural changes
       
  2338 
       
  2339 4)      Command-Line invocation
       
  2340 
       
  2341 a)      Platform VC4 can now be specified to produce MSVC4.0
       
  2342 	compatible makefiles - WINS platform now produces
       
  2343 	makefiles incompatible with MSVC4.0 allowing greater
       
  2344 	freedom for using nmake to build resource files, etc.
       
  2345 	*.MMP files will still be preprocessed with the "WINS"
       
  2346 	macro whether the platform is specified as WINS or VC4
       
  2347 b)      New flag "/clean" - deletes all non-source files for the
       
  2348 	project and platform specified.
       
  2349 c)      New flag "/lang [language]" - sets a language for the
       
  2350 	project and platform specified except for VC4.
       
  2351 d)      New flag "/name" - doesn't add any /def:[deffile]
       
  2352 	linker flags to WINS or VC4 makefiles.  No effect
       
  2353 	on MARM makefiles.  This flag makes linking-by-name
       
  2354 	builds possible for WINS.
       
  2355 e)      Flags can now be specified anywhere on the command-line
       
  2356 
       
  2357 5)      *.MMP Files
       
  2358 
       
  2359 a)      New keyword "LANG [language]" - sets a language for
       
  2360 	the project and platform specified except VC4.
       
  2361 	This setting is overridden if the command-line language
       
  2362 	flag is used.
       
  2363 b)      New keyword "AIF [*.aif file]" - specifies an application
       
  2364 	information file.  This keyword is subproject relative,
       
  2365 	and merely copies the *.aif file to the target directory
       
  2366 	at the moment (except for VC4).
       
  2367 c)      New keyword "BITMAP [*.mbm file] [*.bmp files]" - specifies
       
  2368 	a protea multi-bitmap target and compiles it to the target
       
  2369 	directory using bmconv on the windows bitmap files (except
       
  2370 	for VC4).  The keyword is subproject relative, so all
       
  2371 	windows bitmaps files specified are expected to reside in
       
  2372 	the current \PROJECT\SUBPROJECT directory.  This may not be
       
  2373 	the required behaviour.
       
  2374 d)      New "RESOURCE" keyword behaviour - eikrs.bat is invoked
       
  2375 	for MARM and WINS platforms to compile the resource specified
       
  2376 	to the target directory.  VC4 platform uses the keyword
       
  2377 	parameter for information only.  If a language is specified
       
  2378 	it is passed to eikrs.bat, defaults to "SC".
       
  2379 e)      New keyword "SYSTEMRESOURCE [*.rss file]" - subproject
       
  2380 	relative, behaves exactly as the RESOURCE keyword except
       
  2381 	that for WINS the target resource is compiled to directory
       
  2382 	\epoc32\release\wins\[build]\Z\system\data.  Ignored by
       
  2383 	VC4.
       
  2384 f)      New "TARGETTYPE" keyword option - "exedll".  This option
       
  2385 	can be used to specify a target which will be built as
       
  2386 	a dll under single-process platform WINS (or VC4), but as
       
  2387 	an exe for multi-process platform MARM.
       
  2388 g)      New keyword "STRICTDEPEND" - if specified, makmake will
       
  2389 	generate dependencies for each source or resource specified
       
  2390 	for all builds - DEB,UREL,RELGDB etc.  If sources are unlikely
       
  2391 	to specify different include header files for different
       
  2392 	builds then there is no need to specify this keyword and
       
  2393 	dependencies will be generated once only for each source
       
  2394 	file.
       
  2395 h)      New "DEFFILE" keyword behaviour.  This keyword is no longer
       
  2396 	platform-specific (within a "START [platform] ... END" block).
       
  2397 	If the deffile is specified without a path, then makmake
       
  2398 	will expect the deffile to live in directory "\PROJECT\BMARM"
       
  2399 	for the MARM platform, and in "\PROJECT\BWINS" for WINS or VC4.
       
  2400 	Note that currently the *.def file will be used in a call
       
  2401 	to dlltool in MARM makefiles as follows:-
       
  2402 		"dlltool --def [deffile] --output-def [created deffile]".
       
  2403 	This behaviour is required for at least one project, and
       
  2404 	different deffiles can be specified for different platforms
       
  2405 	using "#if defined [platform]" within *.mmp files.
       
  2406 i)      New keyword "FRZFILE [*.frz file]" - behaves the same as
       
  2407 	"DEFFILE" keyword as regards paths.  A specified freeze file
       
  2408 	is ignored by makmake when producing WINS or VC4 makefiles.
       
  2409 	The file is used by MARM makefiles as follows
       
  2410 		"ld -z [frzfile] [dlltool-created deffile]".
       
  2411 j)      New keyword "STRICTDEF" - if this keyword is specified then
       
  2412 	makmake assumes that, for each *.def or *.frz files specified,
       
  2413 	there are actually as many of these files as there are
       
  2414 	different build configurations for the project.  E.G. for
       
  2415 	WINS makefiles, if a deffile is secified in a *.mmp file as
       
  2416 	"DEFFILE mydef.def", then makmake will assume "mydefd.def",
       
  2417 	"mydefu.def" and "mydefud.def" for DEB, UREL, and UDEB builds
       
  2418 	respectively.  Though for MARM, a RELGDB build would look for
       
  2419 	plain "mydef.def".
       
  2420 
       
  2421 6)      Output
       
  2422 
       
  2423 a)      Makmake for MARM will produce *.MARM makefiles.
       
  2424 b)      Makmake for WINS will produce *.WINS makefiles.
       
  2425 c)      Makmake for VC4 will produce *.MAK makefiles.
       
  2426 d)      MARM and WINS makefiles are restructured to allow
       
  2427 	the following example NMAKE command-line invocations
       
  2428 
       
  2429 		"NMAKE /f euactiv2.wins UREL"
       
  2430 		"NMAKE /f euactiv2.marm UDEB"
       
  2431 		"NMAKE /f euactiv2.wins CLEANDEB"
       
  2432 		"NMAKE /f euactiv2.marm CLEAN"
       
  2433 
       
  2434 e)      Macros specifying target directories, language,
       
  2435 	build directories and so on are produced at the
       
  2436 	top of WINS and MARM makefiles.
       
  2437 f)  RELGDB builds for MARM aim to put the executable
       
  2438 	produced into \epoc32\release\marm\rel, and also use 
       
  2439 	\epoc32\build\[project]\marm\rel as their building 
       
  2440 	directory.
       
  2441 g)      Gcc tool OBJCOPY produces a *.sym file for MARM debug
       
  2442 	builds, including RELGDB.
       
  2443 
       
  2444 
       
  2445 Version 0.01.067
       
  2446 ================
       
  2447 (Made by Morgan, 19th May 1997)
       
  2448 
       
  2449 1) PEDIFF
       
  2450    Recognises time/date stamps in debug and export directories.
       
  2451    Ignores PETRAN version information in the header.
       
  2452 
       
  2453 2) PETRAN
       
  2454    Uids take the full 32bits.
       
  2455 
       
  2456 3) WVECONV
       
  2457    From \VNOTES\WVECONV.  S3a to S5 sound file converter.
       
  2458 
       
  2459 
       
  2460 Version 0.01.066
       
  2461 ================
       
  2462 (Made by Alastair, 9th May 1997)
       
  2463 
       
  2464 MAKMAKE
       
  2465 
       
  2466 1) Fixed bug causing extra "print " text to be produced
       
  2467    as part of the USERINCLUDES text outputted in verbose mode.
       
  2468 
       
  2469 2) Fixed bug causing makmake.pl to fail to produce the extension
       
  2470    of a target filename when requested by *.pm modules
       
  2471 
       
  2472 3) Fixed bug causing makmake to fail with an error report if
       
  2473    more than one flag is specified on the command line
       
  2474 
       
  2475 MAKSYM
       
  2476 
       
  2477 1) Added a few lines of extra code so that the base address of
       
  2478    a dll in the rom is printed to maksym.log when maksym cannot
       
  2479    find the corresponding *.map file.
       
  2480 
       
  2481 
       
  2482 Version 0.01.065
       
  2483 ================
       
  2484 (Made by Alastair, 6th May 1997)
       
  2485 
       
  2486 MAKMAKE
       
  2487 
       
  2488 1) reorganised to be more easily maintainable and extensible.
       
  2489 
       
  2490 2)      handles uid keyword in *.mmp file - uid1 is provided automatically,
       
  2491 	uid's 2 and 3 are specified ... 
       
  2492 
       
  2493 UID <uid2> <uid3>
       
  2494 
       
  2495 in *.mmp file.
       
  2496 
       
  2497 3)      dependency generation section calls CPP with flag -MG so that
       
  2498 	makmake responds gracefully to missing generated headers
       
  2499 
       
  2500 4)      *.mdp and *.ncb files are automatically deleted from directories
       
  2501 	in which makmake is directed to create a wins makefile with the same
       
  2502 	root.
       
  2503 
       
  2504 5)      petran is invoked from the arm makefile
       
  2505 
       
  2506 6)      invocation syntax simplified so that makmake is invoked 
       
  2507 		makmake [flags] [mmp file root] [platform]
       
  2508 	rather than
       
  2509 		makmake [flags] [mmp file] [destination makefile] [platform]
       
  2510 
       
  2511 7)      makmake by default operates in quiet mode, verbose mode is invoked
       
  2512 	using the new "/V" flag on the command-line
       
  2513 
       
  2514 8)      makmake will create the work directories rather than the makefile
       
  2515 	if the new "/MAKEWORK" flag is used on the command-line
       
  2516 
       
  2517 9)      the "/q" flag for "del" commands is no longer added to marm makefiles
       
  2518 	created with makmake
       
  2519 
       
  2520 10)     the DEFFILE keyword is no longer searched for within a START WINS ... END       
       
  2521 	block, now it is platform independent though not yet utilised by the marm 
       
  2522 	platform.
       
  2523 
       
  2524 11)     winsname.pm is not currently expected to work
       
  2525 
       
  2526 12)     PERL is no longer invoked with the -w debugger flag
       
  2527 
       
  2528 Version 0.01.064
       
  2529 ================
       
  2530 (Made by Morgan, 16th April 1997)
       
  2531 
       
  2532 1)      ROMBUILD
       
  2533 	Removed the checks for unicode-ness of Uid[0] on Exes/Dlls
       
  2534 
       
  2535 2)  W32REPRO
       
  2536 	An NT version of PREPRO written by WilliamR
       
  2537 
       
  2538 
       
  2539 Version 0.01.063
       
  2540 ================
       
  2541 (Made by Morgan, 15th April 1997)
       
  2542 
       
  2543 1)      MAKTRAN
       
  2544 	Changed over to the new (and slightly less mad) Uid scheme
       
  2545 	introduced in E32(098).
       
  2546 	Dlls now have a Uid[0] of 0x10000079
       
  2547 	Exes now have a Uid[0] of 0x1000007A
       
  2548 	Everything else is as before.
       
  2549 
       
  2550 
       
  2551 Version 0.01.062
       
  2552 ================
       
  2553 (Made by Graham Asher, 15th April 1997)
       
  2554 
       
  2555 READTYPE
       
  2556 	Added this new tool, which writes the new file unitable.cpp, which contains
       
  2557 	the Unicode character attribute information. I've put a full
       
  2558 	explanation of how to use READTYPE in Notes under e32 software design.
       
  2559 
       
  2560 
       
  2561 Version 0.01.061
       
  2562 ================
       
  2563 (Made by Morgan, 13th April 1997)
       
  2564 
       
  2565 1)      ROMBUILD
       
  2566 	1) Bug fix when using the -S switch with Rom patching
       
  2567 	2) Added class TRomSectionHeader to the start of the
       
  2568 	   second section of the Rom so sectioned Roms can have
       
  2569 	   a separate build time, language variant, and checksum.
       
  2570 	3) Added iRomSectionHeader member to TRomHeader to point
       
  2571 	   at the start of the sectioned Rom and padded TRomHeader
       
  2572 	   to 256 bytes.  This needs a new BOOTROM.BIN which will
       
  2573 	   be released with E32(098)
       
  2574 	4) Fixed a bug in the split rom verify code.
       
  2575 	5) Fixed the overriding of Uids.
       
  2576 
       
  2577 
       
  2578 Version 0.01.060
       
  2579 ================
       
  2580 (Made by Morgan, 9th April 1997)
       
  2581 
       
  2582 1)      PETRAN
       
  2583 	Fixed a PETRAN dumping bug when there are no .data relocations.
       
  2584 
       
  2585 2)      MAKTRAN
       
  2586 	Bug fix for -P switch when no uid3 is specified.
       
  2587 
       
  2588 3)      DEFMAKE
       
  2589 	Made the -S switch work when -Z is used.
       
  2590 
       
  2591 
       
  2592 Version 0.01.059
       
  2593 ================
       
  2594 (Made by Morgan, 7th April 1997)
       
  2595 
       
  2596 HIGHLIGHTS:
       
  2597 	* MAKTRAN now produces PETRANned targets.
       
  2598 	* Components should use the new -P switch instead of -U.
       
  2599 	* Suggested minimum commandline for Dlls:
       
  2600 	  MAKTRAN <src .MAK> <dest .ARM> -z<Your .FRZ> -p"-uid2 <Your Uid2> -uid3 <Your Uid3> -nocall"
       
  2601 
       
  2602 2)      MAKTRAN
       
  2603 	1) Overhauled for releasing PETRANned components.
       
  2604 	   -U switch has been removed and been replaced by new
       
  2605 	   -P switch for specifying PETRAN command line arguments. Uid1
       
  2606 	      will default to the correct uid for the build type unless
       
  2607 		  you specify otherwise.
       
  2608 
       
  2609 
       
  2610 Version 0.01.058
       
  2611 ================
       
  2612 (Made by Morgan, 3rd April 1997)
       
  2613 
       
  2614 1)      ROMBUILD
       
  2615 	1) Filenames can now be quoted ("") to include spaces.
       
  2616 	2) More details provided when the Rom overflows.
       
  2617 
       
  2618 	NOTE: Currently there is a bug that occurs if the Rom 
       
  2619 	is exactly the correct size (byte for byte) and sectioning
       
  2620 	is being used.  It's harmless - I'll fix this in a release
       
  2621 	soon.
       
  2622 
       
  2623 
       
  2624 Version 0.01.057
       
  2625 ================
       
  2626 (Made by Alastair, 2nd April 1997)
       
  2627 
       
  2628 1)      MAKMAKE
       
  2629 	Fixed bug in wins.pm causing *.def files specified in *.mmp
       
  2630 	files to be ignored by MSVC.
       
  2631 	Included deftool flag -1 NewApplication__Fv for MARM makefiles
       
  2632 	where the target is an APP.
       
  2633 	
       
  2634 	E32TOOLS GROUP MNT.CMD
       
  2635 	Added lock, unlock and wholock parameters.
       
  2636 
       
  2637 
       
  2638 Version 0.01.056
       
  2639 ================
       
  2640 (Made by Alastair, 27th March 1997)
       
  2641 
       
  2642 Alastair:
       
  2643 1)      MAKMAKE
       
  2644 	MAKMAKE generates makefiles for WINS or MARM builds.
       
  2645 	It is being released because the SDK example projects
       
  2646 	now use it, and no longer use MAKTRAN.  Makmake is by no
       
  2647 	means fully tested and is certainly not intended for 
       
  2648 	incorporation into Epoc32 projects prior to V1 shipping.
       
  2649 	Details of its use are roughly documented in file 
       
  2650 	\e32tools\makmake\makmake.txt.
       
  2651 	Use of makmake requires the installation of Perl 
       
  2652 	from directory T:\UTIL\PERL.
       
  2653 
       
  2654 
       
  2655 Version 0.01.055
       
  2656 ================
       
  2657 (Made by Morgan, 20th March 1997)
       
  2658 
       
  2659 1) ROMBUILD
       
  2660    CheckSum bug fix.
       
  2661    Kernel alignment bug fix.
       
  2662 
       
  2663 
       
  2664 Version 0.01.054
       
  2665 ================
       
  2666 (Made by Morgan, 18th March 1997)
       
  2667 
       
  2668 1) ROMBUILD
       
  2669    Removed some unnecesary recurtion and tidied some dodgy code.
       
  2670    Loaded the files to Rom in the order they appear in the obey
       
  2671    file, rather than depth first order.
       
  2672    
       
  2673    Roms can now be sectioned into two parts allowing the upper
       
  2674    part of the rom to be switched for language variations and
       
  2675    file patching.  Both these processes require the original
       
  2676    releasables, original obey file, and any new releasables.
       
  2677    It is also advisable to supply the original Rom so the lower
       
  2678    section can be verified to be constant.
       
  2679 
       
  2680    In a sectioned rom the directory structure, import address
       
  2681    tables, and Dll reference tables of all files in the first Rom
       
  2682    are placed after the section border.
       
  2683    The overhead of sectioning a Rom (over and above an unsectioned
       
  2684    one) is the space required to duplicate the import address
       
  2685    tables of files from the first section.
       
  2686    Last time I counted (B2) the iat's took up 42k.
       
  2687 
       
  2688    The 32bit sum of all 32bit words in the second section is
       
  2689    always 0.  This means the iChecksum member in TRomHeader is
       
  2690    valid for the rom as a whole and for the first section in
       
  2691    isolation.
       
  2692    It is not possible to patch any files that are listed before
       
  2693    the primary or the secondary.  Doing this causes the position
       
  2694    of the kernel's/file-server's entry in the directory table to
       
  2695    move.  This may be fixed in a future release.
       
  2696 
       
  2697    To section a Rom:
       
  2698       Use the keyword
       
  2699 	 section <rom offset>
       
  2700       at the point in the obey file where you want the Rom to be
       
  2701       split.  All files before this line appear in the first
       
  2702 	  (constant) section, and files after appear in the second
       
  2703 	  (patch/language) section.
       
  2704 
       
  2705    Patching a file in the second section:
       
  2706       Add file attribute 'patch[ed]' to the file to be patched.
       
  2707       (This will cull the file from the first section).
       
  2708       Supply a replacement file in the top section as required.
       
  2709 	  Note, the original file is still required to guarantee
       
  2710 	  consistency in the first section of Rom.
       
  2711 	  Run ROMBUILD.
       
  2712 
       
  2713    Supplying a language dependant file:
       
  2714       Put the file after the section keyword.
       
  2715 	  Run ROMBUILD.
       
  2716 
       
  2717    To verify the lower section of Rom has remained constant:
       
  2718       Specify the original Rom image on the command line with
       
  2719 	  -r<FileName>
       
  2720 
       
  2721 
       
  2722 Version 0.01.053
       
  2723 ================
       
  2724 (Made by Morgan, 7th March 1997)
       
  2725 
       
  2726 1) ROMBUILD
       
  2727    Bug fix to 'screen' keyword
       
  2728 
       
  2729 
       
  2730 Version 0.01.052
       
  2731 ================
       
  2732 (Made by Morgan, 3rd March 1997)
       
  2733 
       
  2734 1) ROMBUILD
       
  2735    Bug fix for Exes/Dlls with no relocations in .text or .rdata
       
  2736    Check Uids for exporting .EXEs as well as .DLLs
       
  2737    New 'screen' keyword.  Default is: screen = 640x240x4
       
  2738 
       
  2739 2) MAKTRAN
       
  2740    Bug fix
       
  2741 
       
  2742 
       
  2743 Version 0.01.051
       
  2744 ================
       
  2745 (Made by Morgan, 13th January 1997)
       
  2746 
       
  2747 Alastair:
       
  2748 1) MAKSYM
       
  2749    Generates a list of C++ symbols and their addresses in rom from
       
  2750    ROMBUILD.LOG and accompanying .MAP files.
       
  2751    MAKSYM ? for help.
       
  2752 
       
  2753 
       
  2754 Version 0.01.050
       
  2755 ================
       
  2756 (Made by Morgan, 6th January 1997)
       
  2757 
       
  2758 1) ROMBUILD
       
  2759    Incompatable with any E32 before 083.
       
  2760    Added some stuff to TRomHeader for the test department:
       
  2761    A language bitfield (64bits for specifying the languages supported
       
  2762    by the ROM), and a 32bit hardware identifier.
       
  2763    The languages are as defined by TLanguage in E32STD.H.  (ie Test
       
  2764    is bit 0,  English is bit 1, French is bit 2,  etc...)
       
  2765    Added two more obeyfile keywords for this.  Usage:
       
  2766    languages = <list of supported languages>
       
  2767    hardware = <n>
       
  2768 
       
  2769    Rombuild now has a -? switch.
       
  2770 
       
  2771 
       
  2772 Version 0.01.049
       
  2773 ================
       
  2774 (Made by Morgan, 11th December 1996)
       
  2775 
       
  2776 1) MAKTRAN
       
  2777    Object files are now grouped on the ar (archive) command line to
       
  2778    speed up building.  By default they are grouped in 4s but this
       
  2779    can be changed by using the new -a<n> switch.
       
  2780 
       
  2781 2) ROMBUILD
       
  2782    More informative error information when a dll is exporting by
       
  2783    name.
       
  2784 
       
  2785 3) E32UID
       
  2786    Removed.
       
  2787 
       
  2788 
       
  2789 Version 0.01.048
       
  2790 ================
       
  2791 (Made by Morgan, 22nd November 1996)
       
  2792 
       
  2793 1) ROMBUILD
       
  2794    Added 128 bytes of space to TRomHeader which appears at the front
       
  2795    of the ROM.  This is to allow work on the StrongARM port to
       
  2796    progress.
       
  2797    Naturally, this makes ROMBUILD compatable with absolutely nothing.
       
  2798    So a new bootrom.bin will be released with E32(075).
       
  2799 
       
  2800 
       
  2801 Version 0.01.047
       
  2802 ================
       
  2803 (Made by Morgan, 1st November 1996)
       
  2804 
       
  2805 1) MAKTRAN
       
  2806    Another minor fix to deal with unusually shaped .MAK files.  This
       
  2807    time it's old link information stored in comment lines.
       
  2808    Added "-Wno-ctor-dtor-privacy" to CPPFLAGS.
       
  2809 
       
  2810 2) PEDIFF
       
  2811    Bug fix HA-283.  The final section in a PE file may be truncated
       
  2812    to its VirtualSize making the SizeOfRawData field of the header
       
  2813    inaccurate.  This was causing a problem in the release build but
       
  2814    not the debug build.
       
  2815    Fixed by padding the section data with zeros up to SizeOfRawData
       
  2816    bytes.
       
  2817 
       
  2818 3) ROMBUILD
       
  2819    Added a iTextSize member to TRomImageHeader.  Making this version
       
  2820    of rombuild incompatable with any E32 before build 075.
       
  2821 
       
  2822 
       
  2823 Version 0.01.046
       
  2824 ================
       
  2825 (Made by Morgan, 1st November 1996)
       
  2826 
       
  2827 1) MAKTRAN
       
  2828    Added support for include directories other than ..\inc and
       
  2829    \epoc32\include
       
  2830       
       
  2831 
       
  2832 Version 0.01.045
       
  2833 ================
       
  2834 (Made by Morgan, 7th October 1996)
       
  2835 
       
  2836 1) MAKTRAN
       
  2837    Added a -U<Uid> switch to put the 3rd uid in the target's import
       
  2838    stub so the Dll/Exe exports as DllName[Uid].Ext
       
  2839    This enables you to use the type-safe static linking (based on the
       
  2840    Dll's 3rd Uid) in E32(070)/F32(036) and ROMBUILD(043).
       
  2841 
       
  2842 2) ROMBUILD
       
  2843    Officially PVCSed DW's patch to ROMBUILD(044) that disables
       
  2844    type-safe static linking and added a -type-safe-link option to
       
  2845    turn it back on.
       
  2846    I'll leave it that way until people get used to the idea (or until
       
  2847    someone comes up with a better plan).
       
  2848    Also added checks on the first Uid against
       
  2849    KNarrowDebugUid, KNarrowReleaseUid for Ascii builds and
       
  2850    KWideDebugUid, KWideReleaseUid for Unicode builds.  I havn't made
       
  2851    this dependent on the -type-safe-link option because executables
       
  2852    and dlls wont load if this Uid is not set correctly.
       
  2853 
       
  2854 
       
  2855 Version 0.01.044
       
  2856 ================
       
  2857 (Made by Morgan, 3rd October 1996)
       
  2858 
       
  2859 1) ROMBUILD
       
  2860    ROMBUILD can now take E32 Image (pre-PETRANned) files as well as
       
  2861    PE Format files as input.
       
  2862 
       
  2863 
       
  2864 Version 0.01.043
       
  2865 ================
       
  2866 (Made by Morgan, 2th October 1996)
       
  2867 
       
  2868 1) MAKTRAN
       
  2869    Better filename parsing for the -z option.
       
  2870 
       
  2871 2) PETRAN
       
  2872    Added a -priority option.  This takes a number or one of these
       
  2873    keywords: low, background, foreground, high, windowserver,
       
  2874    fileserver, realtime, supervisor.
       
  2875 
       
  2876 3) ROMBUILD
       
  2877    Added 'priority' inline keyword for EXEs.
       
  2878    Added checks for type-safe static linking of DLLs.
       
  2879 
       
  2880 5) E32UID
       
  2881    Jal:  Displays the psion copyright message and build.
       
  2882 	 Renumbered Uids to be Uid0, Uid1, and Uid2.
       
  2883 
       
  2884 6) ALL
       
  2885    Redirected error output to stderr.
       
  2886    
       
  2887 
       
  2888 Version 0.01.042
       
  2889 ================
       
  2890 (Made by Morgan, 14th September 1996)
       
  2891 
       
  2892 1) PREPRO, PEIGER
       
  2893    Changes to MNT.CMD to include the latest versions of
       
  2894    PREPRO and PEIGER in the E32TOOLS release.
       
  2895 
       
  2896 2) MAKTRAN
       
  2897    Minor bug fixes for -D defined symbols.
       
  2898 
       
  2899 3) E32UID
       
  2900    Added a -Q quiet switch.
       
  2901 
       
  2902 
       
  2903 Version 0.01.041
       
  2904 ================
       
  2905 (Made by Morgan, 14th September 1996)
       
  2906 
       
  2907 1) MAKTRAN
       
  2908    Added support for maktranning make files of static libraries.
       
  2909    There are added complications when using static libraries from
       
  2910    GCC:
       
  2911    You may find that any executables linked with a static library
       
  2912    produce reams of "bad relocation" errors from either PETRAN or
       
  2913    ROMBUILD.  At the moment, to work around this you will need to
       
  2914    modify 2 lines for each build in the MAKTRANed file.
       
  2915        $(LD) ... --whole-archive my_exe.in --no-whole-archive ... my_lib.lib
       
  2916    becomes:
       
  2917        $(LD) ... --whole-archive my_exe.in my_lib.lib --no-whole-archive ...
       
  2918    this has the effect of including all code from the static library
       
  2919    in your .EXE whether it is used or not, but it fixes the bad
       
  2920    relocations generated by the GCC linker.
       
  2921 
       
  2922    MAKTRAN also propogates defined symbols from the MSVC4
       
  2923    Build/Settings dialog excluding:
       
  2924 	      __WINS__,__VC32__,__EXE__,__DLL__,
       
  2925 	      _UNICODE,WIN32,_WINDOWS
       
  2926 
       
  2927 2) DEFTOOL
       
  2928    No longer truncates your def file if it can't find the specified
       
  2929    freeze file.
       
  2930 
       
  2931 
       
  2932 Version 0.01.040
       
  2933 ================
       
  2934 (Made by Morgan, 2nd September 1996)
       
  2935 
       
  2936 !) ROMBUILD
       
  2937    Bug fix:  for EXEs/DLLs with no imports.
       
  2938    
       
  2939    The tab character is now treated as white space in obey files.
       
  2940    
       
  2941    Improved some error messages.
       
  2942 
       
  2943    Removed the universally dispised 'nocallentrypoint' directive on
       
  2944    the grounds that it looked silly.
       
  2945    Executables specified with 'file=' do not have the entry points
       
  2946    called.  New keyword 'dll=' indicates that the entry points
       
  2947    should be called.
       
  2948 
       
  2949    Fixed filename case dependency.
       
  2950 
       
  2951 2) MAKTRAN
       
  2952    Added the switches '--whole-archive' and '--no-whole-archive'
       
  2953    around the .in file on the linker command line to keep GCC happy.
       
  2954    This only effects EXEs - as DLLs did it already.
       
  2955 
       
  2956 
       
  2957 Version 0.01.039
       
  2958 ================
       
  2959 (Made by Morgan, 19th August 1996)
       
  2960 
       
  2961 1) MAKTRAN
       
  2962    Added Unicode and Debug (U,D) suffixes to DEF files to make the
       
  2963    filenames for each target different under the new directory
       
  2964    structure.
       
  2965    Freeze files have also been given the same treatment:  specifying
       
  2966    -z afile.frz
       
  2967    will use afile.frz, afileD.frz, afileU.frz, afileUD.frz
       
  2968    as freeze files for the respective builds.
       
  2969 
       
  2970 
       
  2971 Version 0.01.038
       
  2972 ================
       
  2973 (Made by Morgan, 2nd August 1996)
       
  2974 
       
  2975 1) MAKTRAN
       
  2976    New maktran for the new epoc32 directory structure.
       
  2977    -T option removed.  Template instantiation is automatic.
       
  2978    Dlls are auto-detected by looking for __DLL__ in the .MAK file,
       
  2979    but this can be overridden with -D (to force a DLL) and -E (to
       
  2980    force an EXE)
       
  2981    Bug fix:  MAKTRAN now deals with make files that do not have
       
  2982    their "Win32 Release" target first.
       
  2983 
       
  2984 2) ETOUCH
       
  2985    Replacement TOUCH program.
       
  2986 
       
  2987 3) ROMBUILD
       
  2988    Bug fix:  for data sections with no relocations
       
  2989 
       
  2990 4) PETRAN
       
  2991    Added -nocallentrypoints option (can be shortened to -nocall)
       
  2992    and   -callentrypoints   option (       shortened to -call)
       
  2993    Bug fix:  for executable files with no relocations
       
  2994 
       
  2995 
       
  2996 Version 0.01.037
       
  2997 ================
       
  2998 (Made by Morgan, 2nd August 1996)
       
  2999 
       
  3000 1) ROMBUILD
       
  3001    Yet another change that will break your rom if you don't pay
       
  3002    attention to the version numbers.  This build is intended to
       
  3003    work with E32 (065).
       
  3004    The format of the Dll reference table has changed, and now looks
       
  3005    like this:
       
  3006 
       
  3007    class TDllRefTable
       
  3008       {
       
  3009    public:
       
  3010       TUint16 iFlags;
       
  3011       TUint16 iNumberOfEntries;
       
  3012       };
       
  3013    followed by iNumberOfEntries of these:
       
  3014    class TDllRefTableEntry
       
  3015       {
       
  3016    public:
       
  3017       TUint iEntryPoint;
       
  3018       TUint iDllRefTable;
       
  3019       };
       
  3020 
       
  3021    Added another inline keyword "nocallentrypoint" to obey files.
       
  3022    When attached to a file it prevents the entry points of linked
       
  3023    Dlls being called.  This is used to save time during loading
       
  3024    when the Dll's entry points are trivial (=empty).
       
  3025 
       
  3026 2) Fiddled with the -s option.
       
  3027    -S        outputs the size summary to the screen and to the log
       
  3028    -SLog     outputs the size summary to the log only
       
  3029    -SScreen  outputs the size summary to the screen only
       
  3030 
       
  3031 3) Forced the primary's code section to start on a 4K page boundry
       
  3032    for obscure operating system reasons.
       
  3033    (ie, Getting the exception/interrupt vectors to land on a page
       
  3034    boundry so they can be easily mapped by the MMU to the address
       
  3035    where they are expected to be.)
       
  3036 
       
  3037 4) Added support for building Unicode roms.  The implementation for
       
  3038    writing Unicode filenames to ROM is temporarily dubious.
       
  3039    A Unicode rom is made by specifying the keyword 'unicode' in the
       
  3040    first section of the obey file.
       
  3041 
       
  3042 5) Added the keyword 'stop' so parsing of an obey file can
       
  3043    be stopped prematurely.
       
  3044    
       
  3045 
       
  3046 Version 0.01.036
       
  3047 ================
       
  3048 (Made by Morgan, 11th July 1996)
       
  3049 
       
  3050 1) ROMBUILD
       
  3051    Support for generating split ROM images - added the optional
       
  3052    keywords:
       
  3053    romnameodd=<file name>
       
  3054    romnameeven=<file name>
       
  3055    resulting in two half-roms.  one containing all odd numbered
       
  3056    half-words (16bits) and one containing all the even half-words.
       
  3057 
       
  3058    Checksums:
       
  3059    Added a checksum member to TRomHeader and an optional keyword
       
  3060    romchecksum=<n>
       
  3061    for obey files.  This results in a ROM where summing all 32 bit
       
  3062    words (ignoring overflows) will return n.  The default sum of
       
  3063    all ROM words is 0.
       
  3064 
       
  3065    Checksums for the ROM and for split ROMs are now calculated and
       
  3066    reported in the log.  These checksums are calculated by summing
       
  3067    all 8bit bytes and taking the least significant 32 bits of the
       
  3068    result.
       
  3069 
       
  3070 
       
  3071 Version 0.01.035
       
  3072 ================
       
  3073 (Made by Morgan, 10th June 1996)
       
  3074 
       
  3075 1) MAKTRAN
       
  3076    Added a RELGDB target which pretends to be the REL target
       
  3077    while keeping the debug info.
       
  3078    This has the same effect as a REL build when the makefile is
       
  3079    generated with:
       
  3080    MAKTRAN -no-strip-symbols -g"-g -fno-omit-frame-pointer" src dest
       
  3081 
       
  3082 2) DEFMAKE, DEFTOOL
       
  3083    Added -2 switch to compliment the -f switch so you can specify
       
  3084    the second ordinal as well as the first without the need to mess
       
  3085    around with freeze files.
       
  3086    This allows us to accomadate DLLs with the UID function at 
       
  3087    ordinal 1, and the GateL function at ordinal 2.
       
  3088    Also added -1 switch which is the same as -f to keep things 
       
  3089    consistent.
       
  3090 
       
  3091 
       
  3092 Version 0.01.034
       
  3093 ================
       
  3094 (Made by Morgan, 26th June 1996)
       
  3095 
       
  3096 1) ROMBUILD
       
  3097    Added facility to output Motorola S format Records.
       
  3098    Use the optional keyword:
       
  3099    srecordfilename=<output filename>
       
  3100    in the first section of the obey file.
       
  3101 
       
  3102 2) MAKTRAN
       
  3103    gcc option -mcpu-arm710 is now -mcpu=arm710
       
  3104    Added -strip-symbols and -no-strip-symbols options.
       
  3105    These force the linker to keep or strip all symbol
       
  3106    information (including debug symbol info).  If both
       
  3107    are omitted then symbols are striped for release
       
  3108    builds only.
       
  3109 
       
  3110 
       
  3111 Version 0.01.033
       
  3112 ================
       
  3113 (Made by Morgan, 24th June 1996)
       
  3114 
       
  3115 1) MAKTRAN
       
  3116    The -m6 flag on the CPPFLAGS line has changed to
       
  3117    -mcpu-arm710 -mapcs-32
       
  3118    added -fvtable-thunks and
       
  3119    removed -fno-implicit-templates
       
  3120 
       
  3121 
       
  3122 Version 0.01.032
       
  3123 ================
       
  3124 (Made by Morgan, 20th June 1996)
       
  3125 
       
  3126 1) PETRAN, ROMBUILD
       
  3127    Bug fix:  Relocations for the .rdata section were 4 bytes out
       
  3128    when the executable had a .rdata section and no imports.
       
  3129 
       
  3130    PETRAN now performs a sanity check on all virtual addresses, and
       
  3131    lists the dubious ones.
       
  3132 
       
  3133 2) MAKTRAN
       
  3134    Made the error messages more descriptive when the .MAK file
       
  3135    doesn't contain one of the expected targets.
       
  3136 
       
  3137 
       
  3138 Version 0.01.031
       
  3139 ================
       
  3140 (Made by Morgan, 12th June 1996)
       
  3141 
       
  3142 1) PEDIFF
       
  3143    syntax: PEDIFF pefile pefile
       
  3144 	   PEDIFF -e32 e32imagefile e32imagefile
       
  3145    compares 2 PE/E32Image format files to see if they are identical
       
  3146    ignoring all time/date stamps
       
  3147 
       
  3148 2) PETRAN
       
  3149    Another change to the E32Image file format to add a time stamp.
       
  3150 
       
  3151 
       
  3152 Version 0.01.030
       
  3153 ================
       
  3154 (Made by Morgan, 11th June 1996)
       
  3155 
       
  3156 1) PETRAN, ROMBUILD
       
  3157    Fixes to supply more information for the ram loader.
       
  3158    (ie. the size of the import section)
       
  3159    Documentation for the E32 Image file format is available from
       
  3160    the 'E32Base' Notes database.
       
  3161 
       
  3162 
       
  3163 Version 0.01.029
       
  3164 ================
       
  3165 (Made by Morgan, 7th June 1996)
       
  3166 
       
  3167 1) PETRAN
       
  3168    Added the command line switches:
       
  3169      -stack <stack size>
       
  3170      -uid<n> <uid>
       
  3171    for setting the stack size and the file's uids
       
  3172 
       
  3173    The output of PETRAN has changed to the new E32Image file
       
  3174    format giving a (seasonally adjusted) size reduction of between
       
  3175    20 and 40 bytes.
       
  3176 
       
  3177 2) ROMBUILD
       
  3178    Uses the new E32Image file format.
       
  3179    Added heap size, and uids to the file modifiers
       
  3180    file = <src PE file> <dest EPOC file> [attributes]*
       
  3181        where 'attributes' is
       
  3182        attrib = [r|s|h|R|S|H]+
       
  3183        stack = <stack size>
       
  3184        reloc = <specific relocation address>
       
  3185        heapmax = <heap size>
       
  3186        heapmin = <heap size>
       
  3187        uid<n> = <uid>
       
  3188    Files in the rom are now read-only (R) by default (use
       
  3189    attrib=r to make them read/write)
       
  3190 
       
  3191    Made filename and import/export name compares case insensitive
       
  3192 
       
  3193 3) DEFMAKE
       
  3194    DEFMAKE now accepts Alpha CPU PE Files
       
  3195 
       
  3196 
       
  3197 Version 0.01.028
       
  3198 ================
       
  3199 (Made by Morgan, 30th May 1996)
       
  3200 
       
  3201 1) MAKTRAN
       
  3202    added a -g flag to pass extra parameters to the gcc command line
       
  3203    eg.
       
  3204    -g-fcheck-new
       
  3205    adds: -fcheck-new to CPPFLAGS and
       
  3206    -g"-fcheck-new -fsigned-char"
       
  3207    adds: -fcheck-new -fsigned-char
       
  3208 
       
  3209 
       
  3210 Version 0.01.027
       
  3211 ================
       
  3212 (Made by Morgan, 29th May 1996)
       
  3213 
       
  3214 1) ROMBUILD
       
  3215    Changed the format of the 'file' keyword to allow overriding of 
       
  3216    various file attributes.
       
  3217    New format is:
       
  3218    file = <src PE file> <dest EPOC file> [attributes]*
       
  3219        where 'attributes' is
       
  3220        attrib = [r|s|h]+
       
  3221        stack = <stack size>
       
  3222        reloc = <specific relocation address>
       
  3223 
       
  3224    The -s switch now lists file sizes in the same order as files
       
  3225    occur in the obey file.
       
  3226 
       
  3227    Fixed a problem with reading relocations when the PE format file
       
  3228    lies about the VirtualSize of the section.
       
  3229 
       
  3230 2) MAKTRAN
       
  3231    Removed the -s flag from the linking stage of debug builds
       
  3232    to keep gcc generated debug information.
       
  3233 
       
  3234 3) DEFTOOL
       
  3235    Improved error reporting.
       
  3236 
       
  3237 4) General
       
  3238    Removed the dependencies on TRomExeHeader and TRomDllHeader
       
  3239    (from the header files of E32(059)) which are now defunct
       
  3240    so the tools build properly with E32(060).
       
  3241    Removed some of the dead code left over from E32ROM
       
  3242 
       
  3243 
       
  3244 Version 0.01.026
       
  3245 ================
       
  3246 (Made by Morgan, 24th May 1996)
       
  3247 
       
  3248 1) ROMBUILD
       
  3249    Altered the size summary output to include data files.
       
  3250    Currently the files are listed in depth first directory
       
  3251    order.  I intend to change this so they appear in the
       
  3252    same order as they appear in the obey file.
       
  3253 
       
  3254 2) PETRAN
       
  3255    Fixed a bug that crashed the translator when the size of the
       
  3256    relocation section of an executable was a multiple of 0x200
       
  3257    (the PE format file alignment size.)
       
  3258 
       
  3259 3) MAKTRAN
       
  3260    Added a CLEAN target.
       
  3261 
       
  3262 
       
  3263 Version 0.01.025
       
  3264 ================
       
  3265 (Made by Morgan, 23rd May 1996)
       
  3266 
       
  3267 1) E32ROM has been killed
       
  3268 
       
  3269 2) ROMBUILD replaces E32ROM
       
  3270    Syntax: ROMBUILD [-v] [-s] obeyfilename
       
  3271    -v verbose flag
       
  3272    -s gives a size summary of all executables in the rom
       
  3273    Logged output appears in the file ROMBUILD.LOG
       
  3274 
       
  3275    The obey files for ROMBUILD are slightly different:
       
  3276    The keyword 'resource' has been replaced with 'data' for
       
  3277    putting data files in rom.
       
  3278    A manditory keyword 'kernheapmax' has been added.
       
  3279    The 'version' keyword has the syntax Major[.Minor[(Build)]]
       
  3280 
       
  3281 3) PETRAN
       
  3282    Produces E32ImageFile format files from PEFiles.
       
  3283 
       
  3284 4) Jal,
       
  3285    E32UID
       
  3286    Attaches UIDs to WINS files.
       
  3287 
       
  3288 
       
  3289 Version 0.01.024
       
  3290 ================
       
  3291 (Made by Morgan, 14th May 1996)
       
  3292 
       
  3293 1) DEFMAKE, DEFTOOL and MAKTRAN
       
  3294    Added -z switch to specify a frozen def file.
       
  3295    The exports in the frozen def file appear first (and in order)
       
  3296    in the new def file.  All additional exports are added to the
       
  3297    end.
       
  3298    A warning will be give if an export in the frozen def file
       
  3299    does not appear in the executable being processed.
       
  3300 
       
  3301 
       
  3302 Version 0.01.023
       
  3303 ================
       
  3304 (Made by Morgan, 3rd May 1996)
       
  3305 
       
  3306 1) Jane
       
  3307    Added space for the Uid system to the Rom Exe and DLL headers.
       
  3308 
       
  3309 
       
  3310 Version 0.01.022
       
  3311 ================
       
  3312 (Made by Morgan, 1st May 1996)
       
  3313 
       
  3314 1) E32ROM:
       
  3315    Added path checking so now it is not possible to create
       
  3316    directories with the name ""
       
  3317    The version specified by the obey file is now put into the rom.
       
  3318 
       
  3319 2) MAKTRAN:
       
  3320    /f switch added to specify the name of the function to use as
       
  3321    the first ordinal in the dll. (only works with /d switch).
       
  3322    More looping bugs fixed.  This time in the Archive generation.
       
  3323    Added some meagre form of test suit:  DIFs good .ARM files
       
  3324    with files generated from the current version.
       
  3325    Put in the work-around for the "ld hardcoded to C:" problem.
       
  3326 
       
  3327 
       
  3328 Version 0.01.021
       
  3329 ================
       
  3330 (Made by Morgan, 23rd April 1996)
       
  3331 
       
  3332 1) MAKTRAN bug fixes:
       
  3333    Added gcc -g option to the debug builds to produce debug output.
       
  3334    Fixed HA-103:  Now rules are only output for .cpp files
       
  3335    Having a .. or a . in the path for a source file 
       
  3336    (eg SOURCE=.\T_BLOB.CPP) no longer puts MAKTRAN into an endless
       
  3337    loop.  Also using system variables in path specifiers
       
  3338    (eg {($INCLUDE)}"\AHeader.H" ) no longer fills your hard disk.
       
  3339    Source files with no dependancies now generate a target.
       
  3340 
       
  3341 
       
  3342 Version 0.01.020
       
  3343 ================
       
  3344 (Made by Morgan, 11th April 1996)
       
  3345 
       
  3346    E32ROM:
       
  3347 1) Jal,
       
  3348    The 'resource' option is fixed and the rom is given the correct
       
  3349    date.
       
  3350 
       
  3351 2) Jane,
       
  3352    Added an error message if you don't supply enough parameters on
       
  3353    any line in the files section.
       
  3354 
       
  3355 
       
  3356 Version 0.01.019
       
  3357 ================
       
  3358 (Made by Graham, 8th April, 1996)
       
  3359 
       
  3360 1) Changed MAKTRAN-created makefile compiler options:
       
  3361 
       
  3362    Added -fno-implcit-templates
       
  3363    In the past GCC automatically instantiated template classes and
       
  3364    functions. We now want to take complete control of this, so all
       
  3365    such templates will have to be instantiated by hand. There is an
       
  3366    extra switch (/T) on the command line which enables automatic
       
  3367    template instantiation to be turned back on, but this should only
       
  3368    be used when compiling test programs. Releasable code should take
       
  3369    advantage of the reduction in ROM size which hand-instantiation
       
  3370    brings.
       
  3371 
       
  3372    Removed -fvtable-thunks
       
  3373    Those programs which exploit multiple-inheritence should now work.
       
  3374 
       
  3375    Added $(USERDEFS)
       
  3376    This enables you to add your own definitions to the build.
       
  3377    e.g. nmake /f elink.mak USERDEFS=-D_USE_LOG
       
  3378 
       
  3379 2) Changed MAKTRAN-created makefile linker options:
       
  3380 
       
  3381    Added --no-whole-archive option
       
  3382    This should greatly improve the size and linking speed DLL's. In
       
  3383    order to exploit this, you must get the next release of the GCC
       
  3384    tools from the network. Do this by typing TOOLS GCC and making
       
  3385    sure that \GCC\BIN is in your path.
       
  3386 
       
  3387 3) Fixed a bug with MSVC .MAK files which contain custom builds
       
  3388 
       
  3389 
       
  3390 Version 0.01.018
       
  3391 ================
       
  3392 (Made by Morgan, 3rd April, 1996)
       
  3393 
       
  3394 1) Extended DEFTOOL to take a -f switch (takes the name of the
       
  3395    function to be ordinal 1).
       
  3396 
       
  3397 
       
  3398 Version 0.01.017
       
  3399 ================
       
  3400 (Made by Graham, 26th March, 1996)
       
  3401 
       
  3402 1) Fixed a bug in E32ROM which gave "relocation type not handled" in
       
  3403    the presence of .reloc sections which were an exact multiple of
       
  3404    256 bytes in length.
       
  3405 
       
  3406 2) Fixed the MAKTRAN "if exist xxx.in del xxx.in" bug
       
  3407 
       
  3408 3) Added DEB, UREL and UDEB builds to MAKTRAN make files
       
  3409 
       
  3410 Jane:
       
  3411 
       
  3412 4) Better error reporting in E32ROM.EXE
       
  3413 
       
  3414 
       
  3415 Version 0.01.016
       
  3416 ================
       
  3417 (Made by Graham, 19th March, 1996)
       
  3418 
       
  3419 1) Fixed a bug in targetting some test program make files.
       
  3420 2) Changed "del xxx.in" to "if exist xxx.in del xxx.in"
       
  3421 
       
  3422 Lane:
       
  3423 
       
  3424 3) Changed the mechanism by which libraries to be linked are found.
       
  3425 
       
  3426 Jane:
       
  3427 
       
  3428 4) Further improvements to the error reporting for DEFMAKE.
       
  3429 
       
  3430 
       
  3431 Version 0.01.015
       
  3432 ================
       
  3433 (Made by Graham, 8th March, 1996)
       
  3434 
       
  3435 1) Changed all tools to display their version and build numbers.
       
  3436 
       
  3437 Jane:
       
  3438 
       
  3439 2) Fixed a couple of heap problems in E32ROM, and generally increased robustness. 
       
  3440    Will now print an error message if there are too many files for the ROM,
       
  3441    rather than scribbling all over your nice memory.
       
  3442 
       
  3443 3) Improved some of the error reporting for DEFMAKE.
       
  3444 
       
  3445 Version 0.01.014
       
  3446 ================
       
  3447 (Made by Graham, 6th March, 1996)
       
  3448 
       
  3449 1) Changed MAKTRAN to accept makefiles which have depenencies ..\..\
       
  3450    away from their source directory.
       
  3451 
       
  3452 Version 0.01.013
       
  3453 ================
       
  3454 (Made by Graham, 5th March, 1996)
       
  3455 
       
  3456 1) Changed MAKTRAN to accept makefiles which are completely relative to
       
  3457    the directory in which they reside. NB These makefiles cannot be
       
  3458    correctly translated if they are moved to a different directory.
       
  3459 
       
  3460 Version 0.01.012
       
  3461 ================
       
  3462 (Made by Graham, 4th March, 1996)
       
  3463 
       
  3464 1) Changed MAKTRAN to assume DEFTOOL.EXE is in your path
       
  3465 2) Changed MAKTRAN so that it correctly sets __DLL__ and __EXE__
       
  3466 3) Changed MAKTRAN to handle specially named DLL's - .DEV .MTD etc
       
  3467 4) Changed MAKTRAN to handle projects with non-compilable components
       
  3468 5) Changed the mechanism by which MAKTRAN decides group and project.
       
  3469 
       
  3470 Version 0.01.011
       
  3471 ================
       
  3472 (Made by Graham, 27th February, 1996)
       
  3473 
       
  3474 1) Changed E32ROM to give each .EXE an 8K Stack
       
  3475 2) Fixed bugs in MAKTRAN to do with picking up the name of the target
       
  3476 3) Removed --whole-archive from .EXE make files built by MAKTRAN
       
  3477 
       
  3478 Version 0.01.010
       
  3479 ================
       
  3480 (Made by Jane, 26th February, 1996)
       
  3481 
       
  3482 1) Fixed mnd.cmd for command line builds
       
  3483 
       
  3484 Version 0.01.009
       
  3485 ================
       
  3486 (Made by Jane, 23rd February, 1996)
       
  3487 
       
  3488 1) Switched to Visual C++ 4.0
       
  3489 
       
  3490 2) E32ROM - Added support for REM statement in obeyfiles
       
  3491 
       
  3492 3) E32ROM - Fixed an obeyfile init bug which became apparent under the new compiler
       
  3493 
       
  3494 4) DEFMAKE & E32ROM - added support for export table being in .rdata section, as it is
       
  3495    now with Visual C++. (Export table in .edata is still supported.)
       
  3496 
       
  3497 5) DEFMAKE - added -q option which surrounds symbols names in "". This is mostly needed by
       
  3498    gcc builds where all destructors have a full stop in their name.
       
  3499 
       
  3500 6) First release of MAKTRAN and DEFTOOL from Lane
       
  3501 	MAKTRAN converts msvc .mak files to gcc format.
       
  3502 	DEFTOOL is used by MAKTRAN to strip out garbage from .def files
       
  3503 		and to insert "NONAME" as required by gcc.
       
  3504 	For MAKTRAN usage type "MAKTRAN".
       
  3505 
       
  3506 7) E32ROM - in log now displays absolute ROM addresses rather than offsets, and for text only
       
  3507 
       
  3508 Version 0.01.008
       
  3509 ================
       
  3510 (Made by Jane, 31st January, 1996)
       
  3511 
       
  3512 1) Removed support for old time class
       
  3513 
       
  3514 
       
  3515 Version 0.01.007
       
  3516 ================
       
  3517 (Made by Jane, 8th January, 1996)
       
  3518 
       
  3519 1) Changed to new time class
       
  3520 
       
  3521 
       
  3522 Version 0.01.006
       
  3523 ================
       
  3524 (Made by Jane, 21st December 1995)
       
  3525 
       
  3526 1) Added versions to tools
       
  3527 
       
  3528 2) E32ROM - Changed heap min size for apps to 32k.
       
  3529 
       
  3530 3) E32ROM - Exits with error if files fail to fixup due to importing by name
       
  3531 
       
  3532 
       
  3533 Version 0.01.004/005
       
  3534 ====================
       
  3535 (Made by Jane, 15th November 1995)
       
  3536 
       
  3537 1) Added -R option to DEFMAKE so that the omission of ??__Dbg names in the .DEF
       
  3538    (release 003, (1)) can be optional.
       
  3539 
       
  3540 2) DEFMAKE alone now prints the meaning of the switches as well as help text.
       
  3541 
       
  3542 Version 0.01.003
       
  3543 ================
       
  3544 (Made by Jane, 7th November 1995)
       
  3545 
       
  3546 1) Changed DEFMAKE not to write any exports after it hits the first
       
  3547    ??__Dbg prefixed name, allowing me to automate the E32 build
       
  3548    completely.
       
  3549 
       
  3550 2) E32ROM - Added code to avoid overwriting the first byte of a file if presented
       
  3551    with an invalid RVA of 0. (Bug in Cygnus tools).
       
  3552 
       
  3553 Version 0.01.002
       
  3554 ================
       
  3555 (Made by Jane, 2nd November 1995)
       
  3556 
       
  3557 1) Converted DEFMAKE to the new HOST scheme.
       
  3558 
       
  3559 2) Sorted MNT.CMD so E32ROM will actually build.
       
  3560 
       
  3561 
       
  3562 Version 0.01.001
       
  3563 ================
       
  3564 (Made by Jane, 1st November 1995)
       
  3565 1) First release.
       
  3566