Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 24/03/2006, à 10:32

gozillon

Qu'est-ce qu'un Makefile ?

Bonjour, j'ai adressé un message, il y a déjà quelques temps, pour savoir comment enregistrer dans Gimp deux greffons qui marchent très bien (je trouve) dans le portage Windows, mais il n'y a eu aucune réponse bien que le message ait été assez souvent lu. Je repose donc ma question autrement.
Qu'est-ce qu'un fichier Makefile ? comment l'intégrer et notamment comment transcrire en langage console ce que ma médiocre connaissance de l'anglo-saxon me permet de comprendre ? Merci. Gozillon.


A l'aube, ce qui naît cherche son nom (Octavio Paz)

Hors ligne

#2 Le 24/03/2006, à 11:10

Sebium

Re : Qu'est-ce qu'un Makefile ?

un makefile, c un fichier de configuration, qui fait appelle à différent fichier.
il se lance avec le logiciel Make.
on s'en sert en programmation ( genre c++) pour compiler une série de fichiers ...

J'espére avoir fait une bonne définition de la chose roll

Hors ligne

#3 Le 24/03/2006, à 22:24

gozillon

Re : Qu'est-ce qu'un Makefile ?

Merci, mais à partir de là, j'essaie en vain de comprendre les commandes et la syntaxe nécessaires pour inclure twist-2.0 dans le Gimp porté sur LInux-Ubuntu. Il faudrait surtout quelqu'un qui sache mais qui soit en même temps un pédagogue pour m'apprendre une partie de ce qu'il sait. J'espère...


A l'aube, ce qui naît cherche son nom (Octavio Paz)

Hors ligne

#4 Le 25/03/2006, à 00:12

YBM

Re : Qu'est-ce qu'un Makefile ?

Qu'est-ce que Twist ?

Il nécessite de recompiler gimp en changeant son Makefile ? Ou alors c'est de la compilation de ce Twist qu'il est question ? Pourquoi faut-il créer/modifier un Makefile en l'occurence (c'est rarrissime, même pour compiler un logiciel après application de patches) ?

Bref, de quoi s'agit-il et que veux-tu faire exactement ?

Hors ligne

#5 Le 25/03/2006, à 18:16

gozillon

Re : Qu'est-ce qu'un Makefile ?

Bonjour, il s'agit de la compilation de twist (un greffon pour Gimp2.2). Quand j'ouvre le Make file de ce greffon, je ne sais plus quoi faire avec. Les infos générales sur ce type de fichiers sont pour l'instant en dehors de ma compréhension (et portent d'ailleurs sur la manière d'en fabriquer : je n'en suis pas encore là!). Sur le make file il y a un paragraphe all , un paragraphe install et un paragraphe clean, avec des indications de commandes, mais si je les tape sur le Terminal, ça ne donne rien. Le but : conduire ce greffon dans l'arborescence de gimp.
C'est sans doute plus simple que je ne le crois, mais, pour l'instant, je ne vois pas. Merci.


A l'aube, ce qui naît cherche son nom (Octavio Paz)

Hors ligne

#6 Le 25/03/2006, à 20:37

YBM

Re : Qu'est-ce qu'un Makefile ?

tu n'as rien à modifier alors !
Lis simplement le fichier INSTALL et/ou README au cas où il y ait des particularités,
et ensuite :

make

et si pas d'erreurs

sudo make install

(ou installation dans ton répertoire ~/.gimp<TAB>)

