Vous trouverez ci-aprés une introduction aux outils automake / autoconf qui vous permettrons de créer des makefile sous linux en toute facilité.
* Base de programmation C ou C++.
* Connaissance de linux.
* Maîtrise des commandes shell de bases (manipulation de fichier et repertoire ).
Les outils automake / autoconf permettent de crée un ou plusieurs fichiers
Makefile et cela à partir de fichiers script.
* Autoconf : outils qui permet de vérifier la
portabilité en effectuant de nombreux tests sur les
spécifités de la machine ou l'on
désire installer notre application.
* Automake : outils qui génère un makefile
à partir de la description de la structure faite par le
développeur.
Le schéma ci-dessous présente le fonctionnement de l'outil automake / autoconf :
processus d'autoconf automake
Maintenant que nous vous avons fait une brève présentation d'automake / autoconf nous allons vous donner une méthode qui vous permettra de réaliser vos makefile facilement.
La premiére des choses à faire est de créer un repertoire pour le projet que vous desirez réliser. Dans ce répertoire je vous conseille de créer un sous répertoire dans lequel vous mettrez vos sources.
Le premier des fichiers à générer est le fichier
configure.in qui décrit les options et les
caractéristiques du système à tester
pour l'installation.
Pour commencer, lancer la commande autoscan qui génère
configure.scan. Ce fichier sert de prototype au fichier configure.in.
En effet, la commande autoscan cette commande scan les fichiers sources
en cherchant les problèmes de portabilité.(bat
> commande : représente les commandes à
exécuter dans le shell)
une fois le fichier configure.scan crée une copie de celui-ci en le renomment configure.in c'est dans ce fichier que vous apporterez les modifications.
il vous faut ajouter plusieurs lignes:
AC_PROG_CC : qui permet de chercher le compilateur C de la machine
AM_INIT_AUTOMAKE(exemple, 1.0) : qui permet de définir le
nom est le numéro de la version du package.
De plus, les lignes de commentaire commencent par dnl
les macros qui commencent par AC_ sont celles d'autoconf et celles qui commencent par
AM_ sont celles d'automake.
exemple de fichier configure.in :
Ce fichier est
nécessaire lorsqu'on utilise Automake ou lorsque l'on
désire utiliser c'est propres macros. Lancer la commande
aclocal :
Une fois les fichiers configure.in et aclocal.m4 crée il suffit de lancer la commande autoconf pour obtenir le fichier configure:
Ce fichier décrit comment le code du makefile doit être construit.
Quelques régles à suivre :
- Pour chaque makefile.am, on doit faire correspondre la macro AC_OUPUT dans
configure.in
- Les lignes commençant par ## sont des lignes de commentaires
- On place un fichier makefile.am, dans le repertoire racine du projet et un autre
dans chaque sous-répertoire qui contient des sources à compiler.
Le fichier makefile.am, du repertoire racine du projet est simple il comprend les 2 lignes suivante :
Dans chaque sous répertoire on doit créer un fichier makefile.am comme dans l'exemple ci-dessous :
- bin_PROGRAMS : définie les programmes à créer pour le projet. Aprés le = on place les diffèrents noms des programmes que l'on désire générer avec le makefile.
- lib_LIBRARIES : definie les librairies à créer pour le projet. Aprés le = on place les différents noms des librairies que l'on désire générer avec le makefile.
- xxxx_SOURCES : ici on définie les fichiers sources qui composent le programme ou la librairie. remplacer XXXX par le nom du programme ou de la librairie.
- xxxx_LDADD : ici on définie les librairies à ajouter aux programmes xxxx.
-les flags LIBS, CFLAGS, LDFLAGS sont utiliser pour tous les programmes et librairie du fichier makefiles.am. Mais ils peuvent être dé finie pour un programme ou une librairie pour cela il suffit de lui indiquer le nom que l'on désire définir exemple : xxxx_LIBS.
Ensuite il ne reste plus qu'à lancer la commande automake :
Pour finir, il suffit de lancer la commande configure pour générer les makefiles.
Maintenant il ne vous reste plus qu'à compiler votre programme avec la commande make
- Créer un fichier autogen.sh qui vous permettra de régénérer les fichiers Autoconf / Automake. N'oublier pas de faire un chmod pour qui ce fichier puisse s'exécute.
- Vous pouvez récuperer le repertoire type que j'ai crée en cliquant-ci.