« Autotools en C/Programme exemple » : différence entre les versions
Contenu supprimé Contenu ajouté
m Renommage de catégorie : Modification de la catégorie Catégorie:Autotools en C → Catégorie:Autotools en C (livre) |
Ajouts du cours Balise : Informations personnelles |
||
Ligne 1 :
Nous verrons ici les utilisations les plus simples (par ex : ajouter un fichier), qui sont aussi les plus quotidiennes pour un développeur.
==Préparations du programme ''Affichage''==
Nous allons créer un programme ''Affichage'' qui produira un simple "Bonjour" dans le terminal.
Par respect pour les autres développeurs, nous suivons ici les standards de programmation (notamment GNU). Il est en effet habituel de mettre son code dans un répertoire du même nom que le programme. À l'intérieur de ce répertoire nous placerons le code source dans ''src/'' (ultérieurement, nous créerons ''docs/'' pour la documentation, ''tests/'', ''po/'' pour l'internationalisation du programme, etc.)
Notre arborescence pour l'instant :
<source lang=bash>
affichage/
src/
</source>
On crée le fichier source en langage C dans ''src/'' :
<source lang=
affichage/
src/
programme.c
</source>
Et éditons-le pour y placer notre code trivial :
<source lang=c>
/* programme.c */
{
}
</source>
==Fichiers de configuration==
Pour fonctionner, ''Autotools'' se sert de plusieurs fichiers qu'il va créer mais requiert trois fichiers de notre part dont deux sont plus importants :
* ''configure.ac'' servant à configurer ''autoconf''
* ''Makefile.am'' qui sera
* ''README''
===
Pour faciliter la rédaction de ce fichier, utilisons le programme ''autoscan'' qui va fournir un modèle.
Pour cela, il faut se placer dans le répertoire principal ''affichage'' :
Ligne 58 ⟶ 47 :
AC_PREREQ([2.65])
AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])
AC_CONFIG_SRCDIR([src/
AC_CONFIG_HEADERS([config.h])
Ligne 69 ⟶ 58 :
AC_OUTPUT
</source>
Il sera modifié et complété :
<source lang=Perl>
AC_PREREQ([2.65])
AC_INIT(affichage, 0.01, affichage@gnu.org) # remplir ici le nom du programme, version, courriel du développeur
AC_CONFIG_SRCDIR([src/programme.c])
AC_CONFIG_HEADERS([config.h])
# Checks for programs.
AC_PROG_CC
# Checks for libraries.
# Checks for header files.
# Checks for typedefs, structures, and compiler characteristics.
# Checks for library functions.
AC_OUTPUT
[
Makefile # on reconstitue ici l'arborescence qui doit
src/Makefile # être parcourue
]
</source>
Une fois édité, on le renomme en ''configure.ac''.
Donc à ce stade, l'arborescence doit être :
<source lang=bash>
affichage/
configure.ac
src/
programme.c
</source>
===Makefile.am===
Il y aura plusieurs fichiers de ce type : autant de ''Makefile.am'' que de répertoire à parcourir, un dans le répertoire principal ''affichage/'' et un dans ''src/''. Dans la plupart des projets, il ne contient qu'une ou deux lignes : la liste des sous-répertoires qu'il faudra parcourir dans notre exemple le répertoire ''src''. Pour l'indiquer à [[w:Automake|Automake]], il faut renseigner la variable «SRC» dont c'est justement le rôle.
On ajoute un ''Makefile.am'' :
<source lang=bash>
affichage/
configure.ac
Makefile.am
src/
programme.c
</source>
Dans lequel on place ce contenu :
<source lang=Perl>
SRC=src
</source>
Et on en crée un deuxième :
<source lang=bash>
affichage/
configure.ac
Makefile.am
src/
Makefile.am
programme.c
</source>
Dans lequel on va écrire :
<source lang=Perl>
bin_PROGRAMS=affichage
affichage_SOURCE=programme.c
</source>
===README===
Sa rédaction ne pose aucun problème car son contenu n'est pas lu par ''Automake''. Seule sa présence est requise.
Il est cependant toujours conseillé de renseigner ces fichiers :
Ligne 86 ⟶ 126 :
* l'utilisateur est toujours heureux de pouvoir trouver une aide en cas de problème
===autogen.sh===
Ce script (disponible [http://freecode.com/projects/buildconf ici]) va nous permettre de simplifier la construction, car il réalise toutes les opérations nécessaires de manière automatique.
Même si tout est automatique, il faut quand même savoir que ce script lance plusieurs commandes différentes dont :
<source lang=bash>
$ aclocal
$ autoconf
$ autoheader
$ automake
</source>
Il faut noter qu'après ce lancement certains fichiers seront créés dont INSTALL, AUTHORS (vide : à compléter), ChangeLog (vide aussi), NOTES (vide), TODO (vide). Encore une fois, maintenir ces fichiers n'est pas difficile et toujours profitable aux utilisateurs.
<source lang=bash>
affichage/
autogen.sh
configure.ac
Makefile.am
README
src/
Makefile.am
programme.c
</source>
Maintenant que tout est prêt, lançons le script :
<source lang=bash>
$ ./autogen.sh
</source>
===LICENSE===
Enfin, il faut penser aussi utiliser la bonne licence légale à ajouter au logiciel. Par défaut, GNU Gpl. Nous la garderons, mais il faut faire une petite modification : ajouter le nom du programme et la date.
[[Catégorie:Autotools en C (livre)|*]]
|