Makmake changes between ER5 and ER5u
this chapter summarizes changes to makmake between e32toolp release 100 and e32toolp release 127.
-clean and -makework options
Support for these command-line options has been removed.  Targets are provided instead in the makefiles that makmake generates for erasing files created during a build, and all the necessary work directories are created automatically.
-d option
This option now causes makefiles to be generated into \EPOC32\Make\project\platform rather than \EPOC32\Make\platform.
VC4 and VC5 IDE workspaces
Support for creating workspaces for these IDEs is no longer provided.  Only workspaces for VC6 can be created.
Bitmaps and Application Information files
Support for building bitmaps and application information files is now supported in command-line makefiles.
Static Libraries
Support for building and linking to static libraries has been added, via the new .mmp target type “lib” and the new .mmp keyword “staticlibrary”.
#Defines
Support for specifying #defines for preprocessing source files can now be done via the new .mmp keyword “macro”.
LongBldPath and NoBrowseInfo mmp keywords
These keywords have now been removed - they are no longer necessary since the path to the directory for containing intermediate files now incorporates an extra directory level.
Object mmp keyword
This keyword has been removed.
VC4 and VC5 IDE workspaces
Support for creating workspaces for these IDEs is no longer provided.  Only workspaces for VC6 can be created.
New Target types for polymorphic DLLs
Several new target types have been added so that certain polymorphic DLLs commonly used within EPOC needn’t specify a def file.
Narrow Builds are no longer supported
All EPOC builds are now wide (UNICODE) builds, debug (UDEB) or release (UREL).  The mmp keyword UID is therefore no longer supported, there is just the UNICODEUID keyword for specifying UIDs for a project.
New ARM platform targets
Makefiles can now be built for ARMI, ARM4 and THUMB rather than MARM.  When a project is built for any of these three platforms, import libraries for compatible platforms are also created.
def files and import libraries
Import libraries are now created directly from frozen export definition files rather than as a side-effect of linking.  This change means that until an export is frozen, it does not appear in the import library and cannot be referenced by another project, unless the new mmp keyword, ”exportunfrozen”, is specified, in which case the import library is created as a side-effect of linking.  The ”deffile” statement now has a reduced role - that of overriding the default def filename, rather than also dictating whether or not the project’s exports are frozen.
By default, WINC def files are now frozen in \<project>\bwins rather than \<project>\bwinc since there is no need for a separate directory.
The two-stage link applied by command-line makefiles is now also applied within the MSVC IDE.
Comments are now listed in frozen def files, alongside the mangled function names, containing the un-mangled C++ name of the function.
Device Drivers
EPOC projects that link to the EPOC kernel now need to list ekern.lib with the keyword “assplibrary” rather than “library” because kernel-side import libraries are now created in a different directory according to which hardware platform a particular version of the kernel has been built for.
__PSISOFT__ #define
The __PSISOFT__ #define is no longer defined for the preprocessing of source files.  __SYMBIAN32__ alone is defined for use in distinguishing code to be run on EPOC from code to be run on other operating systems.