Salut,
Malgré plusieurs relecture du tutoriel sur le makefile, je ne m'en sors pas, impossible d'avoir le moindre déclic. Je pose le contexte:
Mon premier ordinateur fut un Atari 800, j'ai fait beaucoup d'assembleur dans les années 80. Je viens de trouver cc65, un des très rares compilos pour le 6502 de l'Atari, ce qui relance bien sûr mon intérêt pour ce dinosaure. Je fais le "hello world" en invoquant à la main le compilateur et le linkeur, j'obtiens mon fichier exécutable que je pose sur une image disque pour un émulo Atari et ça marche nickel.
Le principe de cc65, c'est un compilo et un linker séparés. On invoque le compilo qui transforme les sources C en asm, puis le linker qui traite tous les asm pour produire le fichier exécutable.
pour compiler un hello word:
cc65 -t atari -o hello.s hello.c
on cree le source assembleur hello.s à partir du source C hello.c pour la cible atari
pour le linker:
cl65 -t atari -o hello.com hello.s
on cree le fichier exécutable hello.com à partir du source asm hello.s pour la cible atari
Rien d'inhabituel, je pense, enfin rien qui ne me choque. Plutôt que de toujours faire à la main, j'aimerai faire un makefile, d'autant que pour ce genre de cible on mélange allègrement C et assembleur et que j'aime bien utiliser codeblocks qui offre la possibilité de rajouter un compilo et d'avoir un makefile custom. Donc, n'ayant rien compris au makefile (il y en a bien un exemple livré avec cc65, dans le répertoire des samples de code, mais ça reste du chinois pour moi), j'ai plusieurs questions qui me viennent:
Peut on donner au makefile une liste de fichiers C à compiler puis une liste de fichiers asm à linker? Et si oui, comment? Sachant que les asm sont plus nombreux que les fichiers C, donc les listes sont différentes.
A+
Pfeuh
Partager