GNU Make 3.82, compilation sur Sun Solaris 10 X86

Logo

Introduction

Certains produits, comme FreeType 2.4.6, imposent GNU make 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'.

La compilation de GNU make 3.82 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 .

Téléchargement et préparation de l’environnement pour la compilation de GNU Make 3.82

Le code source de GNU Make 3.82 est disponible en téléchargement pour Solaris 10 sous la forme d’une archive compressée (make-3.82.tar.gz) à cette adresse : SunFreeWare - Solaris 10 - make-3.82.

L’archive make-3.82.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 make-3.82.tar.gz | tar xvf -

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

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

Configuration, compilation et installation de GNU Make 3.82

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/make-3.82
% ./configure --help

`configure' configures GNU make 3.82 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 GNU make dans le répertoire /Software/tools/gnutools (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/make-3.82
 
% ./configure --prefix=/Software/tools/gnutools

La compilation et l’installation de GNU make 3.82 sont réalisées avec les commandes make et make install.

% cd /Software/tools/temp/make-3.82
% make 
% make install

Utilisation de GNU Make 3.82

La compilation génère uniquement un exécutable make dans le répertoire d’installation DIR/bin.

Pour forcer une compilation avec GNU make 3.82, la variable $PATH référence en premier le répertoire DIR/bin, répertoire d’installation de l’exécutable GNU make.

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

% export PATH