FreeType 2.4.6, compilation sur Sun Solaris 10 X86

Introduction

FreeType est un moteur portable de polices de caractères utilisé dans de nombreux produits graphiques comme libgd, cairo, gnuplot...

La compilation de FreeType 2.4.6 en 64 bits sur Sun Solaris 10 x86 avec Sun Studio 12.1 est relativement simple. L'installation est réalisée dans un répertoire personnalisé afin de ne pas polluer les répertoires systèmes /usr. Pour plus d'informations sur l'installation des compilateurs SunStudio 12.1 : Installation de Sun Studio 12 sur Sun Solaris 10 X86 pour les compilations.

Unique particularité lors de la compilation : FreeType 2.4.6 impose GNU make >= 3.80 ou makepp >= 1.19 lors de la compilation :

% ./configure --help 
GNU make (>= 3.80) or makepp (>= 1.19) is required to build FreeType2.
Please try
  `GNUMAKE=<GNU make command name> ./configure'.
or >&2
  `GNUMAKE="makepp --norc-substitution" ./configure'.

Pour compiler, installer et utiliser GNU Make 3.82 sur Sun Solaris 10 X86 64 bits : GNU Make 3.82, compilation sur Sun Solaris 10 X86.

Téléchargement et préparation de l'environnement pour la compilation de FreeType 2.4.6

Le code source de FreeType 2.4.6 est disponible en téléchargement pour Solaris 10 sous la forme d'une archive compressée (freetype-2.4.6.tar.gz) à cette adresse : SourceForge - FreeType 2.4.6.

L'archive freetype-2.4.6.tar.gz est transférée avec ftp sur la machine cible dans le répertoire /Software/tools/temp puis décompressée et désarchivée avec les utilitaires gunzip et tar/

% cd /Software/tools/temp
% gunzip -c freetype-2.4.6.tar.gz | tar xvf -

Le code source est alors désarchivé avec la commande tar dans le sous répertoire ./freetype-2.4.6.

La variable $PATH est mise à jour avant la compilation pour référencer /usr/ccs/bin, répertoire qui contient les binaires ld et ar, indispensables pour la génération des librairies statiques et dynamiques.

% PATH=/usr/ccs/bin:$PATH
% export PATH

Si les liens de SunStudio n'ont pas été installés dans /usr/bin lors de l'installation, la variable $PATH doit référencer également le répertoire <répertoire de sunstudio 12.1>/bin pour trouver les compilateurs.

% PATH=/opt/sunstudio12.1/bin:$PATH
% export PATH

Il s'agit d'une compilation en 64 bits, la variable $CFLAGS est donc mise à jour à -m64 :

% CFLAGS=-m64
% export CFLAGS

L'exécutable GNU make 3.82 est installé dans le répertoire /Software/tools/gnutools/bin. Afin que celui-ci soit sélectionné à la compilation, ce répertoire est référencé en premier dans la variable $PATH:

% PATH=/Software/tools/gnutools/bin:$PATH
% export PATH

Configuration, compilation et installation de FreeType 2.4.6

Une fois l'environnement préparé (variables $PATH, $CFLAGS), la configuration de la compilation peut être déclenchée. L'option --help renvoie les options de configuration (la sortie de l'option --help est allégée pour la lisibilité).

% cd /Software/tools/temp/freetype-2.4.6
% ./configure --help
`configure' configures GNU FreeType 2.4.6 to adapt to many kinds of systems.
 ...
Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [/usr/local]
  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                          [PREFIX]
 
By default, `make install' will install all the files in
`/usr/local/bin', `/usr/local/lib' etc.  You can specify
an installation prefix other than `/usr/local' using `--prefix',
for instance `--prefix=$HOME'.
 ...

L'option --prefix est spécifiée dans cet article afin de délocaliser l'installation des binaires et librairies de FreeType dans le répertoire /Software/tools/misc (DIR). L'installation n'est pas réalisée dans son répertoire par défaut /usr/local.

La ligne de configuration de la compilation est la suivante dans cet exemple pratique :

% cd /Software/tools/temp/freetype-2.4.6
 
% ./configure --prefix=/Software/tools/misc

La compilation et l'installation de freetype-2.4.6 sont réalisées avec les commandes make et make install.

% cd /Software/tools/temp/freetype-2.4.6
% make 
% make install

Architecture de FreeType 2.4.6

La compilation génère dans le répertoire DIR/lib la librairie archive statique libfreetype.a et la librairie dynamique libfreetype.so.6.7.1. Les liens symboliques libfreetype.so et libfreetype.so.6 pointent sur la librairie libfreetype.so.6.7.1.

Les fichiers d'entête (*.h) de FreeType sont installés dans le répertoire DIR/include/freetype2, répertoire à inclure lors de la compilation de produits qui dépendent de FreeType.