Partage
  • Partager sur Facebook
  • Partager sur Twitter

Bash : Créer son Makefile.

Créer une Makefile qui se remplit automatiquement

Sujet résolu
    18 mai 2018 à 14:48:14

    Bonjour,

    Je viens à vous aujourd'hui car j'ai une petite question concernant le bash. Je viens de m'y mettre, et je patauge encore un peu.

    Je suis en train de développer un programme nommé AutoMakefile, qui va créer un Makefile et le remplir automatiquement, avec dans les sources, tous les fichiers trouvés dans la racine du dossier dans lequel est placé le Makefile, ou dans un dossier-fils nommé 'src/'.

    Pour ceux qui ne savent pas ce qu'est un Makefile: Rendez-vous ici.

    J'ai réussi à faire toute l'architecture du Makefile grâce à la commande :

    echo "COMMANDE:        ACTION" >> Makefile

    Pas de soucis de ce côté là.

    Ce qui manque maintenant, c'est l'ajout automatique des fichiers. En effet, le Makefile doit trouver tout les fichiers .c et les ajouter dans les sources à compiler.

    (Je trouve ça mieux que de faire un

    gcc *.c -o NOM_DU_PROJET

    dans son Makefile, quitte à le faire, autant le faire proprement).

    J'ai donc essayé cette commande :

    echo `find . -type f -name ".c"` >> Makefile

    Comme vous vous en doutez, elle ne marche pas (et j'aurais bien fait rire les personnes qui s'y connaissent en bash avec ma connerie ;) ).

    Je l'ai essayé sous toutes ses moutures, mais rien n'y fait, il est donc fort probable que je me sois trompé dans ma commande.

    Après les explications du pourquoi du comment je m'y suis pris jusque là, la question.

    Connaissez-vous la commande qui permet de lister tout les fichiers ".c" d'un dossier/sous-dossier, et qui permet de les écrire dans un fichier ?

    Merci d'avance pour toutes vos réponses, et à bientôt !

    • Partager sur Facebook
    • Partager sur Twitter
      18 mai 2018 à 17:43:30

      `find -name '*.c'  >> Makefile
      

      Mais il existe déjà des générateur de Makefile: premake, cmake. Pour n'en citer que 2.

      Lister les .c n'est pas suffisant. Chaque .c dépend de divers .h qui peuvent changer. Modifier un .h doit faire recompiler les .c qui les utilises et il faut le marquer explicitement. Les compilateurs ont des options pour lister les .h qui dépendent d'un fichier.

      • Partager sur Facebook
      • Partager sur Twitter
        26 mai 2018 à 14:29:33

        jo_link_noir a écrit:

        `find -name '*.c'  >> Makefile
        

        Mais il existe déjà des générateur de Makefile: premake, cmake. Pour n'en citer que 2.

        Lister les .c n'est pas suffisant. Chaque .c dépend de divers .h qui peuvent changer. Modifier un .h doit faire recompiler les .c qui les utilises et il faut le marquer explicitement. Les compilateurs ont des options pour lister les .h qui dépendent d'un fichier.


        Bonjour,

        Je sais bien ça, mais ce serait uniquement pour un usage personnel, et je ne veux pas utiliser les générateurs conventionnels, je cherche à en créer un moi-même, car je viens de me mettre au bash, et je cherche à en apprendre un peu plus. Sinon, j'ai essayé cette commande et elle ne fonctionne pas.

        Concernant les .h, ça viendra par la suite, pour le moment je me concentre sur lister les .c

        Merci quand même de ta réponse.

        • Partager sur Facebook
        • Partager sur Twitter
          26 mai 2018 à 19:32:12

          Il y a un ` qui s'est inséré.

          • Partager sur Facebook
          • Partager sur Twitter
            4 juin 2018 à 18:03:04

            Bonsoir,

            En effet, après avoir retiré ce petit caractère, la commande marche. Même si la fonction fait le café, y aurait-il moyen de lui spécifier un dossier où chercher, ou non ?

            Merci d'avance.

            • Partager sur Facebook
            • Partager sur Twitter
              4 juin 2018 à 20:03:22

              Il faut apprendre à utiliser le manuel après (man find), ou les options -h, --help, -? selon la commande.

              • Partager sur Facebook
              • Partager sur Twitter
                8 juin 2018 à 19:07:58

                Hello !

                Merci de l'aide que vous avez pu m'apporter, c'est vraiment sympathique de votre part.

                J'ai enfin fini le script bash pour créer mon Makefile automatiquement, et je n'en suis pas peu fier !

                Merci à vous, sujet clos !

                A bientôt

                • Partager sur Facebook
                • Partager sur Twitter

                Bash : Créer son Makefile.

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown