Script MakeFile C/C++

7 sujets de 1 à 7 (sur un total de 7)

  • AmiDARK

      #182362

      J’aimerais quérir l’aide d’une personne s’y connaissant en scripts “makefile” pour des projets en C.

      J’aimerais que ce script puisse compiler plusieurs fichiers .c -> .o
      et qu’au final, il prenne tous ces fichiers .o qu’il regrouperait dans un .a

      Quelqu’un saurait comment s’y prendre ?

      @+
      AmiDARK

      thellier

        #182365

        Salut y doit y avoir mieux et plus recent mais moi j utilise gccopts de geekgadget/Gcc

        mais je l avais aussi mis la
        http://uae.is.free.fr/UAE-archives.htm
        http://uae.is.free.fr/WinUAE_fran.htm
        Pour os4 suffit d enlver les options 68020 68881 etc et alors ca compile aussi en ppc

        Alain

        AmiDARK

          #182366

          ???

          modulo

            #182372

            Pour ma part , j’utilise le Make de GNU, qui doit surement exister sur Amiga. (vu les extensions que tu cites, tu utilises peut-être GCC).

            La doc est ici:

            http://www.gnu.org/software/make/manual/make.html

            Pour compiler en statique, il faut faire une archive. Une archive est un regroupement de fichiers objets. L’utilitaire GNU concerné est «ar».

            Voici un makefile simple qui pourra te servir d’inspiration:


            sources=$(wildcard *.c)
            objs=$(sources:.c=.o)
            libname=amidark

            CFLAGS=-O2
            LDFLAGS=-lGL -lm

            all: $(objs)
            ar cr lib$(libname).a $(objs)
            #pas obligatoire (création d'un index pour accélérer les accès)
            ranlib lib$(libname).a

            %.o: %.c
            gcc -c $(CFLAGS) $<

            clean:
            rm -f *.o lib$(libname).a

            Attention, il faut une tabulation avant chaque commande. Seules les déclarations et les étiquettes n’ont pas de tabulation avant.

            Si quelqu’un peut m’expliquer comment ajouter ici des tabs (ou des espaces) en début de ligne, ça m’intéresse. Rien à faire , même avec la balise «code».

            AmiDARK

              #182374

              Modulo, Merci.
              Effectivement j’utilise le format archive (.a) qui est généré par ar.

              Si je ne me trompe pas, je peux remplacer le wildcard de : sources=$(wildcard *.c)
              par les noms de fichiers .c à compiler. non ?

              Merci.

              @+

              modulo

                #182375

                Oui bien sûr, si tu ne veux pas récupérer toutes les sources, tu peux mettre les noms des fichiers à utiliser à la place du wildcard.

                Si tu as le temps, jette un œil à la doc GNU, elle est très bien faite et contient toutes sortes de facilités méconnues de Make. Tu peux même faire des templates de rêgles de génération avec Make (je ne te cache pas qu’à ce stade, ça devient assez chaud).

                AmiDARK

                  #182376

                  Oui je m’en doute.
                  Bon j’arrive à faire un makefile pour mes besoins pour l’AmiDARK Engine mais avec l’évolution du projet, je vais devoir restructurer un peu et justement le make dera gérer les modules séparément et tout mettre dans le même .a (archive)…

                  Merci pour les infos.
                  @+

                7 sujets de 1 à 7 (sur un total de 7)

                • Vous devez être connecté pour répondre à ce sujet.

                Forums AmigaOS, MorphOS et AROS Développement Script MakeFile C/C++

                Amiga Impact