El siguiente Makefile no funciona y no estoy seguro de lo que está pasando

El siguiente Makefile no funciona y no estoy seguro de lo que está pasando
obj-m += task.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

Makefile:3: *** falta el separador. Detener.

Respuesta1

Compruebe que tiene el carácter de tabulación real delante de la entrada, por ejemplo

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

Tiene que ser \t, el carácter Tabulador, no simplemente espacios.

Para verificar, puede ejecutar cat -T Makefile:

$ cat -T Makefile 
all:
^Iecho "foo"
foo:
^Iecho "bar"

^Iindica un carácter de tabulación. Comprueba esotodoLas líneas que siguen a un objetivo tienen sangría de tabulación.

información relacionada