Introduction à Make

Posté par  (site web personnel) . Modéré par Amaury.
Étiquettes : aucune
0
5
fév.
2002
GNU
Un article sur O'ReillyNet nous présente le fameux Make...

"Make est à l'origine un système pour construire du code compilé. Il est aujourd'hui utilisé pour effectuer des changement dans de multiples fichiers et répertoires. Il est utile chaque fois qu'un changement dans un fichier nécessite des changements ou des actions ailleurs.

Make est utile aussi bien pour les administrateurs systèmes que pour les développeurs. Cette article commence par parler de Make en tant qu'outil de compilation, mais il peut être aussi très efficace pour l'installation de programmes ou le changement de configuration système."

Aller plus loin

  • # c'est nul make !

    Posté par  (site web personnel) . Évalué à 10.

    [coin@world:/tmp] $ make love
    make: don't know how to make love. Stop in /tmp.



    Un vrai make devrait savoir ça !
    • [^] # Re: c'est nul make !

      Posté par  (site web personnel) . Évalué à 10.

      Evidemment il est sous /tmp. Il lui faut plus de confort !


      [grosseB@viagra:/] $ cd /home/bed
      [grosseB@viagra:/home/bed] $ wget http://wiki.linuxfr.org/?BritneySpears(...)
      [grosseB@viagra:/home/bed] $ make love
      rhhhaaaaaa lovely !...


      Bon c'est vrai que le fichier Makefile est pas catholique...
      • [^] # Re: c'est nul make !

        Posté par  . Évalué à 6.

        bah c'est sur les makefile c'est moin drole que les scripts configure...
        celui de Eterm est assez marrant par exemple, mais c'est un plaisir reserver au compilateurs invétérés :)
        sinon j'ai une anecdote :
        Lobotomy devait faire un portage d'un prog unix sous winwin, (je sais, c'est MAL(tm)) et la hop son makefile marche pas parceque les lignes de cmd.exe sont trop courte, il a ete oblige de recuperer tout cygwin pour avoir un bash pour pouvoir compiler son truc :)
        bon ok ca fait rire que moi...
        allez -1
  • # Oh l'arnaque !

    Posté par  . Évalué à -3.

    D'abord c'est même pas en français, en plus il y a plein de pubs sur ce site !

    Quand au make, il y a des docs en français bien meilleures que ces deux pages (enfin ce qu'il en reste entre deux gratte-ciel).

    Et puis make, c'est obsolète, c'est Ant son remplacant (on m'aurait menti ?).
    • [^] # Re: Oh l'arnaque !

      Posté par  (site web personnel) . Évalué à 10.

      C'est vrai que Ant c'est carrément pas mal.
      J'ai essayé ça récemment, et j'ai été étonné de voir cet outil s'est magnifiquement tiré de la compilation/génération de choses diverses...
      Le tout basé sur un fichier XML qui est probablement plus pratique qu'un fichier Makefile original (vous connaissez les caractères qu'on voit pas et qui foutent la merde dans le fichier Makefile).
      Bref, Ant rulez...
    • [^] # Re: Oh l'arnaque !

      Posté par  . Évalué à 10.

      Quand au make, il y a des docs en français bien meilleures que ces deux pages (enfin ce qu'il en reste entre deux gratte-ciel).

      As tu une URL vers ces "docs en français bien meilleures" ? Fait nous partager !

      Par ailleurs ant n'est-il pas plutot orienté Java ? (juste une quesiton, je ne connais pas bien ant)
      • [^] # Google est ton ami

        Posté par  . Évalué à 6.

        je l'ai en papier, plus l'url, "techniques de production de programmes" par Matthieu Herrb du CNRS.

        Sinon la doc originale "GNU Make" de Richard M. Stallman et Roland McGrath, ah oui c'est en anglais, comme l'article proposé mais en plus complet :p).

        Et je ne vois pas pourquoi je devrais être le seul à me farcir les manuels de RMS !
      • [^] # Re: Oh l'arnaque !

        Posté par  . Évalué à 4.

        Google est votre ami !
        http://www.laas.fr/~matthieu/cours/make/(...)
        A qui on dit merci ?
  • # automake et autoconf rulaise

    Posté par  (site web personnel) . Évalué à 10.

    Alors la je suis desole, mais j'ai rarement vu des tools aussi puissants et interessants que ces deux la. Puissants, dispos sur tous les *nix a ma connaissance, pratique (pas toujours mais bon....)
    En tout cas merci a Hakim pour son travail de maintenance du projet :)
  • # Bien !

    Posté par  . Évalué à 9.

    Dommage que le lien indiqué dans l'article semble indiquer un document en français ! Sinon, l'article est bien fait, en anglais, mais bien fait. Je connaissais make et je l'utilisais avant, mais sans vraiment en conaitre tous les tenants et les aboutissants. L'article n'en fait pas le tour complet, loin s'en faut, mais il est assez bien fait et assez didactique.
    Quant-à ceux qui disent que Make est dépassé et que Ant va le remplacer, il faudrait quand même nuancer, car les sources de beaucoup de packages en .tgz utilisent pour la plupart cette commande pour se compiler et s'installer. Ca fait du bien de pouvoir comprendre un peu comment ça fonctionne !
    • [^] # Oui mais quoi euh !

      Posté par  . Évalué à 6.

      En fait je souhaite que Ant (ou un truc du genre) remplace make. Parceque moi j'en ai marre d'écrire des makefiles (et avec cygwin bien sur), et qu'autoconf et automake c'est encore une simplification qui n'en est pas une...

      Alors que le XML c'est tellement hype...

      Au fait, il pue le manuel de make écrit par RMS himself ?
      • [^] # Oui mais quoi euh !

        Posté par  . Évalué à 6.

        En fait je souhaite que Ant (ou un truc du genre) remplace make. Parceque moi j'en ai marre d'écrire des makefiles (et avec cygwin bien sur), et qu'autoconf et automake c'est encore une simplification qui n'en est pas une...

        Alors que le XML c'est tellement hype...


        J'en doute pas un instant ! Mais avoue quand même que make est un outil qui n'est pas si mal que ça ! Et surtout pratique à l'heure actuelle. Son avenir est peut être un peu ombragé à cause (ou grâce à ?!) ant, qu'en sais-je ?

        En tout cas, ce que je voulais dire, c'est justement que l'article m'a un peu ouvert les portes de ces variables bizarres propres aux makefiles !

        Au fait, il pue le manuel de make écrit par RMS himself ?

        J'sais pas, je ne l'ai jamais lu !
        • [^] # READ THE FUCKING MANUAL !

          Posté par  . Évalué à -7.

          RTFM

          d'abord. on causera après.
          • [^] # Re : READ THE FUCKING MANUAL !

            Posté par  . Évalué à -4.

            Pas la peine d'être agressif....
            Le manuel, je le lirai quand j'aurais besoin d'en savoir plus sur make, ce qui est loin d'être le cas en ce moment.
            Allez hop, -1, car hors sujet, mais j'aime pas qu'on m'fasse ch....
            • [^] # Branleurs

              Posté par  . Évalué à -6.

              t'aime pas qu'on te fasse ch... mais tu preferes qu'on te mache le boulot !

              alors je prefere passer pour un vieux con:

              RTFM

              mais tu veux peut-être que je te le résume ici ? Ca doit être ça "l'entraide" d'aujourd'hui, mais tu passes à coté de l'essentiel du truc : just do it.
          • [^] # Re: READ THE FUCKING MANUAL !

            Posté par  (site web personnel) . Évalué à -6.

            RTFM
            d'abord. on causera après.


            Ah, l'entraide, qu'est ce que c'est beau ;-))
            • [^] # A propos, la fortune qui allait avec...

              Posté par  . Évalué à 3.

              > A l'heure actuelle, il s'est formé une sorte "d'aristocratie" de Linux
              > qui essaye de maintenir ses connaissances pour elles et d'en priver les
              > autres en innondant chaque débutant de documentations
              -+- EF in Guide du liuxien pervers : "Comprenne qui pourra..." -+-
              • [^] # En effet, elle est très à propos.

                Posté par  . Évalué à -4.

                Je viens de relire tout le thread, et là, vraiment, (excuses moi d'être con aussi), mais je ne comprend pas pourquoi tu m'agresse sur le RTFM, alors que je ne donnais que mon avis de néophite sur la question. Je ne vois pas ce qu'il y a dans mes posts (ceux qui sont venus avant cette fâcheuse dispute) qui a pu te froisser à ce point. Je ne voulais pas polluer cette news avec un troll aussi nul, mais là, j'avoue que je ne comprend pas, et j'aimerai bien, pourtant !
                Allez hop, j'me colle -1 car hors sujet, mais j'avais besoin de savoir.
                • [^] # jargonfile ?

                  Posté par  . Évalué à 3.

                  mais je ne t'agresse pas !

                  j'essaye simplement de t'expliquer qu'avant d'aller chercher à gauche et à droite des formules magiques qu'expliquent tout en 2 secondes, il suffit de lire la doc qui va avec le bouzin. ce n'est pas parceque le manuel a été écrit par RMS qu'il est illisible (je ferme les yeux sur le troll Solaris). ce n'est pas sur les commentaires de DLFP que tu trouveras un cours en ligne ou un tutoriel. inutile de chercher de la doc quand on n'a même pas lu le man. et puis à la base de tout, l'article en englais pas en français qui est magnifié par cette news ne vaut pas cet honneur, à croire que ça été posté par un gars du coté de chez O'Reilly.net qui cherche des hits pour son site poubelle à pubs, et pourtant j'ai bien du respect pour cet éditeur, et pas qu'un peu, mais là trop c'est trop.

                  en résumé, RTFM. c'est tout, et c'est pas nouveau.
                  • [^] # Vu sous cet angle...

                    Posté par  . Évalué à 2.

                    Ok ! J'avais pas vu ça comme ça, mille excuses. Alors, là, je suis d'accord avec toi. (On va y arriver !). Il est évident que cet article est loin de tout couvrir, mais pour une première approche, il n'est pas mal. Disons que c'est suffisant pour celui qui écrit son premier prog en C sous Linux, et qui veut faire un makefile "correct" en comprenant ce qu'il fait.
                    Il est clair que si cette personne veut avancer un peu plus et en utiliser toute la puissance, il faudra se pencher vers autre chose (les pages de man et autres, comme tu le fais si bien remarquer !).
                    Moi, tout ce que j'utilise de la commande make, c'est juste ça : "make", quand je récupére des sources sur le www. Pour le reste, je laisse ça aux spécialistes, car je ne code pas (plus, sic !, sauf en php (ouaich) qui n'a pas besoin de compil). Ceci dit, ça m'est déjà arrivé d'avoir des makefiles foireux et de mettre des heures à comprendre. J'aurais eu cet article, ça m'aurait aidé, à ce moment là.
      • [^] # Re: le manuel de RMS

        Posté par  . Évalué à 2.

        Le manuel de RMS est très bien fait, bien clair, il donne plein d'idées.

        Mais, des qu'on commence à utiliser des "jolies choses" du make, une surprise vous attend au tournant : prenez le même make sur Solaris, et paf il n'y a plus une seule ligne qui marche.

        --> Si vous n'avez pas envie de vous farcir automake et autoconf, et que vous souhaitez écrire des make portable, évitez absolument la doc de RMS !!
        • [^] # Re: le manuel de RMS

          Posté par  . Évalué à 2.

          Ce que tu nommes «jolies choses» sont ce que l'on appelle plus cruement des «extensions gnu make». Le comportement de make, ainsi que la syntaxe des Makefile, est normalisé dans Single Unix Specification v2.

          Le gnu make y ajoute un certain nombre d'extensions de son cru, dont certaines sont intéressantes, mais qui ne sont dès lors plus portable, puisque ne pouvant fonctionner que si l'on utilise gnu make...
          • [^] # Re: le manuel de RMS

            Posté par  . Évalué à 3.

            La solution idéale parait simple : make est un logiciel libre, on peut l'utiliser sur solaris.
        • [^] # portable

          Posté par  . Évalué à 4.

          bof, le problème vient soit du make soit du shell.
          - le make, il suffit d'installer le GNU Make
          - le shell, un bash suffit

          sinon pour abonder dans ton sens, j'ajouterai que la situation que tu décris est exactement la même avec nmake/win32 de MS...sauf que là on aurait une conclusion bien différente non ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.