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