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 № 1Vous 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)