FreeType 1.31.1
This commit is contained in:
255
howto/unix.txt
Normal file
255
howto/unix.txt
Normal file
@@ -0,0 +1,255 @@
|
||||
The FreeType Unix 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. Successful Build Reports
|
||||
|
||||
|
||||
|
||||
Introduction
|
||||
============
|
||||
|
||||
This file describes the compilation of the FreeType package on a
|
||||
Unix system. Using the `configure' script it should be rather easy
|
||||
to build the library. However, detailed instructions on how to
|
||||
compile the library manually are given later in this document.
|
||||
|
||||
|
||||
|
||||
I. Building the library
|
||||
=======================
|
||||
|
||||
|
||||
1. Quick Compilation
|
||||
--------------------
|
||||
|
||||
The easiest way to compile the library on a Unix system is by
|
||||
using the `configure' script that comes with it. Simply go to the
|
||||
root directory of the FreeType package, then type
|
||||
|
||||
./configure
|
||||
|
||||
to run a script that will probe your system and detect various
|
||||
configuration issues, which are explained later in this document.
|
||||
|
||||
From there, you can simply type
|
||||
|
||||
make
|
||||
|
||||
to invoke compilation of the whole package. You can also use the
|
||||
following commands:
|
||||
|
||||
make debug - Make a development version of the library.
|
||||
Only useful for FreeType developers and
|
||||
hackers. The default build should come with
|
||||
`-g' (i.e., debug info in the object file)
|
||||
already.
|
||||
|
||||
make clean - Clean all intermediate object files created
|
||||
during compilation. Keeps all library and
|
||||
executables in place.
|
||||
|
||||
make distclean - Clean everything, leaving the directories as
|
||||
they were before the compilation. You'll need
|
||||
to run `./configure' again to be able to
|
||||
re-build it.
|
||||
|
||||
make install - Install the library files libttf.a, libttf.la
|
||||
or libttf.so to your system library path
|
||||
(`/usr/local/lib' by default). The path can be
|
||||
set manually with ./configure.
|
||||
|
||||
make uninstall - Undo a `make install'.
|
||||
|
||||
|
||||
2. Trouble-shooting and simple customization
|
||||
--------------------------------------------
|
||||
|
||||
The make build seems to fail on some Solaris systems. This is
|
||||
mainly due to the fact that the test programs (not the font
|
||||
library itself) try to use certain libraries and/or utilities if
|
||||
they find them on your system. In some cases, the Sun versions
|
||||
are incompatible to the GNU ones. If you encounter such problems,
|
||||
please report them to us so we can try to fix it.
|
||||
|
||||
The configure script and makefiles that it generates can/make use
|
||||
of the following things:
|
||||
|
||||
- gettext - In order to compile the internationalized error
|
||||
message string extension, which isn't part of the
|
||||
core library. You can disable this and get a
|
||||
clean compile with
|
||||
|
||||
./configure --disable-nls
|
||||
|
||||
|
||||
- libtool - Used to generate shared libraries. You can
|
||||
disable it by typing
|
||||
|
||||
./configure --disable-shared
|
||||
|
||||
which will generate and link the FreeType engine
|
||||
as a static library.
|
||||
|
||||
By default, static compilation is disabled if the
|
||||
configure script detects that your compiler
|
||||
and/or operating system supports shared
|
||||
libraries. You can ask for static libraries with
|
||||
|
||||
./configure --enable-static
|
||||
|
||||
For more configuration options, type `./configure --help' to see a
|
||||
summary of what is possible. The option to change the library
|
||||
installation path for `make install' is, as usual,
|
||||
`--prefix=<path>'. Example:
|
||||
|
||||
./configure --prefix=${HOME}/local/lib --disable-shared
|
||||
|
||||
to install a static library (libttf.a) in `~/local/lib' (after a
|
||||
`make install')
|
||||
|
||||
|
||||
3. Manual compilation
|
||||
---------------------
|
||||
|
||||
Here are explained the steps that are required to compile the
|
||||
FreeType _library_ (and only this one) by hand.
|
||||
|
||||
a. Generate a configuration file named `ft_conf.h'
|
||||
|
||||
This file contains a certain number of configuration macro
|
||||
declarations which must fit your system. The configure script
|
||||
generates it automatically for you, but you can also take the
|
||||
template file `freetype/ft_conf.h.in' and change it by hand,
|
||||
then save it as `freetype/ft_conf.h'.
|
||||
|
||||
b. Choose your compilation mode
|
||||
|
||||
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 *.o object
|
||||
file, and all of them are linked together into an archive (i.e.,
|
||||
a *.a library).
|
||||
|
||||
Single object mode is slightly different: All C files are
|
||||
included in a single source file 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 the `ft_conf.h' file
|
||||
. the location of all `tt*.[hc]' files
|
||||
. the location of system-specific files, i.e., `ttmmap.c' on
|
||||
Unix.
|
||||
|
||||
For example, if you are compiling from the `freetype/lib'
|
||||
directory, you can type for debug mode something like
|
||||
|
||||
gcc -c -I.. -I. -Iarch/unix tt*.c arch/unix/ttmmap.c
|
||||
|
||||
to compile all required files. Then assemble them in a library
|
||||
with `ar' (and run `runlib' if necessary).
|
||||
|
||||
In single object mode, you only need to compile the file named
|
||||
`freetype.c' which is located in `freetype/lib/arch/unix'. From
|
||||
the same directory as before, one would type:
|
||||
|
||||
gcc -c -I.. -I. -Iarch/unix arch/unix/freetype.c
|
||||
|
||||
You can also compile the extensions located in
|
||||
`freetype/lib/extend' separately from the base engine. You'll
|
||||
need to include the same paths as before, though.
|
||||
|
||||
|
||||
|
||||
II. Building other parts of the package
|
||||
=======================================
|
||||
|
||||
|
||||
1. Test programs
|
||||
----------------
|
||||
|
||||
All test programs are located in `freetype/test'. Most of them
|
||||
use a tiny graphics sub-system which simply display bitmaps and
|
||||
pixmaps in a windows on a variety of platforms. Of course, the
|
||||
Unix version uses X11.
|
||||
|
||||
The default `make' builds all tests programs automatically. Just
|
||||
go the `freetype/test' and launch the programs when you are there.
|
||||
Documentation on the test programs can be found in the file
|
||||
`freetype/README'.
|
||||
|
||||
NOTE:
|
||||
|
||||
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 their own makefiles and documentations. Also check their
|
||||
licenses, as they are not necessarily distributed under the
|
||||
FreeType one.
|
||||
|
||||
|
||||
|
||||
III. Successful Build Reports
|
||||
=============================
|
||||
|
||||
Nelson H. F. Beebe <beebe@math.utah.edu> and others report the
|
||||
following successfully builds (with gcc 2.8.1) of freetype-1.1 on
|
||||
|
||||
DEC Alpha 2100-5/250: OSF/1 3.2
|
||||
HP 9000/735: HP-UX 10.01
|
||||
Intel Pentium (200MHz MMX): Linux 2.0.30
|
||||
SGI Challenge L: IRIX 5.3
|
||||
Sun SPARC 20/512: Solaris 2.6
|
||||
Sun SPARC Ultra-2: SunOS 5.5.1
|
||||
IBM RS/6000: AIX 4.1
|
||||
|
||||
Chances are good the the current release will build on the same
|
||||
machines and platforms.
|
||||
|
||||
There are build problems reported on SunOs 4.x which have the form
|
||||
|
||||
ld: /usr/tmp/cca07291.o: assert pure-text failed:
|
||||
reference to [offset] at f754 in /usr/tmp/cca07291.o
|
||||
|
||||
This may be a compiler bug in gcc 2.8.1.
|
||||
|
||||
You can work around by just building a static library with
|
||||
|
||||
./configure --disable-shared --enable-static --disable-nls
|
||||
|
||||
Maybe `make debug' will help here too (untested).
|
||||
|
||||
Other successful builds:
|
||||
|
||||
Sun SPARC Solaris 2.5 with Sun C compiler+linker
|
||||
|
||||
For updated build reports, please consult our web site:
|
||||
|
||||
http://www.freetype.org
|
||||
|
||||
|
||||
--- end of unix.txt ---
|
||||
Reference in New Issue
Block a user