Est-il possible de définir CFLAGS à un module Linux noyau Makefile?
Par exemple: une commune périphérique du module Makefile
obj-m:=jc.o
default:
$(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(shell pwd) modules
clean:
$(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(shell pwd) modules clean
Je considère que si je peux mettre CFLAGS pour le fichier. Quand je change de par défaut section de
$(MAKE) -O2 -C /lib/modules/$(shell uname -r)/build M=$(shell pwd) modules
Mais il ne fonctionne pas.
De l'aide? Merci beaucoup.
source d'informationauteur | 2013-08-28
Vous devez vous connecter pour publier un commentaire.
-O2
serait une option àmake
(ou$(MAKE)
comme vous l'utilisez) dans ce que vous avez essayé. Évidemment, le compilateur (probablementgcc
) les besoins de cet indicateur, pasmake
.Kbuild comprend une variable nommée
CFLAGS_modulename.o
pour ajouter spécifiques C drapeaux lors de la compilation de cette unité. Dans votre cas, votre module objet serajc.o
de sorte que vous pouvez spécifier:et cela devrait fonctionner. Ajouter
V=1
à votre$(MAKE)
lignes pour obtenir une sortie verbeuse et vous devriez voir-O2
quandjc.c
est en cours de compilation.Vous pouvez trouver plus d'informations sur la compilation de modules dans la documentation officielle.
Vous pouvez également utiliser
Ce sera appliqué à tous les fichiers source compilé pour votre module avec le Makefile. C'est indirectement documenté dans le lien fourni par l'eepp dans La Section 4.2