2017-03-09 1 views
0

Je suis en train de construire un pilote linux et je veux y incorporer un fichier .asm qui devrait être construit en utilisant yasm. Comment dois-je spécifier cela dans le Makefile? Actuellement, il est dit "No rule to make target" puisqu'il s'agit d'un fichier asm et non d'un fichier S. Si je change son suffixe en .S, il essaie de le construire en utilisant l'assembleur par défaut et il échoue parce qu'ils ont une syntaxe différente. Que dois-je faire pour que cela fonctionne?construction module linux noyau avec un fichier d'assemblage yasm

+1

Ajouter une règle qui utilise yasm pour le construire? – Jester

+0

J'ai ajouté une règle: xo: x.asm \t yasm -f elf64 $ <-o $ @ mais cela n'a pas aidé: make [6]: *** Aucune règle pour rendre la cible 'x.o ' , nécessaire à 'yo ' –

Répondre

0

fichiers d'objets qui ne sont pas construisent avec le système kbuild devrait avoir le nom

<x>.o_shipped 

Dans les règles kbuild ces fichiers doivent être appelés sans _shipped suffixe:

<y>-m := <x>.o 

Voir Documentation/kbuild.modules.txt (section « binaire Blobs ") pour plus d'informations.