Some instructions about how to port new FreeType release (www.freetype.org) to Symbian OS FreeType component

Current Freetype version 2.2.1 ported by Chris Beale September 2006

1.	Check if there are some fixes, applied to the FreeType release, currently used by Symbian OS components. You may need to download exactly the same release number and compare it with currently used FreeType release. If there are some differences between them, you can save the differences and apply them to the new FreeType release, if they are not already there.
2.	Copy “..\graphics\freetype\freetype2\include\freetype\config\ftmodule.h” file to separate location. You may need it to decide what modules have to be used from the new FreeType release.
3.	Remove completely contents of “..\graphics\freetype\freetype2” folder and copy “include” and “src” folders from the new FreeType release to the same location - “..\graphics\freetype\freetype2”.
4.	Now, compare the new “ftmodule.h” file with your old “ftmodule.h” file and comment or uncomment some “FT_USE_MODULE…” statements depending on what exactly is used in the old “ftmodule.h” file.
5.	Check all FreeType folders – do they have “DISTRIBUTION.POLICY” file? – If not – make sure that all FreeType folders have “DISTRIBUTION.POLICY” file.
6.	Check if there are some FreeType fixes (Symbian FreeType fixes) which don’t exist into the new FreeType release. You may need to apply them to the new FreeType release. 
•	Ftbuild.h - Add #define FT2_BUILD_LIBRARY which is required to enable access to internal FreeType header files.  (See the end of ftheader.h)
•	sfobjs.c - Add Symbian changes from changelist #282456 and #292209
•	cffgload.c - Changes were made to this code by Symbian in Changelist # 717319.  Freetype 2.2.1 has modified the line of code in question and this change is no longer required.  Therefore changelist #717319 has not been applied to this version of Freetype.
•	src/base/ftinit.c – Changes were made to this code by Symbian in Changelist #1698884. See DEF142072 for details about the fix.
7.	Read carefully the new FreeType release documentation to see what source files should be included into the build. After that you may need to modify “FreeType.mmp” file.
8.	Open the file “..\graphics\freetype\freetype2\include\freetype\config\ftoption.h” and make sure that the name TT_CONFIG_OPTION_BYTECODE_INTERPRETER is defined. By default it is undefined (commented). Defining it includes the TrueType hinting system, the use of which requires a licence from Apple – we have one.
9.	Examine the other options in that file. If, as now, we are only using FreeType for TrueType font support, then various other options can be changed from their defaults:
    FT_CONFIG_OPTION_USE_ZLIB can be #undef, since we don’t use compressed fonts.
    FT_CONFIG_OPTION_ADOBE_GLYPH_LIST can be #undef since we don’t support Type 1 fonts.
    T1_CONFIG_OPTION_NO_AFM should be #define to switch off Type 1 code we don’t need.
    T1_CONFIG_OPTION_NO_MM_SUPPORT should be #define to switch off Type 1 code we don’t need.
Note that this configuration may change if we need to use more types of font file.
10.	Try to build FreeType DLL. It may be possible that the compiler will report to you some errors related to “FtRast.cpp” file. Some FreeType structure names or structure member names can be changed. So you may need to do some corrections into “FtRast.cpp” file.
11.	If the build is OK – no errors, no warnings, you can do some testing of the new FreeType release. All graphics components tests should pass (WINS, WINSCW, THUMB builds) – Emulator, Assabet, Lubbock platforms. Also, you can do some tests with Word application and check that there are no visible differences using Word with the old and the new FreeType releases.