FreeType 1.31.1
This commit is contained in:
200
howto/os2.txt
Normal file
200
howto/os2.txt
Normal file
@@ -0,0 +1,200 @@
|
||||
The FreeType OS/2 Compilation HowTo
|
||||
|
||||
Contents
|
||||
|
||||
Introduction
|
||||
I. Building the library
|
||||
1. Quick Compilation
|
||||
2. Manual compilation
|
||||
3. Notes
|
||||
II. Building other parts of the package
|
||||
1. Test programs
|
||||
2. Other contribs
|
||||
III. Troubleshooting
|
||||
|
||||
|
||||
|
||||
Introduction
|
||||
============
|
||||
|
||||
This file describes the compilation of the FreeType package on an
|
||||
OS/2 system. It comes with makefiles for the following compilers:
|
||||
|
||||
- gcc/emx with GNU make
|
||||
|
||||
- icc with nmake (Visual Age C++)
|
||||
|
||||
- wcc386 with wmake (Watcom -- tried with 10.6)
|
||||
|
||||
- gcc/emx with dmake
|
||||
|
||||
|
||||
NOTE:
|
||||
|
||||
You're advised to jump to section II.1 if you want to run the
|
||||
FreeType test/demo programs as quick as possible.
|
||||
|
||||
|
||||
|
||||
I. Building the library
|
||||
=======================
|
||||
|
||||
|
||||
1. Quick Compilation
|
||||
--------------------
|
||||
|
||||
The easiest way to compile the library on OS/2 is to go to the
|
||||
directory `freetype/lib'. Then type, depending on your compiler,
|
||||
|
||||
gcc/emx: make -f arch/os2/makefile.emx
|
||||
gcc/dmake: dmake -f arch/os2/makefile.dm
|
||||
|
||||
icc: nmake -f arch\os2\makefile.icc
|
||||
wcc386: wmake -f=arch\os2\makefile.wat
|
||||
|
||||
This should build the `libttf.a' or `libttf.lib' library files.
|
||||
|
||||
You can also use the following targets:
|
||||
|
||||
debug - Makes a development version of the library. Only
|
||||
useful for FreeType developers and hackers.
|
||||
|
||||
clean - Cleans all intermediate object files created during
|
||||
compilation. Keeps all library and executables in
|
||||
place.
|
||||
|
||||
distclean - Cleans everything, leaving the directories as they
|
||||
were before the compilation.
|
||||
|
||||
|
||||
2. Manual compilation
|
||||
---------------------
|
||||
|
||||
Here are explained the steps that are required to compile the
|
||||
FreeType _library_ (and only this one) by hand.
|
||||
|
||||
Unlike previous versions, FreeType 1.1 and above can be compiled
|
||||
in two modes, called `debug mode' and `single object mode'.
|
||||
|
||||
Debug mode is simply the normal way of compiling C programs, i.e.,
|
||||
each `*.c' file is compiled into an individual `*.obj' object
|
||||
file, and all of them are linked together into an archive (i.e.,
|
||||
`*.lib' library).
|
||||
|
||||
Single object mode is slightly different: all C files are included
|
||||
in a single source during compilation, resulting in a single final
|
||||
object file for the core library. This has the advantage of
|
||||
letting optimizing compilers do more global work, as well as
|
||||
getting rid of all external symbols which are used solely for the
|
||||
purpose of components interfacing.
|
||||
|
||||
In both modes, you need to include the following paths to your
|
||||
makefile/command line:
|
||||
|
||||
the location of all `tt*.[hc]' files
|
||||
the location of system-specific files
|
||||
|
||||
For example, if you are compiling from the `freetype/lib'
|
||||
directory, you can type for debug mode something like
|
||||
|
||||
gcc -c -I. -Iarch/os2 tt*.c arch/os2/os2file.c
|
||||
|
||||
to compile all required files into object ones. Then assemble
|
||||
them in a library with `ar' or `implib'.
|
||||
|
||||
In single object mode, you only need to compile the file named
|
||||
`freetype.c' which is located in `freetype/lib/arch/os2'. From
|
||||
the same directory as before, one would type:
|
||||
|
||||
gcc -c -I. -Iarch/os2 arch/os2/freetype.c
|
||||
|
||||
You can also compile the extensions located in
|
||||
`freetype/lib/extend' separately from the base engine. You will
|
||||
need to include the same paths as before, though; be sure to add
|
||||
the path to the `extend' directory, like in
|
||||
|
||||
gcc -c -I. -Iarch/os2 -Iextend extend/*.c
|
||||
|
||||
|
||||
|
||||
II. Building other parts of the package
|
||||
=======================================
|
||||
|
||||
|
||||
1. Test programs
|
||||
----------------
|
||||
|
||||
The test programs are located in `freetype/test'. Most of them
|
||||
use a tiny graphics sub-system which is simply used to display
|
||||
bitmaps and pixmaps in a windows on a variety of platforms. The
|
||||
OS/2 version comes in two flavors: PM and full-screen.
|
||||
|
||||
To compile them, you must be in the `freetype/test' directory, and
|
||||
invoke the makefile in arch/os2. For example:
|
||||
|
||||
nmake -f arch\os2\makefile.os2
|
||||
|
||||
|
||||
NOTE 1:
|
||||
|
||||
This will automatically invoke the library makefile for you!
|
||||
|
||||
NOTE 2:
|
||||
|
||||
The test programs come in two flavors, distinguished by the `fs'
|
||||
suffix appended to their name. For example:
|
||||
|
||||
ftview (PM version)
|
||||
ftviewfs (Full Screen version)
|
||||
|
||||
The full-screen version is there mainly for debugging purposes.
|
||||
|
||||
NOTE 3:
|
||||
|
||||
For now, the graphical test programs only run on the following
|
||||
platforms: Unix, OS/2, Dos, Amiga, and Windows.
|
||||
|
||||
The library, being pure ANSI-C, can be used on any system to
|
||||
generate bitmaps and pixmaps.
|
||||
|
||||
|
||||
2. Other contributions
|
||||
----------------------
|
||||
|
||||
You may find some other contributions to the FreeType project in
|
||||
the `freetype/contrib' directory. Each of these programs should
|
||||
have its own Makefiles and documentations. Also check their
|
||||
licenses, as the programs not necessarily distributed under the
|
||||
FreeType one. You are invited to port the non-OS/2 applications
|
||||
to OS/2.
|
||||
|
||||
For OS/2, you will find the source code for the FreeType/2 font
|
||||
driver in `freetype/contrib/os2'. Read its documentation
|
||||
carefully before trying to compile it, as it certainly won't be
|
||||
easy.
|
||||
|
||||
|
||||
|
||||
III. Troubleshooting
|
||||
====================
|
||||
|
||||
There is only one important point on OS/2:
|
||||
|
||||
`The test program crashes with anti-aliasing on!'
|
||||
|
||||
It has been discovered that some versions of Visual Age C++
|
||||
contain a bug which miscompiles the anti-aliasing source in
|
||||
ttraster.c, hence resulting in a page fault when trying to render
|
||||
a pixmap in the engine. Apparently, not all levels/versions of
|
||||
the compiler contain the bug. You'll notice the problem
|
||||
immediately (page fault :-).
|
||||
|
||||
Please apply the most recent fixpack to your Visual Age C++ copy
|
||||
in order to get rid of it (newer fixpacks seem to solve the
|
||||
issue).
|
||||
|
||||
|
||||
Good luck!
|
||||
|
||||
|
||||
--- end of os2.txt ---
|
||||
Reference in New Issue
Block a user