Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

autoconf automake ?

4 réponses
Avatar
R12y
Bonjour,

Attention: Xpost + fu2

Je souhaite rendre ma diversité de petits scripts packageables, aussi bien
en packages debian qu'en rpm.
Mais avant tout je souhaiterai les rendre make compliant.
y a t il une structure type pour être make compliant?
Typiquement je parle du script "./configure". Je me doute un peu qu'il est
autogénéré par quelquechose, mais je ne sais pas par quoi... Et pour que
son autogénération soit fiable, il faut bien que les sources obéissent à
une certaine règle, c'est cette règle que je souhaite connaitre.
Dans les ouvrage que j'ai rencontré, onparle beaucoup de la manière de
faire un Makefile, mais pas ce que je cherche :-).

Auriez-vous des liens qui pourraient m'indiquer comment faire un beau
"./configure" et une belle arborescence qui n'obligent pas les packagers à
rajouter des lignes tordues dans leur "specfile" (pour RPM) et le "rules"
(des Debian)?

Merci.

--
Trois liens interessants:
http://www.onirik.net/article.php3?id_article=817
http://www.maemo.org/platform/docs/howtos/howto_new_application.html
http://www.linuxdevices.com/files/article057/index.html

4 réponses

Avatar
lhabert
Mon avis d'installeur sur des OS légèrement exotiques est que
autoconf/automake est une sombre bouze qui ne marche que sous linux avec
l'install canonique, c'est-à-dire que le seul cas où ça marche est le cas où
il ne sert à rien...
Avatar
Emmanuel Fleury
R12y wrote:

Je souhaite rendre ma diversité de petits scripts packageables, aussi bien
en packages debian qu'en rpm.
Mais avant tout je souhaiterai les rendre make compliant.
y a t il une structure type pour être make compliant?


Il existe pas mal de conventions pour ce qui est des makefile. Les GNU
en parlent dans le manuel de Make.

Typiquement je parle du script "./configure". Je me doute un peu qu'il est
autogénéré par quelquechose, mais je ne sais pas par quoi...


Il est généré par des scripts GNU m4 à partir du configure.in.

Et pour que
son autogénération soit fiable, il faut bien que les sources obéissent à
une certaine règle, c'est cette règle que je souhaite connaitre.


Je te conseille fortement de lire les documentations suivante (pas de
manière exhaustive, mais plutôt à utiliser comme un guide pour
comprendre des scripts déjà existant et les adapter):

http://www.gnu.org/software/make/manual/make.html
http://www.gnu.org/software/automake/manual/automake.html
http://www.gnu.org/software/autoconf/manual/index.html

Ainsi que:

http://sources.redhat.com/autobook/

Dans les ouvrage que j'ai rencontré, onparle beaucoup de la manière de
faire un Makefile, mais pas ce que je cherche :-).


J'avoue ne pas avoir très bien compris ce que tu cherches. :)

Auriez-vous des liens qui pourraient m'indiquer comment faire un beau
"./configure" et une belle arborescence qui n'obligent pas les packagers à
rajouter des lignes tordues dans leur "specfile" (pour RPM) et le "rules"
(des Debian)?


Le mieux est de partir d'un script déjà existant et de l'adapter
(surtout si tu débutes). Au fur et à mesure que tu apprendra les macros,
ton script s'affinera.

Amicalement
--
Emmanuel Fleury

I'm rather embarrassed, General Solo, but it seems you are
to be the main course at a banquet in my honor.
-- C-3PO, Star Wars (George Lucas)

Avatar
Emmanuel Fleury
Luc Habert wrote:
Mon avis d'installeur sur des OS légèrement exotiques est que
autoconf/automake est une sombre bouze qui ne marche que sous linux avec
l'install canonique, c'est-à-dire que le seul cas où ça marche est le cas où
il ne sert à rien...


Hum, c'est un peu tranché comme avis et largement provocateur.
Néanmoins, je suis en partie d'accord avec toi. Autoconf/Automake ont de
TRÈS nombreux problèmes et une complexité de mise en oeuvre qui dépasse
ce que cela devrait être. Mais il n'existe pas non plus (à l'heure
actuelle) d'alternative à ce système... (du moins pas d'alternative qui
soit suffisamment répandue pour se poser comme un futur standard).

Par contre, je ne suis pas du tout d'accord avec ton argument de dire
que cela ne marche que sous Linux. À priori, le système marche sur
n'importe quel système correctement installé.

Voici quelques exemples d'alternatives:
http://freshmeat.net/search/?q=build+system&section=projects&Go.x=0&Go.y=0

Amicalement
--
Emmanuel Fleury

I worry about my child and the Internet all the time, even though
she's too young to have logged on yet. Here's what I worry about.
I worry that 10 or 15 years from now, she will come to me and say
'Daddy, where were you when they took freedom of the press away
from the Internet?'.
-- Mike Godwin

Avatar
lhabert
Emmanuel Fleury :

Par contre, je ne suis pas du tout d'accord avec ton argument de dire
que cela ne marche que sous Linux. À priori, le système marche sur
n'importe quel système correctement installé.


Bah je souffre régulièrement lorsque j'installe des trucs sur des solaris et
des freebsd (qui ont un /usr/local/ organisé de manière complètement
atypique, certes).