imgtools/romtools/group/release.txt
changeset 590 360bd6b35136
parent 0 044383f39525
child 607 378360dbbdba
--- a/imgtools/romtools/group/release.txt	Wed Jun 16 16:51:40 2010 +0300
+++ b/imgtools/romtools/group/release.txt	Wed Jun 23 16:56:47 2010 +0800
@@ -1,3680 +1,3826 @@
-Version 2.14.0 (rombuild)
-===============
-Made by Zhi Dou 26/10/2009
-
-1. RM-RIM406-1263: BU: Visual ROM Layout
-
-Version 2.13.4 (rombuild)
-===============
-Made by Zhi Dou 19/10/2009
-
-1. Minor change for copyright from SPL to EPL.
-
-Version 2.6.5 (rofsbuild)
-===============
-Made by Zhi Dou 19/10/2009
-
-1. Minor change for copyright from SPL to EPL.
-
-Version 2.6.4 (rofsbuild)
-===============
-Made by Zhi Dou 14/10/2009
-
-1. DPDEF142516 rofsbuild somtimes crash when building rofs image for tube with many times.
-
-Version 2.13.3 (rombuild)
-===============
-Made by Ross Qin 14/09/2009
-
-1. DPDEF141843 Coverity defects about Resource Leak and Delete Array. 
-
-Version 2.6.3 (rofsbuild)
-===============
-Made by Ross Qin 14/09/2009
-
-1. DPDEF141843 Coverity defects about Resource Leak and Delete Array. 
-
-Version 2.6.2 (rofsbuild)
-===============
-Made by Ross Qin 10/09/2009
-
-1.DPDEF141840 ROFSBUILD is not processing "-s<log|screen|both>" and "-loglevel<012>" correctly  
-
-Version 2.6.1 (rofsbuild)
-===============
-Made by Ross Qin 07/09/2009
-
-1.DPDEF141838 rofsbuild behaves differently from rombuild when invalid numbers given 
-
-Version 2.13.2 (rombuild)
-===============
-Made by Ross Qin 07/09/2009
-
-1.DPDEF141838 rofsbuild behaves differently from rombuild when invalid numbers given 
-2.DPDEF141291 Update unpaged memory overflow error message of rombuild.exe
-
-Version 2.13.1 (rombuild)
-===============
-Made by Ross Qin 03/09/2009
-
-1.DPDEF141685 Low error privilege for Kernel/variant/extension links to non-extension
-
-Version 2.6.0 (rofsbuild)
-===============
-Made by Ross Qin 26/08/2009
-
-1. REQ11940 Parallel processing - ROFSBUILD
-
-Version 2.13.0 (rombuild)
-===============
-Made by Ross Qin 26/08/2009
-
-1. REQ12560 Parallelise Content Preparation - ROMBUILD
-2. REQ13102 Parallelise Image Generation - ROMBUILD
-
-Version 2.1.603 (readimage)
-===============
-Made by Ross Qin 24/08/2009
-
-1. DPDEF141624 Coverity reports delete array in C++ without [] and deadcode.
-
-Version 2.12.2 (rombuild)
-===============
-Made by Ross Qin 24/08/2009
-
-1. DPDEF141624 Coverity reports delete array in C++ without [] and deadcode.
-
-Version 2.5.3 (rofsbuild)
-===============
-Made by Ross Qin 24/08/2009
-
- 1. DPDEF141076 Memory leak in rofsbuild
- 2. DPDEF141624 Coverity reports delete array in C++ without [] and deadcode.
-
-Version 2.1.602 (readimage)
-===============
-Made by Zhi Dou 19/08/2009
-
-  1. DPDEF141566 Textshell ROM fails to build due to 'cannot open obey file' 
-  
-Version 2.12.1 (rombuild)
-===============
-Made by Zhi Dou 19/08/2009
-
-  1. DPDEF141566 Textshell ROM fails to build due to 'cannot open obey file' 
-
-Version 2.5.1 (rofsbuild)
-===============
-Made by Zhi Dou 19/08/2009
-
-  1. DPDEF141566 Textshell ROM fails to build due to 'cannot open obey file' 
-  
-Version 2.5.0 (rofsbuild)
-===============
-Made by Zhi Dou 31/07/2009
-
-  1. PREQ2465's REQ12562 Byte-pair compression update
-  
-Version 2.12.0 (rombuild)
-===============
-Made by Zhi Dou 31/07/2009
-
-  1. PREQ2465's REQ12562 Byte-pair compression update
-
-Version 2.4.1 (rofsbuild)
-===============
-Made by Zhi Dou 29/07/2009
-
-  1. DPDEF141175 - Removal of the "-w" option in imgtools .mmp files results in a lot of warnings 
-  
-Version 2.11.2 (rombuild)
-===============
-Made by Zhi Dou 29/07/2009
-
-  1. DPDEF141175 - Removal of the "-w" option in imgtools .mmp files results in a lot of warnings 
-
-Version 2.11.1 (rombuild)
-===============
-Made by Zhi Dou 27/07/2009
-
-  1. DPDEF141013 ROMBUILD should prevent kernel extensions linking to user side 
-  
-Version 2.11.0 (rombuild)
-===============
-Made by Zhi Dou 21/07/2009
-
-  1. PREQ2465's REQ11939 Warnings for unpaged memory size overflows
-
-Version 2.10.0 (rombuild)
-===============
-Made by Zhi Dou 20/07/2009
-
-  1. REQ13110 HCR file in ROM (ROMBUILD)
-
-Version 2.4.0 (rofsbuild)
-===============
-Made by Zhi Dou 20/07/2009
-
-  1. REQ13111 HCR file in a separate NAND partition (ROFSBUILD)
-  
-Version 2.1.602
-===============
-Made by Vino Jose 10/07/2009
-
-1.	ChrisN
-	1.	MILESTONE: SymTB9.2, GT0419, MS3.36, DS.1815 PREQ2621 System Architecture Relocating header files - K&HS support
-
-Version 2.1.601
-===============
-Made by DeleOgunjumelo 15/01/2009
-
-1.	JonCo
-	1.	MILESTONE: Diran, GT0421, MS3.20, DS1210, REQ11822: WDP support for SBSv1
-	2.	MILESTONE: Diran, GT0421, MS3.20, DS1210, REQ11823: WDP support for romtools
-		PREQ1954 Writeable data paging: prototype release 
-
-Version 2.1.600
-===============
-Released by Kun Xu, 20/06/2008
-	1. DEF122540: Slight issue with readimage and sis files that specify a drive letter.
-
-Version 2.1.599
-===============
-Released by Kun Xu, 17/06/2008
-	1. DEF122721 READIMAGE:Files are extracted in 'reftsp.ini' directory for an ROFS image.
-
-Version 2.1.598
-===============
-Released by Kun Xu, 02/06/2008
-	1. DEF122243: ROMBuild deal with file contain line more than 255 characters incorrectly 
-
-Version 2.1.597
-===============
-Released by Kun Xu, 02/06/2008
-	1. DEF122827: Rom build failure with _ONENAND switch
-	2. DEF119470: ROFSBUILD hangs when an empty OBY file is passed as input
-	3. DEF122024: Many warnings when compiling readimage tool with MSVC++ 6.0
-	4. DEF122533: ROFSBUILD loglevel2 generates logs which don't work for interpretsis
-	
-Version 2.1.596
-===============
-Released by ReubenH, 12/05/2008
-	1. DEF115401: Incomplete validation of data in loader 
-
-Version 2.1.595
-===============
-Released by Mool Chand Tyagi, 13/12/2007
-	1. PDEF115166 	Symbian rombuild.exe work incorrectly when compression is used
-
-Version 2.1.594
-===============
-Released by Tamilarasu Byran, 04/12/2007
-	1. PDEF114692: elf2e32 - failed to report relocation data.
-
-Version 2.1.593
-===============
-Released by Tamilarasu Byran, 07/11/2007
-	1. DEF113140: Buildrom fails with error "Use the keyword 'romsize' " for extension ROFS image.
-
-Version 2.1.592
-===============
-Released by Madhu, 31/10/2007
-	1. PDEF107501: readimage is not able to display output of the patched dll.
-
-Version 2.1.591
-===============
-Released by Tamilarasu Byran, 26/10/2007
-	1. INC112577: Readimage tool crashes when run on S60 3.2 rom image.
-
-Version 2.1.590
-===============
-Released by Tamilarasu Byran, 25/10/2007
-	1. DEF107096: Postlinker ignores references to imports from the data segment.
-	2. DEF112586: Buildrom fails while building extension rofs image.
-
-Version 2.1.589
-===============
-Released by Saurabh, 11/10/2007
-	1.	INC112241: Operator precedence bug in Rombuild  
-
-Version 2.1.588
-===============
-Released by Moolchand, 10/10/2007
-	1.	PDEF109724: Rombuild/Rofsbuild should warn if dll or exe is located outside standard paths 
-
-Version 2.1.587
-===============
-Released by Saurabh, 03/10/2007
-	1.	DEF111903: Elf2e32 GT warning base e32  
-
-Version 2.1.586
-===============
-Released by Madhu, 28/09/2007
-	1.	PDEF102323: rofsbuild crashes without generating appropriate error message 
-
-Version 2.1.585
-===============
-Released by Tamilarasu Byran, 25/09/2007
-	1.	DEF111695: Data drive image generation failed
-	2.	DEF104630: elf2e32 crashes
-
-Version 2.1.584
-===============
-Released by AndrewSmi, 09/08/2007
-1.	AndrewSmi
-	1.	DEF110094: Run mode debug: debuggable keyword not supported for armv5_abiv1 in MCL
-
-Version 2.1.583
-===============
-Released by Tamilarasu Byran, 08/08/2007
-	1.	DEF106861: Specifying a compression method in buildrom doesn't work
-
-Version 2.1.582
-===============
-Released by MiguelB, 06/06/2007
-
-1.	Andrew Haigh
-	1.	PREQ1426: Added Debuggable bitfield to E32 header and associated changes
-
-
-Version 2.1.581
-===============
-Released by ???, dd/mm/yyyy
-1.  SivashankarN
-	1.	EC114: Core OS: Enhance File Server to solve 1085/1086 interoperability issue. 
-			Enhanced rofsbuild tools to handle the special attributes to create the rofs image
-
-Version 2.1.580
-===============
-Released by JonC, 03/04/2007
-
-	1) DEF104558 ELF2E32 should build dynamically for TOOLS2 rather than statically for TOOLS
-
-Version 2.1.579
-===============
-Released by KunalM, 27/03/2007
-
-	1) Seclib built as part of the system build
-
-Version 2.1.578
-===============
-Released by KunalM, 20/03/2007
-
-	1) ROM building tools (ROMBUILD,ROFSBUILD) ported to the TOOLS2 platform, under PREQ1182, MS3.1
-
-Version 2.00.577
-==========================
-(Made by SushmitaR, 19/03/2007)
-
-1) OlegI
-	DEFECT FIX: PDEF102522: DP: unhandled exception readimage.exe when using a XIP ROM paged core image 
-
-Version 2.1.576
-===============
-Released by KunalM, 06/03/2007
-
-	1) Build tools (elfdump,uidcrc) ported to the TOOLS2 platform, under PREQ1182, MS3.6.2
-	2) Seclib and Zlib added as pre-built libraries in the MCL for TOOLS2
-
-
-Version 2.00.575
-==========================
-(Made by JonathanM, 07/02/2007)
-
-1) JonathanM
-	DEFECT FIX: DEF101095: DP: Rofsbuild doesn't support paged, unpaged and pagingoverride keywords
-
-Version 2.00.574
-==========================
-(Made by Dusko, 12/12/2006)
-
-1) Dusko
-	DEF097419: DemandPaging:Keywords paged/unpaged are case sensitive
-
-Version 2.00.573
-==========================
-(Made by Dusko, 11/10/2006)
-
-1) Dusko
-	DEF095506: Change in behaviour for 0 length files (rofsbuild)
-
-Version 2.00.572
-==========================
-(Made by Dusko, 27/09/2006)
-
-1.	Dusko
-	DEF093537: Re-Introducing warnings when creating demand paged ROMs
-
-2.	RajeswariR
-	DEF087061 : PR0104 test failures - Incorrect function call, incorrect msg checking
-	DEF088937: Incorrect usage of $ChopSrcPath in cl_bpabi.pm.
-	DEF091008: ignorenoncallablefunction not supported in ABIV2 mode toolchain.
-	DEF093342: Symbol name for absent exports present in the DSO file.
-	DEF093344: ABIV2 fixup should not happen for export table relocation entries in postlinker.
-	DEF093345: Support for no exception compiler option in the ABIV2 mode toolchain.
-	DEF094731: Workaround to handle ARM linker veneer problem.	
-
-Version 2.00.571
-==========================
-(Made by RichardC, 13/09/2006)
-
-1.	RichardCo
-	1.	DEF093954: GetSecurityInfo does not support opening unicode filenames
-	2.	DEF092758: E32ImageFile::Open does not support opening unicode filenames
-
-Version 2.00.570
-==========================
-(Made by Dusko, 05/09/2006)
-
-1.	Dusko
-	INC088317 Elftran crashes during compilation of ARMV5 dll 
-
-Version 2.00.569
-==========================
-(Made by JonathanM, 01/09/2006)
-
-1.	DanH
-	1.	DEF091669: Several rombuild problems in demand paged roms.
-		Fixed various rombuild problems with different demand paging configurations, including
-		unhandled exceptions with certain edge cases and missing support for the 'alwayspage'
-		value for the pagingoverride keyword.
-
-Version 2.00.568
-==========================
-(Made by Dusko, 23/08/2006)
-
-1.	Dusko
-	DEF092459: Warnings when creating demand paged ROMs
-
-Version 2.00.567
-==========================
-(Made by ????, ??/??/2006)
-
-1.	AttilaV
-	1.	DEF090973: elf2e32 can't dump header of a byte pair compressed binary
-		Added missing image header wirting code fragment into e32imagefile.cpp 
-		E32ImageFile::WriteImage()method Bytepair compressed image generation branch.
-		Added new case: branch for display bytepair compression method in t the imgdump.cpp 
-		E32ImageFile::DumpHeader method. 
-
-	2.	DEF091564: Spurious warnings when using BytePair compression.
-		In \e32tools\e32image\e32image.cpp there are spuriou 'warning' messages whenever 
-		BytePair compression is used in "ostream& operator<<". These should be deleted. 
-
-Version 2.00.566
-==========================
-(Made by RobertJ, 20/07/2006)
-
-1.	DanH
-	1. 	DEF090813: Rofsbuild has warnings when creating demand paged ROMs
-		Added support for paged/unpaged attributes in rofsbuild. No action is taken with these 
-		attributes yet (not needed until "Code Paging" support is added) but the warnings have
-		been removed when DP ROMs are created.
-
-Version 2.00.565
-===========================
-(Made by DmitryL, 28/06/2006)
-
-1.	AttilaV
-	1.	DEF088473: ELF2E32 tool terminates if --compressionmethod bytepair CLI parameter presents
-		Fixed an uninitialised pointer use at create byte pair compressed executable image.
-
-
-Version 2.00.564
-===========================
-(Made by Dusko, 19/06/2006)
-
-1.	JohanG
-	DEF088447 Change in the rom log file format breaks CW debugging ...
-
-
-Version 2.00.563
-===========================
-(Made by Dusko, 19/06/2006)
-
-1.	JohanG
-	1.	DEF079348: ROMBUILD doesn't always fail cleanly on OOM
-	2.	DEF083206: elftran only dumps inferred relocations, not code or data
-
-
-Version 2.00.562
-===========================
-(Made by DjordjeK, 06/06/2006)
-
-1.	AttilaV
-	1.	DEF081770: The Loader should verify compression type.
-
-
-Version 2.00.561
-===========================
-(Made by DavidM, 26/05/2006)
-
-1.	AttilaV
-	Milestone: Argus,GT0286,MS3.2
-	Extended PETRAN, ELFTRAN, ELF2E32, ROMBUILD, ROFSBUILD to handle new compression method Byte Pair 
-	and new executable image compressed by the new compression
-
-
-Version 2.00.560
-===========================
-(Made by DuskoJ, 30/05/2006)
-1) SatyakamM
-	DEF083920: Rofsbuild crashes on using patchdata for ABIV2 DLL (ABIV1 works fine)
-
-Version 2.00.559
-===========================
-(Made by DuskoJ, 13/04/2006)
-1) Dusko
-	DEF083116 Validaterel always fails 
-
-Version 2.00.558
-===========================
-(Made by DuskoJ, 16/03/2006)
-1) JonC
-	DEF082002 - EVALID can't deal with case differences in ARMV5 DLL
-
-Version 2.00.557
-===========================
-(Made by JonathanM, 06/03/2006)
-
-1)	JonathanM
-	MILESTONE: Argus GT0286, MS3.1 PREQ209 Demand Paging Prototype.
-	First delivery of demand paging prototype. Delivery step DS204.
-
-Version 2.00.556
-===========================
-(Made by KuldipN, 08/02/2006)
-1) KuldipN
-	DEF078510 buildrom does not validate new XML files 
-	DEF077827 buildrom feature management - should disallow default ranges with extra flags 
-
-Version 2.00.555
-===========================
-(Made by DuskoJ, 24/01/2006)
-1) DuskoJ
-	DEF075849 Feature registry API returning error when featreg.cfg file is greater than 64KB
-	DEF077941 VA_* macros cannot be used with GCCE 
-
-Version 2.00.554
-===========================
-(Made by JonathanM, 04/01/2006)
-
-1) JonathanM
-	PREQ1030 - Kernel support for device driver test suites - Generic Logging Engine.
-	This adds support for the following keywords into ROMBUILD:
-		btrace, btracemode and btracebuffer
-	See base/documentation/Base_How_To_BTrace.doc
-
-Version 2.00.553
-===========================
-(Made by KuldipN, 21/10/2005)
-1) KuldipN
-	PREQ1086 - Device Feature Management (DS 069)
-Version 2.00.552
-===========================
-(Made by KuldipN, 12/10/2005)
-1) KuldipN
-	PREQ1028 - Plug-in compiler integration (DS 063)
-Version 2.00.551
-===========================
-(Made by KuldipN, 06/10/2005)
-1) KuldipN
-	PREQ1085 Flexible device ROM configuration
-Version 2.00.550
-===========================
-(Made by KuldipN, 14/09/2005)
-1) KuldipN
-	REQ5412: Enhance ROM tools compression options  (part of PREQ1192)
-
-Version 2.00.549
-===========================
-(Made by DuskoJ, 12/07/2005)
-1) RajeswariR
-	DEF065105 Using GCC-E should not require modification of existing bld.inf files
-	DEF063447 Postlinker crashes with unsupported outfile
-
-Version 2.00.548
-================
-(Made by JonC, 21/07/2005)
-1) JonC
-      PREQ1032 Hardware-dependent support for "VFP" floating point acceleration and accelerated maths functions
-
-Version 2.00.547
-===========================
-(Made by DuskoJ, 13/07/2005)
-1) Dusko
-	DEF063791 ROFSBUILD resets main ROFS file attributes when processing a ROFS extension
-
-Version 2.00.546
-===========================
-(Made by DuskoJ, 01/07/2005)
-
-1) Dusko
-	DEF062362 PE_DUMP does not report all significant content in NSIS files 
-	DEF064173 secdump.exe blows up when you try and use it 
-
-Version 2.00.545
-===========================
-(Made by KuldipN, 22/06/2005)
-
-1) KuldipN
-		DEF060825  PR0104: Addition of GCCE support to CodeWarrior 
-
-Version 2.00.544
-===========================
-(Made by KuldipN, 10/06/2005)
-
-1) KuldipN
-		DEF062125  PR104: Custom DLL generation is failing 
-
-Version 2.00.543
-===========================
-(Made by DuskoJ, 10/06/2005)
-
-1) Dusko
-		DEF061701 Petran.exe can crash on certain non E32 files
-
-Version 2.00.542
-===========================
-(Made by KuldipN, 27/05/2005)
-
-1) KuldipN
-	PREQ413   Changes to support the GCCE toolchain.
-      	PREQ414   Enable Commercial Compatible Compilers
-      	DEF061420 Elf2e32 Problems
-
-Version 2.00.541
-===========================
-(Made by DuskoJ, 27/05/2005)
-
-1) BalaT
-	DEF060837 RVCT2.2 emits unresolved symbols which ELFTRAN does not notice.
-
-
-Version 2.00.540
-===========================
-(Made by KuldipN, 11/05/2005)
-
-1) KuldipN
-	DEF060826 - PR0104 - PostLinker Memory Leaks
-
-Version 2.00.539
-===========================
-(Made by KuldipN, 3/05/2005)
-
-1) KuldipN
-	PREQ413 - Changes to support the GCCE toolchain.
-
-Version 2.00.538
-===========================
-(Made by BalaT, 1/04/2005)
-
-1) BalaT
-	DEF058002 - [System Build] Failed to build EIKCORE.DLL using RVCT2.2 
-
-Version 2.00.537
-===========================
-(Made by MiguelB, 1/03/2005)
-
-1) MiguelB
-	DEF055301 - ROFSBUILD, COREIMAGE keyword: problem with single-char files/directories 
-
-Version 2.00.536
-===========================
-(Made by Bala, 22/02/2005)
-1) Bala
-	PREQ1027 Submission of RVCT 2.2 Run-Time ABI Compliance to MCL
-
-Version 2.00.535
-===========================
-(Made by Dusko, 21/02/2005)
-
-1)	BalaT
-	DEF051265 Problems debugging .cia files in ARMV5 builds.
-
-Version 2.00.534
-===========================
-(Made by Dusko, 19/01/2005)
-
-1)	Dusko
-	DEF052809 - GENSTUB ERROR: can't open output file....
-
-Version 2.00.533
-===========================
-(Made by Dusko, 23/11/2004)
-
-1)	BalaT
-	1) DEF051128 - armv5 library build in parallel cause conflicts
-
-Version 2.00.532
-===========================
-(Made by KamranN, 11/11/2004)
-
-1)	KamranN
-	1)	Fix for defect DEF051421  Problems with binary search in ROFS  
-
-Version 2.00.531
-===========================
-(Made by Dusko, 08/10/2004)
-
-1)	BalaT
-	1) DEF047934 - ROMBUILD:EXE corrupts ROM directory of an extension ROM 
-
-Version 2.00.530
-===========================
-(Made by Dusko, 04/10/2004)
-
-1)	BalaT
-    1.	Fix for DEF046271 - EVALID cannot cope with differing temp paths present in some ARMV5 .lib files.
-
-Patch to Version 2.00.529
-===========================
-(Made by ???, ??/??/2004)
-
-1.	JonathanM
-	1.	Fix for -dump option in PETRAN.
-
-Patch to Version 2.00.529
-===========================
-(Made by MichaelP, 27/08/2004)
-
-1.	JonathanM
-	1.	Defect Fix: DEF048051 - ROMBUILD can when PlatSecEnforceSysBin is ON
-
-
-Version 2.00.529
-===========================
-(Made by KuldipN, 25/08/2004)
-
-1.	NaheedA
-	1.  DEF047579 - petran fails to report a corrupted input file.
-	2.  DEF046271 - EVALID cannot cope with differing temp paths present in some ARMV5 .lib files
-
-Patch to Version 2.00.528
-===========================
-(Made by JonathanM, 19/08/2004)
-
-1.	JonathanM
-	1.	Defect Fix: DEF048015 - [System Build] ROMs failed to build for MCL 03344 8.1b/9.0
-
-Version 2.00.528
-===========================
-(Made by DjordjeK, 18/08/2004)
-
-1.	JonathanM
-	1.	Added -dump option to PETRAN and ELFTRAN to select what information should
-		be displayed about an image file. This takes a string argument consisting
-		of letters to select the information to be dumped:
-			h	All header info
-			s	Platform Security info
-			c	Code section
-			d	Data section
-			e	Exports
-			i	Imports
-		These letters can be used in any combinations, e.g. "PETRAN -dump ie foo.exe"
-		will show all Imports and Exports of FOO.EXE
-
-Version 2.00.527
-===========================
-(Made by JonathanM, 26/07/2004)
-
-1.	JonathanM
-	1.	Added PlatSecEnforceSysBin setting to ROMBUILD which forces all binary files to
-		be placed under the \sys\bin\ directory.
-		Part of Yankee,GT0217,MS3.1.4 PS6.3.2 Ignore path information for binary files
-		within ROM build and loader.
-		
-Version 2.00.526
-===========================
-(Made by JonathanM, 26/05/2004)
-
-1.	DennisM
-	1.	Fixed defect DEF041434 EKA2 ROMBUILD can't build extension ROMs
-	2.	ROMBUILD now checks that kernel side code doesn't link to user side
-		code, and vice-versa.
-
-Version 2.00.525
-================
-Made by Dusko, 18/05/2004
-
-1) Dusko
-	1) Fix for DEF045146  EVALID does not correctly handle ARMV5 lib files or RVCT .MAP files.
-
-Version 2.00.524
-================
-Made by JonC, 29/04/2004
-
-1) Jon
-	Fixes for:
-	1) DEF044567 gendirective obtains ELF section header data incorrectly
-	2) DEF044048 RVCT version of DEF2DLL camplains about DLLs not having exports 
-
-Version 2.00.523
-===========================
-(Made by JonathanM, 19/03/2004)
-
-1.	JonathanM
-	1.	Implemented the requirements:
-		REQ2632 - Configurability of the enforcement of capabilities
-		REQ2633 - Security violation diagnostic
-		REQ3142 - Associate Platform Security information with an executable.
-		See /cedar/generic/base/documentation/Base_How_To_Configure_Platform_Security_Settings.doc
-
-Version 2.00.522
-===========================
-(Made by JonathanM, 26/02/2004)
-
-1)	JonathanM
-	1)	Modifications made for implementation of
-		Change Request JDOD-5VUJ7F - Change in executable format of EKA2 binaries.
-	2)	Tools now use the sytax "cap1+cap2+cap3" to specify a named set of capabilities
-		(Rather than specifying a single hexadecimal number.)
-	3)	Added three new keywords to ROMBUILD:
-			PlatSecEnforcement
-			PlatSecDiagnostics
-			PlatSecDiasabledCaps cap1+cap2+cap3
-		these are used for specifying Platform Security settings which are then placed
-		in the ROM Header.
-
-Version 1.00.521
-================
-Made by DuskoJ, 16/02/2004
-
-1) Dusko
-	1) Fix for DEF042440 - elfdump creates a new file with zero length.
-
-
-Version 2.01.520
-================
-Made by AndrewJ, 13/02/2004
-
-1) StephanGu
-	Implemented CLCT-5VEK4P - "Binary search in ROFS 
-	together with 'expanding ROFS entries with UIDs'".
-	Changed Rofsbuild to provide a sorted array of offsets
-	in order to allow the file system to perform binary search
-	through the image.  Also expended the TRofsEntry structure
-	to include a copy of the file UID data.
-
-
-Version 2.01.519
-================
-Made by DuskoJ, 30/01/2004
-
-1) Jon
-	1) Fix for - DEF040324 PETRAN access violation whilst converting THUMB build EXEDLL
-	   (Further amendment).
-
-Version 2.01.518
-================
-Made by DuskoJ, 22/01/2004
-
-1) Kuldip
-	1) Fix for DEF40965 Changes to stop overwriting readonly attribute for directories.
-
-
-Version 2.01.517
-================
-Made by DuskoJ, 05/01/2004
-
-1) Kuldip
-	Fix for DEF039055  "Change in behaviour for 0 length files"
-
-Version 2.01.516
-================
-Made by DuskoJ, 19/12/2003
-
-1) Dusko
-	1)	fix for DEF039365 - Petran ignores -fixed keyword	
-
-
-Version 2.01.515
-================
-Made by Dusko, 17/12/2003
-
-1. Kuldip
-	1)	REQ1733, A3.2 Improved Command Line Build Tools
-        ROFSBUILD ROM flexing, Automatic sizing behaviour
-		Automatic XIP-extension OBEYFILE, header generation
-
-Version 2.01.514
-================
-Made by Dusko, 24/11/2003
-
-1. Dusko
-	1)	DEF039411  pediff does not ignore the header CRC 
-		File changed pediff.cpp
-
-Version 2.01.513
-================
-Made by Dusko, 03/11/2003
-
-1. Dusko
-	1.	fix for DEF039536 Non existing files referenced in  Tools_e32tools.mrp...
-
-
-1) William
-	1)	Added PE_DUMP to support the new EVALID.
-
-Version 2.01.512
-================
-Made by Dusko, 10/10/2003
-
-1. Dusko
-	1.	Zephyr,PRO0085,REQ1663, Remove dependencies on MSDEV	
-	  	Changes to BIN2COFF and  WVECONV in order to build with CW
-
-
-Version 2.01.511
-================
-Made by Dusko, 02/10/2003
-
-1. Dusko
-	1.	fix for DEF037065 Problem with error message from uidcrc
-
-Version 2.01.510
-================
-
-Made by Dennis, 24/09/2003
-
-1. Dennis
-	1.	ROMBUILD adds sorted offsets to directory structures to enable binary
-		searching of the ROM file system.
-	2.	Implemented CR ATHE-5PZEAU (Add Version Numbers to Symbian OS Executables).
-
-Version 1.00.505
-================
-Made by DuskoJ, 22/08/2003
-
-1) Morgan
-	Ported ROFSBUILD extension support from beech
-	1) 	Added ROFSBUILD extension support.  Start a ROFS extension with obey file 
-		commands
-			extensionrofs = <filename>
-			rofssize = <size>
-		Added support for ALIASing, HIDEing and RENAMEing.  Semantics and syntax
-		for these commands are the same as ROMBUILD.
-		Core image and extension can be joined together with 
-			tools\e32tools\rombuild\addextensions.pl
-		Added TRofsExtensionHeader to ROFS.H
-		Padding, Alignment and Repro assumptions: 
-		The extension assumes it will be added TRofsHeader::iMaxSize bytes
-		after the start of the core image.  It is assumed the max size of the core
-		image will be aligned appropriately for the underlying ROM device.
-		Core image has signature "ROFS" at offset 0, extension has signature
-		"ROFx" at offset 0 into extension (= iMaxSize after start of core image).
-
-2) Morgan
-	1)	Added rofsbuild\dumpdirs.pl - utility for dumping the ROFS directory
-		structure.
-	2)	Ported ROFSBUILD executable compression from beech
-
-3) Dusko	Changes to a number of e32tools components in order to build cleanly with CodeWarrior
-
-
-Version 1.00.504
-================
-Made by DuskoJ, 25/07/2003
-
-1. Jon
-	1. Fixed DEF036679 by adding copyright statements where appropriate.
-
-
-Version 2.00.503
-================
-
-1) Morgan
-	1) Removed ROMBUILD build warning
-
-Version 2.00.503
-================
-
-1) Dennis
-	
-	ROMBUILD changes:
-
-	1)	'kernelstackaddress' keyword removed. This is now always calculated by
-		ROMBUILD.
-	2)	Address allocation strategy modified. The initial stack is now placed
-		immediately after the kernel .data/.bss area. The kernel heap follows
-		the initial stack (as before). In the moving model, fixed process data
-		chunks are placed after the kernel heap (on chunk boundaries).
-	3)	TRomHeader::iKernStackAddress replaced with TRomHeader::iKernelLimit,
-		which gives the end of the kernel heap rounded up to a chunk boundary
-		except on the moving memory model where it is advanced past the space
-		reserved for fixed process data chunks.
-
-
-Version 2.00.502
-================
-
-1) Dennis
-	1)	Pulled out general E32Image file handling code into e32tools/e32image/...
-		directories. This includes compression/decompression and all stuff which
-		doesn't require	the native PE or ELF file.
-	2)	Merged the two versions of ROMBUILD. ROMBUILD.EXE now accepts E32Image
-		files derived from either PE or ELF. It no longer accepts the native
-		PE/ELF files directly. XIPRMBLD.EXE is no longer built.
-	3)	Added a special instruction (TST PC, #0) to the beginning of all EKA2
-		entry points. This is detected by PETRAN/ELFTRAN and the file marked as
-		having an EKA2 style entry point. The ELF-derived and JFormat flags have
-		been generalised into header format, import format and ABI fields. An
-		entry point type field has been added to distinguish EKA1 and EKA2 entry
-		points.
-	4)	Add 'nowrapper' keyword to ROMBUILD. If specified in OBY file it causes
-		the 256 byte wrapper to be omitted. This setting can still be overridden
-		on the command line.
-
-
-
-======================
-ELFDUMP version 1.0.0
-1) Dusko
-     1) Adding elfdump.cpp. Elfdump is required to be a standalone program     
-    	which can present an ELF object file in a form suitable for use with 
-    	EVALID. It prints hex dumps of relevant sections, directive section as 
-    	text and relocation information showing the symbol the name and of the 
-    	section in which the relocation occurs.
-
-Version 1.00.501
-================
-EKA2 Tools
-
-1) RobertJ
-	1) Support for compressed executables introduced. Source code for the compression
-	& decompression is in petran\szip. Changed PEDUMP to dump compressed executables
-	added -compress & -nocompress options to PETRAN
-	2) Bumped version number of written executables to 1.10
-	3) Added a new format bit to iFlags JFormat (Jetstream format)
-
-Version 1.00.500
-================
-EKA2 Tools
-
-1) Dennis
-	1) Added support for the x86 development target to PETRAN
-	2) Added various values to the ROM header for EKA2 in ROMBUILD
-2) William
-	1) Added -capability <mask> option to PETRAN. There isn't yet an iCapability field in the
-	   E32ImageHeader, but everything else is ready to go.
-
-
-================
-ROMBUILD version 2.05
-
-1) William
-	1)	Fixed defect ROS-52XF6E "ROMBUILD produces incorrect S-Record checksums" by getting the length
-		right (actually by checksumming the bytes we write instead of calculating the values twice).
-	2)	Disable the 3-byte address form of S-Record with a #define, since it upsets some external
-		tools and only benefitted serial download to M*Core.
-	3)	Fixed defect ROS-52ZED7 "ROMBUILD crashes if section 1 overflows in 2 section ROMs" by
-		checking for overflows in the right place.
-	4)	Made verification failure use Print(EError, ...) in all cases, so that it will cause a 
-		ROMBUILD failure rather than just a small complaint at the end of the log file.
-	5)	Extend checkstubs.pl to handle the R3UNUSED Thumb stubs, and update stubs.lst
-
-Todo
-handle section 1 DLLs linking to section 2 DLLs so that section 2 can be replaced
-respect the E32Image flags for dll static data and called entrypoints 
-			
-
-2) Chris
-	1)	Updated romimage.rtf to remove screensize keyword
-
-3) Nicolas (work done as part of CR JPAR-54XMZD)
-	1)	Added new keyword: DEBUGPORT.  It takes a numeric argument
-		which is a magic cookie as far as rombuild is concerned and
-		is stored in the ROM header for interpretation by the
-		kernel and bootstrap.  The default value is -1.
-	2)	Updated romimage.rtf to include DEBUGPORT.	
-
-
-================
-ROMBUILD version 2.04
-
-1) Nicolas
-	1)  Fixed bug where EPOC crashes during boot if there is a non-empty
-	    area after an empty one in the relocation table.
-	2)  Modified the way the kernel extensions list is built to
-	    ensure the extensions are always in the same order in the
-	    list as in the obey file even when some extensions are in
-	    areas and other aren't.  This is necessary because the
-	    kernel extension ordering in the obey file is important
-	    (for example an extension registering a power handler
-	    *must* be loaded after the extension that loads the power
-	    model).
-	3)  Fixed bug in AreaSet::AddArea() (overlap was not detected
-	    when an existing area is embedded in the new one).
-	4)  Overlap unit tests updated.
-	5)	Fixed bug in TDllExportInfo ctor: The ptr to the export directory in
-	  	the ROM buffer was wrong when the file was relocated to a non-default
-	  	area (iRunAddress / iImageAddr mismatch).
-
-
-================
-ROMBUILD version 2.03
-
-1) William
-	1)  Set the default srecordbase to zero, and remove the srecordbase validation.
-	2)  Added "data-align" attribute, and used it in the calculation of dataOffset for
-	    things sharing the SvData. It's not a great name, but it will do for now...
-	3)  Added "KeepIAT" attribute, which builds an old-style Import Address Table instead
-	    of pointing the stubs directly at the export data.  NB. this won't work for
-	    section 1 DLLs, because I haven't reinstated the machinery for putting the IAT into
-	    the second section.
-	4)  Fix defect CLE-4ZEJBB "rom building: fatal error when file to hide isn't found" by
-	    dealing with (aKeyword==EKeywordHide) before testing for !existingFile, and issuing
-	    a warning if the existing file wasn't found.
-	5)  Export checkstubs.pl to \epoc32\rom\tools
-
----------------------
-ROMBUILD version 2.02
-
-1) Nicolas
-
-	1) ROMBUILD: Introduced new area syntax (incompatible with the existing
-       scheme):
-
-		a) The "area <name> <start> <size>" statement declares an area
-		(there is no need to declare the default ROM area).
-
-		b) The "area=<name>" file attribute relocates individual files to
-		the designated area.
-
-		c) When invoking rombuild with -s, a summary of the free and used
-		space in each area is printed.
-
-		d) Areas can be used only in the first section of a sectioned ROM
-		and are forbidden in extension ROMs.
-
-		e) It is forbidden to patch a relocated file.
-
-	2) ROMBUILD: Introduced classes Area and AreaSet and associated
-       iterators to replace all the existing dynamic arrays and indexes
-       used to store the area-related state.  Unit tests for these are
-       built using r_t_areaset.mmp.  Refactored existing code (notably
-       E32Rom::LayoutRom()) to use those new classes.
-
-	3) ROMBUILD: Moved global variables from rombuild.cpp to r_global.cpp
-       to allow build of r_t_areaset.exe.  Made static the globals which
-       were used only in rombuild.cpp.
-
-	4) ROMBUILD: Merged TAddressSet into TAddressRange.  Renamed every
-       "i.*Set" variable to either "i.*Range" or "i.*Section" (previously
-       existing "i.*Section" variables have been suffixed with "Number").
-
-	5) ROMBUILD: Updated version number to 2.02.
-
-	6) HOST: Turned the various overloads of Val() into a template
-       function.
-
----------------------
-ROMBUILD version 2.01
-
-1) William
-	1)  Fixed bug in ParseArea() which reused the area address as the area length
-	2)  Allow for executables generated before GCC 530 by changing the assertion about 
-	    unexpected data. If it looks as though the rdata is after the IAT, then the whole
-	    of the E32ImageFile text area is included in the ROM.
-	3)  The rounding up for the ROM size to a multiple of a megabyte must not exceed the
-	    originally specified size.
-	4)  Increased the ROMBUILD version to 2.01
-
-Version 1.00.174
-================
-Made by William, 23/03/2001
-
-1) William
-	1)  Removed the old .ipr files associated with the predecessor to DISTRIBUTION.TXT
-	2)  Moved ROMBUILD.MMP into the ROMBUILD directory
-	3)  Gave ROMBUILD it's own major and minor version numbers - now 2.0
-	4)  Moved the collapsing routines into ROMBUILD\R_COLLAPSE.CPP
-	5)  Substantial rework of the way that the E32Image files are put into the ROM: it's now
-	    almost the case that the ROM layout is established before copying any data. The layout
-	    is expressed by setting up TAddressRange and TImageSection values in the TRomBuilderEntry,
-	    and the rest of the relocation and copying to the ROM image follows from those values.
-	6)  Change of approach on relocation: instead of relocating the file contents after copying
-	    into the ROM image, do the relocation beforehand. This allows the relocation to operate on
-	    a simple fixed layout (the one which PETRAN set up), and frees the ROM layout to be
-	    entirely different.
-	7)  Unified all the various ROM flavours: in particular the "areas" support is part of the
-	    normal layout process. The use of TAddressSets and their derived forms makes this
-	    pretty painless.
-	8)  Removed the Import Address Tables, saving ~240K in a Quartz 6.1 ROM. The import stubs
-	    are fixed up to point directly into the export directory for the relevant DLL. In two 
-	    section ROMs the export directories are now placed at the start of the upper section 
-	    to support patching: this was previously done using the import address tables.
-	9)  Various special case handling for the Primary has been reworked using generic support.
-	    In particular the primary now gets a default code alignment of 4K, which allows the 
-	    gap to be occupied by other files if the obey file is suitably arranged.
-	10) Area relocation is more pervasive than before. The import stubs in relocated executable
-	    no longer refer back to the unrelocated original contents of the area.
-	11) The sizes of the DLL reference tables are now reported in the log.
-	12) Fixed a bug which caused ROMBUILD to crash if a file was marked as "patched" in a 
-	    two section ROM.
-	13) Size information in the ROM is more consistent: the size in the ROM filesystem is always
-	    the length of the contiguous section beginning at the given address, and the size summary
-	    in the log file reports the SizeInRom() information for the file, which should always
-	    reflect the real cost in ROM of the file regardless of layout.
-
-Version 1.00.173
-================
-Made by Morgan, 08/03/2001
-
-1) Morgan
-	1)	Fixed ROMBUILD to accept DLLs with no imports and DLLs with no exports
-
-
-Version 1.00.172
-================
-Made by William, 07/12/2000
-
-1) William
-	1)  Introduced ROMBUILD support for extension ROMs, the deliverable from project PR0027.
-	    Lots of churn, but the key new data structure is the TRomNode which separates the
-	    ROM directory structure information from the individual files (TRomBuilderEntry). The
-	    TRomNodes handle the DLL name matching and are used to drive the multiple-variant clever
-	    directory structure operations.
-	2)  Reworked the ROMBUILD parsing strategy to remove the need for "files=", allowing the
-	    header statements and file statements to be mixed freely in the OBY file.
-	3)  Use the tables which now drive the ROMBUILD parsing to generate the help information.
-	4)  Don't create ROMBUILD.LOG unless processing an OBY file, and put extra useful information
-	    into the log. In particular, print a line include the ROM image name before processing
-	    the files and after writing the ROM image, e.g.
-
-	        Creating Rom image testrom.IMG
-		...
-	        Writing Rom image with repro header to file testrom.IMG
-
-	    Also report the "Writing" line to the screen, as a comfort to the user.
-	5)  Fix ROS-4RJPTK "ROMBUILD checksums are incorrect" by computing the checksum at the 
-	    right stage, and cross check to make sure it's still right when displaying the ROM stats.
-	    ROMs built with this version of ROMBUILD are likely to be different in up to 4 bytes
-	    at offsets 0x1A8 to 0x1AB (0xA8 to 0xAB for images without a REPRO header).
-	6)  Make "unicode" the default, and introduce sensible defaults for various other keywords.
-	7)  Remove the ROMBUILD support for bigendian images (it's still present in the files
-	    shared with PETRAN.
-	8)  Added dumpdirs.pl which prints out the ROM root directory structures.
-	9)  Added addextension.pl which concatenates a kernel ROM and an extension ROM, making a 
-	    combined image suitable for use with Brutus.
-	10) Try harder to continue reporting errors rather than stopping immediately. In particular,
-	    report all of the unresolved DLL linkages rather than just the first one.
-	11) Introduce new keywords "hide", "alias" and "rename" to manipulate the directory structure.
-	12) Added romimage.rtf documentation (from the BPK, but somewhat edited) and export it to
-	    \epoc32\engdoc\e32tools
-
-
-Version 1.00.171
-================
-Made by Nicolas, 19/10/2000
-
-1) William
-	1)  Rework internals of ROMBUILD to remove arrays indexed by file number.
-	    TRomBuilderEntry is now derived from E32ImageFile, and the various arrays
-	    have become member data in the associated TRomBuilderEntry - OO, dontcha just love it!
-	2)  Added -coff-header option, which could remove the need for bin2coff
-	3)  Use the .idata information to get the DLL ordinals, not the IAT. 
-	    This is preparation for the IAT removal idea, which involves turning the IAT into
-	    a table of pointers back to the associated stubs.
-	4)  Added a range check to TRomBuilderEntry::AddressOfOrdinal
-	5)  Added documentation about various forms of import stub, and checkstubs.pl which
-	    scans all of the stubs in a ROM to check that they lead to a function of the
-	    correct name.
-	6)  Introduced TAddressSet for recording the various addresses associated with
-	    code in a ROM (address of ROMBUILD.EXE working copy, address in ROM, execution address).
-	    Currently used for handling ImportAddressTable and DllRefTable and seems to work in
-	    a two-section Brutus ROM.
-	7)  Partial fix for EDNRFID-4J6DV3 "Corrupt reloc table generated"
-	    Allow for the possibility that there is only .bss with no .data when applying the
-	    heuristic for relocs that don't point into any known section.
-	    Fix printf format specifier typo by changing %0x8 -> %08x
-	8)  Added a verbose option to W32REPRO
-
-
-Version 1.00.170
-================
-Made by Dennis, 13/09/2000
-
-1) William
-	1)  Dust off the S-Record support in ROMBUILD
-	    Use the full 78-bytes available per line, and add support for the
-	    3-byte address form, since this is beneficial to M*Core Cogent.
-	2)  Use "srecordfilename=*" to mean "append .srec to romname and use that"
-	    Same approach for "romnameodd=*" and "romnameeven=*" filenames.
-	3)  Set the RomHeader iSize to be iSizeUsed rounded up to a megabyte. This is
-	    particularly beneficial on platforms which RAM-load a ROM image (Brutus, Cogent)
-	    because it allows the bootstrap to use only the amount of RAM really needed
-	    for the ROM image.
-	4)  Add "hide" keyword to ROMBUILD, as requested by a licensee. This stops the
-	    specified file from being included in the ROM directory, but doesn't stop other
-	    ROM files from linking to the hidden file. A consequence of hiding a DLL is that
-	    it can't be dynamically loaded, which means that you can't hide kernel extensions.
-
-
-Version 1.00.156
-================
-Made by Morgan, 5/7/2000
-
-1) Anon
-	1) Changes to ETOUCH
-	==== //EPOC/development/base/6.0/e32tools/ETOUCH/ETOUCH.CPP#1
-	@@ -3,6 +3,10 @@
-	 // Copyright (c) 1996-1999 Symbian Ltd.  All rights reserved.
-	 //
-
-	+#if defined(__VC32__)
-	+#pragma warning(disable : 4710)        // function '...' not expanded
-	+#endif
-	+
-
-
-Version 1.00.155
-================
-Made by Dennis 22-06-2000.
-
-1)	Dennis
-	1)	Modified W32REPRO so that the -HEX option only makes it receive in hex.
-		It always transmits in base 10. This is so it works with REPROC.
-	2)	Fixed bug in ROMBUILD - it didn't like files with no imports.
-
-Version 1.00.154
-================
-(Made by Alastair, 10.3.2000)
-
-1)	William
-	1)	Added M*Core support
-		Basically just another PE magic number and another TCpu code.
-
-Version 1.00.153
-================
-(Made by Pete, 24/02/2000)
-
-1)	William
-	1)	Updated PETRAN to report exports with value 0 as
-
-			WARNING: No export specified for ordinal 62
-
-		and promoted the non-zero exports from an unknown section to be errors.
-	2)	Added more information to the warning about failure to identify a section for relocation,
-		just in case it ever happens...
-
-2)	Simon
-	1)	Added bin2coff, a utility to add a coff header to a binary
-	  	image. Mainly for use with the cogent smartfirmware
-
-Version 1.00.152
-================
-(Made by Dennis, 19/01/2000)
-
-1)	William
-	1)	Updated W32REPRO usage statement to remove misleading limit on the baud rate
-		The baud rate is actually passed directly to the Win32 comms device, so it should
-		be possible to specify any baud rate supported by the device.
-	2)	Updated W32REPRO to add a -RAW option for use with Brutus REPROB (and others).
-		This tells W32REPRO not to expect a 256-byte header on the image, but it will
-		still pretend that there is one, as expected by the existing REPRO code.
-	3)	Updated W32REPRO to a -BOOT <boostrap_image> and -HEX options, to support
-		the Cirrus Logic board. The bootstrap is sent at 9600 baud before starting the
-		normal REPRO protocol, and -HEX changes the protocol to use base 16 rather than
-		base 10 for numbers transmitted between W32REPRO and the other end.
-	4)	Added W32REPRO protocol support for a new command 'D' which tells W32REPRO to
-		disconnect after a successful transfer: REPROB could usefully be extended to
-		send this command...
-
-2)	Morgan
-	1)	Fixed ROMBUILD so it gives appropriate errors if passed an empty file
-	2)	ROMBUILD.LOG reports inclusion of 256 ROM repro header (Defect EDN147097)
-	3)	Fixed EDN580686 Rombuild is not very tolerant
-	4)	Fixed EDN210727 PEDIFF returns stupid result codes
-		PEDIFF now returns 0 for identical files, and 2 for different files
-	5)	Improved PETRAN dump output (Fixed EDNGLAY-463LNN)
-
-
-Version 1.00.151
-================
-(Made by Morgan, 3/12/99)
-
-1)	Alastair
-	1)	Created a new utility, ERUNTEST.EXE, which will take a batch file
-		listing tests as generated by ABLD and run each test in turn, checking
-		whether each test has succeeded or not by checking the return value from
-		the process and also checking output to the EPOCWIND.OUT file in the
-		temporary directory.  ERUNTEST.EXE logs output to standard output.
-		Obviously this utility will only run WINS/WINC tests.  It must be invoked
-		from the directory in which the test executables reside.
-
-2)	Morgan
-	1)	Fixed some warnings
-
-
-Version 1.00.150
-================
-(Made by Morgan, 27/9/99)
-
-1)	Alastair
-	1)	Created new directory COLTAB and added COLTAB.CPP, BASEKEYS.TXT,
-		COMPKEYS.TXT and README.TXT.  COLTAB comes from Graham Asher, and is a
-		tool for writing the collation tables in COLLATE.CPP.  README.TXT
-		contains details of the URL from which data files BASEKEYS.TXT and
-		COMPKEYS.TXT were sourced.  Type COLTAB without any parameters for help,
-		and/or read the header in COLTAB.CPP.  Console APP COLTAB.EXE will be
-		built into \EPOC32\Tools\.
-
-2)	Malcolm
-	1)	Added code to allow the kernel debug mask to be set via the ROM.OBY
-		file via the new KERNELTRACE keyword.
-
-3)	Morgan
-	1)	ROMBUILD internal directory structure is now sorted wrt a unique
-		identifier for each Dir.  This (hopefully) fixes the reproducability
-		problems ("drifting-directories") experienced when building identical
-		Roms in different NT environments.
-
-
-Version 1.00.125
-================
-(Made by Morgan, 26/8/99)
-
-1)	Dennis
-	1)	Added "defaultstackreserve" keyword. The argument to this keyword is
-		added to the combined size of .data and .bss to determine the address
-		space to reserve for the $DAT chunk of a 'fixed' process. The value
-		defaults to zero for compatibility with previous versions.
-		Added "stackreserve" keyword to override the default setting on a
-		per-file basis.
-
-
-Version 1.00.124
-================
-(Made by Alastair, 2nd August 1999)
-
-1)	Jonathan
-	1)	Removed MAKSYM - moved to e32toolp.
-
-
-Version 1.00.123
-================
-(Made by Kal Patel, 22 July 1999)
-
-1) Morgan
-	1)	New ROMMASK.  Added a -verbose flag for logging, and added a -no-header
-		for Roms with no Epoc header.
-
-2) Malcolm
-   
-    1) Added Area support to ROMBUILD for Roxette.  This allows the
-       code to be fixed up to execute outside the rom where it's stored.
-       Relocation info is written into the rom and the bootstrap uses
-       this to copy the info out to its final location.  Any file can 
-       be in any arbitrary area.  This is only enabled in
-       singleprocess mode, since the same effect can be achieved with
-       an MMU on a real system.
-
-	   This is enabled by placing a "areas=<num>" line in the first
-	   section of the .oby file.  Then, in the files= section, the
-	   next tranche of files can be sent to another area with a
-	   directive like "area 0x81000000 0x100000" where the first value 
-	   is the address and the next the length. Up to <num> area lines
-	   can be in the file section.
-
-	   A relocation table is placed in ROM for the bootstrap.  Its
-	   address is stored in the romheader info that rombuild uses.
-	   The table is a list of <length> <src> <dest> triples, ending
-	   with a <0,0,0> tuple.
-
-	   Note that any bootstrap that uses this should not process a
-	   relocation table address of 0, as this maintains backwards
-	   compatability with old rombuilds which will put zero in the
-	   address location.
-
-3)	Alastair
-	1)	Removed all .DSP and .MAK files, now that makefiles are generated.
-	2)	Fixed minor typo in W32Repro.
-
-
-Version 1.00.122
-================
-(Made by Alastair, 12.7.99)
-
-1) Alastair
-	1)	Added fetcher definition file, E32TOOLS.FTC, to the group directory.
-	2)	Added William's new version of E32UID.CPP which no longer requires
-		WINDOWS.H.
-	3)	Added William's new UIDCRC.EXE, which provides a simple way to calculate
-		the checksum:
-
-			uidcrc <uid1> <uid2> <uid3> [<outputfile>]
-
-		This reads the three uids (using strtoul, so decimal and 0x9999 hex are 
-		found), computes the checksum, and either prints the 4 hex values to standard
-		output or creates <outputfile> as the 32 byte sequence which is the specified
-		UIDs and checksum in little-endian byte order.
-
-
-Version 1.00.121
-================
-(Made by Alastair, 16.6.99)
-
-1)	Alastair
-	1)	Fixed EDN459831 "Wveconv help is out of date" .
-	2)	Removed MAKTRAN, DEFMAKE and DEFTOOL.
-	3)	Converted all projects to MAKMAKE building for the new TOOLS platform.
-	4)	Changed zip of releasables onto the network - this is now called
-		TOOLS.<ver> rather than E32TOOLS.<ver>.  It also contains full paths to
-		the releasables so make sure you're in the root of your EPOC drive
-		before calling, say, "getrel e32tools tools 121".
-	5)	Updated MNT.CMD in various ways, including adding an MNT CHECKREL.
-	6)	Added dopcvs.pl and lock.pl to GROUP directory for use with MNT.BAT.
-
-
-Version 1.00.120
-================
-(Made by Morgan, 30th March 1999)
-
-1)	Morgan
-	1)	Fixed EDNGBON-46BQK4, "ROMBUILD "patched" keyword is broken".
-		(merged in from ER5 release E32TOOLS 110)
-	2)	Left a gap in the build numbers for ER5 maintenance releases
-	3)	Introduced a new version of ROMMASK.EXE.  The syntax has changed
-		from previous versions.  Type "ROMMASK" to see the new syntax.
-		For example, to produce a 10Meg image split into 8 and 2,
-		type the following:     
-rommask -rom p2rom.img -output rom.img -log rom.log -size 10 -section 8 -section 2
-		(You can leave off the final -section 2, and ROMMASK will do the
-		calculations for you.)
-		The output of Rommask will be "rom.log", and the 2 mask files
-		"rom.img" and "rom.im2"
-		ROMMASK still expects the image to contain a Psion 256byte header.
-
-
-Version 1.00.100
-================
-(Made by Morgan, 16th February 1999
-
-1)	Morgan
-	1)	Added the keyword 'srecordbase' to change the base address of
-		the motorola srecord output file.  (Defaults to address 0x0000)
-	2)	Fixed srecord output for big and little endians.
-	3)	Removed unused dependencies from MNT GETCOMPS
-
-
-Version 1.00.099
-================
-(Made by Jonathan, 8th February 1999)
-
-1)	Alastair
-	1)	Edited PETRAN.MAK so that sources depend upon
-	  	\Epoc32\Include\E32uid.h rather than ..\E32uid\E32uid.h. This
-		change should complete the fixing of bug EDN057832 "E32Tools won't
-		rebuild on my PC".
-
-2)	Jonathan
-	1)	Fixed ROMBUILD defect EDN853437 "Dual Boot ROM does not function on
-	  	Series 5" by applying Dennis' fix to fix up data as well as
-	  	executables in dual-boot images.
-
-
-Version 1.00.098
-================
-(Made by Jonathan, 1st February 1999)
-
-1)	Petteri
-	1)	Applied boilerplate copyright to sources.
-
-2)	Jonathan
-	1)	Fixed copyright message in executables.
-	2)	Removed odbc32.lib and odbccp32.lib from all .DSP and .MAK files
-	  	since these libraries are neither required nor always installed.
-
-
-Version 1.00.97
-===============
-(Made by Alastair, 28th January 1999)
-
-1)	Alastair
-	GENERAL
-	1)	Created and added VC5 .DSP files for all projects for debugging.
-	2)	Removed hard-coded drive letters from .DSP files.
-	3)	Re-generated makefiles from .DSP files.
-	4)	Reinstated E32UID directory containing files E32UID.CPP and STDAFX.H
-		required for building ROMBUILD, PEDIFF and PETRAN.
-	5)	Replaced hard-coded instances of 'R:' in MNT.CMD with '%s%'.
-	MAKSYM
-	1)	Added proper handling of two functions appearing at the same address in
-		a ROM.
-	2)	Removed an unnecessary destructor to prevent allocated memory being
-		deleted twice.
-	TMAKTRAN
-	1)	Removed MAKTRAN tests.
-	PEIGER, PREPRO
-	1)	Removed these executables.  Previously MNT.CMD attempted to unzip these
-		from S:\ptool\ and then zip them up again in the e32tools release zip
-		file.  Plans are afoot to provide these tools elsewhere, since we no
-		longer have access to S:.
-
-
-Version 1.00.096
-================
-(Made by Morgan, 21st January 1999)
-
-1)	Morgan
-	GENERAL
-	1)	Removed E32UID
-	2)	Converted all makefiles to VC5
-	3)	Built with VC5
-	ROMBUILD
-	4)	Rectified the drifting directory problem.  ROM images can now
-		be reproduced and validated reliably.
-	READTYPE
-	5)	Removed definitions for "true" and "false" so readtype will
-		compile with VC5.
-
-
-Version 0.01.095
-================
-(Made by Alastair, 18th August 1998)
-
-Morgan
-ROMBUILD
-1) Big-endian bug fix
-
-Alastair
-DEFMAKE
-1) Fixed Epoc S/W Problem SW1-141 - 'DEFMAKE adds an "E" to the end of
-   the generated DEF file'
-ROMBUILD
-1) Fixed Bluebell defect SW1-734 - "What do the tools have against August?".
-   A rom time of 08/08/2008 08:08:08 is now acceptable.
-
-
-Version 0.01.094
-================
-(Made by Jonathan, 10th June 1998)
-
-1)	Morgan
-	ROMBUILD
-	1)	Added extra info to log output.
-
-2)	Graham Asher
-	READTYPE
-	1)	New uniflds.txt and unidata2.txt from release 2.1 of the charater
-		database from Unicode Inc. Many additions and corrections have been
-		made. One of them fixes defect SW1-42 (User::UpperCase is wrong for
-		Greek final sigma (03C2) in the Unicode build) in the EPOC32
-		Software Problems database.
-	2)	Changes to readtype.cpp to accommodate the new character categories
-		in unidata2.txt.
-
-Version 0.01.093
-================
-(Made by Morgan, 15th May 1998)
-
-1) Dennis
-    ROMBUILD
-1)	Added support to ROMBUILD for multiple-boot ROMs:
- a)	Added keywords 'singlekernel' and 'multikernel' to declare whether a
-	single kernel ROM or multiple-kernel ROM is required (defaults to single).
- b)	Added keyword 'variant' to declare which files define hardware variants;
-	this keyword should be applied to the variant DLL (ECUST.DLL) of each
-	hardware variant to be supported.
- c)	Added keywords 'extension' and 'device'. These define kernel-mode DLLs
-	which may have global data, the address of which is generated by ROMBUILD.
-	'device' DLLs are simply LDDs or PDDs with global data.
-	'extension' DLLs are not yet supported by E32.
- d)	Files declared with one of the keywords
-		{primary, file, data, dll, variant, extension, device}
-	may have an additional hardware variant discriminator specified by means
-	of the syntax
-		file[0x05040001]=filename
-	The hardware variant discriminator (HWVD) is an 8-digit hex number whose
-	purpose is to specify which hardware variants the file is relevant to.
-	The top 16 bits indicate which conceptual layer the file belongs to:
-		0100=independent - file is required by all hardware variants
-		xx03=CPU-specific - file is required by all variants with same CPU
-		yyxx=ASIC/variant specific - file is required by all variants with
-			 CPU xx and ASIC yy.
-
-	The bottom 16 bits are only relevant in the last of these three cases.
-	They form a bit mask indicating which specific variants the file is
-	required for. A file declared with the variant keyword must be totally
-	variant-specific, i.e. must have only one bit set in the bit mask.
-	If the HWVD is not specified, a value of 01000000 is assumed, which means
-	that the file appears in all hardware variants.
-
-	Examples (from forthcoming Bluebell/Protea upgrade ROM):
-
-	primary[0504ffff] - kernel for EIGER
-	primary[0706ffff] - kernel for WINDERMERE (different CPU core and ASIC)
-	variant[05040001] - variant DLL for PROTEA
-	variant[07060001] - variant DLL for BLUEBELL v.1
-	variant[07060002] - variant DLL for BLUEBELL v.2 (for illustration)
-
-	Static linkage between files is now restricted by the HWVDs of those
-	files. It is possible for file A to link statically to file B iff
-	{variants V | V requires A} is a subset of {variants V | V requires B}.
-	For the example above, variant[0x05040001] can link to primary[0x0504ffff]
-	but not the other way round.
-
-	It is possible to have two or more files of the same name in the same
-	directory provided that they have HWVDs which are mutually exclusive, so
-	that the two files can never appear on the same machine. The HWVD is used
-	to determine which of the files to use to resolve any static linkage.
-
- e)	The ROM file system now has multiple root directories and directory trees,
-	one for each hardware variant supported by the ROM. This automatically
-	ensures that F32 only sees the files which are relevant to the hardware
-	on which it is running.
-
- f) DLLs declared with one of the keywords {variant, device, extension} can
-	have global data (.data and .bss) which will be allocated in the kernel
-	static data chunk after the kernel data itself.
-
-2)	The 'fixed' flag is now propagated through from PETRAN.
-
-3)	The 'kernstackaddress' keyword is now optional - if it is not present in
-	the obey file, ROMBUILD uses a default value of 
-	kerneldataaddress + Round(kernel-mode dataBss size) +
-		Sum over all fixed .EXEs(Round(DataBss size of .EXE file))
-	where Round(x) rounds up to the PDE size (1Mb on ARM).
-
-
-Version 0.01.092
-================
-(Made by Morgan, 25th February 1998)
-
-ROMBUILD
-1) Fixed the 'code-align' file attribute
-2) Forced the image file size to a multiple of 4k for the good of Rome.
-
-
-Version 0.01.091
-================
-(Made by Alastair, 18th February 1998)
-
-Removed MAKMAKE and BLDMAKE - these tools are now part of
-new project E32TOOLP.
-
-
-Version 0.01.090
-================
-(Made by Morgan, 13th February 1998)
-
-ROMBUILD
-1)	Added support for 'fix'ing LDDs with global static data in Rom.
-2)	The 'file=' specifier now honours the KNoCallEntryPoints flag in
-	the image header (as set by PETRAN).  This means all 'dll='
-	specifiers should be changed to 'file=' and MAKMAKE used to
-	control the entrypoint behaviour with the CALLDLLENTRYPOINTS
-	keyword.
-3)	Added a '-no-header' switch to suppress the Rom loader header.
-
-
-Version 0.01.089
-================
-(Made by Alastair, 9th February 1998)
-
-DEFMAKE
-1)  Changed defmake.exe so that it processes freeze files without
-    carraige returns at the end of the last line correctly. 
-    Fixes SW1-803.
-2)  Put in warning for unfrozen exports.
-
-MAKMAKE
-1)  Changed the warning generated if parameters appear with the
-    NOSTRICTDEF keyword so that it doesn't just appear when MAKMAKE
-    is invoked with the -V flag.  The NOSTRICTDEF keyword,
-    if required, should be used in addition to the DEFFILE keyword,
-    not instead of it.
-2)  Intermediate deffiles created by command-line makefiles no
-    longer have the basename extensions, eg D for narrow debug,
-	if the NOSTRICTDEF keyword is specified.	
-2)  Added warning for any SUBPROJECT keyword appearing before a
-    project has been specified with the PROJECT keyword.  This
-    is now necessary because MAKMAKE now stores SUBPROJECT directories
-    as absolute paths rather than paths relative to the PROJECT directory.
-    If a SUBPROJECT statement specifies a directory beginning with a
-    backslash, it will be treated as an absolute directory; otherwise
-    it will be treated as a directory relative to the PROJECT directory,
-    as before.
-3)  Added warnings for the non-existence of SYSTEMINCLUDE, USERINCLUDE,
-    \PROJECT, SUBPROJECT and \PROJECT\SUBPROJECT directories.
-4)  Put in START WINS .. END block option, NOBROWSEINFO, which can
-    be used to stop generation of .SBR and .BSC files for command-line
-    WINS and WINC builds.
-5)  Changed MAKMAKE.BAT so that the help for the batch command "CALL"
-    is no longer produced if MAKMAKE /? is typed.
-6)  Moved all makmake releasables out of \epoc32\tools\makmake into
-    \epoc32\tools.
-7)  Changed MAKMAKE.BAT over to using the -S PERL switch so that the
-    system path is searched for MAKMAKE.PL, then MAKMAKE.PL searches
-    for the modules it depends upon in whichever \epoc32\tools is
-    specified in the system path.  This means that makmake can be
-    installed on one drive and called to operate on .MMP files from
-    another.
-8)  The second UID for targettypes APP, LDD and PDD will now be added
-    if not present.
-9)  Restructured MAKMAKE and moved some functionality into new modules
-    to facilitate code reuse.  MAKMAKE and BLDMAKE now depend upon the
-    following shared modules
-    PARSECOM.PM, E32ENV.PM, E32TVER.PM, MODLOAD.PM, PATHUTL.PM, PREPFILE.PM.
-    MMP.PM and GENUTL.PM are currently only used by MAKMAKE but may be
-    useful for other purposes in the future.
-10)  Renamed MAKPREP.PM MAKDEPS.PM.
-
-
-BLDMAKE
-1)  Added warning that BLDMAKE ALL won't create batchfiles for preparing
-    IDE makefiles.
-  
-
-Version 0.01.088
-================
-(Made by Morgan, 29th January 1998)
-
-MAKMAKE
-1)	Inserted '-bigendian' on the PETRAN command line for BE builds
-
-PETRAN and ROMBUILD
-1)	Added -bigendian switches to both tools
-
-From Simon Lewis
-1)	Added a new file attribute 'code-align' to ROMBUILD
-2)	Added the switches '-align-const-section' and
-	'const-section-address-mask' to PETRAN
-
-
-Version 0.01.087
-================
-(Made by Alastair, 23th January 1998)
-
-MAKMAKE
-1)  Changed paths within created makefiles so that they are relative
-    to the directory where MAKMAKE was invoked rather than relative
-    to the makefile.  If you are using the /D makmake command-line
-    flag and invoking makmake from directory \[project]\group there
-    is therefore no longer a need to change directory to
-    \Epoc32\Make\[platform] before calling NMAKE.
-
-2)  Deffiles created by the build process in the build directories
-    now have the build-variant dependent U, D, and UD suffixes, and
-    are removed by a makmake -clean.
-
-3)  Changed handling of EXEDLL targettypes so that they can export
-    functions under MARM.  MAKMAKE will expect EXEDLL targettypes to
-    be function exporters for MARM if a deffile is specified in the
-    MMP file, otherwise it will make no use of the intermediate deffile
-    created during the build process.  This means that, until a fix for
-    dlltool becomes available from Cygnus, the first time functions are
-    frozen for EXEDLL targettypes for MARM it is necessary to build once,
-    put a deffile statement for MARM in the MMP file, put the intermediate
-    deffile where the MMP deffile statement expects the freeze file to be,
-    and build once again so that the target is frozen by ordinal.
-
-4)  Changed MAKMAKE warnings so they go to STDERR rather than STDOUT.
-
-5)  Added LONGBLDPATH keyword to MAKMAKE which inserts an extra directory
-    into the build path for a project.  The extra directory may be
-    specified as a parameter to the new keyword but will default
-    to the basename of the MMP file if the keyword is specified
-    without a parameter.
-
-6)  Added new TARGETTYPE, LIB, for creating static libraries.  This
-    is not yet implemented for MSVC5.0.  The object file compiled
-    from the first source file specified in the mmpfile is copied
-    into the target directory and given the same basename as the
-    target.  The behaviour for this keyword is not yet finalised.
-
-7)  Added new TARGETTYPE, IMPLIB, for creating import libraries
-    for DLLs with mutual imports.  Specify a new MMP file for
-    one of the DLLs, give the name of the DLL as the argument
-    for the TARGET keyword (so that the .LIB produced contains
-    the right DLL name) and set the TARGETTYPE as IMPLIB.
-    This is not yet implemented for IDE makefiles and the behaviour
-    for this keyword is not yet finalised.
-
-8)  Added handling of Win32 Resource files to command-line WINS
-    and VC4 and VC5 makefiles because the kernel uses one.
-
-9)  Added new MARM MMP file keywords to cater for unusual scenarios
-    START MARM
-    ALLOWDLLDATA // for dlls requiring static data
-	DATALINKADDRESS [address] // for relocation address for dll data
-    DLLNAME [dll basename for linking] // for dlls which are built
-    // as one thing but linked in the ROM as another
-	STACKSIZE // for stack size other than the default
-    END
-
-10) Added new module SARMBE.PM for creating big-endian single-process
-    arm makefiles
-
-11) Implemented more stringent checking of the format of UIDs in mmp files
-    and made sure dlls with null uids link as mydll.dll rather than
-    mydll[00000000].dll for consistency with rombuild.
-
-12) Made all relative paths in VC4 and VC5 makefiles absolute.
-
-BLDMAKE
-1)  Added new perl tool, bldmake, which creates batch files to
-    control the building of E32 and F32.  Type bldmake without
-    any parameters for options.
-
-
-Version 0.01.086
-================
-(Made by Alastair, 5th January 1998)
-
-DEFMAKE
-1)  Added .E32_UID and .rsrc to the list of recognised sections so that,
-    eg, "WARNING: Section '.E32_UID' removed" no longer appears during
-    WINS builds.
-
-MAKMAKE
-1)  Changed cl_arm.pm and cl_win.pm so that makmake -clean will remove
-    resource headers from \Epoc32\Include if a resource file is specified.
-
-Version 0.01.085
-================
-(Made by Alastair, 9th December 1997)
-
-MAKMAKE
-1)  Removed automatic addition of kernel32.lib and libc.lib to list
-    of Win32 libraries for WINC EXE targettypes as this addition is
-    apparently unnecessary.
-
-
-Version 0.01.084
-================
-(Made by Alastair, 9th December 1997)
-
-MAKMAKE
-1)  Changed handling of targettype EXE for WINC, VC4WINC and VC5WINC
-    platforms so that the LINK.EXE flag /subsystem:console is used
-    rather that /subsystem:windows, and kernel32.lib and libc.lib
-    are automatically added to the list of Win32 libraries to be linked
-    to.
-
-2)  Targettypes LDD and PDD makefiles for MSVC IDEs now require the
-    presence of \epoc32\include\lddwins.def and \epoc32\include\pddwins.def
-    respectively.
-
-
-Version 0.01.083
-================
-(Made by Alastair, 20th November 1997)
-
-Some Makmake Bug Fixes
-1)  Makmake invoked with the /CLEAN flag will now erase the autouid
-    object file if the Win32 autouid keyword is used.
-
-2)  Makmake now uses the environmental variable "INCLUDE" rather
-    than "MsDevDir" to decide which standard include directories
-    should be searched for Win32 header files if a project is
-    linking to Win32 libraries, so that the wrong standard
-    include directories aren't searched when creating MSVC5
-    project files.
-    Fixes SW1-698.
-
-3)  Fixed bug caused by CPP inserting a space after expanding
-    macros in .mmp files by taking the space out again.  This was
-    causing problems where, for example, a path specified as
-    "\EPOC32\RELEASE\WINS\APP.DEF" in the .mmp file would become
-    "\EPOC32\RELEASE\WINS \APP.DEF" after preprocessing prior
-    to creating a WINS makefile.  Lower case paths were not
-    affected.
-
-4)  Replaced link.exe flag
-    /EXPORT:?NewApplication@@YAPAVCApaApplication@@XZ,@1,NONAME
-    in VC4 and VC5 makefiles where the targettype is APP with the
-    flag /def:\EPOC32\RELEASE\WINS\APP.DEF, because the former flag
-    failed to ensure that the function in question was exported
-    at ordinal one.  This solution means that if no deffile is
-    specified in the .mmp file for an APP, \EPOC32\RELEASE\WINS\APP.DEF
-    must be present for the project to link.  Command-line Win32
-    makefiles will link properly without the presence of APP.DEF
-    because they use a defmake flag to ensure the function is
-    exported at the right ordinal.
-    Targettypes LDD and PDD will link by name in MSVC until
-    their deffiles are released to
-    \epoc32\release\wins or somewhere else suitable. 
-
-Version 0.01.082
-================
-(Made by Alastair, 12th November 1997)
-
-MAKMAKE
-1)  Added link-libraries and e(dll|exe) object as dependencies of
-    main target.  This cannot be done for MSVC IDE makefiles.
-    Fixes SW1-565.
-
-2)  Added new targettypes LDD and PDD.  A frozen first ordinal export,
-    the respective gate funtion for the targettype, is specified for
-    these targettypes and for targettype APP if no deffile is specified
-    for the project, otherwise the deffile controls the order of
-    exported functions.  This applies for all supported platforms.  Apart
-    from this feature, projects specifying one of these targettypes build
-    in the same way as projects with targettype DLL.
-    Fixes SW1-666.
-
-3)  Changed MAKMAKE help information so that the build version appears and
-    a list of platform choices appears.  This list of platforms is produced
-    by a search of .PM modules in \EPOC32\TOOLS\MAKMAKE for the comment line
-    "# Can call in makmake command line".  If the line is present in the module
-    then the basename of the module is added to the list.  This is a cheap way
-    of producing a list of available platforms while preserving MAKMAKE's
-    extensibility, and doesn't involve the loading of every .PM module and all
-    the modules that each one of those depends on.
-        The module controlling MAKMAKE help is loaded only when required and
-    provides a brief guide to MMP file syntax if makmake is invoked
-	    MAKMAKE /MMP {PLATFORM}
-    If PLATFORM is specified, syntax for the START .. END block relating to
-    the platform is displayed as well as platform-independent MMP syntax.
-    Fixes SW1-653.
-
-4)  The macros "WIN32" and "_WINDOWS" are now only used in compilation by MAKMAKE-
-    generated Win32 makefiles if the project's MMP file states that the project
-    needs to link to Win32 libraries by listing the libraries it needs with the
-    WIN32_LIBRARY keyword in a Win32 START .. END block. 
-    Fixes SW1-652.
-
-5)  New MMP file keyword - OBJECT - is available.  This keyword is intended to
-    be used by projects having access not to the source files but only the compiled
-    code for certain objects.  Specify the basename of the object only.  Created Win32
-    makefiles will expect object <basename>.OBJ to exist in the build directories
-    for a project, while MARM makefiles will look for <basename>.o.  These object
-    files will appear in the dependency list for the main target in command-line
-    makefiles - this is not possible in MSVC IDE makefiles.
-
-6)  Command-line makefiles now contain extra targets MAKEWORK, MAKEWORKDEB,
-    MAKEWORKREL, etc.  The build-specific targets are included in the list of
-    dependencies for the main makefile build-specific target, so that work
-    directories will be automatically created when building with command-line
-    makefiles if these directories do not already exist.  The new targets could
-    also be used to make the work directories for a project with NMAKE
-        e.g.  NMAKE /f <command line makefile> MAKEWORK
-    would create all the makefiles for a project for all builds.
-
-7)  Win32 command line makefiles now generate SBR and BSC browse files for DEBUG
-    builds so that if a DEBUG build of a project has already been done with a Win32
-    command line makefile, subsequent building of the DEBUG build of the project
-    within the MSVC IDE will not recompile everything to generate the browse files.
-
-8)  Added new module MAKPREP.PM to handle everything relating to MAKMAKE's use of
-    \EPOC32\GCC\BIN\CPP.EXE to generate lists of dependencies for source files.
-    This module now identifies missing system and user headers -
-          - if missing system headers have the extension .RSG or .MBG, the header is
-        listed as existing in \EPOC32\INCLUDE, so there is no longer a need for
-        MAKMAKE to generate a dummy resource header in \EPOC32\INCLUDE to fool CPP.
-          - platform modules can specify standard directories to search for missing
-       system headers.  This means, e.g., Win32 makefiles can specify the MSDEV include
-       directory for those projects linking to Win32 libraries.  If the missing system
-       header is found by the module in the standard directory, it will be left out
-       of the dependency list since the MSVC tools will know where to find it and it
-       can be trusted to be there and unchanged.
-          - if a missing system header fails to satisfy both the above tests then
-       makmake will issue a warning since the generated makefile will probably fail to
-       build.
- 	      - a warning is issued for any user headers not found in the user include or
-       system include paths, where the user include path is the source directory if no
-       user include paths are specified explicitly.
-
-9)  Processing of MMP files now involves a lot more syntax checking and produces
-    corresponding warnings, especially if MAKMAKE is invoked with the -V switch.
-
-10) MAKMAKE will now automatically generate WINS uid source files when creating Win32
-    makefiles, but only if the new keyword - AUTOUID - is specified in a Win32 START ..
-    END MMP file block.  The keyword is necessary since LINK.EXE would fail for projects
-    which already specified UIDS in the source code, so remove WINS UID specification in
-    the project's source code before using AUTOUID.  MAKMAKE works out UID 1 from a
-    project's targettype and takes UIDs 2 and 3, if specified, from the MMP file.  It
-    then creates the UID source file in the same directory as the MAKEFILE it is to create
-    with the name "<target basename>.UID.cpp".  The source file will look something like this
-
-        // Makmake-generated uid source file
-        #include <E32STD.H>
-        #pragma data_seg("E32_UID")
-        __WINS_UID(0x10000079,0x1000008D,0x100002C3)
-        #pragma data_seg()
-
-	The file will be created only if it doesn't already exist or if it is older than the
-    project's MMP file.
-
-11) In MARM makefiles, multiple calls to GNU tool "ar" to archive the object files for
-    a project prior to linking have been replaced by a single call to ar.  The single
-    call passes a script listing the object files to ar.  This changes speeds up the
-    archiving stage of MARM building considerably.
-
-12) Renamed MAKMAKE.CMD MAKMAKE.BAT for Windows 95 compatibility.
-
-13) Changed MSVC5 dependency generation to be the same as for other platforms,
-    but with system headers stripped out of the list later.  Before, vc5 dependencies
-    called CPP such that only user headers were generated.  This change means that
-    CPP will no longer fail if one of the user headers is expecting a macro definition
-    from a system header and forcing CPP to fail if it doesn't get it.
-
-14) Replaced relative with absolute filepaths where possible in CL_WIN.PM.
-
-15) Changed \e32tools\makmake\makmake.mak so that debug utilities like
-	the perl -w switch and use of module strict.pm apply for "DEB" builds.
-    of MAKMAKE only.
-
-16) Added SARM.PM module to be used by the base for building SARM makefiles.
-
-17) Improved path utilities module MAKPATH.PM to do more error checking
-    and handle extra functions.
-
-GROUP
-1)  Changed e32tools\group\mnt.cmd so that makmake is released in a way more similar
-    to other e32tools project - from \epoc32\build\e32tools\makmake\rel.
-
-
-Version 0.01.081
-================
-(Made by Morgan, 4th November 1997)
-
-ROMBUILD
-1)	Added fixed keyword for use with EXE files. This keyword results in the
-	file being loaded as a fixed address process. The data section base address
-	is allocated in the region between the kernel data address and the kernel
-	stack address. The multiprocess keyword can be used to specify the chunk
-	size; it defaults to 1Mb.
-
-PETRAN
-1)	Added -fixed and -moving options which set and clear KImageFixedAddressExe
-	flag respectively.
-
-2)	Added the following switches
-		-heap <min> <max>
-		-allowdlldata
-		-datalinkaddress <base>
-
-MAKSYM
-1)	Removed duplicate function address error message.
-
-
-Version 0.01.080
-================
-(Made by Alastair, 30th September 1997)
-
-MAKMAKE
-1)	Changed Makmake.pl so that if a project uses a resource file
-	and the resource header file is not yet present in \epoc32\include
-	a dummy header file will be created there so that MAKMAKE's generation
-	of dependencies does not assume that the missing header file is
-	in some other location.
-
-2)	Changed /Fd compiler flag in Ide_vc4.pm so that pdb files have the right
-	name rather than vc40.pdb. 
-
-
-Version 0.01.079
-================
-(Made by Morgan, 22nd September 1997)
-
-ROMBUILD
-1)	Integrated the code for building ROMs for the single process
-	version of E32.  Currently this code is protected with a
-	__SINGLE__ macro.
-	Use the keyword 'singleprocess <ChunkSize>' to generate a
-	single process ROM.  Default is 'multiprocess'.
-
-
-Version 0.01.078
-================
-(Made by Alastair, 15th September 1997)
-
-MAKMAKE
-
-0)	Forget to say about release 077 that \[project]\bwinc is the default
-	directory for which WINC def files are searched if the file specified
-	with the DEFFILE keyword has no path.
-
-1)	Improved MMP file reading so that a warning is generated if MAKMAKE
-	ignores a line because it doesn't recognise the syntax.
-
-2)	Makmake.pl - added new code to trap dependency generation errors.
-
-3)	Makmake.pl - minor changes required to support creation of MSVC5 project
-	files.
-
-4)	Added new modules VC5.PM and VC5WINC.PM to support MSVC5.  These modules
-	will create .DSP MSVC5 project control files.  When an MSVC5 .DSP file is
-	created with makmake project files with the following extensions will be
-	deleted - .dsw,.mak,.mdb,.ncb,.opt,.plg.  The new features of MSVC5 which
-	distinguish between header files belonging to the project and system header
-	files are supported.
-
-5)	Added new module MISA.PM to support MISA command-line makefiles.
-
-6)	Tidied up VC4.PM.
-
-7)	Changed MAKMAKE internal structure so that implementaion modules can
-	share modules controlling the layout of the makefile and other common
-	features.  This change does not affect the way that MAKMAKE is invoked.
-
-		VC5.PM and VC5WINC.PM share IDE_VC5.PM
-		VC4.PM and VC4WINC.PM share IDE_VC4.PM
-		WINS.PM and WINC.PM share CL_WIN.PM
-		MARM.PM and MISA.PM share CL_ARM.PM
-
-8)	Changed CL_WIN.PM and CL_MARM.PM to use an inline batch file in the
-	makefile for calling fc4bat to decide whether a resource header file
-	needs rewriting or not.  Previously, if fc4bat returned an error to
-	indicate that the header file should be rewritten, nmake would die.
-
-9)	Added Makmake.mak to \e32tools\makmake\ for building makmake source to
-	\epoc32\tools and \epoc32\tools\makmake in a way similar to C++ projects.
-
-10)	Changed all .PM modules to ensure that they return a true value
-	when loaded successfully.
-
-E32TOOLS MNT
-
-1)	Changed e32tools.rel file so that readtype.exe is released.
-
-2)	Updated MNT MAKEWORK and MNT GETBLD so that PGETBLD and MNT BLDALL will
-	now work on a clean drive.  Changed readtype.mak so that it searches
-	\epoc32\include rather than \e32\inc for system header files.
-	File \e32\inc\unicode.h needs to be listed in e32\inc\incc.prj 
-	at some point.
-
-3)  Modernised MNT BLDALL so that NMAKE is invoked with the /nologo flag.
-
-4)	Modernised MNT VALID so that pediff is used instead of fc /b for binary
-	file comparison.  Makmake is now included and e32uid.exe removed since it's
-	not used or released.
-
-
-Version 0.01.077
-================
-(Made by Alastair, 8th September 1997)
-
-MAKMAKE
-
-1)	Changed 1st stage of linking (by name) for WINS command-line builds so that
-	linking is not attemped incrementally to stop unnecessary warning appearing.
-
-2)	Added two new modules, WINC.PM and VC4WINC.PM, for use in creating WINC
-	command-line and IDE makefiles respectively.  For command-line makefiles,
-	type "makmake {options} [project] WINC;  for IDE makefiles, type
-	"makmake {options} [project] VC4WINC.  DIfferences between WINC and WINS
-	makefiles are slight - WINC appears where WINS would otherwise appear, and
-	WINC source files are preprocessed with the macros "__WINC__" and "__XCON__"
-	defined as well as all the usual WINS macros including "__WINS__".  Note that,
-	in line with the macro scheme applied to source files, MAKMAKE will preprocess
-	XXX.MMP files with macros "WINS" AND "WINC" defined when creating WINC makefiles,
-	so keywords within "#if defined(WINS) ... #endif" and "START WINS ... END" blocks
-	will apply for WINC builds too.  This scheme required changes to the way
-	MAKMAKE.PL processes START ... END blocks.
-
-3)	Removed possibility of passing extra macros to makmake for preprocessing XXX.MMP
-	files - this possibility was never documented and has never been requested so
-	is now presumed unnecessary.
-
-4)	Introduced keyword option which, if specified in XXX.MMP files, will cause
-	MAKMAKE to search for the same deffile for all build variants rather than
-	several files differentiated by suffixes "U","D" and "UD".	The new keyword
-	is "NOSTRICTDEF", originally enough.  Hopefully deffiles for LDDs and PDDs
-	can soon be done away with by having targettypes for LDDs and PDDs and having
-	MAKMAKE implementation modules pass the correct mangled names as 1st ordinal
-	command-line option arguments to DEFTOOL and DEFMAKE instead.
-
-5)	Changed resource handling to be entirely compatible with eikrs.bat - the basename
-	of XXX.RSS is used for XXX.R$(EPOCLANG) and all intermediate resource files.  This
-	change still does not fix SW1-204, for which a spec decision regarding the handling
-	of differing licensee resource file requirements is required.
-	
-
-Version 0.01.076
-================
-(Made by Alastair, 15th August 1997)
-
-MAKMAKE
-
-1)  Changed MARM and WINS modules so that rcomp is called to compile resources
-    directly rather than via eikrs.bat.  This change will mean that resources will
-    be compiled into the correct directory for MARM builds, and that the *.rss file
-	need no longer be in the same directory as the makefile.  This change addresses
-	SW1-204 and SW1-212.
-2)  The STRICTDEF keyword is no longer recognised by makmake.  Its function in
-	appending "D", "U", and "UD" to the base name of *.DEF files for DEB, UREL and
-	UDEB builds is now carried out by default.  There should now be a *.def file for
-	each of these build variants in use if any definition files are used at all.
-	This change addresses SW1-196.
-3)  Makmake.cmd has been improved.  If makmake fails, a basic perl operation will be
-	attempted.  If this fails, the user will be asked if the correct version of perl
-	is installed.  This change addresses SW1-345.
-
-Version 0.01.075
-================
-(Made by Alastair, 24th July 1997)
-
-DEFTOOL (from William Roberts)
-
-1)	Modified DEFTOOL.CPP and DEFTOOL.H
-	Basically just improved error reporting so that
-	a)	When it tells you that there are "frozen ordinals missing from supplied
-		def file" it also tells you which ordinal numbers have been lost.
-	b)	If your DLL exports functions that weren't in the freeze file then it
-		gives you a gentle warning, because that's not something which we'd 
-		want to allow in a release.
-
-MAKMAKE
-
-1)	Changed makmake so that target makefile is created in the current
-	working directory rather than the directory containing the *.mmp
-	file.
-2)  Added line of code to makpath.pm so that single dot directories
-	are stripped from paths.
-3)	Removed repeat occurrence of deffile flag in the link command for 
-	*.wins makefiles.
-4)	Changed RELGDB path macros for MARM makefiles so that they are prefixed
-	with ".\" rather than "..\\..<absolute path to makefile directory>".
-	This is a neater way to get them to expand to something textually different
-	from REL path macros while still specifying the same path.
-5)	Changed "ar q" lines within MARM makefiles to include 8 object files maximum
-	rather than 4 - this should improve efficiency without breaking limits on
-	command-line lengths.
-6)	Changed WINS.PM so that the $(LINK_OBJS) macro is used in the link command line
-	in *.wins makefiles rather than a list of all the objects concerned.
-7)	Changed MARM.PM so that the first stage of linking (by name) for a dll target
-	creates the dll in the build directory rather than the release directory.
-	The	second stage of linking (by number) creates a dll in the build directory
-	rather than the release directory too, overwriting the first dll.  Finally,
-	this target is petranned to the release directory and the dll left in the
-	build directory is deleted. This change solves the problem of nmake thinking
-	that the target has been successfully created when the build has failed
-	anywhere between the first link stage and the petranning stage, because of
-	the presence of an apparently up-to-date dll in the release directory.
-8)	Changed WINS.PM similarly so that *.wins makefiles do a two-stage link.  Defmake
-	is called between the two link stages with a "freeze" file if one is specified
-	with the DEFFILE statement (see below).  The defmake-created def file is then
-	used for the second-stage link (by number).  The first stage of linking creates
-	the target dll in the intermediate directory while the second stage creates the
-	final target dll in the target directory and the first dll is deleted.
-9)	Removed /NAME flag from MAKMAKE - no longer necessary due to (8).
-10)	Radically changed behaviour of MAKMAKE towards DEFFILE and FRZFILE statements
-	within *.mmp files.  There is no longer handling of FRZFILE statements.  As
-	before, if a DEFFILE statement is placed within an #if defined(WINS) ... #endif
-	block, the statement will be used by both WINS and VC4 makefiles but not MARM
-	makefiles, and vice versa if a #if defined(MARM) ... #endif block is used.  If
-	the file specified has no path, the file is assumed to be in directory 
-	\<project>\bwins\ for WINS and VC4 makefiles and \<project>\bmarm\ for MARM
-	makefiles.  For VC4 makefiles, the specified file is passed to LINK.EXE as 
-	before.  For WINS makefiles, the file is not used in the first stage of linking.
-	Defmake is called and uses the file as a freeze file in the creation of a new
-	deffile which will include any new exports produced by changes to the source code
-	for the project.  The new deffile created is used in the second stage of linking.
-	For MARM makefiles, the specified file works in much the same way as for WINS
-	makefiles.
-		In other words, the DEFFILE statement should now be used to specify "freeze"
-	files.  WINS *.def files were in effect "freeze" files anyway.  The choice of
-	"DEFFILE" rather than "FRZFILE" for the new statement within *.mmp file reflects
-	the widespread understanding of "def" vocabulary outside Psion.  For more
-	information, see the discussion on e32proposals - tools - makmake and frz files.
-		The STRICTDEF keyword is still required if differently-named "freeze" files
-	are required for different builds, but this requirement is under review together
-	with potential default directories for components not using directories
-	\<project>\bwins and \<project>\bmarm.  Note that if these directories are not
-	being used and files specified with the DEFFILE statement include a path then is
-	is essential to place DEFFILE statements with #if defines because WINS and VC4
-	builds should never use the same "freeze" file as MARM builds due to the compilers
-	mangling function names in different ways.
-11)	A file specified with the DEFFILE statement is now put in the list of 
-	dependencies for a target in WINS and MARM makefiles, but not yet VC4.
-12)	Changed MAKMAKE to allow for use of the WINDOWS API.  If you are using this API,
-	specify the windows libraries you wish to link to in *.mmp as follows
-
-	START WINS
-	BASEADDRESS		0x43500000
-	WIN32_LIBRARY	kernel32.lib gdi32.lib user32.lib
-	END
-
-		ie, put the WIN32_LIBRARY statement somewhere in a START WINS ... END block
-	and	list the libraries after it.  Please note that these START WINS ... END
-	blocks are very different from #if defined(WINS) ... #endif blocks.  Makmake
-	always preprocesses the *.mmp file when invoked, and later passes any text within
-	START ... END blocks onto the perl module specific to the platform in question.
-	When makmake is invoked with the VC4 argument, the *.mmp file is preprocessed
-	the WINS macro defined.
-13) Fixed bug causing AIF file subroutine to be ignored
-14)	Fixed bug causing path specified with TARGETPATH statement to be left out of
-	path to resource target for WINS makefiles.
-15) Changed resource file building command so that the base name of the target
-	resource file is the same as the base name of the releasable rather than
-	the base name of the file specified with the RESOURCE or SYSTEMRESOURCE
-	statement.
-16) Changed name for target AIF from the base name of the releasable + ".aif" to
-	the name specified by the AIF statement.
-18)	Changed code designed to warn the user if the version of perl they are using
-	is not supported by MAKMAKE so that it is activated before rather than after
-	compilation - untested.
-
-
-Version 0.01.074
-================
-(Made by Alastair, 1st July 1997)
-
-MAKMAKE
-1)  Fixed egregious error causing the content of LIBRARY
-    statements in *.MMP files to be ignored.  This error
-    is present in e32tools releases 071, 072 and 073.
-
-
-Version 0.01.073
-================
-(Made by Morgan, 18th June 1997)
-
-1) ROMBUILD
-   Added 'time' keyword for specifying the date/time stamp
-   in the rom header.
-   Syntax:
-      time=dd/mm/yyyy hh:mm:ss
-
-   Added 'reloc' file attribute to specify user process
-   data run address for Exes.
-
-   Added 'align' keyword to align files on particular
-   alignment boundries.
-
-
-Version 0.01.072
-================
-(Made by Alastair, 16th June 1997)
-
-MAKMAKE
-1)  Added line of code to makmake.pl so that makmake will refuse
-	to work with versions of PERL released prior to version 
-	5.003_07   .  To find out what version of PERL you are using,
-	type  perl -v<return>  in a DOS box.
-
-
-Version 0.01.071
-================
-(Made by Alastair, 9th June 1997)
-
-MAKMAKE
-1)  Added new preprocessor macro, __PSISOFT32__, defined for all
-	projects using MAKMAKE regardless of platform or build variant.
-
-
-Version 0.01.070
-================
-(Made by Matthew, 4th June 1997)
-
-Added new tool ROMMASK, for generating rom images suitable for masking.
-
-
-Version 0.01.069
-================
-(Made by Alastair, 4th June 1997)
-
-MAKMAKE
-
-1)      Fixed bugs causing _UNICODE macro to be output
-	without the initial underscore by marm.pm and
-	wins.pm.
-
-2)      Single call to gcc archiving tool "ar" replaced
-	by multiple call to avoid overriding of command-line
-	length limits for projects comprising many source
-	files.
-
-3)      Fixed bug in \e32tools\makmake\mnt.cmd so that
-	makpath.pm is copied to directory
-	\epoc32\tools\makmake.
-
-
-Version 0.01.068
-================
-(Made by Alastair, 2nd June 1997)
-
-MAKMAKE
-
-1)      Removals
-	makmake.txt - SDK documentation now available
-	revmak.pl - redundant
-	winsname.pm - redundant
-
-2)      Fixes
-
-a)      fixed dependency macro bug for VC4 platform
-b)      fixed problem with mmp file specification of
-	multiple subprojects
-c)      Other minor bug fixes
-
-3)      Internal Changes
-
-a)      Improved generation of dependencies
-b)      Improved path utility functions
-c)      Moved path utility functions out of makmake.pl to
-	new module "MAKPATH.PM"
-d)      Other structural changes
-
-4)      Command-Line invocation
-
-a)      Platform VC4 can now be specified to produce MSVC4.0
-	compatible makefiles - WINS platform now produces
-	makefiles incompatible with MSVC4.0 allowing greater
-	freedom for using nmake to build resource files, etc.
-	*.MMP files will still be preprocessed with the "WINS"
-	macro whether the platform is specified as WINS or VC4
-b)      New flag "/clean" - deletes all non-source files for the
-	project and platform specified.
-c)      New flag "/lang [language]" - sets a language for the
-	project and platform specified except for VC4.
-d)      New flag "/name" - doesn't add any /def:[deffile]
-	linker flags to WINS or VC4 makefiles.  No effect
-	on MARM makefiles.  This flag makes linking-by-name
-	builds possible for WINS.
-e)      Flags can now be specified anywhere on the command-line
-
-5)      *.MMP Files
-
-a)      New keyword "LANG [language]" - sets a language for
-	the project and platform specified except VC4.
-	This setting is overridden if the command-line language
-	flag is used.
-b)      New keyword "AIF [*.aif file]" - specifies an application
-	information file.  This keyword is subproject relative,
-	and merely copies the *.aif file to the target directory
-	at the moment (except for VC4).
-c)      New keyword "BITMAP [*.mbm file] [*.bmp files]" - specifies
-	a protea multi-bitmap target and compiles it to the target
-	directory using bmconv on the windows bitmap files (except
-	for VC4).  The keyword is subproject relative, so all
-	windows bitmaps files specified are expected to reside in
-	the current \PROJECT\SUBPROJECT directory.  This may not be
-	the required behaviour.
-d)      New "RESOURCE" keyword behaviour - eikrs.bat is invoked
-	for MARM and WINS platforms to compile the resource specified
-	to the target directory.  VC4 platform uses the keyword
-	parameter for information only.  If a language is specified
-	it is passed to eikrs.bat, defaults to "SC".
-e)      New keyword "SYSTEMRESOURCE [*.rss file]" - subproject
-	relative, behaves exactly as the RESOURCE keyword except
-	that for WINS the target resource is compiled to directory
-	\epoc32\release\wins\[build]\Z\system\data.  Ignored by
-	VC4.
-f)      New "TARGETTYPE" keyword option - "exedll".  This option
-	can be used to specify a target which will be built as
-	a dll under single-process platform WINS (or VC4), but as
-	an exe for multi-process platform MARM.
-g)      New keyword "STRICTDEPEND" - if specified, makmake will
-	generate dependencies for each source or resource specified
-	for all builds - DEB,UREL,RELGDB etc.  If sources are unlikely
-	to specify different include header files for different
-	builds then there is no need to specify this keyword and
-	dependencies will be generated once only for each source
-	file.
-h)      New "DEFFILE" keyword behaviour.  This keyword is no longer
-	platform-specific (within a "START [platform] ... END" block).
-	If the deffile is specified without a path, then makmake
-	will expect the deffile to live in directory "\PROJECT\BMARM"
-	for the MARM platform, and in "\PROJECT\BWINS" for WINS or VC4.
-	Note that currently the *.def file will be used in a call
-	to dlltool in MARM makefiles as follows:-
-		"dlltool --def [deffile] --output-def [created deffile]".
-	This behaviour is required for at least one project, and
-	different deffiles can be specified for different platforms
-	using "#if defined [platform]" within *.mmp files.
-i)      New keyword "FRZFILE [*.frz file]" - behaves the same as
-	"DEFFILE" keyword as regards paths.  A specified freeze file
-	is ignored by makmake when producing WINS or VC4 makefiles.
-	The file is used by MARM makefiles as follows
-		"ld -z [frzfile] [dlltool-created deffile]".
-j)      New keyword "STRICTDEF" - if this keyword is specified then
-	makmake assumes that, for each *.def or *.frz files specified,
-	there are actually as many of these files as there are
-	different build configurations for the project.  E.G. for
-	WINS makefiles, if a deffile is secified in a *.mmp file as
-	"DEFFILE mydef.def", then makmake will assume "mydefd.def",
-	"mydefu.def" and "mydefud.def" for DEB, UREL, and UDEB builds
-	respectively.  Though for MARM, a RELGDB build would look for
-	plain "mydef.def".
-
-6)      Output
-
-a)      Makmake for MARM will produce *.MARM makefiles.
-b)      Makmake for WINS will produce *.WINS makefiles.
-c)      Makmake for VC4 will produce *.MAK makefiles.
-d)      MARM and WINS makefiles are restructured to allow
-	the following example NMAKE command-line invocations
-
-		"NMAKE /f euactiv2.wins UREL"
-		"NMAKE /f euactiv2.marm UDEB"
-		"NMAKE /f euactiv2.wins CLEANDEB"
-		"NMAKE /f euactiv2.marm CLEAN"
-
-e)      Macros specifying target directories, language,
-	build directories and so on are produced at the
-	top of WINS and MARM makefiles.
-f)  RELGDB builds for MARM aim to put the executable
-	produced into \epoc32\release\marm\rel, and also use 
-	\epoc32\build\[project]\marm\rel as their building 
-	directory.
-g)      Gcc tool OBJCOPY produces a *.sym file for MARM debug
-	builds, including RELGDB.
-
-
-Version 0.01.067
-================
-(Made by Morgan, 19th May 1997)
-
-1) PEDIFF
-   Recognises time/date stamps in debug and export directories.
-   Ignores PETRAN version information in the header.
-
-2) PETRAN
-   Uids take the full 32bits.
-
-3) WVECONV
-   From \VNOTES\WVECONV.  S3a to S5 sound file converter.
-
-
-Version 0.01.066
-================
-(Made by Alastair, 9th May 1997)
-
-MAKMAKE
-
-1) Fixed bug causing extra "print " text to be produced
-   as part of the USERINCLUDES text outputted in verbose mode.
-
-2) Fixed bug causing makmake.pl to fail to produce the extension
-   of a target filename when requested by *.pm modules
-
-3) Fixed bug causing makmake to fail with an error report if
-   more than one flag is specified on the command line
-
-MAKSYM
-
-1) Added a few lines of extra code so that the base address of
-   a dll in the rom is printed to maksym.log when maksym cannot
-   find the corresponding *.map file.
-
-
-Version 0.01.065
-================
-(Made by Alastair, 6th May 1997)
-
-MAKMAKE
-
-1) reorganised to be more easily maintainable and extensible.
-
-2)      handles uid keyword in *.mmp file - uid1 is provided automatically,
-	uid's 2 and 3 are specified ... 
-
-UID <uid2> <uid3>
-
-in *.mmp file.
-
-3)      dependency generation section calls CPP with flag -MG so that
-	makmake responds gracefully to missing generated headers
-
-4)      *.mdp and *.ncb files are automatically deleted from directories
-	in which makmake is directed to create a wins makefile with the same
-	root.
-
-5)      petran is invoked from the arm makefile
-
-6)      invocation syntax simplified so that makmake is invoked 
-		makmake [flags] [mmp file root] [platform]
-	rather than
-		makmake [flags] [mmp file] [destination makefile] [platform]
-
-7)      makmake by default operates in quiet mode, verbose mode is invoked
-	using the new "/V" flag on the command-line
-
-8)      makmake will create the work directories rather than the makefile
-	if the new "/MAKEWORK" flag is used on the command-line
-
-9)      the "/q" flag for "del" commands is no longer added to marm makefiles
-	created with makmake
-
-10)     the DEFFILE keyword is no longer searched for within a START WINS ... END       
-	block, now it is platform independent though not yet utilised by the marm 
-	platform.
-
-11)     winsname.pm is not currently expected to work
-
-12)     PERL is no longer invoked with the -w debugger flag
-
-Version 0.01.064
-================
-(Made by Morgan, 16th April 1997)
-
-1)      ROMBUILD
-	Removed the checks for unicode-ness of Uid[0] on Exes/Dlls
-
-2)  W32REPRO
-	An NT version of PREPRO written by WilliamR
-
-
-Version 0.01.063
-================
-(Made by Morgan, 15th April 1997)
-
-1)      MAKTRAN
-	Changed over to the new (and slightly less mad) Uid scheme
-	introduced in E32(098).
-	Dlls now have a Uid[0] of 0x10000079
-	Exes now have a Uid[0] of 0x1000007A
-	Everything else is as before.
-
-
-Version 0.01.062
-================
-(Made by Graham Asher, 15th April 1997)
-
-READTYPE
-	Added this new tool, which writes the new file unitable.cpp, which contains
-	the Unicode character attribute information. I've put a full
-	explanation of how to use READTYPE in Notes under e32 software design.
-
-
-Version 0.01.061
-================
-(Made by Morgan, 13th April 1997)
-
-1)      ROMBUILD
-	1) Bug fix when using the -S switch with Rom patching
-	2) Added class TRomSectionHeader to the start of the
-	   second section of the Rom so sectioned Roms can have
-	   a separate build time, language variant, and checksum.
-	3) Added iRomSectionHeader member to TRomHeader to point
-	   at the start of the sectioned Rom and padded TRomHeader
-	   to 256 bytes.  This needs a new BOOTROM.BIN which will
-	   be released with E32(098)
-	4) Fixed a bug in the split rom verify code.
-	5) Fixed the overriding of Uids.
-
-
-Version 0.01.060
-================
-(Made by Morgan, 9th April 1997)
-
-1)      PETRAN
-	Fixed a PETRAN dumping bug when there are no .data relocations.
-
-2)      MAKTRAN
-	Bug fix for -P switch when no uid3 is specified.
-
-3)      DEFMAKE
-	Made the -S switch work when -Z is used.
-
-
-Version 0.01.059
-================
-(Made by Morgan, 7th April 1997)
-
-HIGHLIGHTS:
-	* MAKTRAN now produces PETRANned targets.
-	* Components should use the new -P switch instead of -U.
-	* Suggested minimum commandline for Dlls:
-	  MAKTRAN <src .MAK> <dest .ARM> -z<Your .FRZ> -p"-uid2 <Your Uid2> -uid3 <Your Uid3> -nocall"
-
-2)      MAKTRAN
-	1) Overhauled for releasing PETRANned components.
-	   -U switch has been removed and been replaced by new
-	   -P switch for specifying PETRAN command line arguments. Uid1
-	      will default to the correct uid for the build type unless
-		  you specify otherwise.
-
-
-Version 0.01.058
-================
-(Made by Morgan, 3rd April 1997)
-
-1)      ROMBUILD
-	1) Filenames can now be quoted ("") to include spaces.
-	2) More details provided when the Rom overflows.
-
-	NOTE: Currently there is a bug that occurs if the Rom 
-	is exactly the correct size (byte for byte) and sectioning
-	is being used.  It's harmless - I'll fix this in a release
-	soon.
-
-
-Version 0.01.057
-================
-(Made by Alastair, 2nd April 1997)
-
-1)      MAKMAKE
-	Fixed bug in wins.pm causing *.def files specified in *.mmp
-	files to be ignored by MSVC.
-	Included deftool flag -1 NewApplication__Fv for MARM makefiles
-	where the target is an APP.
-	
-	E32TOOLS GROUP MNT.CMD
-	Added lock, unlock and wholock parameters.
-
-
-Version 0.01.056
-================
-(Made by Alastair, 27th March 1997)
-
-Alastair:
-1)      MAKMAKE
-	MAKMAKE generates makefiles for WINS or MARM builds.
-	It is being released because the SDK example projects
-	now use it, and no longer use MAKTRAN.  Makmake is by no
-	means fully tested and is certainly not intended for 
-	incorporation into Epoc32 projects prior to V1 shipping.
-	Details of its use are roughly documented in file 
-	\e32tools\makmake\makmake.txt.
-	Use of makmake requires the installation of Perl 
-	from directory T:\UTIL\PERL.
-
-
-Version 0.01.055
-================
-(Made by Morgan, 20th March 1997)
-
-1) ROMBUILD
-   CheckSum bug fix.
-   Kernel alignment bug fix.
-
-
-Version 0.01.054
-================
-(Made by Morgan, 18th March 1997)
-
-1) ROMBUILD
-   Removed some unnecesary recurtion and tidied some dodgy code.
-   Loaded the files to Rom in the order they appear in the obey
-   file, rather than depth first order.
-   
-   Roms can now be sectioned into two parts allowing the upper
-   part of the rom to be switched for language variations and
-   file patching.  Both these processes require the original
-   releasables, original obey file, and any new releasables.
-   It is also advisable to supply the original Rom so the lower
-   section can be verified to be constant.
-
-   In a sectioned rom the directory structure, import address
-   tables, and Dll reference tables of all files in the first Rom
-   are placed after the section border.
-   The overhead of sectioning a Rom (over and above an unsectioned
-   one) is the space required to duplicate the import address
-   tables of files from the first section.
-   Last time I counted (B2) the iat's took up 42k.
-
-   The 32bit sum of all 32bit words in the second section is
-   always 0.  This means the iChecksum member in TRomHeader is
-   valid for the rom as a whole and for the first section in
-   isolation.
-   It is not possible to patch any files that are listed before
-   the primary or the secondary.  Doing this causes the position
-   of the kernel's/file-server's entry in the directory table to
-   move.  This may be fixed in a future release.
-
-   To section a Rom:
-      Use the keyword
-	 section <rom offset>
-      at the point in the obey file where you want the Rom to be
-      split.  All files before this line appear in the first
-	  (constant) section, and files after appear in the second
-	  (patch/language) section.
-
-   Patching a file in the second section:
-      Add file attribute 'patch[ed]' to the file to be patched.
-      (This will cull the file from the first section).
-      Supply a replacement file in the top section as required.
-	  Note, the original file is still required to guarantee
-	  consistency in the first section of Rom.
-	  Run ROMBUILD.
-
-   Supplying a language dependant file:
-      Put the file after the section keyword.
-	  Run ROMBUILD.
-
-   To verify the lower section of Rom has remained constant:
-      Specify the original Rom image on the command line with
-	  -r<FileName>
-
-
-Version 0.01.053
-================
-(Made by Morgan, 7th March 1997)
-
-1) ROMBUILD
-   Bug fix to 'screen' keyword
-
-
-Version 0.01.052
-================
-(Made by Morgan, 3rd March 1997)
-
-1) ROMBUILD
-   Bug fix for Exes/Dlls with no relocations in .text or .rdata
-   Check Uids for exporting .EXEs as well as .DLLs
-   New 'screen' keyword.  Default is: screen = 640x240x4
-
-2) MAKTRAN
-   Bug fix
-
-
-Version 0.01.051
-================
-(Made by Morgan, 13th January 1997)
-
-Alastair:
-1) MAKSYM
-   Generates a list of C++ symbols and their addresses in rom from
-   ROMBUILD.LOG and accompanying .MAP files.
-   MAKSYM ? for help.
-
-
-Version 0.01.050
-================
-(Made by Morgan, 6th January 1997)
-
-1) ROMBUILD
-   Incompatable with any E32 before 083.
-   Added some stuff to TRomHeader for the test department:
-   A language bitfield (64bits for specifying the languages supported
-   by the ROM), and a 32bit hardware identifier.
-   The languages are as defined by TLanguage in E32STD.H.  (ie Test
-   is bit 0,  English is bit 1, French is bit 2,  etc...)
-   Added two more obeyfile keywords for this.  Usage:
-   languages = <list of supported languages>
-   hardware = <n>
-
-   Rombuild now has a -? switch.
-
-
-Version 0.01.049
-================
-(Made by Morgan, 11th December 1996)
-
-1) MAKTRAN
-   Object files are now grouped on the ar (archive) command line to
-   speed up building.  By default they are grouped in 4s but this
-   can be changed by using the new -a<n> switch.
-
-2) ROMBUILD
-   More informative error information when a dll is exporting by
-   name.
-
-3) E32UID
-   Removed.
-
-
-Version 0.01.048
-================
-(Made by Morgan, 22nd November 1996)
-
-1) ROMBUILD
-   Added 128 bytes of space to TRomHeader which appears at the front
-   of the ROM.  This is to allow work on the StrongARM port to
-   progress.
-   Naturally, this makes ROMBUILD compatable with absolutely nothing.
-   So a new bootrom.bin will be released with E32(075).
-
-
-Version 0.01.047
-================
-(Made by Morgan, 1st November 1996)
-
-1) MAKTRAN
-   Another minor fix to deal with unusually shaped .MAK files.  This
-   time it's old link information stored in comment lines.
-   Added "-Wno-ctor-dtor-privacy" to CPPFLAGS.
-
-2) PEDIFF
-   Bug fix HA-283.  The final section in a PE file may be truncated
-   to its VirtualSize making the SizeOfRawData field of the header
-   inaccurate.  This was causing a problem in the release build but
-   not the debug build.
-   Fixed by padding the section data with zeros up to SizeOfRawData
-   bytes.
-
-3) ROMBUILD
-   Added a iTextSize member to TRomImageHeader.  Making this version
-   of rombuild incompatable with any E32 before build 075.
-
-
-Version 0.01.046
-================
-(Made by Morgan, 1st November 1996)
-
-1) MAKTRAN
-   Added support for include directories other than ..\inc and
-   \epoc32\include
-      
-
-Version 0.01.045
-================
-(Made by Morgan, 7th October 1996)
-
-1) MAKTRAN
-   Added a -U<Uid> switch to put the 3rd uid in the target's import
-   stub so the Dll/Exe exports as DllName[Uid].Ext
-   This enables you to use the type-safe static linking (based on the
-   Dll's 3rd Uid) in E32(070)/F32(036) and ROMBUILD(043).
-
-2) ROMBUILD
-   Officially PVCSed DW's patch to ROMBUILD(044) that disables
-   type-safe static linking and added a -type-safe-link option to
-   turn it back on.
-   I'll leave it that way until people get used to the idea (or until
-   someone comes up with a better plan).
-   Also added checks on the first Uid against
-   KNarrowDebugUid, KNarrowReleaseUid for Ascii builds and
-   KWideDebugUid, KWideReleaseUid for Unicode builds.  I havn't made
-   this dependent on the -type-safe-link option because executables
-   and dlls wont load if this Uid is not set correctly.
-
-
-Version 0.01.044
-================
-(Made by Morgan, 3rd October 1996)
-
-1) ROMBUILD
-   ROMBUILD can now take E32 Image (pre-PETRANned) files as well as
-   PE Format files as input.
-
-
-Version 0.01.043
-================
-(Made by Morgan, 2th October 1996)
-
-1) MAKTRAN
-   Better filename parsing for the -z option.
-
-2) PETRAN
-   Added a -priority option.  This takes a number or one of these
-   keywords: low, background, foreground, high, windowserver,
-   fileserver, realtime, supervisor.
-
-3) ROMBUILD
-   Added 'priority' inline keyword for EXEs.
-   Added checks for type-safe static linking of DLLs.
-
-5) E32UID
-   Jal:  Displays the psion copyright message and build.
-	 Renumbered Uids to be Uid0, Uid1, and Uid2.
-
-6) ALL
-   Redirected error output to stderr.
-   
-
-Version 0.01.042
-================
-(Made by Morgan, 14th September 1996)
-
-1) PREPRO, PEIGER
-   Changes to MNT.CMD to include the latest versions of
-   PREPRO and PEIGER in the E32TOOLS release.
-
-2) MAKTRAN
-   Minor bug fixes for -D defined symbols.
-
-3) E32UID
-   Added a -Q quiet switch.
-
-
-Version 0.01.041
-================
-(Made by Morgan, 14th September 1996)
-
-1) MAKTRAN
-   Added support for maktranning make files of static libraries.
-   There are added complications when using static libraries from
-   GCC:
-   You may find that any executables linked with a static library
-   produce reams of "bad relocation" errors from either PETRAN or
-   ROMBUILD.  At the moment, to work around this you will need to
-   modify 2 lines for each build in the MAKTRANed file.
-       $(LD) ... --whole-archive my_exe.in --no-whole-archive ... my_lib.lib
-   becomes:
-       $(LD) ... --whole-archive my_exe.in my_lib.lib --no-whole-archive ...
-   this has the effect of including all code from the static library
-   in your .EXE whether it is used or not, but it fixes the bad
-   relocations generated by the GCC linker.
-
-   MAKTRAN also propogates defined symbols from the MSVC4
-   Build/Settings dialog excluding:
-	      __WINS__,__VC32__,__EXE__,__DLL__,
-	      _UNICODE,WIN32,_WINDOWS
-
-2) DEFTOOL
-   No longer truncates your def file if it can't find the specified
-   freeze file.
-
-
-Version 0.01.040
-================
-(Made by Morgan, 2nd September 1996)
-
-!) ROMBUILD
-   Bug fix:  for EXEs/DLLs with no imports.
-   
-   The tab character is now treated as white space in obey files.
-   
-   Improved some error messages.
-
-   Removed the universally dispised 'nocallentrypoint' directive on
-   the grounds that it looked silly.
-   Executables specified with 'file=' do not have the entry points
-   called.  New keyword 'dll=' indicates that the entry points
-   should be called.
-
-   Fixed filename case dependency.
-
-2) MAKTRAN
-   Added the switches '--whole-archive' and '--no-whole-archive'
-   around the .in file on the linker command line to keep GCC happy.
-   This only effects EXEs - as DLLs did it already.
-
-
-Version 0.01.039
-================
-(Made by Morgan, 19th August 1996)
-
-1) MAKTRAN
-   Added Unicode and Debug (U,D) suffixes to DEF files to make the
-   filenames for each target different under the new directory
-   structure.
-   Freeze files have also been given the same treatment:  specifying
-   -z afile.frz
-   will use afile.frz, afileD.frz, afileU.frz, afileUD.frz
-   as freeze files for the respective builds.
-
-
-Version 0.01.038
-================
-(Made by Morgan, 2nd August 1996)
-
-1) MAKTRAN
-   New maktran for the new epoc32 directory structure.
-   -T option removed.  Template instantiation is automatic.
-   Dlls are auto-detected by looking for __DLL__ in the .MAK file,
-   but this can be overridden with -D (to force a DLL) and -E (to
-   force an EXE)
-   Bug fix:  MAKTRAN now deals with make files that do not have
-   their "Win32 Release" target first.
-
-2) ETOUCH
-   Replacement TOUCH program.
-
-3) ROMBUILD
-   Bug fix:  for data sections with no relocations
-
-4) PETRAN
-   Added -nocallentrypoints option (can be shortened to -nocall)
-   and   -callentrypoints   option (       shortened to -call)
-   Bug fix:  for executable files with no relocations
-
-
-Version 0.01.037
-================
-(Made by Morgan, 2nd August 1996)
-
-1) ROMBUILD
-   Yet another change that will break your rom if you don't pay
-   attention to the version numbers.  This build is intended to
-   work with E32 (065).
-   The format of the Dll reference table has changed, and now looks
-   like this:
-
-   class TDllRefTable
-      {
-   public:
-      TUint16 iFlags;
-      TUint16 iNumberOfEntries;
-      };
-   followed by iNumberOfEntries of these:
-   class TDllRefTableEntry
-      {
-   public:
-      TUint iEntryPoint;
-      TUint iDllRefTable;
-      };
-
-   Added another inline keyword "nocallentrypoint" to obey files.
-   When attached to a file it prevents the entry points of linked
-   Dlls being called.  This is used to save time during loading
-   when the Dll's entry points are trivial (=empty).
-
-2) Fiddled with the -s option.
-   -S        outputs the size summary to the screen and to the log
-   -SLog     outputs the size summary to the log only
-   -SScreen  outputs the size summary to the screen only
-
-3) Forced the primary's code section to start on a 4K page boundry
-   for obscure operating system reasons.
-   (ie, Getting the exception/interrupt vectors to land on a page
-   boundry so they can be easily mapped by the MMU to the address
-   where they are expected to be.)
-
-4) Added support for building Unicode roms.  The implementation for
-   writing Unicode filenames to ROM is temporarily dubious.
-   A Unicode rom is made by specifying the keyword 'unicode' in the
-   first section of the obey file.
-
-5) Added the keyword 'stop' so parsing of an obey file can
-   be stopped prematurely.
-   
-
-Version 0.01.036
-================
-(Made by Morgan, 11th July 1996)
-
-1) ROMBUILD
-   Support for generating split ROM images - added the optional
-   keywords:
-   romnameodd=<file name>
-   romnameeven=<file name>
-   resulting in two half-roms.  one containing all odd numbered
-   half-words (16bits) and one containing all the even half-words.
-
-   Checksums:
-   Added a checksum member to TRomHeader and an optional keyword
-   romchecksum=<n>
-   for obey files.  This results in a ROM where summing all 32 bit
-   words (ignoring overflows) will return n.  The default sum of
-   all ROM words is 0.
-
-   Checksums for the ROM and for split ROMs are now calculated and
-   reported in the log.  These checksums are calculated by summing
-   all 8bit bytes and taking the least significant 32 bits of the
-   result.
-
-
-Version 0.01.035
-================
-(Made by Morgan, 10th June 1996)
-
-1) MAKTRAN
-   Added a RELGDB target which pretends to be the REL target
-   while keeping the debug info.
-   This has the same effect as a REL build when the makefile is
-   generated with:
-   MAKTRAN -no-strip-symbols -g"-g -fno-omit-frame-pointer" src dest
-
-2) DEFMAKE, DEFTOOL
-   Added -2 switch to compliment the -f switch so you can specify
-   the second ordinal as well as the first without the need to mess
-   around with freeze files.
-   This allows us to accomadate DLLs with the UID function at 
-   ordinal 1, and the GateL function at ordinal 2.
-   Also added -1 switch which is the same as -f to keep things 
-   consistent.
-
-
-Version 0.01.034
-================
-(Made by Morgan, 26th June 1996)
-
-1) ROMBUILD
-   Added facility to output Motorola S format Records.
-   Use the optional keyword:
-   srecordfilename=<output filename>
-   in the first section of the obey file.
-
-2) MAKTRAN
-   gcc option -mcpu-arm710 is now -mcpu=arm710
-   Added -strip-symbols and -no-strip-symbols options.
-   These force the linker to keep or strip all symbol
-   information (including debug symbol info).  If both
-   are omitted then symbols are striped for release
-   builds only.
-
-
-Version 0.01.033
-================
-(Made by Morgan, 24th June 1996)
-
-1) MAKTRAN
-   The -m6 flag on the CPPFLAGS line has changed to
-   -mcpu-arm710 -mapcs-32
-   added -fvtable-thunks and
-   removed -fno-implicit-templates
-
-
-Version 0.01.032
-================
-(Made by Morgan, 20th June 1996)
-
-1) PETRAN, ROMBUILD
-   Bug fix:  Relocations for the .rdata section were 4 bytes out
-   when the executable had a .rdata section and no imports.
-
-   PETRAN now performs a sanity check on all virtual addresses, and
-   lists the dubious ones.
-
-2) MAKTRAN
-   Made the error messages more descriptive when the .MAK file
-   doesn't contain one of the expected targets.
-
-
-Version 0.01.031
-================
-(Made by Morgan, 12th June 1996)
-
-1) PEDIFF
-   syntax: PEDIFF pefile pefile
-	   PEDIFF -e32 e32imagefile e32imagefile
-   compares 2 PE/E32Image format files to see if they are identical
-   ignoring all time/date stamps
-
-2) PETRAN
-   Another change to the E32Image file format to add a time stamp.
-
-
-Version 0.01.030
-================
-(Made by Morgan, 11th June 1996)
-
-1) PETRAN, ROMBUILD
-   Fixes to supply more information for the ram loader.
-   (ie. the size of the import section)
-   Documentation for the E32 Image file format is available from
-   the 'E32Base' Notes database.
-
-
-Version 0.01.029
-================
-(Made by Morgan, 7th June 1996)
-
-1) PETRAN
-   Added the command line switches:
-     -stack <stack size>
-     -uid<n> <uid>
-   for setting the stack size and the file's uids
-
-   The output of PETRAN has changed to the new E32Image file
-   format giving a (seasonally adjusted) size reduction of between
-   20 and 40 bytes.
-
-2) ROMBUILD
-   Uses the new E32Image file format.
-   Added heap size, and uids to the file modifiers
-   file = <src PE file> <dest EPOC file> [attributes]*
-       where 'attributes' is
-       attrib = [r|s|h|R|S|H]+
-       stack = <stack size>
-       reloc = <specific relocation address>
-       heapmax = <heap size>
-       heapmin = <heap size>
-       uid<n> = <uid>
-   Files in the rom are now read-only (R) by default (use
-   attrib=r to make them read/write)
-
-   Made filename and import/export name compares case insensitive
-
-3) DEFMAKE
-   DEFMAKE now accepts Alpha CPU PE Files
-
-
-Version 0.01.028
-================
-(Made by Morgan, 30th May 1996)
-
-1) MAKTRAN
-   added a -g flag to pass extra parameters to the gcc command line
-   eg.
-   -g-fcheck-new
-   adds: -fcheck-new to CPPFLAGS and
-   -g"-fcheck-new -fsigned-char"
-   adds: -fcheck-new -fsigned-char
-
-
-Version 0.01.027
-================
-(Made by Morgan, 29th May 1996)
-
-1) ROMBUILD
-   Changed the format of the 'file' keyword to allow overriding of 
-   various file attributes.
-   New format is:
-   file = <src PE file> <dest EPOC file> [attributes]*
-       where 'attributes' is
-       attrib = [r|s|h]+
-       stack = <stack size>
-       reloc = <specific relocation address>
-
-   The -s switch now lists file sizes in the same order as files
-   occur in the obey file.
-
-   Fixed a problem with reading relocations when the PE format file
-   lies about the VirtualSize of the section.
-
-2) MAKTRAN
-   Removed the -s flag from the linking stage of debug builds
-   to keep gcc generated debug information.
-
-3) DEFTOOL
-   Improved error reporting.
-
-4) General
-   Removed the dependencies on TRomExeHeader and TRomDllHeader
-   (from the header files of E32(059)) which are now defunct
-   so the tools build properly with E32(060).
-   Removed some of the dead code left over from E32ROM
-
-
-Version 0.01.026
-================
-(Made by Morgan, 24th May 1996)
-
-1) ROMBUILD
-   Altered the size summary output to include data files.
-   Currently the files are listed in depth first directory
-   order.  I intend to change this so they appear in the
-   same order as they appear in the obey file.
-
-2) PETRAN
-   Fixed a bug that crashed the translator when the size of the
-   relocation section of an executable was a multiple of 0x200
-   (the PE format file alignment size.)
-
-3) MAKTRAN
-   Added a CLEAN target.
-
-
-Version 0.01.025
-================
-(Made by Morgan, 23rd May 1996)
-
-1) E32ROM has been killed
-
-2) ROMBUILD replaces E32ROM
-   Syntax: ROMBUILD [-v] [-s] obeyfilename
-   -v verbose flag
-   -s gives a size summary of all executables in the rom
-   Logged output appears in the file ROMBUILD.LOG
-
-   The obey files for ROMBUILD are slightly different:
-   The keyword 'resource' has been replaced with 'data' for
-   putting data files in rom.
-   A manditory keyword 'kernheapmax' has been added.
-   The 'version' keyword has the syntax Major[.Minor[(Build)]]
-
-3) PETRAN
-   Produces E32ImageFile format files from PEFiles.
-
-4) Jal,
-   E32UID
-   Attaches UIDs to WINS files.
-
-
-Version 0.01.024
-================
-(Made by Morgan, 14th May 1996)
-
-1) DEFMAKE, DEFTOOL and MAKTRAN
-   Added -z switch to specify a frozen def file.
-   The exports in the frozen def file appear first (and in order)
-   in the new def file.  All additional exports are added to the
-   end.
-   A warning will be give if an export in the frozen def file
-   does not appear in the executable being processed.
-
-
-Version 0.01.023
-================
-(Made by Morgan, 3rd May 1996)
-
-1) Jane
-   Added space for the Uid system to the Rom Exe and DLL headers.
-
-
-Version 0.01.022
-================
-(Made by Morgan, 1st May 1996)
-
-1) E32ROM:
-   Added path checking so now it is not possible to create
-   directories with the name ""
-   The version specified by the obey file is now put into the rom.
-
-2) MAKTRAN:
-   /f switch added to specify the name of the function to use as
-   the first ordinal in the dll. (only works with /d switch).
-   More looping bugs fixed.  This time in the Archive generation.
-   Added some meagre form of test suit:  DIFs good .ARM files
-   with files generated from the current version.
-   Put in the work-around for the "ld hardcoded to C:" problem.
-
-
-Version 0.01.021
-================
-(Made by Morgan, 23rd April 1996)
-
-1) MAKTRAN bug fixes:
-   Added gcc -g option to the debug builds to produce debug output.
-   Fixed HA-103:  Now rules are only output for .cpp files
-   Having a .. or a . in the path for a source file 
-   (eg SOURCE=.\T_BLOB.CPP) no longer puts MAKTRAN into an endless
-   loop.  Also using system variables in path specifiers
-   (eg {($INCLUDE)}"\AHeader.H" ) no longer fills your hard disk.
-   Source files with no dependancies now generate a target.
-
-
-Version 0.01.020
-================
-(Made by Morgan, 11th April 1996)
-
-   E32ROM:
-1) Jal,
-   The 'resource' option is fixed and the rom is given the correct
-   date.
-
-2) Jane,
-   Added an error message if you don't supply enough parameters on
-   any line in the files section.
-
-
-Version 0.01.019
-================
-(Made by Graham, 8th April, 1996)
-
-1) Changed MAKTRAN-created makefile compiler options:
-
-   Added -fno-implcit-templates
-   In the past GCC automatically instantiated template classes and
-   functions. We now want to take complete control of this, so all
-   such templates will have to be instantiated by hand. There is an
-   extra switch (/T) on the command line which enables automatic
-   template instantiation to be turned back on, but this should only
-   be used when compiling test programs. Releasable code should take
-   advantage of the reduction in ROM size which hand-instantiation
-   brings.
-
-   Removed -fvtable-thunks
-   Those programs which exploit multiple-inheritence should now work.
-
-   Added $(USERDEFS)
-   This enables you to add your own definitions to the build.
-   e.g. nmake /f elink.mak USERDEFS=-D_USE_LOG
-
-2) Changed MAKTRAN-created makefile linker options:
-
-   Added --no-whole-archive option
-   This should greatly improve the size and linking speed DLL's. In
-   order to exploit this, you must get the next release of the GCC
-   tools from the network. Do this by typing TOOLS GCC and making
-   sure that \GCC\BIN is in your path.
-
-3) Fixed a bug with MSVC .MAK files which contain custom builds
-
-
-Version 0.01.018
-================
-(Made by Morgan, 3rd April, 1996)
-
-1) Extended DEFTOOL to take a -f switch (takes the name of the
-   function to be ordinal 1).
-
-
-Version 0.01.017
-================
-(Made by Graham, 26th March, 1996)
-
-1) Fixed a bug in E32ROM which gave "relocation type not handled" in
-   the presence of .reloc sections which were an exact multiple of
-   256 bytes in length.
-
-2) Fixed the MAKTRAN "if exist xxx.in del xxx.in" bug
-
-3) Added DEB, UREL and UDEB builds to MAKTRAN make files
-
-Jane:
-
-4) Better error reporting in E32ROM.EXE
-
-
-Version 0.01.016
-================
-(Made by Graham, 19th March, 1996)
-
-1) Fixed a bug in targetting some test program make files.
-2) Changed "del xxx.in" to "if exist xxx.in del xxx.in"
-
-Lane:
-
-3) Changed the mechanism by which libraries to be linked are found.
-
-Jane:
-
-4) Further improvements to the error reporting for DEFMAKE.
-
-
-Version 0.01.015
-================
-(Made by Graham, 8th March, 1996)
-
-1) Changed all tools to display their version and build numbers.
-
-Jane:
-
-2) Fixed a couple of heap problems in E32ROM, and generally increased robustness. 
-   Will now print an error message if there are too many files for the ROM,
-   rather than scribbling all over your nice memory.
-
-3) Improved some of the error reporting for DEFMAKE.
-
-Version 0.01.014
-================
-(Made by Graham, 6th March, 1996)
-
-1) Changed MAKTRAN to accept makefiles which have depenencies ..\..\
-   away from their source directory.
-
-Version 0.01.013
-================
-(Made by Graham, 5th March, 1996)
-
-1) Changed MAKTRAN to accept makefiles which are completely relative to
-   the directory in which they reside. NB These makefiles cannot be
-   correctly translated if they are moved to a different directory.
-
-Version 0.01.012
-================
-(Made by Graham, 4th March, 1996)
-
-1) Changed MAKTRAN to assume DEFTOOL.EXE is in your path
-2) Changed MAKTRAN so that it correctly sets __DLL__ and __EXE__
-3) Changed MAKTRAN to handle specially named DLL's - .DEV .MTD etc
-4) Changed MAKTRAN to handle projects with non-compilable components
-5) Changed the mechanism by which MAKTRAN decides group and project.
-
-Version 0.01.011
-================
-(Made by Graham, 27th February, 1996)
-
-1) Changed E32ROM to give each .EXE an 8K Stack
-2) Fixed bugs in MAKTRAN to do with picking up the name of the target
-3) Removed --whole-archive from .EXE make files built by MAKTRAN
-
-Version 0.01.010
-================
-(Made by Jane, 26th February, 1996)
-
-1) Fixed mnd.cmd for command line builds
-
-Version 0.01.009
-================
-(Made by Jane, 23rd February, 1996)
-
-1) Switched to Visual C++ 4.0
-
-2) E32ROM - Added support for REM statement in obeyfiles
-
-3) E32ROM - Fixed an obeyfile init bug which became apparent under the new compiler
-
-4) DEFMAKE & E32ROM - added support for export table being in .rdata section, as it is
-   now with Visual C++. (Export table in .edata is still supported.)
-
-5) DEFMAKE - added -q option which surrounds symbols names in "". This is mostly needed by
-   gcc builds where all destructors have a full stop in their name.
-
-6) First release of MAKTRAN and DEFTOOL from Lane
-	MAKTRAN converts msvc .mak files to gcc format.
-	DEFTOOL is used by MAKTRAN to strip out garbage from .def files
-		and to insert "NONAME" as required by gcc.
-	For MAKTRAN usage type "MAKTRAN".
-
-7) E32ROM - in log now displays absolute ROM addresses rather than offsets, and for text only
-
-Version 0.01.008
-================
-(Made by Jane, 31st January, 1996)
-
-1) Removed support for old time class
-
-
-Version 0.01.007
-================
-(Made by Jane, 8th January, 1996)
-
-1) Changed to new time class
-
-
-Version 0.01.006
-================
-(Made by Jane, 21st December 1995)
-
-1) Added versions to tools
-
-2) E32ROM - Changed heap min size for apps to 32k.
-
-3) E32ROM - Exits with error if files fail to fixup due to importing by name
-
-
-Version 0.01.004/005
-====================
-(Made by Jane, 15th November 1995)
-
-1) Added -R option to DEFMAKE so that the omission of ??__Dbg names in the .DEF
-   (release 003, (1)) can be optional.
-
-2) DEFMAKE alone now prints the meaning of the switches as well as help text.
-
-Version 0.01.003
-================
-(Made by Jane, 7th November 1995)
-
-1) Changed DEFMAKE not to write any exports after it hits the first
-   ??__Dbg prefixed name, allowing me to automate the E32 build
-   completely.
-
-2) E32ROM - Added code to avoid overwriting the first byte of a file if presented
-   with an invalid RVA of 0. (Bug in Cygnus tools).
-
-Version 0.01.002
-================
-(Made by Jane, 2nd November 1995)
-
-1) Converted DEFMAKE to the new HOST scheme.
-
-2) Sorted MNT.CMD so E32ROM will actually build.
-
-
-Version 0.01.001
-================
-(Made by Jane, 1st November 1995)
-1) First release.
-
+Version 1.1.1 (fixupsym.pl)
+===============
+Released by Lorence Wang, 12/05/2010
+	1) DPDEF145440 fixupsym cannot startup
+
+Version 2.17.3 (rombuild)
+Version 2.10.4 (rofsbuild)
+===============
+Released by Lorence Wang, 12/05/2010
+	1) DPDEF145436 ROMBUILD and ROFSBUILD cannot take OBY filename from command line
+
+Version 2.17.2 (rombuild)
+===============
+Released by Lorence Wang, 05/05/2010
+	1) DPDEF145420 rombuild fails on TB10.1 vasco_ui core image creation 
+
+Version 2.10.3 (rofsbuild)
+===============
+Released by Lorence Wang, 29/04/2010
+	1) DPDEF145380 Small letters are changing to capital letters in folder and file names 
+	2) DPDEF145381 Voide guidance file names are corrupted with following way
+
+Version 2.10.2 (rofsbuild)
+===============
+Released by Lorence Wang, 20/04/2010
+	1) DPDEF145346 rofsbuild crashs if ROFS partition is too small   
+
+Version 2.10.1 (rofsbuild)
+Version 2.17.1 (rombuild)
+===============
+Released by Ross Qin, 12/04/2010
+	1) DPDEF145300 Rombuild hangs in S60 2010wk13 vasco_ui rom building  
+	
+Version 2.10.0 (rofsbuild)
+Version 2.17.0 (rombuild)
+===============
+Released by Ross Qin, 09/04/2010
+	1) DPDEF145281 Paged meaning change 
+  
+Version 2.9.5 (rofsbuild)
+Version 2.16.1 (rombuild)
+===============
+Released by Ross Qin, 29/03/2010
+	1) RDPDEF145196	rombuild/rofsbuild has extension rom/rofs recognition issues 
+  
+Version 2.16.0 (rombuild)
+===============
+Released by Ross Qin, 26/03/2010
+	1) RM-RIM406-1232: BU: MAKSYMROFS Integration
+  
+Version 2.9.4  (rofsbuild)
+===============
+Released by Lorence Wang, 25/03/2010
+	1) DPDEF145165 S60 build break caused by latest Buildrom.
+
+Version 2.15.3 (rombuild)
+Version 2.9.3  (rofsbuild)
+===============
+Released by Zheng Shen, 16/03/2010
+	1) DPDEF144882  buildrom, rombuild,rofsbuil -keepgoing option
+
+Version 2.15.2 (rombuild)
+Version 2.9.2  (rofsbuild)
+Version 2.2 build(2) (readimage)
+===============
+Released by Zheng Shen, 10/03/2010
+	1) DPDEF144887  [System build] : NE1 smoketest not booting up for TB92SF_1069 vtb92sf build
+
+
+Version 2.15.1 (rombuild)
+Version 2.9.1  (rofsbuild)
+Version 2.2 build(1) (readimage)
+===============
+Released by Zheng Shen, 05/03/2010
+	1) DPDEF144535  remove -fastcompress option for rombuild/rofsbuild
+
+Version 2.15.0 (rombuild)
+Version 2.9.0  (rofsbuild)
+Version 2.2 build(0) (readimage)
+Version 1.1.0 (maksym)
+Version 1.1.0 (maksymrofs)
+Version 1.1.0 (hpsym)
+Version 1.1.0 (fixupsym)
+===============
+Released by Zheng Shen, 22/02/2010
+	1) DPDEF144562	Build Tools cannot be built in Linux
+
+Version 2.14.3 (rombuild)
+================
+(Made by Zheng Shen, 08/02/2010)
+  1. DPDEF143270 -compress=paged is not supported by buildrom/rombuild
+
+Version 2.14.3 (rombuild)
+================
+(Made by Marvin Shi, 25/01/2010)
+  1. DPDEF143859  Bitwise compatible bytepair algorithm update
+  
+Version 2.8.4 (rofsbuild)
+================
+(Made by Marvin Shi, 19/01/2009)
+  1. DPDEF143713 TSW error CSTI-7X4GHW: Buildtool creates invalid long names in FAT images 
+  2. DPDEF143834  Creating multiple rofs images encounters a problem and rofsbuild failed 
+  3. DPDEF143859  Bitwise compatible bytepair algorithm update 
+  
+Version 2.8.3 (rofsbuild)
+================
+(Made by Zheng Shen, 06/01/2009)
+  1. DEF143442 rofsbuild hangs occasionally with -symbols 
+
+Version 2.8.2 (rofsbuild)
+================
+(Made by Zheng Shen, 09/12/2009)
+  1. DPDEF143314 rofsbuild cannot generate FAT16 files 
+
+Version 1.0.1  (fixupsym)
+================
+(Made by Marvin Shi, 23/11/2009)
+ 1. DPDEF142869 Fixupsym failed for romutl.pm cannot be found 
+ 
+Version 2.14.2 (rombuild)
+================
+(Made by Marvin Shi, 18/11/2009)
+  1. DEF142972 buildrom produces garbled logs 
+  
+Version 2.8.1 (rofsbuild)
+================
+(Made by Marvin Shi, 17/11/2009)
+  1. DPDEF142921 TSW error CSTI-7X4GHW: Buildtool creates invalid long names in FAT images 
+  
+
+Version 2.8.0 (rofsbuild)
+================
+(Made by Marvin Shi, 13/11/2009)
+  1. RM-RIM406-1233: BU: MAKSYMROFS Integration
+Version 2.7.0 (rofsbuild)
+===============
+Made by Zhi Dou 03/11/2009
+
+1. RM-RIM406-1228: BU: ROFSBUILD Cache
+
+Version 2.14.1 (rombuild)
+===============
+Made by Zhi Dou 02/11/2009
+
+1. DEF142739 - rombuild.exe displays bogus error messages when trailing REM statement present
+
+Version 2.14.0 (rombuild)
+===============
+Made by Zhi Dou 26/10/2009
+
+1. RM-RIM406-1263: BU: Visual ROM Layout
+
+Version 2.13.4 (rombuild)
+===============
+Made by Zhi Dou 19/10/2009
+
+1. Minor change for copyright from SPL to EPL.
+
+Version 2.6.5 (rofsbuild)
+===============
+Made by Zhi Dou 19/10/2009
+
+1. Minor change for copyright from SPL to EPL.
+
+Version 2.6.4 (rofsbuild)
+===============
+Made by Zhi Dou 14/10/2009
+
+1. DPDEF142516 rofsbuild somtimes crash when building rofs image for tube with many times.
+
+Version 2.13.3 (rombuild)
+===============
+Made by Ross Qin 14/09/2009
+
+1. DPDEF141843 Coverity defects about Resource Leak and Delete Array. 
+
+Version 2.6.3 (rofsbuild)
+===============
+Made by Ross Qin 14/09/2009
+
+1. DPDEF141843 Coverity defects about Resource Leak and Delete Array. 
+
+Version 2.6.2 (rofsbuild)
+===============
+Made by Ross Qin 10/09/2009
+
+1.DPDEF141840 ROFSBUILD is not processing "-s<log|screen|both>" and "-loglevel<012>" correctly  
+
+Version 2.6.1 (rofsbuild)
+===============
+Made by Ross Qin 07/09/2009
+
+1.DPDEF141838 rofsbuild behaves differently from rombuild when invalid numbers given 
+
+Version 2.13.2 (rombuild)
+===============
+Made by Ross Qin 07/09/2009
+
+1.DPDEF141838 rofsbuild behaves differently from rombuild when invalid numbers given 
+2.DPDEF141291 Update unpaged memory overflow error message of rombuild.exe
+
+Version 2.13.1 (rombuild)
+===============
+Made by Ross Qin 03/09/2009
+
+1.DPDEF141685 Low error privilege for Kernel/variant/extension links to non-extension
+
+Version 2.6.0 (rofsbuild)
+===============
+Made by Ross Qin 26/08/2009
+
+1. REQ11940 Parallel processing - ROFSBUILD
+
+Version 2.13.0 (rombuild)
+===============
+Made by Ross Qin 26/08/2009
+
+1. REQ12560 Parallelise Content Preparation - ROMBUILD
+2. REQ13102 Parallelise Image Generation - ROMBUILD
+
+Version 2.1.603 (readimage)
+===============
+Made by Ross Qin 24/08/2009
+
+1. DPDEF141624 Coverity reports delete array in C++ without [] and deadcode.
+
+Version 2.12.2 (rombuild)
+===============
+Made by Ross Qin 24/08/2009
+
+1. DPDEF141624 Coverity reports delete array in C++ without [] and deadcode.
+
+Version 2.5.3 (rofsbuild)
+===============
+Made by Ross Qin 24/08/2009
+
+ 1. DPDEF141076 Memory leak in rofsbuild
+ 2. DPDEF141624 Coverity reports delete array in C++ without [] and deadcode.
+
+Version 2.1.602 (readimage)
+===============
+Made by Zhi Dou 19/08/2009
+
+  1. DPDEF141566 Textshell ROM fails to build due to 'cannot open obey file' 
+  
+Version 2.12.1 (rombuild)
+===============
+Made by Zhi Dou 19/08/2009
+
+  1. DPDEF141566 Textshell ROM fails to build due to 'cannot open obey file' 
+
+Version 2.5.1 (rofsbuild)
+===============
+Made by Zhi Dou 19/08/2009
+
+  1. DPDEF141566 Textshell ROM fails to build due to 'cannot open obey file' 
+  
+Version 2.5.0 (rofsbuild)
+===============
+Made by Zhi Dou 31/07/2009
+
+  1. PREQ2465's REQ12562 Byte-pair compression update
+  
+Version 2.12.0 (rombuild)
+===============
+Made by Zhi Dou 31/07/2009
+
+  1. PREQ2465's REQ12562 Byte-pair compression update
+
+Version 2.4.1 (rofsbuild)
+===============
+Made by Zhi Dou 29/07/2009
+
+  1. DPDEF141175 - Removal of the "-w" option in imgtools .mmp files results in a lot of warnings 
+  
+Version 2.11.2 (rombuild)
+===============
+Made by Zhi Dou 29/07/2009
+
+  1. DPDEF141175 - Removal of the "-w" option in imgtools .mmp files results in a lot of warnings 
+
+Version 2.11.1 (rombuild)
+===============
+Made by Zhi Dou 27/07/2009
+
+  1. DPDEF141013 ROMBUILD should prevent kernel extensions linking to user side 
+  
+Version 2.11.0 (rombuild)
+===============
+Made by Zhi Dou 21/07/2009
+
+  1. PREQ2465's REQ11939 Warnings for unpaged memory size overflows
+
+Version 2.10.0 (rombuild)
+===============
+Made by Zhi Dou 20/07/2009
+
+  1. REQ13110 HCR file in ROM (ROMBUILD)
+
+Version 2.4.0 (rofsbuild)
+===============
+Made by Zhi Dou 20/07/2009
+
+  1. REQ13111 HCR file in a separate NAND partition (ROFSBUILD)
+  
+Version 2.1.602
+===============
+Made by Vino Jose 10/07/2009
+
+1.	ChrisN
+	1.	MILESTONE: SymTB9.2, GT0419, MS3.36, DS.1815 PREQ2621 System Architecture Relocating header files - K&HS support
+
+Version 2.1.601
+===============
+Made by DeleOgunjumelo 15/01/2009
+
+1.	JonCo
+	1.	MILESTONE: Diran, GT0421, MS3.20, DS1210, REQ11822: WDP support for SBSv1
+	2.	MILESTONE: Diran, GT0421, MS3.20, DS1210, REQ11823: WDP support for romtools
+		PREQ1954 Writeable data paging: prototype release 
+
+Version 2.1.600
+===============
+Released by Kun Xu, 20/06/2008
+	1. DEF122540: Slight issue with readimage and sis files that specify a drive letter.
+
+Version 2.1.599
+===============
+Released by Kun Xu, 17/06/2008
+	1. DEF122721 READIMAGE:Files are extracted in 'reftsp.ini' directory for an ROFS image.
+
+Version 2.1.598
+===============
+Released by Kun Xu, 02/06/2008
+	1. DEF122243: ROMBuild deal with file contain line more than 255 characters incorrectly 
+
+Version 2.1.597
+===============
+Released by Kun Xu, 02/06/2008
+	1. DEF122827: Rom build failure with _ONENAND switch
+	2. DEF119470: ROFSBUILD hangs when an empty OBY file is passed as input
+	3. DEF122024: Many warnings when compiling readimage tool with MSVC++ 6.0
+	4. DEF122533: ROFSBUILD loglevel2 generates logs which don't work for interpretsis
+	
+Version 2.1.596
+===============
+Released by ReubenH, 12/05/2008
+	1. DEF115401: Incomplete validation of data in loader 
+
+Version 2.1.595
+===============
+Released by Mool Chand Tyagi, 13/12/2007
+	1. PDEF115166 	Symbian rombuild.exe work incorrectly when compression is used
+
+Version 2.1.594
+===============
+Released by Tamilarasu Byran, 04/12/2007
+	1. PDEF114692: elf2e32 - failed to report relocation data.
+
+Version 2.1.593
+===============
+Released by Tamilarasu Byran, 07/11/2007
+	1. DEF113140: Buildrom fails with error "Use the keyword 'romsize' " for extension ROFS image.
+
+Version 2.1.592
+===============
+Released by Madhu, 31/10/2007
+	1. PDEF107501: readimage is not able to display output of the patched dll.
+
+Version 2.1.591
+===============
+Released by Tamilarasu Byran, 26/10/2007
+	1. INC112577: Readimage tool crashes when run on S60 3.2 rom image.
+
+Version 2.1.590
+===============
+Released by Tamilarasu Byran, 25/10/2007
+	1. DEF107096: Postlinker ignores references to imports from the data segment.
+	2. DEF112586: Buildrom fails while building extension rofs image.
+
+Version 2.1.589
+===============
+Released by Saurabh, 11/10/2007
+	1.	INC112241: Operator precedence bug in Rombuild  
+
+Version 2.1.588
+===============
+Released by Moolchand, 10/10/2007
+	1.	PDEF109724: Rombuild/Rofsbuild should warn if dll or exe is located outside standard paths 
+
+Version 2.1.587
+===============
+Released by Saurabh, 03/10/2007
+	1.	DEF111903: Elf2e32 GT warning base e32  
+
+Version 2.1.586
+===============
+Released by Madhu, 28/09/2007
+	1.	PDEF102323: rofsbuild crashes without generating appropriate error message 
+
+Version 2.1.585
+===============
+Released by Tamilarasu Byran, 25/09/2007
+	1.	DEF111695: Data drive image generation failed
+	2.	DEF104630: elf2e32 crashes
+
+Version 2.1.584
+===============
+Released by AndrewSmi, 09/08/2007
+1.	AndrewSmi
+	1.	DEF110094: Run mode debug: debuggable keyword not supported for armv5_abiv1 in MCL
+
+Version 2.1.583
+===============
+Released by Tamilarasu Byran, 08/08/2007
+	1.	DEF106861: Specifying a compression method in buildrom doesn't work
+
+Version 2.1.582
+===============
+Released by MiguelB, 06/06/2007
+
+1.	Andrew Haigh
+	1.	PREQ1426: Added Debuggable bitfield to E32 header and associated changes
+
+
+Version 2.1.581
+===============
+Released by ???, dd/mm/yyyy
+1.  SivashankarN
+	1.	EC114: Core OS: Enhance File Server to solve 1085/1086 interoperability issue. 
+			Enhanced rofsbuild tools to handle the special attributes to create the rofs image
+
+Version 2.1.580
+===============
+Released by JonC, 03/04/2007
+
+	1) DEF104558 ELF2E32 should build dynamically for TOOLS2 rather than statically for TOOLS
+
+Version 2.1.579
+===============
+Released by KunalM, 27/03/2007
+
+	1) Seclib built as part of the system build
+
+Version 2.1.578
+===============
+Released by KunalM, 20/03/2007
+
+	1) ROM building tools (ROMBUILD,ROFSBUILD) ported to the TOOLS2 platform, under PREQ1182, MS3.1
+
+Version 2.00.577
+==========================
+(Made by SushmitaR, 19/03/2007)
+
+1) OlegI
+	DEFECT FIX: PDEF102522: DP: unhandled exception readimage.exe when using a XIP ROM paged core image 
+
+Version 2.1.576
+===============
+Released by KunalM, 06/03/2007
+
+	1) Build tools (elfdump,uidcrc) ported to the TOOLS2 platform, under PREQ1182, MS3.6.2
+	2) Seclib and Zlib added as pre-built libraries in the MCL for TOOLS2
+
+
+Version 2.00.575
+==========================
+(Made by JonathanM, 07/02/2007)
+
+1) JonathanM
+	DEFECT FIX: DEF101095: DP: Rofsbuild doesn't support paged, unpaged and pagingoverride keywords
+
+Version 2.00.574
+==========================
+(Made by Dusko, 12/12/2006)
+
+1) Dusko
+	DEF097419: DemandPaging:Keywords paged/unpaged are case sensitive
+
+Version 2.00.573
+==========================
+(Made by Dusko, 11/10/2006)
+
+1) Dusko
+	DEF095506: Change in behaviour for 0 length files (rofsbuild)
+
+Version 2.00.572
+==========================
+(Made by Dusko, 27/09/2006)
+
+1.	Dusko
+	DEF093537: Re-Introducing warnings when creating demand paged ROMs
+
+2.	RajeswariR
+	DEF087061 : PR0104 test failures - Incorrect function call, incorrect msg checking
+	DEF088937: Incorrect usage of $ChopSrcPath in cl_bpabi.pm.
+	DEF091008: ignorenoncallablefunction not supported in ABIV2 mode toolchain.
+	DEF093342: Symbol name for absent exports present in the DSO file.
+	DEF093344: ABIV2 fixup should not happen for export table relocation entries in postlinker.
+	DEF093345: Support for no exception compiler option in the ABIV2 mode toolchain.
+	DEF094731: Workaround to handle ARM linker veneer problem.	
+
+Version 2.00.571
+==========================
+(Made by RichardC, 13/09/2006)
+
+1.	RichardCo
+	1.	DEF093954: GetSecurityInfo does not support opening unicode filenames
+	2.	DEF092758: E32ImageFile::Open does not support opening unicode filenames
+
+Version 2.00.570
+==========================
+(Made by Dusko, 05/09/2006)
+
+1.	Dusko
+	INC088317 Elftran crashes during compilation of ARMV5 dll 
+
+Version 2.00.569
+==========================
+(Made by JonathanM, 01/09/2006)
+
+1.	DanH
+	1.	DEF091669: Several rombuild problems in demand paged roms.
+		Fixed various rombuild problems with different demand paging configurations, including
+		unhandled exceptions with certain edge cases and missing support for the 'alwayspage'
+		value for the pagingoverride keyword.
+
+Version 2.00.568
+==========================
+(Made by Dusko, 23/08/2006)
+
+1.	Dusko
+	DEF092459: Warnings when creating demand paged ROMs
+
+Version 2.00.567
+==========================
+(Made by ????, ??/??/2006)
+
+1.	AttilaV
+	1.	DEF090973: elf2e32 can't dump header of a byte pair compressed binary
+		Added missing image header wirting code fragment into e32imagefile.cpp 
+		E32ImageFile::WriteImage()method Bytepair compressed image generation branch.
+		Added new case: branch for display bytepair compression method in t the imgdump.cpp 
+		E32ImageFile::DumpHeader method. 
+
+	2.	DEF091564: Spurious warnings when using BytePair compression.
+		In \e32tools\e32image\e32image.cpp there are spuriou 'warning' messages whenever 
+		BytePair compression is used in "ostream& operator<<". These should be deleted. 
+
+Version 2.00.566
+==========================
+(Made by RobertJ, 20/07/2006)
+
+1.	DanH
+	1. 	DEF090813: Rofsbuild has warnings when creating demand paged ROMs
+		Added support for paged/unpaged attributes in rofsbuild. No action is taken with these 
+		attributes yet (not needed until "Code Paging" support is added) but the warnings have
+		been removed when DP ROMs are created.
+
+Version 2.00.565
+===========================
+(Made by DmitryL, 28/06/2006)
+
+1.	AttilaV
+	1.	DEF088473: ELF2E32 tool terminates if --compressionmethod bytepair CLI parameter presents
+		Fixed an uninitialised pointer use at create byte pair compressed executable image.
+
+
+Version 2.00.564
+===========================
+(Made by Dusko, 19/06/2006)
+
+1.	JohanG
+	DEF088447 Change in the rom log file format breaks CW debugging ...
+
+
+Version 2.00.563
+===========================
+(Made by Dusko, 19/06/2006)
+
+1.	JohanG
+	1.	DEF079348: ROMBUILD doesn't always fail cleanly on OOM
+	2.	DEF083206: elftran only dumps inferred relocations, not code or data
+
+
+Version 2.00.562
+===========================
+(Made by DjordjeK, 06/06/2006)
+
+1.	AttilaV
+	1.	DEF081770: The Loader should verify compression type.
+
+
+Version 2.00.561
+===========================
+(Made by DavidM, 26/05/2006)
+
+1.	AttilaV
+	Milestone: Argus,GT0286,MS3.2
+	Extended PETRAN, ELFTRAN, ELF2E32, ROMBUILD, ROFSBUILD to handle new compression method Byte Pair 
+	and new executable image compressed by the new compression
+
+
+Version 2.00.560
+===========================
+(Made by DuskoJ, 30/05/2006)
+1) SatyakamM
+	DEF083920: Rofsbuild crashes on using patchdata for ABIV2 DLL (ABIV1 works fine)
+
+Version 2.00.559
+===========================
+(Made by DuskoJ, 13/04/2006)
+1) Dusko
+	DEF083116 Validaterel always fails 
+
+Version 2.00.558
+===========================
+(Made by DuskoJ, 16/03/2006)
+1) JonC
+	DEF082002 - EVALID can't deal with case differences in ARMV5 DLL
+
+Version 2.00.557
+===========================
+(Made by JonathanM, 06/03/2006)
+
+1)	JonathanM
+	MILESTONE: Argus GT0286, MS3.1 PREQ209 Demand Paging Prototype.
+	First delivery of demand paging prototype. Delivery step DS204.
+
+Version 2.00.556
+===========================
+(Made by KuldipN, 08/02/2006)
+1) KuldipN
+	DEF078510 buildrom does not validate new XML files 
+	DEF077827 buildrom feature management - should disallow default ranges with extra flags 
+
+Version 2.00.555
+===========================
+(Made by DuskoJ, 24/01/2006)
+1) DuskoJ
+	DEF075849 Feature registry API returning error when featreg.cfg file is greater than 64KB
+	DEF077941 VA_* macros cannot be used with GCCE 
+
+Version 2.00.554
+===========================
+(Made by JonathanM, 04/01/2006)
+
+1) JonathanM
+	PREQ1030 - Kernel support for device driver test suites - Generic Logging Engine.
+	This adds support for the following keywords into ROMBUILD:
+		btrace, btracemode and btracebuffer
+	See base/documentation/Base_How_To_BTrace.doc
+
+Version 2.00.553
+===========================
+(Made by KuldipN, 21/10/2005)
+1) KuldipN
+	PREQ1086 - Device Feature Management (DS 069)
+Version 2.00.552
+===========================
+(Made by KuldipN, 12/10/2005)
+1) KuldipN
+	PREQ1028 - Plug-in compiler integration (DS 063)
+Version 2.00.551
+===========================
+(Made by KuldipN, 06/10/2005)
+1) KuldipN
+	PREQ1085 Flexible device ROM configuration
+Version 2.00.550
+===========================
+(Made by KuldipN, 14/09/2005)
+1) KuldipN
+	REQ5412: Enhance ROM tools compression options  (part of PREQ1192)
+
+Version 2.00.549
+===========================
+(Made by DuskoJ, 12/07/2005)
+1) RajeswariR
+	DEF065105 Using GCC-E should not require modification of existing bld.inf files
+	DEF063447 Postlinker crashes with unsupported outfile
+
+Version 2.00.548
+================
+(Made by JonC, 21/07/2005)
+1) JonC
+      PREQ1032 Hardware-dependent support for "VFP" floating point acceleration and accelerated maths functions
+
+Version 2.00.547
+===========================
+(Made by DuskoJ, 13/07/2005)
+1) Dusko
+	DEF063791 ROFSBUILD resets main ROFS file attributes when processing a ROFS extension
+
+Version 2.00.546
+===========================
+(Made by DuskoJ, 01/07/2005)
+
+1) Dusko
+	DEF062362 PE_DUMP does not report all significant content in NSIS files 
+	DEF064173 secdump.exe blows up when you try and use it 
+
+Version 2.00.545
+===========================
+(Made by KuldipN, 22/06/2005)
+
+1) KuldipN
+		DEF060825  PR0104: Addition of GCCE support to CodeWarrior 
+
+Version 2.00.544
+===========================
+(Made by KuldipN, 10/06/2005)
+
+1) KuldipN
+		DEF062125  PR104: Custom DLL generation is failing 
+
+Version 2.00.543
+===========================
+(Made by DuskoJ, 10/06/2005)
+
+1) Dusko
+		DEF061701 Petran.exe can crash on certain non E32 files
+
+Version 2.00.542
+===========================
+(Made by KuldipN, 27/05/2005)
+
+1) KuldipN
+	PREQ413   Changes to support the GCCE toolchain.
+      	PREQ414   Enable Commercial Compatible Compilers
+      	DEF061420 Elf2e32 Problems
+
+Version 2.00.541
+===========================
+(Made by DuskoJ, 27/05/2005)
+
+1) BalaT
+	DEF060837 RVCT2.2 emits unresolved symbols which ELFTRAN does not notice.
+
+
+Version 2.00.540
+===========================
+(Made by KuldipN, 11/05/2005)
+
+1) KuldipN
+	DEF060826 - PR0104 - PostLinker Memory Leaks
+
+Version 2.00.539
+===========================
+(Made by KuldipN, 3/05/2005)
+
+1) KuldipN
+	PREQ413 - Changes to support the GCCE toolchain.
+
+Version 2.00.538
+===========================
+(Made by BalaT, 1/04/2005)
+
+1) BalaT
+	DEF058002 - [System Build] Failed to build EIKCORE.DLL using RVCT2.2 
+
+Version 2.00.537
+===========================
+(Made by MiguelB, 1/03/2005)
+
+1) MiguelB
+	DEF055301 - ROFSBUILD, COREIMAGE keyword: problem with single-char files/directories 
+
+Version 2.00.536
+===========================
+(Made by Bala, 22/02/2005)
+1) Bala
+	PREQ1027 Submission of RVCT 2.2 Run-Time ABI Compliance to MCL
+
+Version 2.00.535
+===========================
+(Made by Dusko, 21/02/2005)
+
+1)	BalaT
+	DEF051265 Problems debugging .cia files in ARMV5 builds.
+
+Version 2.00.534
+===========================
+(Made by Dusko, 19/01/2005)
+
+1)	Dusko
+	DEF052809 - GENSTUB ERROR: can't open output file....
+
+Version 2.00.533
+===========================
+(Made by Dusko, 23/11/2004)
+
+1)	BalaT
+	1) DEF051128 - armv5 library build in parallel cause conflicts
+
+Version 2.00.532
+===========================
+(Made by KamranN, 11/11/2004)
+
+1)	KamranN
+	1)	Fix for defect DEF051421  Problems with binary search in ROFS  
+
+Version 2.00.531
+===========================
+(Made by Dusko, 08/10/2004)
+
+1)	BalaT
+	1) DEF047934 - ROMBUILD:EXE corrupts ROM directory of an extension ROM 
+
+Version 2.00.530
+===========================
+(Made by Dusko, 04/10/2004)
+
+1)	BalaT
+    1.	Fix for DEF046271 - EVALID cannot cope with differing temp paths present in some ARMV5 .lib files.
+
+Patch to Version 2.00.529
+===========================
+(Made by ???, ??/??/2004)
+
+1.	JonathanM
+	1.	Fix for -dump option in PETRAN.
+
+Patch to Version 2.00.529
+===========================
+(Made by MichaelP, 27/08/2004)
+
+1.	JonathanM
+	1.	Defect Fix: DEF048051 - ROMBUILD can when PlatSecEnforceSysBin is ON
+
+
+Version 2.00.529
+===========================
+(Made by KuldipN, 25/08/2004)
+
+1.	NaheedA
+	1.  DEF047579 - petran fails to report a corrupted input file.
+	2.  DEF046271 - EVALID cannot cope with differing temp paths present in some ARMV5 .lib files
+
+Patch to Version 2.00.528
+===========================
+(Made by JonathanM, 19/08/2004)
+
+1.	JonathanM
+	1.	Defect Fix: DEF048015 - [System Build] ROMs failed to build for MCL 03344 8.1b/9.0
+
+Version 2.00.528
+===========================
+(Made by DjordjeK, 18/08/2004)
+
+1.	JonathanM
+	1.	Added -dump option to PETRAN and ELFTRAN to select what information should
+		be displayed about an image file. This takes a string argument consisting
+		of letters to select the information to be dumped:
+			h	All header info
+			s	Platform Security info
+			c	Code section
+			d	Data section
+			e	Exports
+			i	Imports
+		These letters can be used in any combinations, e.g. "PETRAN -dump ie foo.exe"
+		will show all Imports and Exports of FOO.EXE
+
+Version 2.00.527
+===========================
+(Made by JonathanM, 26/07/2004)
+
+1.	JonathanM
+	1.	Added PlatSecEnforceSysBin setting to ROMBUILD which forces all binary files to
+		be placed under the \sys\bin\ directory.
+		Part of Yankee,GT0217,MS3.1.4 PS6.3.2 Ignore path information for binary files
+		within ROM build and loader.
+		
+Version 2.00.526
+===========================
+(Made by JonathanM, 26/05/2004)
+
+1.	DennisM
+	1.	Fixed defect DEF041434 EKA2 ROMBUILD can't build extension ROMs
+	2.	ROMBUILD now checks that kernel side code doesn't link to user side
+		code, and vice-versa.
+
+Version 2.00.525
+================
+Made by Dusko, 18/05/2004
+
+1) Dusko
+	1) Fix for DEF045146  EVALID does not correctly handle ARMV5 lib files or RVCT .MAP files.
+
+Version 2.00.524
+================
+Made by JonC, 29/04/2004
+
+1) Jon
+	Fixes for:
+	1) DEF044567 gendirective obtains ELF section header data incorrectly
+	2) DEF044048 RVCT version of DEF2DLL camplains about DLLs not having exports 
+
+Version 2.00.523
+===========================
+(Made by JonathanM, 19/03/2004)
+
+1.	JonathanM
+	1.	Implemented the requirements:
+		REQ2632 - Configurability of the enforcement of capabilities
+		REQ2633 - Security violation diagnostic
+		REQ3142 - Associate Platform Security information with an executable.
+		See /cedar/generic/base/documentation/Base_How_To_Configure_Platform_Security_Settings.doc
+
+Version 2.00.522
+===========================
+(Made by JonathanM, 26/02/2004)
+
+1)	JonathanM
+	1)	Modifications made for implementation of
+		Change Request JDOD-5VUJ7F - Change in executable format of EKA2 binaries.
+	2)	Tools now use the sytax "cap1+cap2+cap3" to specify a named set of capabilities
+		(Rather than specifying a single hexadecimal number.)
+	3)	Added three new keywords to ROMBUILD:
+			PlatSecEnforcement
+			PlatSecDiagnostics
+			PlatSecDiasabledCaps cap1+cap2+cap3
+		these are used for specifying Platform Security settings which are then placed
+		in the ROM Header.
+
+Version 1.00.521
+================
+Made by DuskoJ, 16/02/2004
+
+1) Dusko
+	1) Fix for DEF042440 - elfdump creates a new file with zero length.
+
+
+Version 2.01.520
+================
+Made by AndrewJ, 13/02/2004
+
+1) StephanGu
+	Implemented CLCT-5VEK4P - "Binary search in ROFS 
+	together with 'expanding ROFS entries with UIDs'".
+	Changed Rofsbuild to provide a sorted array of offsets
+	in order to allow the file system to perform binary search
+	through the image.  Also expended the TRofsEntry structure
+	to include a copy of the file UID data.
+
+
+Version 2.01.519
+================
+Made by DuskoJ, 30/01/2004
+
+1) Jon
+	1) Fix for - DEF040324 PETRAN access violation whilst converting THUMB build EXEDLL
+	   (Further amendment).
+
+Version 2.01.518
+================
+Made by DuskoJ, 22/01/2004
+
+1) Kuldip
+	1) Fix for DEF40965 Changes to stop overwriting readonly attribute for directories.
+
+
+Version 2.01.517
+================
+Made by DuskoJ, 05/01/2004
+
+1) Kuldip
+	Fix for DEF039055  "Change in behaviour for 0 length files"
+
+Version 2.01.516
+================
+Made by DuskoJ, 19/12/2003
+
+1) Dusko
+	1)	fix for DEF039365 - Petran ignores -fixed keyword	
+
+
+Version 2.01.515
+================
+Made by Dusko, 17/12/2003
+
+1. Kuldip
+	1)	REQ1733, A3.2 Improved Command Line Build Tools
+        ROFSBUILD ROM flexing, Automatic sizing behaviour
+		Automatic XIP-extension OBEYFILE, header generation
+
+Version 2.01.514
+================
+Made by Dusko, 24/11/2003
+
+1. Dusko
+	1)	DEF039411  pediff does not ignore the header CRC 
+		File changed pediff.cpp
+
+Version 2.01.513
+================
+Made by Dusko, 03/11/2003
+
+1. Dusko
+	1.	fix for DEF039536 Non existing files referenced in  Tools_e32tools.mrp...
+
+
+1) William
+	1)	Added PE_DUMP to support the new EVALID.
+
+Version 2.01.512
+================
+Made by Dusko, 10/10/2003
+
+1. Dusko
+	1.	Zephyr,PRO0085,REQ1663, Remove dependencies on MSDEV	
+	  	Changes to BIN2COFF and  WVECONV in order to build with CW
+
+
+Version 2.01.511
+================
+Made by Dusko, 02/10/2003
+
+1. Dusko
+	1.	fix for DEF037065 Problem with error message from uidcrc
+
+Version 2.01.510
+================
+
+Made by Dennis, 24/09/2003
+
+1. Dennis
+	1.	ROMBUILD adds sorted offsets to directory structures to enable binary
+		searching of the ROM file system.
+	2.	Implemented CR ATHE-5PZEAU (Add Version Numbers to Symbian OS Executables).
+
+Version 1.00.505
+================
+Made by DuskoJ, 22/08/2003
+
+1) Morgan
+	Ported ROFSBUILD extension support from beech
+	1) 	Added ROFSBUILD extension support.  Start a ROFS extension with obey file 
+		commands
+			extensionrofs = <filename>
+			rofssize = <size>
+		Added support for ALIASing, HIDEing and RENAMEing.  Semantics and syntax
+		for these commands are the same as ROMBUILD.
+		Core image and extension can be joined together with 
+			tools\e32tools\rombuild\addextensions.pl
+		Added TRofsExtensionHeader to ROFS.H
+		Padding, Alignment and Repro assumptions: 
+		The extension assumes it will be added TRofsHeader::iMaxSize bytes
+		after the start of the core image.  It is assumed the max size of the core
+		image will be aligned appropriately for the underlying ROM device.
+		Core image has signature "ROFS" at offset 0, extension has signature
+		"ROFx" at offset 0 into extension (= iMaxSize after start of core image).
+
+2) Morgan
+	1)	Added rofsbuild\dumpdirs.pl - utility for dumping the ROFS directory
+		structure.
+	2)	Ported ROFSBUILD executable compression from beech
+
+3) Dusko	Changes to a number of e32tools components in order to build cleanly with CodeWarrior
+
+
+Version 1.00.504
+================
+Made by DuskoJ, 25/07/2003
+
+1. Jon
+	1. Fixed DEF036679 by adding copyright statements where appropriate.
+
+
+Version 2.00.503
+================
+
+1) Morgan
+	1) Removed ROMBUILD build warning
+
+Version 2.00.503
+================
+
+1) Dennis
+	
+	ROMBUILD changes:
+
+	1)	'kernelstackaddress' keyword removed. This is now always calculated by
+		ROMBUILD.
+	2)	Address allocation strategy modified. The initial stack is now placed
+		immediately after the kernel .data/.bss area. The kernel heap follows
+		the initial stack (as before). In the moving model, fixed process data
+		chunks are placed after the kernel heap (on chunk boundaries).
+	3)	TRomHeader::iKernStackAddress replaced with TRomHeader::iKernelLimit,
+		which gives the end of the kernel heap rounded up to a chunk boundary
+		except on the moving memory model where it is advanced past the space
+		reserved for fixed process data chunks.
+
+
+Version 2.00.502
+================
+
+1) Dennis
+	1)	Pulled out general E32Image file handling code into e32tools/e32image/...
+		directories. This includes compression/decompression and all stuff which
+		doesn't require	the native PE or ELF file.
+	2)	Merged the two versions of ROMBUILD. ROMBUILD.EXE now accepts E32Image
+		files derived from either PE or ELF. It no longer accepts the native
+		PE/ELF files directly. XIPRMBLD.EXE is no longer built.
+	3)	Added a special instruction (TST PC, #0) to the beginning of all EKA2
+		entry points. This is detected by PETRAN/ELFTRAN and the file marked as
+		having an EKA2 style entry point. The ELF-derived and JFormat flags have
+		been generalised into header format, import format and ABI fields. An
+		entry point type field has been added to distinguish EKA1 and EKA2 entry
+		points.
+	4)	Add 'nowrapper' keyword to ROMBUILD. If specified in OBY file it causes
+		the 256 byte wrapper to be omitted. This setting can still be overridden
+		on the command line.
+
+
+
+======================
+ELFDUMP version 1.0.0
+1) Dusko
+     1) Adding elfdump.cpp. Elfdump is required to be a standalone program     
+    	which can present an ELF object file in a form suitable for use with 
+    	EVALID. It prints hex dumps of relevant sections, directive section as 
+    	text and relocation information showing the symbol the name and of the 
+    	section in which the relocation occurs.
+
+Version 1.00.501
+================
+EKA2 Tools
+
+1) RobertJ
+	1) Support for compressed executables introduced. Source code for the compression
+	& decompression is in petran\szip. Changed PEDUMP to dump compressed executables
+	added -compress & -nocompress options to PETRAN
+	2) Bumped version number of written executables to 1.10
+	3) Added a new format bit to iFlags JFormat (Jetstream format)
+
+Version 1.00.500
+================
+EKA2 Tools
+
+1) Dennis
+	1) Added support for the x86 development target to PETRAN
+	2) Added various values to the ROM header for EKA2 in ROMBUILD
+2) William
+	1) Added -capability <mask> option to PETRAN. There isn't yet an iCapability field in the
+	   E32ImageHeader, but everything else is ready to go.
+
+
+================
+ROMBUILD version 2.05
+
+1) William
+	1)	Fixed defect ROS-52XF6E "ROMBUILD produces incorrect S-Record checksums" by getting the length
+		right (actually by checksumming the bytes we write instead of calculating the values twice).
+	2)	Disable the 3-byte address form of S-Record with a #define, since it upsets some external
+		tools and only benefitted serial download to M*Core.
+	3)	Fixed defect ROS-52ZED7 "ROMBUILD crashes if section 1 overflows in 2 section ROMs" by
+		checking for overflows in the right place.
+	4)	Made verification failure use Print(EError, ...) in all cases, so that it will cause a 
+		ROMBUILD failure rather than just a small complaint at the end of the log file.
+	5)	Extend checkstubs.pl to handle the R3UNUSED Thumb stubs, and update stubs.lst
+
+Todo
+handle section 1 DLLs linking to section 2 DLLs so that section 2 can be replaced
+respect the E32Image flags for dll static data and called entrypoints 
+			
+
+2) Chris
+	1)	Updated romimage.rtf to remove screensize keyword
+
+3) Nicolas (work done as part of CR JPAR-54XMZD)
+	1)	Added new keyword: DEBUGPORT.  It takes a numeric argument
+		which is a magic cookie as far as rombuild is concerned and
+		is stored in the ROM header for interpretation by the
+		kernel and bootstrap.  The default value is -1.
+	2)	Updated romimage.rtf to include DEBUGPORT.	
+
+
+================
+ROMBUILD version 2.04
+
+1) Nicolas
+	1)  Fixed bug where EPOC crashes during boot if there is a non-empty
+	    area after an empty one in the relocation table.
+	2)  Modified the way the kernel extensions list is built to
+	    ensure the extensions are always in the same order in the
+	    list as in the obey file even when some extensions are in
+	    areas and other aren't.  This is necessary because the
+	    kernel extension ordering in the obey file is important
+	    (for example an extension registering a power handler
+	    *must* be loaded after the extension that loads the power
+	    model).
+	3)  Fixed bug in AreaSet::AddArea() (overlap was not detected
+	    when an existing area is embedded in the new one).
+	4)  Overlap unit tests updated.
+	5)	Fixed bug in TDllExportInfo ctor: The ptr to the export directory in
+	  	the ROM buffer was wrong when the file was relocated to a non-default
+	  	area (iRunAddress / iImageAddr mismatch).
+
+
+================
+ROMBUILD version 2.03
+
+1) William
+	1)  Set the default srecordbase to zero, and remove the srecordbase validation.
+	2)  Added "data-align" attribute, and used it in the calculation of dataOffset for
+	    things sharing the SvData. It's not a great name, but it will do for now...
+	3)  Added "KeepIAT" attribute, which builds an old-style Import Address Table instead
+	    of pointing the stubs directly at the export data.  NB. this won't work for
+	    section 1 DLLs, because I haven't reinstated the machinery for putting the IAT into
+	    the second section.
+	4)  Fix defect CLE-4ZEJBB "rom building: fatal error when file to hide isn't found" by
+	    dealing with (aKeyword==EKeywordHide) before testing for !existingFile, and issuing
+	    a warning if the existing file wasn't found.
+	5)  Export checkstubs.pl to \epoc32\rom\tools
+
+---------------------
+ROMBUILD version 2.02
+
+1) Nicolas
+
+	1) ROMBUILD: Introduced new area syntax (incompatible with the existing
+       scheme):
+
+		a) The "area <name> <start> <size>" statement declares an area
+		(there is no need to declare the default ROM area).
+
+		b) The "area=<name>" file attribute relocates individual files to
+		the designated area.
+
+		c) When invoking rombuild with -s, a summary of the free and used
+		space in each area is printed.
+
+		d) Areas can be used only in the first section of a sectioned ROM
+		and are forbidden in extension ROMs.
+
+		e) It is forbidden to patch a relocated file.
+
+	2) ROMBUILD: Introduced classes Area and AreaSet and associated
+       iterators to replace all the existing dynamic arrays and indexes
+       used to store the area-related state.  Unit tests for these are
+       built using r_t_areaset.mmp.  Refactored existing code (notably
+       E32Rom::LayoutRom()) to use those new classes.
+
+	3) ROMBUILD: Moved global variables from rombuild.cpp to r_global.cpp
+       to allow build of r_t_areaset.exe.  Made static the globals which
+       were used only in rombuild.cpp.
+
+	4) ROMBUILD: Merged TAddressSet into TAddressRange.  Renamed every
+       "i.*Set" variable to either "i.*Range" or "i.*Section" (previously
+       existing "i.*Section" variables have been suffixed with "Number").
+
+	5) ROMBUILD: Updated version number to 2.02.
+
+	6) HOST: Turned the various overloads of Val() into a template
+       function.
+
+---------------------
+ROMBUILD version 2.01
+
+1) William
+	1)  Fixed bug in ParseArea() which reused the area address as the area length
+	2)  Allow for executables generated before GCC 530 by changing the assertion about 
+	    unexpected data. If it looks as though the rdata is after the IAT, then the whole
+	    of the E32ImageFile text area is included in the ROM.
+	3)  The rounding up for the ROM size to a multiple of a megabyte must not exceed the
+	    originally specified size.
+	4)  Increased the ROMBUILD version to 2.01
+
+Version 1.00.174
+================
+Made by William, 23/03/2001
+
+1) William
+	1)  Removed the old .ipr files associated with the predecessor to DISTRIBUTION.TXT
+	2)  Moved ROMBUILD.MMP into the ROMBUILD directory
+	3)  Gave ROMBUILD it's own major and minor version numbers - now 2.0
+	4)  Moved the collapsing routines into ROMBUILD\R_COLLAPSE.CPP
+	5)  Substantial rework of the way that the E32Image files are put into the ROM: it's now
+	    almost the case that the ROM layout is established before copying any data. The layout
+	    is expressed by setting up TAddressRange and TImageSection values in the TRomBuilderEntry,
+	    and the rest of the relocation and copying to the ROM image follows from those values.
+	6)  Change of approach on relocation: instead of relocating the file contents after copying
+	    into the ROM image, do the relocation beforehand. This allows the relocation to operate on
+	    a simple fixed layout (the one which PETRAN set up), and frees the ROM layout to be
+	    entirely different.
+	7)  Unified all the various ROM flavours: in particular the "areas" support is part of the
+	    normal layout process. The use of TAddressSets and their derived forms makes this
+	    pretty painless.
+	8)  Removed the Import Address Tables, saving ~240K in a Quartz 6.1 ROM. The import stubs
+	    are fixed up to point directly into the export directory for the relevant DLL. In two 
+	    section ROMs the export directories are now placed at the start of the upper section 
+	    to support patching: this was previously done using the import address tables.
+	9)  Various special case handling for the Primary has been reworked using generic support.
+	    In particular the primary now gets a default code alignment of 4K, which allows the 
+	    gap to be occupied by other files if the obey file is suitably arranged.
+	10) Area relocation is more pervasive than before. The import stubs in relocated executable
+	    no longer refer back to the unrelocated original contents of the area.
+	11) The sizes of the DLL reference tables are now reported in the log.
+	12) Fixed a bug which caused ROMBUILD to crash if a file was marked as "patched" in a 
+	    two section ROM.
+	13) Size information in the ROM is more consistent: the size in the ROM filesystem is always
+	    the length of the contiguous section beginning at the given address, and the size summary
+	    in the log file reports the SizeInRom() information for the file, which should always
+	    reflect the real cost in ROM of the file regardless of layout.
+
+Version 1.00.173
+================
+Made by Morgan, 08/03/2001
+
+1) Morgan
+	1)	Fixed ROMBUILD to accept DLLs with no imports and DLLs with no exports
+
+
+Version 1.00.172
+================
+Made by William, 07/12/2000
+
+1) William
+	1)  Introduced ROMBUILD support for extension ROMs, the deliverable from project PR0027.
+	    Lots of churn, but the key new data structure is the TRomNode which separates the
+	    ROM directory structure information from the individual files (TRomBuilderEntry). The
+	    TRomNodes handle the DLL name matching and are used to drive the multiple-variant clever
+	    directory structure operations.
+	2)  Reworked the ROMBUILD parsing strategy to remove the need for "files=", allowing the
+	    header statements and file statements to be mixed freely in the OBY file.
+	3)  Use the tables which now drive the ROMBUILD parsing to generate the help information.
+	4)  Don't create ROMBUILD.LOG unless processing an OBY file, and put extra useful information
+	    into the log. In particular, print a line include the ROM image name before processing
+	    the files and after writing the ROM image, e.g.
+
+	        Creating Rom image testrom.IMG
+		...
+	        Writing Rom image with repro header to file testrom.IMG
+
+	    Also report the "Writing" line to the screen, as a comfort to the user.
+	5)  Fix ROS-4RJPTK "ROMBUILD checksums are incorrect" by computing the checksum at the 
+	    right stage, and cross check to make sure it's still right when displaying the ROM stats.
+	    ROMs built with this version of ROMBUILD are likely to be different in up to 4 bytes
+	    at offsets 0x1A8 to 0x1AB (0xA8 to 0xAB for images without a REPRO header).
+	6)  Make "unicode" the default, and introduce sensible defaults for various other keywords.
+	7)  Remove the ROMBUILD support for bigendian images (it's still present in the files
+	    shared with PETRAN.
+	8)  Added dumpdirs.pl which prints out the ROM root directory structures.
+	9)  Added addextension.pl which concatenates a kernel ROM and an extension ROM, making a 
+	    combined image suitable for use with Brutus.
+	10) Try harder to continue reporting errors rather than stopping immediately. In particular,
+	    report all of the unresolved DLL linkages rather than just the first one.
+	11) Introduce new keywords "hide", "alias" and "rename" to manipulate the directory structure.
+	12) Added romimage.rtf documentation (from the BPK, but somewhat edited) and export it to
+	    \epoc32\engdoc\e32tools
+
+
+Version 1.00.171
+================
+Made by Nicolas, 19/10/2000
+
+1) William
+	1)  Rework internals of ROMBUILD to remove arrays indexed by file number.
+	    TRomBuilderEntry is now derived from E32ImageFile, and the various arrays
+	    have become member data in the associated TRomBuilderEntry - OO, dontcha just love it!
+	2)  Added -coff-header option, which could remove the need for bin2coff
+	3)  Use the .idata information to get the DLL ordinals, not the IAT. 
+	    This is preparation for the IAT removal idea, which involves turning the IAT into
+	    a table of pointers back to the associated stubs.
+	4)  Added a range check to TRomBuilderEntry::AddressOfOrdinal
+	5)  Added documentation about various forms of import stub, and checkstubs.pl which
+	    scans all of the stubs in a ROM to check that they lead to a function of the
+	    correct name.
+	6)  Introduced TAddressSet for recording the various addresses associated with
+	    code in a ROM (address of ROMBUILD.EXE working copy, address in ROM, execution address).
+	    Currently used for handling ImportAddressTable and DllRefTable and seems to work in
+	    a two-section Brutus ROM.
+	7)  Partial fix for EDNRFID-4J6DV3 "Corrupt reloc table generated"
+	    Allow for the possibility that there is only .bss with no .data when applying the
+	    heuristic for relocs that don't point into any known section.
+	    Fix printf format specifier typo by changing %0x8 -> %08x
+	8)  Added a verbose option to W32REPRO
+
+
+Version 1.00.170
+================
+Made by Dennis, 13/09/2000
+
+1) William
+	1)  Dust off the S-Record support in ROMBUILD
+	    Use the full 78-bytes available per line, and add support for the
+	    3-byte address form, since this is beneficial to M*Core Cogent.
+	2)  Use "srecordfilename=*" to mean "append .srec to romname and use that"
+	    Same approach for "romnameodd=*" and "romnameeven=*" filenames.
+	3)  Set the RomHeader iSize to be iSizeUsed rounded up to a megabyte. This is
+	    particularly beneficial on platforms which RAM-load a ROM image (Brutus, Cogent)
+	    because it allows the bootstrap to use only the amount of RAM really needed
+	    for the ROM image.
+	4)  Add "hide" keyword to ROMBUILD, as requested by a licensee. This stops the
+	    specified file from being included in the ROM directory, but doesn't stop other
+	    ROM files from linking to the hidden file. A consequence of hiding a DLL is that
+	    it can't be dynamically loaded, which means that you can't hide kernel extensions.
+
+
+Version 1.00.156
+================
+Made by Morgan, 5/7/2000
+
+1) Anon
+	1) Changes to ETOUCH
+	==== //EPOC/development/base/6.0/e32tools/ETOUCH/ETOUCH.CPP#1
+	@@ -3,6 +3,10 @@
+	 // Copyright (c) 1996-1999 Symbian Ltd.  All rights reserved.
+	 //
+
+	+#if defined(__VC32__)
+	+#pragma warning(disable : 4710)        // function '...' not expanded
+	+#endif
+	+
+
+
+Version 1.00.155
+================
+Made by Dennis 22-06-2000.
+
+1)	Dennis
+	1)	Modified W32REPRO so that the -HEX option only makes it receive in hex.
+		It always transmits in base 10. This is so it works with REPROC.
+	2)	Fixed bug in ROMBUILD - it didn't like files with no imports.
+
+Version 1.00.154
+================
+(Made by Alastair, 10.3.2000)
+
+1)	William
+	1)	Added M*Core support
+		Basically just another PE magic number and another TCpu code.
+
+Version 1.00.153
+================
+(Made by Pete, 24/02/2000)
+
+1)	William
+	1)	Updated PETRAN to report exports with value 0 as
+
+			WARNING: No export specified for ordinal 62
+
+		and promoted the non-zero exports from an unknown section to be errors.
+	2)	Added more information to the warning about failure to identify a section for relocation,
+		just in case it ever happens...
+
+2)	Simon
+	1)	Added bin2coff, a utility to add a coff header to a binary
+	  	image. Mainly for use with the cogent smartfirmware
+
+Version 1.00.152
+================
+(Made by Dennis, 19/01/2000)
+
+1)	William
+	1)	Updated W32REPRO usage statement to remove misleading limit on the baud rate
+		The baud rate is actually passed directly to the Win32 comms device, so it should
+		be possible to specify any baud rate supported by the device.
+	2)	Updated W32REPRO to add a -RAW option for use with Brutus REPROB (and others).
+		This tells W32REPRO not to expect a 256-byte header on the image, but it will
+		still pretend that there is one, as expected by the existing REPRO code.
+	3)	Updated W32REPRO to a -BOOT <boostrap_image> and -HEX options, to support
+		the Cirrus Logic board. The bootstrap is sent at 9600 baud before starting the
+		normal REPRO protocol, and -HEX changes the protocol to use base 16 rather than
+		base 10 for numbers transmitted between W32REPRO and the other end.
+	4)	Added W32REPRO protocol support for a new command 'D' which tells W32REPRO to
+		disconnect after a successful transfer: REPROB could usefully be extended to
+		send this command...
+
+2)	Morgan
+	1)	Fixed ROMBUILD so it gives appropriate errors if passed an empty file
+	2)	ROMBUILD.LOG reports inclusion of 256 ROM repro header (Defect EDN147097)
+	3)	Fixed EDN580686 Rombuild is not very tolerant
+	4)	Fixed EDN210727 PEDIFF returns stupid result codes
+		PEDIFF now returns 0 for identical files, and 2 for different files
+	5)	Improved PETRAN dump output (Fixed EDNGLAY-463LNN)
+
+
+Version 1.00.151
+================
+(Made by Morgan, 3/12/99)
+
+1)	Alastair
+	1)	Created a new utility, ERUNTEST.EXE, which will take a batch file
+		listing tests as generated by ABLD and run each test in turn, checking
+		whether each test has succeeded or not by checking the return value from
+		the process and also checking output to the EPOCWIND.OUT file in the
+		temporary directory.  ERUNTEST.EXE logs output to standard output.
+		Obviously this utility will only run WINS/WINC tests.  It must be invoked
+		from the directory in which the test executables reside.
+
+2)	Morgan
+	1)	Fixed some warnings
+
+
+Version 1.00.150
+================
+(Made by Morgan, 27/9/99)
+
+1)	Alastair
+	1)	Created new directory COLTAB and added COLTAB.CPP, BASEKEYS.TXT,
+		COMPKEYS.TXT and README.TXT.  COLTAB comes from Graham Asher, and is a
+		tool for writing the collation tables in COLLATE.CPP.  README.TXT
+		contains details of the URL from which data files BASEKEYS.TXT and
+		COMPKEYS.TXT were sourced.  Type COLTAB without any parameters for help,
+		and/or read the header in COLTAB.CPP.  Console APP COLTAB.EXE will be
+		built into \EPOC32\Tools\.
+
+2)	Malcolm
+	1)	Added code to allow the kernel debug mask to be set via the ROM.OBY
+		file via the new KERNELTRACE keyword.
+
+3)	Morgan
+	1)	ROMBUILD internal directory structure is now sorted wrt a unique
+		identifier for each Dir.  This (hopefully) fixes the reproducability
+		problems ("drifting-directories") experienced when building identical
+		Roms in different NT environments.
+
+
+Version 1.00.125
+================
+(Made by Morgan, 26/8/99)
+
+1)	Dennis
+	1)	Added "defaultstackreserve" keyword. The argument to this keyword is
+		added to the combined size of .data and .bss to determine the address
+		space to reserve for the $DAT chunk of a 'fixed' process. The value
+		defaults to zero for compatibility with previous versions.
+		Added "stackreserve" keyword to override the default setting on a
+		per-file basis.
+
+
+Version 1.00.124
+================
+(Made by Alastair, 2nd August 1999)
+
+1)	Jonathan
+	1)	Removed MAKSYM - moved to e32toolp.
+
+
+Version 1.00.123
+================
+(Made by Kal Patel, 22 July 1999)
+
+1) Morgan
+	1)	New ROMMASK.  Added a -verbose flag for logging, and added a -no-header
+		for Roms with no Epoc header.
+
+2) Malcolm
+   
+    1) Added Area support to ROMBUILD for Roxette.  This allows the
+       code to be fixed up to execute outside the rom where it's stored.
+       Relocation info is written into the rom and the bootstrap uses
+       this to copy the info out to its final location.  Any file can 
+       be in any arbitrary area.  This is only enabled in
+       singleprocess mode, since the same effect can be achieved with
+       an MMU on a real system.
+
+	   This is enabled by placing a "areas=<num>" line in the first
+	   section of the .oby file.  Then, in the files= section, the
+	   next tranche of files can be sent to another area with a
+	   directive like "area 0x81000000 0x100000" where the first value 
+	   is the address and the next the length. Up to <num> area lines
+	   can be in the file section.
+
+	   A relocation table is placed in ROM for the bootstrap.  Its
+	   address is stored in the romheader info that rombuild uses.
+	   The table is a list of <length> <src> <dest> triples, ending
+	   with a <0,0,0> tuple.
+
+	   Note that any bootstrap that uses this should not process a
+	   relocation table address of 0, as this maintains backwards
+	   compatability with old rombuilds which will put zero in the
+	   address location.
+
+3)	Alastair
+	1)	Removed all .DSP and .MAK files, now that makefiles are generated.
+	2)	Fixed minor typo in W32Repro.
+
+
+Version 1.00.122
+================
+(Made by Alastair, 12.7.99)
+
+1) Alastair
+	1)	Added fetcher definition file, E32TOOLS.FTC, to the group directory.
+	2)	Added William's new version of E32UID.CPP which no longer requires
+		WINDOWS.H.
+	3)	Added William's new UIDCRC.EXE, which provides a simple way to calculate
+		the checksum:
+
+			uidcrc <uid1> <uid2> <uid3> [<outputfile>]
+
+		This reads the three uids (using strtoul, so decimal and 0x9999 hex are 
+		found), computes the checksum, and either prints the 4 hex values to standard
+		output or creates <outputfile> as the 32 byte sequence which is the specified
+		UIDs and checksum in little-endian byte order.
+
+
+Version 1.00.121
+================
+(Made by Alastair, 16.6.99)
+
+1)	Alastair
+	1)	Fixed EDN459831 "Wveconv help is out of date" .
+	2)	Removed MAKTRAN, DEFMAKE and DEFTOOL.
+	3)	Converted all projects to MAKMAKE building for the new TOOLS platform.
+	4)	Changed zip of releasables onto the network - this is now called
+		TOOLS.<ver> rather than E32TOOLS.<ver>.  It also contains full paths to
+		the releasables so make sure you're in the root of your EPOC drive
+		before calling, say, "getrel e32tools tools 121".
+	5)	Updated MNT.CMD in various ways, including adding an MNT CHECKREL.
+	6)	Added dopcvs.pl and lock.pl to GROUP directory for use with MNT.BAT.
+
+
+Version 1.00.120
+================
+(Made by Morgan, 30th March 1999)
+
+1)	Morgan
+	1)	Fixed EDNGBON-46BQK4, "ROMBUILD "patched" keyword is broken".
+		(merged in from ER5 release E32TOOLS 110)
+	2)	Left a gap in the build numbers for ER5 maintenance releases
+	3)	Introduced a new version of ROMMASK.EXE.  The syntax has changed
+		from previous versions.  Type "ROMMASK" to see the new syntax.
+		For example, to produce a 10Meg image split into 8 and 2,
+		type the following:     
+rommask -rom p2rom.img -output rom.img -log rom.log -size 10 -section 8 -section 2
+		(You can leave off the final -section 2, and ROMMASK will do the
+		calculations for you.)
+		The output of Rommask will be "rom.log", and the 2 mask files
+		"rom.img" and "rom.im2"
+		ROMMASK still expects the image to contain a Psion 256byte header.
+
+
+Version 1.00.100
+================
+(Made by Morgan, 16th February 1999
+
+1)	Morgan
+	1)	Added the keyword 'srecordbase' to change the base address of
+		the motorola srecord output file.  (Defaults to address 0x0000)
+	2)	Fixed srecord output for big and little endians.
+	3)	Removed unused dependencies from MNT GETCOMPS
+
+
+Version 1.00.099
+================
+(Made by Jonathan, 8th February 1999)
+
+1)	Alastair
+	1)	Edited PETRAN.MAK so that sources depend upon
+	  	\Epoc32\Include\E32uid.h rather than ..\E32uid\E32uid.h. This
+		change should complete the fixing of bug EDN057832 "E32Tools won't
+		rebuild on my PC".
+
+2)	Jonathan
+	1)	Fixed ROMBUILD defect EDN853437 "Dual Boot ROM does not function on
+	  	Series 5" by applying Dennis' fix to fix up data as well as
+	  	executables in dual-boot images.
+
+
+Version 1.00.098
+================
+(Made by Jonathan, 1st February 1999)
+
+1)	Petteri
+	1)	Applied boilerplate copyright to sources.
+
+2)	Jonathan
+	1)	Fixed copyright message in executables.
+	2)	Removed odbc32.lib and odbccp32.lib from all .DSP and .MAK files
+	  	since these libraries are neither required nor always installed.
+
+
+Version 1.00.97
+===============
+(Made by Alastair, 28th January 1999)
+
+1)	Alastair
+	GENERAL
+	1)	Created and added VC5 .DSP files for all projects for debugging.
+	2)	Removed hard-coded drive letters from .DSP files.
+	3)	Re-generated makefiles from .DSP files.
+	4)	Reinstated E32UID directory containing files E32UID.CPP and STDAFX.H
+		required for building ROMBUILD, PEDIFF and PETRAN.
+	5)	Replaced hard-coded instances of 'R:' in MNT.CMD with '%s%'.
+	MAKSYM
+	1)	Added proper handling of two functions appearing at the same address in
+		a ROM.
+	2)	Removed an unnecessary destructor to prevent allocated memory being
+		deleted twice.
+	TMAKTRAN
+	1)	Removed MAKTRAN tests.
+	PEIGER, PREPRO
+	1)	Removed these executables.  Previously MNT.CMD attempted to unzip these
+		from S:\ptool\ and then zip them up again in the e32tools release zip
+		file.  Plans are afoot to provide these tools elsewhere, since we no
+		longer have access to S:.
+
+
+Version 1.00.096
+================
+(Made by Morgan, 21st January 1999)
+
+1)	Morgan
+	GENERAL
+	1)	Removed E32UID
+	2)	Converted all makefiles to VC5
+	3)	Built with VC5
+	ROMBUILD
+	4)	Rectified the drifting directory problem.  ROM images can now
+		be reproduced and validated reliably.
+	READTYPE
+	5)	Removed definitions for "true" and "false" so readtype will
+		compile with VC5.
+
+
+Version 0.01.095
+================
+(Made by Alastair, 18th August 1998)
+
+Morgan
+ROMBUILD
+1) Big-endian bug fix
+
+Alastair
+DEFMAKE
+1) Fixed Epoc S/W Problem SW1-141 - 'DEFMAKE adds an "E" to the end of
+   the generated DEF file'
+ROMBUILD
+1) Fixed Bluebell defect SW1-734 - "What do the tools have against August?".
+   A rom time of 08/08/2008 08:08:08 is now acceptable.
+
+
+Version 0.01.094
+================
+(Made by Jonathan, 10th June 1998)
+
+1)	Morgan
+	ROMBUILD
+	1)	Added extra info to log output.
+
+2)	Graham Asher
+	READTYPE
+	1)	New uniflds.txt and unidata2.txt from release 2.1 of the charater
+		database from Unicode Inc. Many additions and corrections have been
+		made. One of them fixes defect SW1-42 (User::UpperCase is wrong for
+		Greek final sigma (03C2) in the Unicode build) in the EPOC32
+		Software Problems database.
+	2)	Changes to readtype.cpp to accommodate the new character categories
+		in unidata2.txt.
+
+Version 0.01.093
+================
+(Made by Morgan, 15th May 1998)
+
+1) Dennis
+    ROMBUILD
+1)	Added support to ROMBUILD for multiple-boot ROMs:
+ a)	Added keywords 'singlekernel' and 'multikernel' to declare whether a
+	single kernel ROM or multiple-kernel ROM is required (defaults to single).
+ b)	Added keyword 'variant' to declare which files define hardware variants;
+	this keyword should be applied to the variant DLL (ECUST.DLL) of each
+	hardware variant to be supported.
+ c)	Added keywords 'extension' and 'device'. These define kernel-mode DLLs
+	which may have global data, the address of which is generated by ROMBUILD.
+	'device' DLLs are simply LDDs or PDDs with global data.
+	'extension' DLLs are not yet supported by E32.
+ d)	Files declared with one of the keywords
+		{primary, file, data, dll, variant, extension, device}
+	may have an additional hardware variant discriminator specified by means
+	of the syntax
+		file[0x05040001]=filename
+	The hardware variant discriminator (HWVD) is an 8-digit hex number whose
+	purpose is to specify which hardware variants the file is relevant to.
+	The top 16 bits indicate which conceptual layer the file belongs to:
+		0100=independent - file is required by all hardware variants
+		xx03=CPU-specific - file is required by all variants with same CPU
+		yyxx=ASIC/variant specific - file is required by all variants with
+			 CPU xx and ASIC yy.
+
+	The bottom 16 bits are only relevant in the last of these three cases.
+	They form a bit mask indicating which specific variants the file is
+	required for. A file declared with the variant keyword must be totally
+	variant-specific, i.e. must have only one bit set in the bit mask.
+	If the HWVD is not specified, a value of 01000000 is assumed, which means
+	that the file appears in all hardware variants.
+
+	Examples (from forthcoming Bluebell/Protea upgrade ROM):
+
+	primary[0504ffff] - kernel for EIGER
+	primary[0706ffff] - kernel for WINDERMERE (different CPU core and ASIC)
+	variant[05040001] - variant DLL for PROTEA
+	variant[07060001] - variant DLL for BLUEBELL v.1
+	variant[07060002] - variant DLL for BLUEBELL v.2 (for illustration)
+
+	Static linkage between files is now restricted by the HWVDs of those
+	files. It is possible for file A to link statically to file B iff
+	{variants V | V requires A} is a subset of {variants V | V requires B}.
+	For the example above, variant[0x05040001] can link to primary[0x0504ffff]
+	but not the other way round.
+
+	It is possible to have two or more files of the same name in the same
+	directory provided that they have HWVDs which are mutually exclusive, so
+	that the two files can never appear on the same machine. The HWVD is used
+	to determine which of the files to use to resolve any static linkage.
+
+ e)	The ROM file system now has multiple root directories and directory trees,
+	one for each hardware variant supported by the ROM. This automatically
+	ensures that F32 only sees the files which are relevant to the hardware
+	on which it is running.
+
+ f) DLLs declared with one of the keywords {variant, device, extension} can
+	have global data (.data and .bss) which will be allocated in the kernel
+	static data chunk after the kernel data itself.
+
+2)	The 'fixed' flag is now propagated through from PETRAN.
+
+3)	The 'kernstackaddress' keyword is now optional - if it is not present in
+	the obey file, ROMBUILD uses a default value of 
+	kerneldataaddress + Round(kernel-mode dataBss size) +
+		Sum over all fixed .EXEs(Round(DataBss size of .EXE file))
+	where Round(x) rounds up to the PDE size (1Mb on ARM).
+
+
+Version 0.01.092
+================
+(Made by Morgan, 25th February 1998)
+
+ROMBUILD
+1) Fixed the 'code-align' file attribute
+2) Forced the image file size to a multiple of 4k for the good of Rome.
+
+
+Version 0.01.091
+================
+(Made by Alastair, 18th February 1998)
+
+Removed MAKMAKE and BLDMAKE - these tools are now part of
+new project E32TOOLP.
+
+
+Version 0.01.090
+================
+(Made by Morgan, 13th February 1998)
+
+ROMBUILD
+1)	Added support for 'fix'ing LDDs with global static data in Rom.
+2)	The 'file=' specifier now honours the KNoCallEntryPoints flag in
+	the image header (as set by PETRAN).  This means all 'dll='
+	specifiers should be changed to 'file=' and MAKMAKE used to
+	control the entrypoint behaviour with the CALLDLLENTRYPOINTS
+	keyword.
+3)	Added a '-no-header' switch to suppress the Rom loader header.
+
+
+Version 0.01.089
+================
+(Made by Alastair, 9th February 1998)
+
+DEFMAKE
+1)  Changed defmake.exe so that it processes freeze files without
+    carraige returns at the end of the last line correctly. 
+    Fixes SW1-803.
+2)  Put in warning for unfrozen exports.
+
+MAKMAKE
+1)  Changed the warning generated if parameters appear with the
+    NOSTRICTDEF keyword so that it doesn't just appear when MAKMAKE
+    is invoked with the -V flag.  The NOSTRICTDEF keyword,
+    if required, should be used in addition to the DEFFILE keyword,
+    not instead of it.
+2)  Intermediate deffiles created by command-line makefiles no
+    longer have the basename extensions, eg D for narrow debug,
+	if the NOSTRICTDEF keyword is specified.	
+2)  Added warning for any SUBPROJECT keyword appearing before a
+    project has been specified with the PROJECT keyword.  This
+    is now necessary because MAKMAKE now stores SUBPROJECT directories
+    as absolute paths rather than paths relative to the PROJECT directory.
+    If a SUBPROJECT statement specifies a directory beginning with a
+    backslash, it will be treated as an absolute directory; otherwise
+    it will be treated as a directory relative to the PROJECT directory,
+    as before.
+3)  Added warnings for the non-existence of SYSTEMINCLUDE, USERINCLUDE,
+    \PROJECT, SUBPROJECT and \PROJECT\SUBPROJECT directories.
+4)  Put in START WINS .. END block option, NOBROWSEINFO, which can
+    be used to stop generation of .SBR and .BSC files for command-line
+    WINS and WINC builds.
+5)  Changed MAKMAKE.BAT so that the help for the batch command "CALL"
+    is no longer produced if MAKMAKE /? is typed.
+6)  Moved all makmake releasables out of \epoc32\tools\makmake into
+    \epoc32\tools.
+7)  Changed MAKMAKE.BAT over to using the -S PERL switch so that the
+    system path is searched for MAKMAKE.PL, then MAKMAKE.PL searches
+    for the modules it depends upon in whichever \epoc32\tools is
+    specified in the system path.  This means that makmake can be
+    installed on one drive and called to operate on .MMP files from
+    another.
+8)  The second UID for targettypes APP, LDD and PDD will now be added
+    if not present.
+9)  Restructured MAKMAKE and moved some functionality into new modules
+    to facilitate code reuse.  MAKMAKE and BLDMAKE now depend upon the
+    following shared modules
+    PARSECOM.PM, E32ENV.PM, E32TVER.PM, MODLOAD.PM, PATHUTL.PM, PREPFILE.PM.
+    MMP.PM and GENUTL.PM are currently only used by MAKMAKE but may be
+    useful for other purposes in the future.
+10)  Renamed MAKPREP.PM MAKDEPS.PM.
+
+
+BLDMAKE
+1)  Added warning that BLDMAKE ALL won't create batchfiles for preparing
+    IDE makefiles.
+  
+
+Version 0.01.088
+================
+(Made by Morgan, 29th January 1998)
+
+MAKMAKE
+1)	Inserted '-bigendian' on the PETRAN command line for BE builds
+
+PETRAN and ROMBUILD
+1)	Added -bigendian switches to both tools
+
+From Simon Lewis
+1)	Added a new file attribute 'code-align' to ROMBUILD
+2)	Added the switches '-align-const-section' and
+	'const-section-address-mask' to PETRAN
+
+
+Version 0.01.087
+================
+(Made by Alastair, 23th January 1998)
+
+MAKMAKE
+1)  Changed paths within created makefiles so that they are relative
+    to the directory where MAKMAKE was invoked rather than relative
+    to the makefile.  If you are using the /D makmake command-line
+    flag and invoking makmake from directory \[project]\group there
+    is therefore no longer a need to change directory to
+    \Epoc32\Make\[platform] before calling NMAKE.
+
+2)  Deffiles created by the build process in the build directories
+    now have the build-variant dependent U, D, and UD suffixes, and
+    are removed by a makmake -clean.
+
+3)  Changed handling of EXEDLL targettypes so that they can export
+    functions under MARM.  MAKMAKE will expect EXEDLL targettypes to
+    be function exporters for MARM if a deffile is specified in the
+    MMP file, otherwise it will make no use of the intermediate deffile
+    created during the build process.  This means that, until a fix for
+    dlltool becomes available from Cygnus, the first time functions are
+    frozen for EXEDLL targettypes for MARM it is necessary to build once,
+    put a deffile statement for MARM in the MMP file, put the intermediate
+    deffile where the MMP deffile statement expects the freeze file to be,
+    and build once again so that the target is frozen by ordinal.
+
+4)  Changed MAKMAKE warnings so they go to STDERR rather than STDOUT.
+
+5)  Added LONGBLDPATH keyword to MAKMAKE which inserts an extra directory
+    into the build path for a project.  The extra directory may be
+    specified as a parameter to the new keyword but will default
+    to the basename of the MMP file if the keyword is specified
+    without a parameter.
+
+6)  Added new TARGETTYPE, LIB, for creating static libraries.  This
+    is not yet implemented for MSVC5.0.  The object file compiled
+    from the first source file specified in the mmpfile is copied
+    into the target directory and given the same basename as the
+    target.  The behaviour for this keyword is not yet finalised.
+
+7)  Added new TARGETTYPE, IMPLIB, for creating import libraries
+    for DLLs with mutual imports.  Specify a new MMP file for
+    one of the DLLs, give the name of the DLL as the argument
+    for the TARGET keyword (so that the .LIB produced contains
+    the right DLL name) and set the TARGETTYPE as IMPLIB.
+    This is not yet implemented for IDE makefiles and the behaviour
+    for this keyword is not yet finalised.
+
+8)  Added handling of Win32 Resource files to command-line WINS
+    and VC4 and VC5 makefiles because the kernel uses one.
+
+9)  Added new MARM MMP file keywords to cater for unusual scenarios
+    START MARM
+    ALLOWDLLDATA // for dlls requiring static data
+	DATALINKADDRESS [address] // for relocation address for dll data
+    DLLNAME [dll basename for linking] // for dlls which are built
+    // as one thing but linked in the ROM as another
+	STACKSIZE // for stack size other than the default
+    END
+
+10) Added new module SARMBE.PM for creating big-endian single-process
+    arm makefiles
+
+11) Implemented more stringent checking of the format of UIDs in mmp files
+    and made sure dlls with null uids link as mydll.dll rather than
+    mydll[00000000].dll for consistency with rombuild.
+
+12) Made all relative paths in VC4 and VC5 makefiles absolute.
+
+BLDMAKE
+1)  Added new perl tool, bldmake, which creates batch files to
+    control the building of E32 and F32.  Type bldmake without
+    any parameters for options.
+
+
+Version 0.01.086
+================
+(Made by Alastair, 5th January 1998)
+
+DEFMAKE
+1)  Added .E32_UID and .rsrc to the list of recognised sections so that,
+    eg, "WARNING: Section '.E32_UID' removed" no longer appears during
+    WINS builds.
+
+MAKMAKE
+1)  Changed cl_arm.pm and cl_win.pm so that makmake -clean will remove
+    resource headers from \Epoc32\Include if a resource file is specified.
+
+Version 0.01.085
+================
+(Made by Alastair, 9th December 1997)
+
+MAKMAKE
+1)  Removed automatic addition of kernel32.lib and libc.lib to list
+    of Win32 libraries for WINC EXE targettypes as this addition is
+    apparently unnecessary.
+
+
+Version 0.01.084
+================
+(Made by Alastair, 9th December 1997)
+
+MAKMAKE
+1)  Changed handling of targettype EXE for WINC, VC4WINC and VC5WINC
+    platforms so that the LINK.EXE flag /subsystem:console is used
+    rather that /subsystem:windows, and kernel32.lib and libc.lib
+    are automatically added to the list of Win32 libraries to be linked
+    to.
+
+2)  Targettypes LDD and PDD makefiles for MSVC IDEs now require the
+    presence of \epoc32\include\lddwins.def and \epoc32\include\pddwins.def
+    respectively.
+
+
+Version 0.01.083
+================
+(Made by Alastair, 20th November 1997)
+
+Some Makmake Bug Fixes
+1)  Makmake invoked with the /CLEAN flag will now erase the autouid
+    object file if the Win32 autouid keyword is used.
+
+2)  Makmake now uses the environmental variable "INCLUDE" rather
+    than "MsDevDir" to decide which standard include directories
+    should be searched for Win32 header files if a project is
+    linking to Win32 libraries, so that the wrong standard
+    include directories aren't searched when creating MSVC5
+    project files.
+    Fixes SW1-698.
+
+3)  Fixed bug caused by CPP inserting a space after expanding
+    macros in .mmp files by taking the space out again.  This was
+    causing problems where, for example, a path specified as
+    "\EPOC32\RELEASE\WINS\APP.DEF" in the .mmp file would become
+    "\EPOC32\RELEASE\WINS \APP.DEF" after preprocessing prior
+    to creating a WINS makefile.  Lower case paths were not
+    affected.
+
+4)  Replaced link.exe flag
+    /EXPORT:?NewApplication@@YAPAVCApaApplication@@XZ,@1,NONAME
+    in VC4 and VC5 makefiles where the targettype is APP with the
+    flag /def:\EPOC32\RELEASE\WINS\APP.DEF, because the former flag
+    failed to ensure that the function in question was exported
+    at ordinal one.  This solution means that if no deffile is
+    specified in the .mmp file for an APP, \EPOC32\RELEASE\WINS\APP.DEF
+    must be present for the project to link.  Command-line Win32
+    makefiles will link properly without the presence of APP.DEF
+    because they use a defmake flag to ensure the function is
+    exported at the right ordinal.
+    Targettypes LDD and PDD will link by name in MSVC until
+    their deffiles are released to
+    \epoc32\release\wins or somewhere else suitable. 
+
+Version 0.01.082
+================
+(Made by Alastair, 12th November 1997)
+
+MAKMAKE
+1)  Added link-libraries and e(dll|exe) object as dependencies of
+    main target.  This cannot be done for MSVC IDE makefiles.
+    Fixes SW1-565.
+
+2)  Added new targettypes LDD and PDD.  A frozen first ordinal export,
+    the respective gate funtion for the targettype, is specified for
+    these targettypes and for targettype APP if no deffile is specified
+    for the project, otherwise the deffile controls the order of
+    exported functions.  This applies for all supported platforms.  Apart
+    from this feature, projects specifying one of these targettypes build
+    in the same way as projects with targettype DLL.
+    Fixes SW1-666.
+
+3)  Changed MAKMAKE help information so that the build version appears and
+    a list of platform choices appears.  This list of platforms is produced
+    by a search of .PM modules in \EPOC32\TOOLS\MAKMAKE for the comment line
+    "# Can call in makmake command line".  If the line is present in the module
+    then the basename of the module is added to the list.  This is a cheap way
+    of producing a list of available platforms while preserving MAKMAKE's
+    extensibility, and doesn't involve the loading of every .PM module and all
+    the modules that each one of those depends on.
+        The module controlling MAKMAKE help is loaded only when required and
+    provides a brief guide to MMP file syntax if makmake is invoked
+	    MAKMAKE /MMP {PLATFORM}
+    If PLATFORM is specified, syntax for the START .. END block relating to
+    the platform is displayed as well as platform-independent MMP syntax.
+    Fixes SW1-653.
+
+4)  The macros "WIN32" and "_WINDOWS" are now only used in compilation by MAKMAKE-
+    generated Win32 makefiles if the project's MMP file states that the project
+    needs to link to Win32 libraries by listing the libraries it needs with the
+    WIN32_LIBRARY keyword in a Win32 START .. END block. 
+    Fixes SW1-652.
+
+5)  New MMP file keyword - OBJECT - is available.  This keyword is intended to
+    be used by projects having access not to the source files but only the compiled
+    code for certain objects.  Specify the basename of the object only.  Created Win32
+    makefiles will expect object <basename>.OBJ to exist in the build directories
+    for a project, while MARM makefiles will look for <basename>.o.  These object
+    files will appear in the dependency list for the main target in command-line
+    makefiles - this is not possible in MSVC IDE makefiles.
+
+6)  Command-line makefiles now contain extra targets MAKEWORK, MAKEWORKDEB,
+    MAKEWORKREL, etc.  The build-specific targets are included in the list of
+    dependencies for the main makefile build-specific target, so that work
+    directories will be automatically created when building with command-line
+    makefiles if these directories do not already exist.  The new targets could
+    also be used to make the work directories for a project with NMAKE
+        e.g.  NMAKE /f <command line makefile> MAKEWORK
+    would create all the makefiles for a project for all builds.
+
+7)  Win32 command line makefiles now generate SBR and BSC browse files for DEBUG
+    builds so that if a DEBUG build of a project has already been done with a Win32
+    command line makefile, subsequent building of the DEBUG build of the project
+    within the MSVC IDE will not recompile everything to generate the browse files.
+
+8)  Added new module MAKPREP.PM to handle everything relating to MAKMAKE's use of
+    \EPOC32\GCC\BIN\CPP.EXE to generate lists of dependencies for source files.
+    This module now identifies missing system and user headers -
+          - if missing system headers have the extension .RSG or .MBG, the header is
+        listed as existing in \EPOC32\INCLUDE, so there is no longer a need for
+        MAKMAKE to generate a dummy resource header in \EPOC32\INCLUDE to fool CPP.
+          - platform modules can specify standard directories to search for missing
+       system headers.  This means, e.g., Win32 makefiles can specify the MSDEV include
+       directory for those projects linking to Win32 libraries.  If the missing system
+       header is found by the module in the standard directory, it will be left out
+       of the dependency list since the MSVC tools will know where to find it and it
+       can be trusted to be there and unchanged.
+          - if a missing system header fails to satisfy both the above tests then
+       makmake will issue a warning since the generated makefile will probably fail to
+       build.
+ 	      - a warning is issued for any user headers not found in the user include or
+       system include paths, where the user include path is the source directory if no
+       user include paths are specified explicitly.
+
+9)  Processing of MMP files now involves a lot more syntax checking and produces
+    corresponding warnings, especially if MAKMAKE is invoked with the -V switch.
+
+10) MAKMAKE will now automatically generate WINS uid source files when creating Win32
+    makefiles, but only if the new keyword - AUTOUID - is specified in a Win32 START ..
+    END MMP file block.  The keyword is necessary since LINK.EXE would fail for projects
+    which already specified UIDS in the source code, so remove WINS UID specification in
+    the project's source code before using AUTOUID.  MAKMAKE works out UID 1 from a
+    project's targettype and takes UIDs 2 and 3, if specified, from the MMP file.  It
+    then creates the UID source file in the same directory as the MAKEFILE it is to create
+    with the name "<target basename>.UID.cpp".  The source file will look something like this
+
+        // Makmake-generated uid source file
+        #include <E32STD.H>
+        #pragma data_seg("E32_UID")
+        __WINS_UID(0x10000079,0x1000008D,0x100002C3)
+        #pragma data_seg()
+
+	The file will be created only if it doesn't already exist or if it is older than the
+    project's MMP file.
+
+11) In MARM makefiles, multiple calls to GNU tool "ar" to archive the object files for
+    a project prior to linking have been replaced by a single call to ar.  The single
+    call passes a script listing the object files to ar.  This changes speeds up the
+    archiving stage of MARM building considerably.
+
+12) Renamed MAKMAKE.CMD MAKMAKE.BAT for Windows 95 compatibility.
+
+13) Changed MSVC5 dependency generation to be the same as for other platforms,
+    but with system headers stripped out of the list later.  Before, vc5 dependencies
+    called CPP such that only user headers were generated.  This change means that
+    CPP will no longer fail if one of the user headers is expecting a macro definition
+    from a system header and forcing CPP to fail if it doesn't get it.
+
+14) Replaced relative with absolute filepaths where possible in CL_WIN.PM.
+
+15) Changed \e32tools\makmake\makmake.mak so that debug utilities like
+	the perl -w switch and use of module strict.pm apply for "DEB" builds.
+    of MAKMAKE only.
+
+16) Added SARM.PM module to be used by the base for building SARM makefiles.
+
+17) Improved path utilities module MAKPATH.PM to do more error checking
+    and handle extra functions.
+
+GROUP
+1)  Changed e32tools\group\mnt.cmd so that makmake is released in a way more similar
+    to other e32tools project - from \epoc32\build\e32tools\makmake\rel.
+
+
+Version 0.01.081
+================
+(Made by Morgan, 4th November 1997)
+
+ROMBUILD
+1)	Added fixed keyword for use with EXE files. This keyword results in the
+	file being loaded as a fixed address process. The data section base address
+	is allocated in the region between the kernel data address and the kernel
+	stack address. The multiprocess keyword can be used to specify the chunk
+	size; it defaults to 1Mb.
+
+PETRAN
+1)	Added -fixed and -moving options which set and clear KImageFixedAddressExe
+	flag respectively.
+
+2)	Added the following switches
+		-heap <min> <max>
+		-allowdlldata
+		-datalinkaddress <base>
+
+MAKSYM
+1)	Removed duplicate function address error message.
+
+
+Version 0.01.080
+================
+(Made by Alastair, 30th September 1997)
+
+MAKMAKE
+1)	Changed Makmake.pl so that if a project uses a resource file
+	and the resource header file is not yet present in \epoc32\include
+	a dummy header file will be created there so that MAKMAKE's generation
+	of dependencies does not assume that the missing header file is
+	in some other location.
+
+2)	Changed /Fd compiler flag in Ide_vc4.pm so that pdb files have the right
+	name rather than vc40.pdb. 
+
+
+Version 0.01.079
+================
+(Made by Morgan, 22nd September 1997)
+
+ROMBUILD
+1)	Integrated the code for building ROMs for the single process
+	version of E32.  Currently this code is protected with a
+	__SINGLE__ macro.
+	Use the keyword 'singleprocess <ChunkSize>' to generate a
+	single process ROM.  Default is 'multiprocess'.
+
+
+Version 0.01.078
+================
+(Made by Alastair, 15th September 1997)
+
+MAKMAKE
+
+0)	Forget to say about release 077 that \[project]\bwinc is the default
+	directory for which WINC def files are searched if the file specified
+	with the DEFFILE keyword has no path.
+
+1)	Improved MMP file reading so that a warning is generated if MAKMAKE
+	ignores a line because it doesn't recognise the syntax.
+
+2)	Makmake.pl - added new code to trap dependency generation errors.
+
+3)	Makmake.pl - minor changes required to support creation of MSVC5 project
+	files.
+
+4)	Added new modules VC5.PM and VC5WINC.PM to support MSVC5.  These modules
+	will create .DSP MSVC5 project control files.  When an MSVC5 .DSP file is
+	created with makmake project files with the following extensions will be
+	deleted - .dsw,.mak,.mdb,.ncb,.opt,.plg.  The new features of MSVC5 which
+	distinguish between header files belonging to the project and system header
+	files are supported.
+
+5)	Added new module MISA.PM to support MISA command-line makefiles.
+
+6)	Tidied up VC4.PM.
+
+7)	Changed MAKMAKE internal structure so that implementaion modules can
+	share modules controlling the layout of the makefile and other common
+	features.  This change does not affect the way that MAKMAKE is invoked.
+
+		VC5.PM and VC5WINC.PM share IDE_VC5.PM
+		VC4.PM and VC4WINC.PM share IDE_VC4.PM
+		WINS.PM and WINC.PM share CL_WIN.PM
+		MARM.PM and MISA.PM share CL_ARM.PM
+
+8)	Changed CL_WIN.PM and CL_MARM.PM to use an inline batch file in the
+	makefile for calling fc4bat to decide whether a resource header file
+	needs rewriting or not.  Previously, if fc4bat returned an error to
+	indicate that the header file should be rewritten, nmake would die.
+
+9)	Added Makmake.mak to \e32tools\makmake\ for building makmake source to
+	\epoc32\tools and \epoc32\tools\makmake in a way similar to C++ projects.
+
+10)	Changed all .PM modules to ensure that they return a true value
+	when loaded successfully.
+
+E32TOOLS MNT
+
+1)	Changed e32tools.rel file so that readtype.exe is released.
+
+2)	Updated MNT MAKEWORK and MNT GETBLD so that PGETBLD and MNT BLDALL will
+	now work on a clean drive.  Changed readtype.mak so that it searches
+	\epoc32\include rather than \e32\inc for system header files.
+	File \e32\inc\unicode.h needs to be listed in e32\inc\incc.prj 
+	at some point.
+
+3)  Modernised MNT BLDALL so that NMAKE is invoked with the /nologo flag.
+
+4)	Modernised MNT VALID so that pediff is used instead of fc /b for binary
+	file comparison.  Makmake is now included and e32uid.exe removed since it's
+	not used or released.
+
+
+Version 0.01.077
+================
+(Made by Alastair, 8th September 1997)
+
+MAKMAKE
+
+1)	Changed 1st stage of linking (by name) for WINS command-line builds so that
+	linking is not attemped incrementally to stop unnecessary warning appearing.
+
+2)	Added two new modules, WINC.PM and VC4WINC.PM, for use in creating WINC
+	command-line and IDE makefiles respectively.  For command-line makefiles,
+	type "makmake {options} [project] WINC;  for IDE makefiles, type
+	"makmake {options} [project] VC4WINC.  DIfferences between WINC and WINS
+	makefiles are slight - WINC appears where WINS would otherwise appear, and
+	WINC source files are preprocessed with the macros "__WINC__" and "__XCON__"
+	defined as well as all the usual WINS macros including "__WINS__".  Note that,
+	in line with the macro scheme applied to source files, MAKMAKE will preprocess
+	XXX.MMP files with macros "WINS" AND "WINC" defined when creating WINC makefiles,
+	so keywords within "#if defined(WINS) ... #endif" and "START WINS ... END" blocks
+	will apply for WINC builds too.  This scheme required changes to the way
+	MAKMAKE.PL processes START ... END blocks.
+
+3)	Removed possibility of passing extra macros to makmake for preprocessing XXX.MMP
+	files - this possibility was never documented and has never been requested so
+	is now presumed unnecessary.
+
+4)	Introduced keyword option which, if specified in XXX.MMP files, will cause
+	MAKMAKE to search for the same deffile for all build variants rather than
+	several files differentiated by suffixes "U","D" and "UD".	The new keyword
+	is "NOSTRICTDEF", originally enough.  Hopefully deffiles for LDDs and PDDs
+	can soon be done away with by having targettypes for LDDs and PDDs and having
+	MAKMAKE implementation modules pass the correct mangled names as 1st ordinal
+	command-line option arguments to DEFTOOL and DEFMAKE instead.
+
+5)	Changed resource handling to be entirely compatible with eikrs.bat - the basename
+	of XXX.RSS is used for XXX.R$(EPOCLANG) and all intermediate resource files.  This
+	change still does not fix SW1-204, for which a spec decision regarding the handling
+	of differing licensee resource file requirements is required.
+	
+
+Version 0.01.076
+================
+(Made by Alastair, 15th August 1997)
+
+MAKMAKE
+
+1)  Changed MARM and WINS modules so that rcomp is called to compile resources
+    directly rather than via eikrs.bat.  This change will mean that resources will
+    be compiled into the correct directory for MARM builds, and that the *.rss file
+	need no longer be in the same directory as the makefile.  This change addresses
+	SW1-204 and SW1-212.
+2)  The STRICTDEF keyword is no longer recognised by makmake.  Its function in
+	appending "D", "U", and "UD" to the base name of *.DEF files for DEB, UREL and
+	UDEB builds is now carried out by default.  There should now be a *.def file for
+	each of these build variants in use if any definition files are used at all.
+	This change addresses SW1-196.
+3)  Makmake.cmd has been improved.  If makmake fails, a basic perl operation will be
+	attempted.  If this fails, the user will be asked if the correct version of perl
+	is installed.  This change addresses SW1-345.
+
+Version 0.01.075
+================
+(Made by Alastair, 24th July 1997)
+
+DEFTOOL (from William Roberts)
+
+1)	Modified DEFTOOL.CPP and DEFTOOL.H
+	Basically just improved error reporting so that
+	a)	When it tells you that there are "frozen ordinals missing from supplied
+		def file" it also tells you which ordinal numbers have been lost.
+	b)	If your DLL exports functions that weren't in the freeze file then it
+		gives you a gentle warning, because that's not something which we'd 
+		want to allow in a release.
+
+MAKMAKE
+
+1)	Changed makmake so that target makefile is created in the current
+	working directory rather than the directory containing the *.mmp
+	file.
+2)  Added line of code to makpath.pm so that single dot directories
+	are stripped from paths.
+3)	Removed repeat occurrence of deffile flag in the link command for 
+	*.wins makefiles.
+4)	Changed RELGDB path macros for MARM makefiles so that they are prefixed
+	with ".\" rather than "..\\..<absolute path to makefile directory>".
+	This is a neater way to get them to expand to something textually different
+	from REL path macros while still specifying the same path.
+5)	Changed "ar q" lines within MARM makefiles to include 8 object files maximum
+	rather than 4 - this should improve efficiency without breaking limits on
+	command-line lengths.
+6)	Changed WINS.PM so that the $(LINK_OBJS) macro is used in the link command line
+	in *.wins makefiles rather than a list of all the objects concerned.
+7)	Changed MARM.PM so that the first stage of linking (by name) for a dll target
+	creates the dll in the build directory rather than the release directory.
+	The	second stage of linking (by number) creates a dll in the build directory
+	rather than the release directory too, overwriting the first dll.  Finally,
+	this target is petranned to the release directory and the dll left in the
+	build directory is deleted. This change solves the problem of nmake thinking
+	that the target has been successfully created when the build has failed
+	anywhere between the first link stage and the petranning stage, because of
+	the presence of an apparently up-to-date dll in the release directory.
+8)	Changed WINS.PM similarly so that *.wins makefiles do a two-stage link.  Defmake
+	is called between the two link stages with a "freeze" file if one is specified
+	with the DEFFILE statement (see below).  The defmake-created def file is then
+	used for the second-stage link (by number).  The first stage of linking creates
+	the target dll in the intermediate directory while the second stage creates the
+	final target dll in the target directory and the first dll is deleted.
+9)	Removed /NAME flag from MAKMAKE - no longer necessary due to (8).
+10)	Radically changed behaviour of MAKMAKE towards DEFFILE and FRZFILE statements
+	within *.mmp files.  There is no longer handling of FRZFILE statements.  As
+	before, if a DEFFILE statement is placed within an #if defined(WINS) ... #endif
+	block, the statement will be used by both WINS and VC4 makefiles but not MARM
+	makefiles, and vice versa if a #if defined(MARM) ... #endif block is used.  If
+	the file specified has no path, the file is assumed to be in directory 
+	\<project>\bwins\ for WINS and VC4 makefiles and \<project>\bmarm\ for MARM
+	makefiles.  For VC4 makefiles, the specified file is passed to LINK.EXE as 
+	before.  For WINS makefiles, the file is not used in the first stage of linking.
+	Defmake is called and uses the file as a freeze file in the creation of a new
+	deffile which will include any new exports produced by changes to the source code
+	for the project.  The new deffile created is used in the second stage of linking.
+	For MARM makefiles, the specified file works in much the same way as for WINS
+	makefiles.
+		In other words, the DEFFILE statement should now be used to specify "freeze"
+	files.  WINS *.def files were in effect "freeze" files anyway.  The choice of
+	"DEFFILE" rather than "FRZFILE" for the new statement within *.mmp file reflects
+	the widespread understanding of "def" vocabulary outside Psion.  For more
+	information, see the discussion on e32proposals - tools - makmake and frz files.
+		The STRICTDEF keyword is still required if differently-named "freeze" files
+	are required for different builds, but this requirement is under review together
+	with potential default directories for components not using directories
+	\<project>\bwins and \<project>\bmarm.  Note that if these directories are not
+	being used and files specified with the DEFFILE statement include a path then is
+	is essential to place DEFFILE statements with #if defines because WINS and VC4
+	builds should never use the same "freeze" file as MARM builds due to the compilers
+	mangling function names in different ways.
+11)	A file specified with the DEFFILE statement is now put in the list of 
+	dependencies for a target in WINS and MARM makefiles, but not yet VC4.
+12)	Changed MAKMAKE to allow for use of the WINDOWS API.  If you are using this API,
+	specify the windows libraries you wish to link to in *.mmp as follows
+
+	START WINS
+	BASEADDRESS		0x43500000
+	WIN32_LIBRARY	kernel32.lib gdi32.lib user32.lib
+	END
+
+		ie, put the WIN32_LIBRARY statement somewhere in a START WINS ... END block
+	and	list the libraries after it.  Please note that these START WINS ... END
+	blocks are very different from #if defined(WINS) ... #endif blocks.  Makmake
+	always preprocesses the *.mmp file when invoked, and later passes any text within
+	START ... END blocks onto the perl module specific to the platform in question.
+	When makmake is invoked with the VC4 argument, the *.mmp file is preprocessed
+	the WINS macro defined.
+13) Fixed bug causing AIF file subroutine to be ignored
+14)	Fixed bug causing path specified with TARGETPATH statement to be left out of
+	path to resource target for WINS makefiles.
+15) Changed resource file building command so that the base name of the target
+	resource file is the same as the base name of the releasable rather than
+	the base name of the file specified with the RESOURCE or SYSTEMRESOURCE
+	statement.
+16) Changed name for target AIF from the base name of the releasable + ".aif" to
+	the name specified by the AIF statement.
+18)	Changed code designed to warn the user if the version of perl they are using
+	is not supported by MAKMAKE so that it is activated before rather than after
+	compilation - untested.
+
+
+Version 0.01.074
+================
+(Made by Alastair, 1st July 1997)
+
+MAKMAKE
+1)  Fixed egregious error causing the content of LIBRARY
+    statements in *.MMP files to be ignored.  This error
+    is present in e32tools releases 071, 072 and 073.
+
+
+Version 0.01.073
+================
+(Made by Morgan, 18th June 1997)
+
+1) ROMBUILD
+   Added 'time' keyword for specifying the date/time stamp
+   in the rom header.
+   Syntax:
+      time=dd/mm/yyyy hh:mm:ss
+
+   Added 'reloc' file attribute to specify user process
+   data run address for Exes.
+
+   Added 'align' keyword to align files on particular
+   alignment boundries.
+
+
+Version 0.01.072
+================
+(Made by Alastair, 16th June 1997)
+
+MAKMAKE
+1)  Added line of code to makmake.pl so that makmake will refuse
+	to work with versions of PERL released prior to version 
+	5.003_07   .  To find out what version of PERL you are using,
+	type  perl -v<return>  in a DOS box.
+
+
+Version 0.01.071
+================
+(Made by Alastair, 9th June 1997)
+
+MAKMAKE
+1)  Added new preprocessor macro, __PSISOFT32__, defined for all
+	projects using MAKMAKE regardless of platform or build variant.
+
+
+Version 0.01.070
+================
+(Made by Matthew, 4th June 1997)
+
+Added new tool ROMMASK, for generating rom images suitable for masking.
+
+
+Version 0.01.069
+================
+(Made by Alastair, 4th June 1997)
+
+MAKMAKE
+
+1)      Fixed bugs causing _UNICODE macro to be output
+	without the initial underscore by marm.pm and
+	wins.pm.
+
+2)      Single call to gcc archiving tool "ar" replaced
+	by multiple call to avoid overriding of command-line
+	length limits for projects comprising many source
+	files.
+
+3)      Fixed bug in \e32tools\makmake\mnt.cmd so that
+	makpath.pm is copied to directory
+	\epoc32\tools\makmake.
+
+
+Version 0.01.068
+================
+(Made by Alastair, 2nd June 1997)
+
+MAKMAKE
+
+1)      Removals
+	makmake.txt - SDK documentation now available
+	revmak.pl - redundant
+	winsname.pm - redundant
+
+2)      Fixes
+
+a)      fixed dependency macro bug for VC4 platform
+b)      fixed problem with mmp file specification of
+	multiple subprojects
+c)      Other minor bug fixes
+
+3)      Internal Changes
+
+a)      Improved generation of dependencies
+b)      Improved path utility functions
+c)      Moved path utility functions out of makmake.pl to
+	new module "MAKPATH.PM"
+d)      Other structural changes
+
+4)      Command-Line invocation
+
+a)      Platform VC4 can now be specified to produce MSVC4.0
+	compatible makefiles - WINS platform now produces
+	makefiles incompatible with MSVC4.0 allowing greater
+	freedom for using nmake to build resource files, etc.
+	*.MMP files will still be preprocessed with the "WINS"
+	macro whether the platform is specified as WINS or VC4
+b)      New flag "/clean" - deletes all non-source files for the
+	project and platform specified.
+c)      New flag "/lang [language]" - sets a language for the
+	project and platform specified except for VC4.
+d)      New flag "/name" - doesn't add any /def:[deffile]
+	linker flags to WINS or VC4 makefiles.  No effect
+	on MARM makefiles.  This flag makes linking-by-name
+	builds possible for WINS.
+e)      Flags can now be specified anywhere on the command-line
+
+5)      *.MMP Files
+
+a)      New keyword "LANG [language]" - sets a language for
+	the project and platform specified except VC4.
+	This setting is overridden if the command-line language
+	flag is used.
+b)      New keyword "AIF [*.aif file]" - specifies an application
+	information file.  This keyword is subproject relative,
+	and merely copies the *.aif file to the target directory
+	at the moment (except for VC4).
+c)      New keyword "BITMAP [*.mbm file] [*.bmp files]" - specifies
+	a protea multi-bitmap target and compiles it to the target
+	directory using bmconv on the windows bitmap files (except
+	for VC4).  The keyword is subproject relative, so all
+	windows bitmaps files specified are expected to reside in
+	the current \PROJECT\SUBPROJECT directory.  This may not be
+	the required behaviour.
+d)      New "RESOURCE" keyword behaviour - eikrs.bat is invoked
+	for MARM and WINS platforms to compile the resource specified
+	to the target directory.  VC4 platform uses the keyword
+	parameter for information only.  If a language is specified
+	it is passed to eikrs.bat, defaults to "SC".
+e)      New keyword "SYSTEMRESOURCE [*.rss file]" - subproject
+	relative, behaves exactly as the RESOURCE keyword except
+	that for WINS the target resource is compiled to directory
+	\epoc32\release\wins\[build]\Z\system\data.  Ignored by
+	VC4.
+f)      New "TARGETTYPE" keyword option - "exedll".  This option
+	can be used to specify a target which will be built as
+	a dll under single-process platform WINS (or VC4), but as
+	an exe for multi-process platform MARM.
+g)      New keyword "STRICTDEPEND" - if specified, makmake will
+	generate dependencies for each source or resource specified
+	for all builds - DEB,UREL,RELGDB etc.  If sources are unlikely
+	to specify different include header files for different
+	builds then there is no need to specify this keyword and
+	dependencies will be generated once only for each source
+	file.
+h)      New "DEFFILE" keyword behaviour.  This keyword is no longer
+	platform-specific (within a "START [platform] ... END" block).
+	If the deffile is specified without a path, then makmake
+	will expect the deffile to live in directory "\PROJECT\BMARM"
+	for the MARM platform, and in "\PROJECT\BWINS" for WINS or VC4.
+	Note that currently the *.def file will be used in a call
+	to dlltool in MARM makefiles as follows:-
+		"dlltool --def [deffile] --output-def [created deffile]".
+	This behaviour is required for at least one project, and
+	different deffiles can be specified for different platforms
+	using "#if defined [platform]" within *.mmp files.
+i)      New keyword "FRZFILE [*.frz file]" - behaves the same as
+	"DEFFILE" keyword as regards paths.  A specified freeze file
+	is ignored by makmake when producing WINS or VC4 makefiles.
+	The file is used by MARM makefiles as follows
+		"ld -z [frzfile] [dlltool-created deffile]".
+j)      New keyword "STRICTDEF" - if this keyword is specified then
+	makmake assumes that, for each *.def or *.frz files specified,
+	there are actually as many of these files as there are
+	different build configurations for the project.  E.G. for
+	WINS makefiles, if a deffile is secified in a *.mmp file as
+	"DEFFILE mydef.def", then makmake will assume "mydefd.def",
+	"mydefu.def" and "mydefud.def" for DEB, UREL, and UDEB builds
+	respectively.  Though for MARM, a RELGDB build would look for
+	plain "mydef.def".
+
+6)      Output
+
+a)      Makmake for MARM will produce *.MARM makefiles.
+b)      Makmake for WINS will produce *.WINS makefiles.
+c)      Makmake for VC4 will produce *.MAK makefiles.
+d)      MARM and WINS makefiles are restructured to allow
+	the following example NMAKE command-line invocations
+
+		"NMAKE /f euactiv2.wins UREL"
+		"NMAKE /f euactiv2.marm UDEB"
+		"NMAKE /f euactiv2.wins CLEANDEB"
+		"NMAKE /f euactiv2.marm CLEAN"
+
+e)      Macros specifying target directories, language,
+	build directories and so on are produced at the
+	top of WINS and MARM makefiles.
+f)  RELGDB builds for MARM aim to put the executable
+	produced into \epoc32\release\marm\rel, and also use 
+	\epoc32\build\[project]\marm\rel as their building 
+	directory.
+g)      Gcc tool OBJCOPY produces a *.sym file for MARM debug
+	builds, including RELGDB.
+
+
+Version 0.01.067
+================
+(Made by Morgan, 19th May 1997)
+
+1) PEDIFF
+   Recognises time/date stamps in debug and export directories.
+   Ignores PETRAN version information in the header.
+
+2) PETRAN
+   Uids take the full 32bits.
+
+3) WVECONV
+   From \VNOTES\WVECONV.  S3a to S5 sound file converter.
+
+
+Version 0.01.066
+================
+(Made by Alastair, 9th May 1997)
+
+MAKMAKE
+
+1) Fixed bug causing extra "print " text to be produced
+   as part of the USERINCLUDES text outputted in verbose mode.
+
+2) Fixed bug causing makmake.pl to fail to produce the extension
+   of a target filename when requested by *.pm modules
+
+3) Fixed bug causing makmake to fail with an error report if
+   more than one flag is specified on the command line
+
+MAKSYM
+
+1) Added a few lines of extra code so that the base address of
+   a dll in the rom is printed to maksym.log when maksym cannot
+   find the corresponding *.map file.
+
+
+Version 0.01.065
+================
+(Made by Alastair, 6th May 1997)
+
+MAKMAKE
+
+1) reorganised to be more easily maintainable and extensible.
+
+2)      handles uid keyword in *.mmp file - uid1 is provided automatically,
+	uid's 2 and 3 are specified ... 
+
+UID <uid2> <uid3>
+
+in *.mmp file.
+
+3)      dependency generation section calls CPP with flag -MG so that
+	makmake responds gracefully to missing generated headers
+
+4)      *.mdp and *.ncb files are automatically deleted from directories
+	in which makmake is directed to create a wins makefile with the same
+	root.
+
+5)      petran is invoked from the arm makefile
+
+6)      invocation syntax simplified so that makmake is invoked 
+		makmake [flags] [mmp file root] [platform]
+	rather than
+		makmake [flags] [mmp file] [destination makefile] [platform]
+
+7)      makmake by default operates in quiet mode, verbose mode is invoked
+	using the new "/V" flag on the command-line
+
+8)      makmake will create the work directories rather than the makefile
+	if the new "/MAKEWORK" flag is used on the command-line
+
+9)      the "/q" flag for "del" commands is no longer added to marm makefiles
+	created with makmake
+
+10)     the DEFFILE keyword is no longer searched for within a START WINS ... END       
+	block, now it is platform independent though not yet utilised by the marm 
+	platform.
+
+11)     winsname.pm is not currently expected to work
+
+12)     PERL is no longer invoked with the -w debugger flag
+
+Version 0.01.064
+================
+(Made by Morgan, 16th April 1997)
+
+1)      ROMBUILD
+	Removed the checks for unicode-ness of Uid[0] on Exes/Dlls
+
+2)  W32REPRO
+	An NT version of PREPRO written by WilliamR
+
+
+Version 0.01.063
+================
+(Made by Morgan, 15th April 1997)
+
+1)      MAKTRAN
+	Changed over to the new (and slightly less mad) Uid scheme
+	introduced in E32(098).
+	Dlls now have a Uid[0] of 0x10000079
+	Exes now have a Uid[0] of 0x1000007A
+	Everything else is as before.
+
+
+Version 0.01.062
+================
+(Made by Graham Asher, 15th April 1997)
+
+READTYPE
+	Added this new tool, which writes the new file unitable.cpp, which contains
+	the Unicode character attribute information. I've put a full
+	explanation of how to use READTYPE in Notes under e32 software design.
+
+
+Version 0.01.061
+================
+(Made by Morgan, 13th April 1997)
+
+1)      ROMBUILD
+	1) Bug fix when using the -S switch with Rom patching
+	2) Added class TRomSectionHeader to the start of the
+	   second section of the Rom so sectioned Roms can have
+	   a separate build time, language variant, and checksum.
+	3) Added iRomSectionHeader member to TRomHeader to point
+	   at the start of the sectioned Rom and padded TRomHeader
+	   to 256 bytes.  This needs a new BOOTROM.BIN which will
+	   be released with E32(098)
+	4) Fixed a bug in the split rom verify code.
+	5) Fixed the overriding of Uids.
+
+
+Version 0.01.060
+================
+(Made by Morgan, 9th April 1997)
+
+1)      PETRAN
+	Fixed a PETRAN dumping bug when there are no .data relocations.
+
+2)      MAKTRAN
+	Bug fix for -P switch when no uid3 is specified.
+
+3)      DEFMAKE
+	Made the -S switch work when -Z is used.
+
+
+Version 0.01.059
+================
+(Made by Morgan, 7th April 1997)
+
+HIGHLIGHTS:
+	* MAKTRAN now produces PETRANned targets.
+	* Components should use the new -P switch instead of -U.
+	* Suggested minimum commandline for Dlls:
+	  MAKTRAN <src .MAK> <dest .ARM> -z<Your .FRZ> -p"-uid2 <Your Uid2> -uid3 <Your Uid3> -nocall"
+
+2)      MAKTRAN
+	1) Overhauled for releasing PETRANned components.
+	   -U switch has been removed and been replaced by new
+	   -P switch for specifying PETRAN command line arguments. Uid1
+	      will default to the correct uid for the build type unless
+		  you specify otherwise.
+
+
+Version 0.01.058
+================
+(Made by Morgan, 3rd April 1997)
+
+1)      ROMBUILD
+	1) Filenames can now be quoted ("") to include spaces.
+	2) More details provided when the Rom overflows.
+
+	NOTE: Currently there is a bug that occurs if the Rom 
+	is exactly the correct size (byte for byte) and sectioning
+	is being used.  It's harmless - I'll fix this in a release
+	soon.
+
+
+Version 0.01.057
+================
+(Made by Alastair, 2nd April 1997)
+
+1)      MAKMAKE
+	Fixed bug in wins.pm causing *.def files specified in *.mmp
+	files to be ignored by MSVC.
+	Included deftool flag -1 NewApplication__Fv for MARM makefiles
+	where the target is an APP.
+	
+	E32TOOLS GROUP MNT.CMD
+	Added lock, unlock and wholock parameters.
+
+
+Version 0.01.056
+================
+(Made by Alastair, 27th March 1997)
+
+Alastair:
+1)      MAKMAKE
+	MAKMAKE generates makefiles for WINS or MARM builds.
+	It is being released because the SDK example projects
+	now use it, and no longer use MAKTRAN.  Makmake is by no
+	means fully tested and is certainly not intended for 
+	incorporation into Epoc32 projects prior to V1 shipping.
+	Details of its use are roughly documented in file 
+	\e32tools\makmake\makmake.txt.
+	Use of makmake requires the installation of Perl 
+	from directory T:\UTIL\PERL.
+
+
+Version 0.01.055
+================
+(Made by Morgan, 20th March 1997)
+
+1) ROMBUILD
+   CheckSum bug fix.
+   Kernel alignment bug fix.
+
+
+Version 0.01.054
+================
+(Made by Morgan, 18th March 1997)
+
+1) ROMBUILD
+   Removed some unnecesary recurtion and tidied some dodgy code.
+   Loaded the files to Rom in the order they appear in the obey
+   file, rather than depth first order.
+   
+   Roms can now be sectioned into two parts allowing the upper
+   part of the rom to be switched for language variations and
+   file patching.  Both these processes require the original
+   releasables, original obey file, and any new releasables.
+   It is also advisable to supply the original Rom so the lower
+   section can be verified to be constant.
+
+   In a sectioned rom the directory structure, import address
+   tables, and Dll reference tables of all files in the first Rom
+   are placed after the section border.
+   The overhead of sectioning a Rom (over and above an unsectioned
+   one) is the space required to duplicate the import address
+   tables of files from the first section.
+   Last time I counted (B2) the iat's took up 42k.
+
+   The 32bit sum of all 32bit words in the second section is
+   always 0.  This means the iChecksum member in TRomHeader is
+   valid for the rom as a whole and for the first section in
+   isolation.
+   It is not possible to patch any files that are listed before
+   the primary or the secondary.  Doing this causes the position
+   of the kernel's/file-server's entry in the directory table to
+   move.  This may be fixed in a future release.
+
+   To section a Rom:
+      Use the keyword
+	 section <rom offset>
+      at the point in the obey file where you want the Rom to be
+      split.  All files before this line appear in the first
+	  (constant) section, and files after appear in the second
+	  (patch/language) section.
+
+   Patching a file in the second section:
+      Add file attribute 'patch[ed]' to the file to be patched.
+      (This will cull the file from the first section).
+      Supply a replacement file in the top section as required.
+	  Note, the original file is still required to guarantee
+	  consistency in the first section of Rom.
+	  Run ROMBUILD.
+
+   Supplying a language dependant file:
+      Put the file after the section keyword.
+	  Run ROMBUILD.
+
+   To verify the lower section of Rom has remained constant:
+      Specify the original Rom image on the command line with
+	  -r<FileName>
+
+
+Version 0.01.053
+================
+(Made by Morgan, 7th March 1997)
+
+1) ROMBUILD
+   Bug fix to 'screen' keyword
+
+
+Version 0.01.052
+================
+(Made by Morgan, 3rd March 1997)
+
+1) ROMBUILD
+   Bug fix for Exes/Dlls with no relocations in .text or .rdata
+   Check Uids for exporting .EXEs as well as .DLLs
+   New 'screen' keyword.  Default is: screen = 640x240x4
+
+2) MAKTRAN
+   Bug fix
+
+
+Version 0.01.051
+================
+(Made by Morgan, 13th January 1997)
+
+Alastair:
+1) MAKSYM
+   Generates a list of C++ symbols and their addresses in rom from
+   ROMBUILD.LOG and accompanying .MAP files.
+   MAKSYM ? for help.
+
+
+Version 0.01.050
+================
+(Made by Morgan, 6th January 1997)
+
+1) ROMBUILD
+   Incompatable with any E32 before 083.
+   Added some stuff to TRomHeader for the test department:
+   A language bitfield (64bits for specifying the languages supported
+   by the ROM), and a 32bit hardware identifier.
+   The languages are as defined by TLanguage in E32STD.H.  (ie Test
+   is bit 0,  English is bit 1, French is bit 2,  etc...)
+   Added two more obeyfile keywords for this.  Usage:
+   languages = <list of supported languages>
+   hardware = <n>
+
+   Rombuild now has a -? switch.
+
+
+Version 0.01.049
+================
+(Made by Morgan, 11th December 1996)
+
+1) MAKTRAN
+   Object files are now grouped on the ar (archive) command line to
+   speed up building.  By default they are grouped in 4s but this
+   can be changed by using the new -a<n> switch.
+
+2) ROMBUILD
+   More informative error information when a dll is exporting by
+   name.
+
+3) E32UID
+   Removed.
+
+
+Version 0.01.048
+================
+(Made by Morgan, 22nd November 1996)
+
+1) ROMBUILD
+   Added 128 bytes of space to TRomHeader which appears at the front
+   of the ROM.  This is to allow work on the StrongARM port to
+   progress.
+   Naturally, this makes ROMBUILD compatable with absolutely nothing.
+   So a new bootrom.bin will be released with E32(075).
+
+
+Version 0.01.047
+================
+(Made by Morgan, 1st November 1996)
+
+1) MAKTRAN
+   Another minor fix to deal with unusually shaped .MAK files.  This
+   time it's old link information stored in comment lines.
+   Added "-Wno-ctor-dtor-privacy" to CPPFLAGS.
+
+2) PEDIFF
+   Bug fix HA-283.  The final section in a PE file may be truncated
+   to its VirtualSize making the SizeOfRawData field of the header
+   inaccurate.  This was causing a problem in the release build but
+   not the debug build.
+   Fixed by padding the section data with zeros up to SizeOfRawData
+   bytes.
+
+3) ROMBUILD
+   Added a iTextSize member to TRomImageHeader.  Making this version
+   of rombuild incompatable with any E32 before build 075.
+
+
+Version 0.01.046
+================
+(Made by Morgan, 1st November 1996)
+
+1) MAKTRAN
+   Added support for include directories other than ..\inc and
+   \epoc32\include
+      
+
+Version 0.01.045
+================
+(Made by Morgan, 7th October 1996)
+
+1) MAKTRAN
+   Added a -U<Uid> switch to put the 3rd uid in the target's import
+   stub so the Dll/Exe exports as DllName[Uid].Ext
+   This enables you to use the type-safe static linking (based on the
+   Dll's 3rd Uid) in E32(070)/F32(036) and ROMBUILD(043).
+
+2) ROMBUILD
+   Officially PVCSed DW's patch to ROMBUILD(044) that disables
+   type-safe static linking and added a -type-safe-link option to
+   turn it back on.
+   I'll leave it that way until people get used to the idea (or until
+   someone comes up with a better plan).
+   Also added checks on the first Uid against
+   KNarrowDebugUid, KNarrowReleaseUid for Ascii builds and
+   KWideDebugUid, KWideReleaseUid for Unicode builds.  I havn't made
+   this dependent on the -type-safe-link option because executables
+   and dlls wont load if this Uid is not set correctly.
+
+
+Version 0.01.044
+================
+(Made by Morgan, 3rd October 1996)
+
+1) ROMBUILD
+   ROMBUILD can now take E32 Image (pre-PETRANned) files as well as
+   PE Format files as input.
+
+
+Version 0.01.043
+================
+(Made by Morgan, 2th October 1996)
+
+1) MAKTRAN
+   Better filename parsing for the -z option.
+
+2) PETRAN
+   Added a -priority option.  This takes a number or one of these
+   keywords: low, background, foreground, high, windowserver,
+   fileserver, realtime, supervisor.
+
+3) ROMBUILD
+   Added 'priority' inline keyword for EXEs.
+   Added checks for type-safe static linking of DLLs.
+
+5) E32UID
+   Jal:  Displays the psion copyright message and build.
+	 Renumbered Uids to be Uid0, Uid1, and Uid2.
+
+6) ALL
+   Redirected error output to stderr.
+   
+
+Version 0.01.042
+================
+(Made by Morgan, 14th September 1996)
+
+1) PREPRO, PEIGER
+   Changes to MNT.CMD to include the latest versions of
+   PREPRO and PEIGER in the E32TOOLS release.
+
+2) MAKTRAN
+   Minor bug fixes for -D defined symbols.
+
+3) E32UID
+   Added a -Q quiet switch.
+
+
+Version 0.01.041
+================
+(Made by Morgan, 14th September 1996)
+
+1) MAKTRAN
+   Added support for maktranning make files of static libraries.
+   There are added complications when using static libraries from
+   GCC:
+   You may find that any executables linked with a static library
+   produce reams of "bad relocation" errors from either PETRAN or
+   ROMBUILD.  At the moment, to work around this you will need to
+   modify 2 lines for each build in the MAKTRANed file.
+       $(LD) ... --whole-archive my_exe.in --no-whole-archive ... my_lib.lib
+   becomes:
+       $(LD) ... --whole-archive my_exe.in my_lib.lib --no-whole-archive ...
+   this has the effect of including all code from the static library
+   in your .EXE whether it is used or not, but it fixes the bad
+   relocations generated by the GCC linker.
+
+   MAKTRAN also propogates defined symbols from the MSVC4
+   Build/Settings dialog excluding:
+	      __WINS__,__VC32__,__EXE__,__DLL__,
+	      _UNICODE,WIN32,_WINDOWS
+
+2) DEFTOOL
+   No longer truncates your def file if it can't find the specified
+   freeze file.
+
+
+Version 0.01.040
+================
+(Made by Morgan, 2nd September 1996)
+
+!) ROMBUILD
+   Bug fix:  for EXEs/DLLs with no imports.
+   
+   The tab character is now treated as white space in obey files.
+   
+   Improved some error messages.
+
+   Removed the universally dispised 'nocallentrypoint' directive on
+   the grounds that it looked silly.
+   Executables specified with 'file=' do not have the entry points
+   called.  New keyword 'dll=' indicates that the entry points
+   should be called.
+
+   Fixed filename case dependency.
+
+2) MAKTRAN
+   Added the switches '--whole-archive' and '--no-whole-archive'
+   around the .in file on the linker command line to keep GCC happy.
+   This only effects EXEs - as DLLs did it already.
+
+
+Version 0.01.039
+================
+(Made by Morgan, 19th August 1996)
+
+1) MAKTRAN
+   Added Unicode and Debug (U,D) suffixes to DEF files to make the
+   filenames for each target different under the new directory
+   structure.
+   Freeze files have also been given the same treatment:  specifying
+   -z afile.frz
+   will use afile.frz, afileD.frz, afileU.frz, afileUD.frz
+   as freeze files for the respective builds.
+
+
+Version 0.01.038
+================
+(Made by Morgan, 2nd August 1996)
+
+1) MAKTRAN
+   New maktran for the new epoc32 directory structure.
+   -T option removed.  Template instantiation is automatic.
+   Dlls are auto-detected by looking for __DLL__ in the .MAK file,
+   but this can be overridden with -D (to force a DLL) and -E (to
+   force an EXE)
+   Bug fix:  MAKTRAN now deals with make files that do not have
+   their "Win32 Release" target first.
+
+2) ETOUCH
+   Replacement TOUCH program.
+
+3) ROMBUILD
+   Bug fix:  for data sections with no relocations
+
+4) PETRAN
+   Added -nocallentrypoints option (can be shortened to -nocall)
+   and   -callentrypoints   option (       shortened to -call)
+   Bug fix:  for executable files with no relocations
+
+
+Version 0.01.037
+================
+(Made by Morgan, 2nd August 1996)
+
+1) ROMBUILD
+   Yet another change that will break your rom if you don't pay
+   attention to the version numbers.  This build is intended to
+   work with E32 (065).
+   The format of the Dll reference table has changed, and now looks
+   like this:
+
+   class TDllRefTable
+      {
+   public:
+      TUint16 iFlags;
+      TUint16 iNumberOfEntries;
+      };
+   followed by iNumberOfEntries of these:
+   class TDllRefTableEntry
+      {
+   public:
+      TUint iEntryPoint;
+      TUint iDllRefTable;
+      };
+
+   Added another inline keyword "nocallentrypoint" to obey files.
+   When attached to a file it prevents the entry points of linked
+   Dlls being called.  This is used to save time during loading
+   when the Dll's entry points are trivial (=empty).
+
+2) Fiddled with the -s option.
+   -S        outputs the size summary to the screen and to the log
+   -SLog     outputs the size summary to the log only
+   -SScreen  outputs the size summary to the screen only
+
+3) Forced the primary's code section to start on a 4K page boundry
+   for obscure operating system reasons.
+   (ie, Getting the exception/interrupt vectors to land on a page
+   boundry so they can be easily mapped by the MMU to the address
+   where they are expected to be.)
+
+4) Added support for building Unicode roms.  The implementation for
+   writing Unicode filenames to ROM is temporarily dubious.
+   A Unicode rom is made by specifying the keyword 'unicode' in the
+   first section of the obey file.
+
+5) Added the keyword 'stop' so parsing of an obey file can
+   be stopped prematurely.
+   
+
+Version 0.01.036
+================
+(Made by Morgan, 11th July 1996)
+
+1) ROMBUILD
+   Support for generating split ROM images - added the optional
+   keywords:
+   romnameodd=<file name>
+   romnameeven=<file name>
+   resulting in two half-roms.  one containing all odd numbered
+   half-words (16bits) and one containing all the even half-words.
+
+   Checksums:
+   Added a checksum member to TRomHeader and an optional keyword
+   romchecksum=<n>
+   for obey files.  This results in a ROM where summing all 32 bit
+   words (ignoring overflows) will return n.  The default sum of
+   all ROM words is 0.
+
+   Checksums for the ROM and for split ROMs are now calculated and
+   reported in the log.  These checksums are calculated by summing
+   all 8bit bytes and taking the least significant 32 bits of the
+   result.
+
+
+Version 0.01.035
+================
+(Made by Morgan, 10th June 1996)
+
+1) MAKTRAN
+   Added a RELGDB target which pretends to be the REL target
+   while keeping the debug info.
+   This has the same effect as a REL build when the makefile is
+   generated with:
+   MAKTRAN -no-strip-symbols -g"-g -fno-omit-frame-pointer" src dest
+
+2) DEFMAKE, DEFTOOL
+   Added -2 switch to compliment the -f switch so you can specify
+   the second ordinal as well as the first without the need to mess
+   around with freeze files.
+   This allows us to accomadate DLLs with the UID function at 
+   ordinal 1, and the GateL function at ordinal 2.
+   Also added -1 switch which is the same as -f to keep things 
+   consistent.
+
+
+Version 0.01.034
+================
+(Made by Morgan, 26th June 1996)
+
+1) ROMBUILD
+   Added facility to output Motorola S format Records.
+   Use the optional keyword:
+   srecordfilename=<output filename>
+   in the first section of the obey file.
+
+2) MAKTRAN
+   gcc option -mcpu-arm710 is now -mcpu=arm710
+   Added -strip-symbols and -no-strip-symbols options.
+   These force the linker to keep or strip all symbol
+   information (including debug symbol info).  If both
+   are omitted then symbols are striped for release
+   builds only.
+
+
+Version 0.01.033
+================
+(Made by Morgan, 24th June 1996)
+
+1) MAKTRAN
+   The -m6 flag on the CPPFLAGS line has changed to
+   -mcpu-arm710 -mapcs-32
+   added -fvtable-thunks and
+   removed -fno-implicit-templates
+
+
+Version 0.01.032
+================
+(Made by Morgan, 20th June 1996)
+
+1) PETRAN, ROMBUILD
+   Bug fix:  Relocations for the .rdata section were 4 bytes out
+   when the executable had a .rdata section and no imports.
+
+   PETRAN now performs a sanity check on all virtual addresses, and
+   lists the dubious ones.
+
+2) MAKTRAN
+   Made the error messages more descriptive when the .MAK file
+   doesn't contain one of the expected targets.
+
+
+Version 0.01.031
+================
+(Made by Morgan, 12th June 1996)
+
+1) PEDIFF
+   syntax: PEDIFF pefile pefile
+	   PEDIFF -e32 e32imagefile e32imagefile
+   compares 2 PE/E32Image format files to see if they are identical
+   ignoring all time/date stamps
+
+2) PETRAN
+   Another change to the E32Image file format to add a time stamp.
+
+
+Version 0.01.030
+================
+(Made by Morgan, 11th June 1996)
+
+1) PETRAN, ROMBUILD
+   Fixes to supply more information for the ram loader.
+   (ie. the size of the import section)
+   Documentation for the E32 Image file format is available from
+   the 'E32Base' Notes database.
+
+
+Version 0.01.029
+================
+(Made by Morgan, 7th June 1996)
+
+1) PETRAN
+   Added the command line switches:
+     -stack <stack size>
+     -uid<n> <uid>
+   for setting the stack size and the file's uids
+
+   The output of PETRAN has changed to the new E32Image file
+   format giving a (seasonally adjusted) size reduction of between
+   20 and 40 bytes.
+
+2) ROMBUILD
+   Uses the new E32Image file format.
+   Added heap size, and uids to the file modifiers
+   file = <src PE file> <dest EPOC file> [attributes]*
+       where 'attributes' is
+       attrib = [r|s|h|R|S|H]+
+       stack = <stack size>
+       reloc = <specific relocation address>
+       heapmax = <heap size>
+       heapmin = <heap size>
+       uid<n> = <uid>
+   Files in the rom are now read-only (R) by default (use
+   attrib=r to make them read/write)
+
+   Made filename and import/export name compares case insensitive
+
+3) DEFMAKE
+   DEFMAKE now accepts Alpha CPU PE Files
+
+
+Version 0.01.028
+================
+(Made by Morgan, 30th May 1996)
+
+1) MAKTRAN
+   added a -g flag to pass extra parameters to the gcc command line
+   eg.
+   -g-fcheck-new
+   adds: -fcheck-new to CPPFLAGS and
+   -g"-fcheck-new -fsigned-char"
+   adds: -fcheck-new -fsigned-char
+
+
+Version 0.01.027
+================
+(Made by Morgan, 29th May 1996)
+
+1) ROMBUILD
+   Changed the format of the 'file' keyword to allow overriding of 
+   various file attributes.
+   New format is:
+   file = <src PE file> <dest EPOC file> [attributes]*
+       where 'attributes' is
+       attrib = [r|s|h]+
+       stack = <stack size>
+       reloc = <specific relocation address>
+
+   The -s switch now lists file sizes in the same order as files
+   occur in the obey file.
+
+   Fixed a problem with reading relocations when the PE format file
+   lies about the VirtualSize of the section.
+
+2) MAKTRAN
+   Removed the -s flag from the linking stage of debug builds
+   to keep gcc generated debug information.
+
+3) DEFTOOL
+   Improved error reporting.
+
+4) General
+   Removed the dependencies on TRomExeHeader and TRomDllHeader
+   (from the header files of E32(059)) which are now defunct
+   so the tools build properly with E32(060).
+   Removed some of the dead code left over from E32ROM
+
+
+Version 0.01.026
+================
+(Made by Morgan, 24th May 1996)
+
+1) ROMBUILD
+   Altered the size summary output to include data files.
+   Currently the files are listed in depth first directory
+   order.  I intend to change this so they appear in the
+   same order as they appear in the obey file.
+
+2) PETRAN
+   Fixed a bug that crashed the translator when the size of the
+   relocation section of an executable was a multiple of 0x200
+   (the PE format file alignment size.)
+
+3) MAKTRAN
+   Added a CLEAN target.
+
+
+Version 0.01.025
+================
+(Made by Morgan, 23rd May 1996)
+
+1) E32ROM has been killed
+
+2) ROMBUILD replaces E32ROM
+   Syntax: ROMBUILD [-v] [-s] obeyfilename
+   -v verbose flag
+   -s gives a size summary of all executables in the rom
+   Logged output appears in the file ROMBUILD.LOG
+
+   The obey files for ROMBUILD are slightly different:
+   The keyword 'resource' has been replaced with 'data' for
+   putting data files in rom.
+   A manditory keyword 'kernheapmax' has been added.
+   The 'version' keyword has the syntax Major[.Minor[(Build)]]
+
+3) PETRAN
+   Produces E32ImageFile format files from PEFiles.
+
+4) Jal,
+   E32UID
+   Attaches UIDs to WINS files.
+
+
+Version 0.01.024
+================
+(Made by Morgan, 14th May 1996)
+
+1) DEFMAKE, DEFTOOL and MAKTRAN
+   Added -z switch to specify a frozen def file.
+   The exports in the frozen def file appear first (and in order)
+   in the new def file.  All additional exports are added to the
+   end.
+   A warning will be give if an export in the frozen def file
+   does not appear in the executable being processed.
+
+
+Version 0.01.023
+================
+(Made by Morgan, 3rd May 1996)
+
+1) Jane
+   Added space for the Uid system to the Rom Exe and DLL headers.
+
+
+Version 0.01.022
+================
+(Made by Morgan, 1st May 1996)
+
+1) E32ROM:
+   Added path checking so now it is not possible to create
+   directories with the name ""
+   The version specified by the obey file is now put into the rom.
+
+2) MAKTRAN:
+   /f switch added to specify the name of the function to use as
+   the first ordinal in the dll. (only works with /d switch).
+   More looping bugs fixed.  This time in the Archive generation.
+   Added some meagre form of test suit:  DIFs good .ARM files
+   with files generated from the current version.
+   Put in the work-around for the "ld hardcoded to C:" problem.
+
+
+Version 0.01.021
+================
+(Made by Morgan, 23rd April 1996)
+
+1) MAKTRAN bug fixes:
+   Added gcc -g option to the debug builds to produce debug output.
+   Fixed HA-103:  Now rules are only output for .cpp files
+   Having a .. or a . in the path for a source file 
+   (eg SOURCE=.\T_BLOB.CPP) no longer puts MAKTRAN into an endless
+   loop.  Also using system variables in path specifiers
+   (eg {($INCLUDE)}"\AHeader.H" ) no longer fills your hard disk.
+   Source files with no dependancies now generate a target.
+
+
+Version 0.01.020
+================
+(Made by Morgan, 11th April 1996)
+
+   E32ROM:
+1) Jal,
+   The 'resource' option is fixed and the rom is given the correct
+   date.
+
+2) Jane,
+   Added an error message if you don't supply enough parameters on
+   any line in the files section.
+
+
+Version 0.01.019
+================
+(Made by Graham, 8th April, 1996)
+
+1) Changed MAKTRAN-created makefile compiler options:
+
+   Added -fno-implcit-templates
+   In the past GCC automatically instantiated template classes and
+   functions. We now want to take complete control of this, so all
+   such templates will have to be instantiated by hand. There is an
+   extra switch (/T) on the command line which enables automatic
+   template instantiation to be turned back on, but this should only
+   be used when compiling test programs. Releasable code should take
+   advantage of the reduction in ROM size which hand-instantiation
+   brings.
+
+   Removed -fvtable-thunks
+   Those programs which exploit multiple-inheritence should now work.
+
+   Added $(USERDEFS)
+   This enables you to add your own definitions to the build.
+   e.g. nmake /f elink.mak USERDEFS=-D_USE_LOG
+
+2) Changed MAKTRAN-created makefile linker options:
+
+   Added --no-whole-archive option
+   This should greatly improve the size and linking speed DLL's. In
+   order to exploit this, you must get the next release of the GCC
+   tools from the network. Do this by typing TOOLS GCC and making
+   sure that \GCC\BIN is in your path.
+
+3) Fixed a bug with MSVC .MAK files which contain custom builds
+
+
+Version 0.01.018
+================
+(Made by Morgan, 3rd April, 1996)
+
+1) Extended DEFTOOL to take a -f switch (takes the name of the
+   function to be ordinal 1).
+
+
+Version 0.01.017
+================
+(Made by Graham, 26th March, 1996)
+
+1) Fixed a bug in E32ROM which gave "relocation type not handled" in
+   the presence of .reloc sections which were an exact multiple of
+   256 bytes in length.
+
+2) Fixed the MAKTRAN "if exist xxx.in del xxx.in" bug
+
+3) Added DEB, UREL and UDEB builds to MAKTRAN make files
+
+Jane:
+
+4) Better error reporting in E32ROM.EXE
+
+
+Version 0.01.016
+================
+(Made by Graham, 19th March, 1996)
+
+1) Fixed a bug in targetting some test program make files.
+2) Changed "del xxx.in" to "if exist xxx.in del xxx.in"
+
+Lane:
+
+3) Changed the mechanism by which libraries to be linked are found.
+
+Jane:
+
+4) Further improvements to the error reporting for DEFMAKE.
+
+
+Version 0.01.015
+================
+(Made by Graham, 8th March, 1996)
+
+1) Changed all tools to display their version and build numbers.
+
+Jane:
+
+2) Fixed a couple of heap problems in E32ROM, and generally increased robustness. 
+   Will now print an error message if there are too many files for the ROM,
+   rather than scribbling all over your nice memory.
+
+3) Improved some of the error reporting for DEFMAKE.
+
+Version 0.01.014
+================
+(Made by Graham, 6th March, 1996)
+
+1) Changed MAKTRAN to accept makefiles which have depenencies ..\..\
+   away from their source directory.
+
+Version 0.01.013
+================
+(Made by Graham, 5th March, 1996)
+
+1) Changed MAKTRAN to accept makefiles which are completely relative to
+   the directory in which they reside. NB These makefiles cannot be
+   correctly translated if they are moved to a different directory.
+
+Version 0.01.012
+================
+(Made by Graham, 4th March, 1996)
+
+1) Changed MAKTRAN to assume DEFTOOL.EXE is in your path
+2) Changed MAKTRAN so that it correctly sets __DLL__ and __EXE__
+3) Changed MAKTRAN to handle specially named DLL's - .DEV .MTD etc
+4) Changed MAKTRAN to handle projects with non-compilable components
+5) Changed the mechanism by which MAKTRAN decides group and project.
+
+Version 0.01.011
+================
+(Made by Graham, 27th February, 1996)
+
+1) Changed E32ROM to give each .EXE an 8K Stack
+2) Fixed bugs in MAKTRAN to do with picking up the name of the target
+3) Removed --whole-archive from .EXE make files built by MAKTRAN
+
+Version 0.01.010
+================
+(Made by Jane, 26th February, 1996)
+
+1) Fixed mnd.cmd for command line builds
+
+Version 0.01.009
+================
+(Made by Jane, 23rd February, 1996)
+
+1) Switched to Visual C++ 4.0
+
+2) E32ROM - Added support for REM statement in obeyfiles
+
+3) E32ROM - Fixed an obeyfile init bug which became apparent under the new compiler
+
+4) DEFMAKE & E32ROM - added support for export table being in .rdata section, as it is
+   now with Visual C++. (Export table in .edata is still supported.)
+
+5) DEFMAKE - added -q option which surrounds symbols names in "". This is mostly needed by
+   gcc builds where all destructors have a full stop in their name.
+
+6) First release of MAKTRAN and DEFTOOL from Lane
+	MAKTRAN converts msvc .mak files to gcc format.
+	DEFTOOL is used by MAKTRAN to strip out garbage from .def files
+		and to insert "NONAME" as required by gcc.
+	For MAKTRAN usage type "MAKTRAN".
+
+7) E32ROM - in log now displays absolute ROM addresses rather than offsets, and for text only
+
+Version 0.01.008
+================
+(Made by Jane, 31st January, 1996)
+
+1) Removed support for old time class
+
+
+Version 0.01.007
+================
+(Made by Jane, 8th January, 1996)
+
+1) Changed to new time class
+
+
+Version 0.01.006
+================
+(Made by Jane, 21st December 1995)
+
+1) Added versions to tools
+
+2) E32ROM - Changed heap min size for apps to 32k.
+
+3) E32ROM - Exits with error if files fail to fixup due to importing by name
+
+
+Version 0.01.004/005
+====================
+(Made by Jane, 15th November 1995)
+
+1) Added -R option to DEFMAKE so that the omission of ??__Dbg names in the .DEF
+   (release 003, (1)) can be optional.
+
+2) DEFMAKE alone now prints the meaning of the switches as well as help text.
+
+Version 0.01.003
+================
+(Made by Jane, 7th November 1995)
+
+1) Changed DEFMAKE not to write any exports after it hits the first
+   ??__Dbg prefixed name, allowing me to automate the E32 build
+   completely.
+
+2) E32ROM - Added code to avoid overwriting the first byte of a file if presented
+   with an invalid RVA of 0. (Bug in Cygnus tools).
+
+Version 0.01.002
+================
+(Made by Jane, 2nd November 1995)
+
+1) Converted DEFMAKE to the new HOST scheme.
+
+2) Sorted MNT.CMD so E32ROM will actually build.
+
+
+Version 0.01.001
+================
+(Made by Jane, 1st November 1995)
+1) First release.
+