/ / Makefile pour compiler chaque fichier source c dans un module de noyau Linux - c, makefile, linux-kernel

Makefile pour compiler chaque fichier source c dans un module de noyau Linux - c, makefile, linux-kernel

J'ai un répertoire plein de fichiers source c, chacun pouvant être compilé dans un module de noyau indépendant, le Makefile suivant ne fonctionne pas:

sources := $(wildcard *.c)
obj-m += $(patsubst %.c,%.o,$(sources))

all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

Mais si j'utilise obj-m += mod1.o mod2.o cela fonctionnera.

Réponses:

1 pour la réponse № 1

Vous pouvez utiliser l'extrait ci-dessous de makefile

obj-m += $(subst .c,.o, $(wildcard *.c))

subst remplacera .c suffixes avec .o


0 pour la réponse № 2

essayez d'utiliser quelque chose comme:

obj-m += $(sources:.c=.o)