(la commande "make" va lire le fichier Makefile, quand tu vois une cible dans le Makefile - un truc comme "install:" en début de ligne, c'est un argument que make peut prendre en compte).

fais "man make" pour avoir des précisions.

Hors ligne

#7 Le 25/03/2006, à 21:43

gozillon

Re : Qu'est-ce qu'un Makefile ?

Bonsoir et mille excuses pour ma maldresse.
J'ai lu le fichier ReadMe qui m'a renvoyé sur le fichier html de Twist : en anglais, bien sûr, :

How to compile and install
The twist plugin source code comes with a Makefile. In order to create and install the executable plugin proceed as follows:

   1. Read the readme and license files which come along with the twist tarball carefully. The readme file contains basic information on the current distribution. The license files contains important legal information.
   2. Edit the Makefile and review the header section. Change the paths as explained there. Since the newly 'acquired' Makefile version uses gimptool-2.0 most compiles should work without editing.
   3. type 'make ; make install' at the command prompt to create the binary and to install it.

If everything worked, the make utility should have created and installed the twist executable into your local plug-ins directory.

j'ai alors édité le fichier Makefile :


# This Makefile builds and installs the twist-2.0 plugin

all:
    gimptool-2.0 --build twist.c

install:
    gimptool-2.0 --install twist.c
   
clean:
    rm -rf *.o twist

En ligne de commande, si je fais make ou sudo make install il m'est répondu que "pas de règle pour
fabriquer la cible". Je sais qu'il faut des règles mais je n'arrive pas à comprendre ce dont il s'agit. Gozillon.


A l'aube, ce qui naît cherche son nom (Octavio Paz)

Hors ligne

#8 Le 25/03/2006, à 22:02

YBM

Re : Qu'est-ce qu'un Makefile ?

tu as sans doute bousillé le Makefile en l'éditant... les tabulations qui doivent débuter les lignes qui suivent une cible ont du sauter...

Repars de l'archive de départ de twist, et modifie *uniquement* dans le Makefile, si nécessaire, les positionnement de variables qu'il y a au tout début (on ne les voit même pas dans le Makefile que tu viens de coller...

Hors ligne

#9 Le 25/03/2006, à 22:12

YBM

Re : Qu'est-ce qu'un Makefile ?

Chez moi il s'installe (à condition d'avoir les paquets build-essential et libgimp2.0-dev) :

$ tar zxvf twist-2.0.tar.gz
$ cd twist-2.0
$ make
$ make install

Par contre il ne faut PAS être root (pas de sudo donc), le plugin devant s'installer dans ton répertoire perso dans ~/.gimp*/plug-ins/

Hors ligne

#10 Le 25/03/2006, à 22:53

gozillon

Re : Qu'est-ce qu'un Makefile ?

Pour que tu puisses aussi mesurer l'étendue de mes ignorances 1° qu'est-ce que ces fameuses tabulations ? 2° qu'est-ce que ces lignes qui doivent suivre une cible ? Cela dit j'ai installé les paquets que tu me dis et leurs dépendances. Mais :
henri@pc:~$ tar zxvf twist-2.0.tar.gz
tar: twist-2.0.tar.gz: ne peut open: Aucun fichier ou répertoire de ce type
tar: Erreur non récupérable: fin de l'exécution immédiate
tar: Child returned status 2
tar: Statut d'erreur reporté d'erreurs précédentes.
J'ai quand même l'impression d'avancer grâce à toi.


A l'aube, ce qui naît cherche son nom (Octavio Paz)

Hors ligne

#11 Le 25/03/2006, à 23:00

gozillon

Re : Qu'est-ce qu'un Makefile ?

Bon, c'est installé ! L'échec précédent était dû au fait que je faisais "ouvrir" le fichier compressé avant de l'installer sur le disque mais ensuite, ça  a marché comme sur des roulettes. Je te remercie encore plus.
Seul bémol dans mon enthousiasme : j'aimerais bien comprendre le système des fichiers Makefile. Mais, ça attendra un peu plus. En tout cas, chapeau YBM. J'espère pouvoir vite rendre ce genre de services.


A l'aube, ce qui naît cherche son nom (Octavio Paz)

Hors ligne

#12 Le 25/03/2006, à 23:35

YBM

Re : Qu'est-ce qu'un Makefile ?

en deux mots, suppose qu'un certain produit fini (aussi bien un programme, qu'un document pdf, le résultat de calcul), fichier "A" dépende d'un fichier intermédiaire "B" et d'un fichier de départ ("source") a et que B dépende, lui aussi, de fichier de départ ("source") x, y et z.

les sources peuvent être par exemple en C, et dans ce cas B peut être une bibliothèque de fonction et A un exécutable, mais ça pourrait aussi bien s'agir de fichier .tex, d'un fichier .dvi et d'un résultat en PostScript près à imprimer.

Un fichier Makefile de la forme :

A: B a
<tab>execution d'un truc qui combine B et a pour donner A

B: x, y, z
<tab>exécution d'un truc qui combine x, y et z pour donner B

install:
<tab>copie A au bon endroit

<tab> étant obtenu dans un éditeur de texte en tapant sur la touche de tabulation du clavier. Ainsi on peut mettre plusieurs commande.

à partir de là pour construire "A" il suffit de taper "make".

L'intérêt par rapport à un bête script, est que si je change le fichier a, le programme make ne va pas reconstruire B, tandis que si je modifie x il va reconstruire B, puis A : il tiens compte des dépendances et regarde les date de dernière modification des fichiers.

Hors ligne

#13 Le 26/03/2006, à 09:38

gozillon

Re : Qu'est-ce qu'un Makefile ?

Merci YBM, ça progresse dans ma cervelle et ça progresserait plus vite si j'arrivais à bien saisir ce qu'on entend sous Linux par "dépendances". Je subodore bien ce que c'est, mais ça reste trop vague pour moi. En tout cas, chapeau pour ton aide ... et pour ce forum où je me sens à l'aise.


A l'aube, ce qui naît cherche son nom (Octavio Paz)

Hors ligne