Création de package GNU

L’installation de packages GNU est toujours la même:

# ./configure
# make
# make install

Nous allons dans ce post étudier comment créer un package GNU respectant ce processus d’installation. Nous allons pour cela nous servir des utilitaires autoconf et automake.

Dans notre exemple, nous allons faire un package du plus célébre des programmes: helloword !
Ce programme se compose des fichiers suivants: helloword.c et helloword.h (je ne vous ferais pas l’affront de vous en donner le code source…).

La première chose à faire est d’organiser votre arborescence:

./helloword/
./helloword/AUTHORS
./helloword/README
./helloword/ChangeLog
./helloword/NEWS
/helloword/src/helloword.c
./helloword/src/helloword.h

Les fichiers AUTHORS, README, ChangeLog et NEWS sont standards et contiennent:

  • AUTHORS: Les informations sur l’auteur du package.
  • README : Description du package.
  • ChangeLog: Historique des changements (version par version).
  • NEWS: Nouveautés de la dernière version.

Nous allons maintenant configurer le fichier configure.in (à la racine de votre arborescence) qui servira de squelette à l’utilitaire autoconf (vous pouvez aussi vous servir de l’utilitaire autoscan qui générera ce fichier automatiquement):

# vi ./configure.in
AC_INIT(configure.in)
AM_INIT_AUTOMAKE(helloword, 1.0)
AC_PROG_CC
AC_PROG_INSTALL
AC_OUTPUT([
Makefile
src/Makefile
])

La macro AC_PROG_CC permet de vérifier lors de l’installation que l’ordinateur cible à bien un compilateur C.
La macro AC_PROG_INSTALL permet de vérifier lors de l’installation que l’ordinateur cible à bien l’utilitaire d’installation de binaire.

On lance ensuite la commande aclocal/autoconf, qui va elle même générer de nouveaux fichiers dans votre arborescence:

# aclocal && autoconf

Il faut alors editer les fichiers ./Makefile.am et ./src/Makefile.am de la facon suivante:

# vi ./Makefile.am
SUBDIRS= src# vi ./src/Makefile.am
bin_PROGRAMS = helloword
helloword_SOURCES = helloword.h helloword.c
helloword_CPPFLAGS = “
helloword_LDADD = “

La ligne CPPFLAGS permet d’ajouter des arguments lors de la pre-compilation.
La ligne LDADD permet d’ajouter des arguments lors de l’édition de lien.

On génére alors le fichier ./configure avec la commande:

# automake -a -c

Pour tester votre tout nouveau tout beau package, il suffit de lancer les trois commandes magique:

# ./configure
# make
# make install

Et voila le travail, il ne vous reste plus qu’a publier votre beau logiciel sur un des nombreux sites hébergeant les softs open-source (par exemple http://www.sourceforge.net/).

Pour résumer voici un diagramme résumant le processus:

2 commentaires


  1. khalid, le 26/02/2007 (#25)

    Salut nicolas,
    Un seul mot résume tes billets : bravo et merci!
    Ops, ça fait deux mot ;-)
    Vraiment c’est très simple et complet..
    à quand un CMS libre avec des tags et le reste..
    Et tant que tu y es, un look moins dark serait le binevenue..
    En tout cas ce n’est pas ce qui changera mon avis sur ton blog ..


  2. Nicolargohttp://www.nicolargo.com/, le 26/02/2007 (#26)

    Merci Khalid fidéle lecteur :)

    Effectivement le passage en CMS libre est une de mes priorité. Mais je n’ai pas le temps de m’en occuper en ce moment. En effet une migration implique pas mal de boulot pour ne pas perdre l’indexation dans les moteurs de recherche. Mais je suis en train de réunir des infos pour que la migration se fasse de manière transparente pour tout le monde.

    En ce qui concerne le look sombre, c’était un choix à la naissance du blog. Je pense y travailler prochainement !

    Nicolas


Laisser un message

Les informations saisies resteront privées.