no rule to make a target error

hi I’m compiling a simple kernel module but in the messages I have this error:
make[1]: *** No rule to make target ‘modules’. Stop.
i installed linux header,but i don’t understand the error.
thank you

Will need a little more info.

What directory were you in when you ran make.

What exact command did you use.

What is in your makefile.

Are you trying to build a custom kernel module, or just rebuild the Linux kernel modules.

Telling us the above will give us some pointers as to what is going wrong

debian@beaglebone:/hello$ ls
Makefile mymodule.c

obj-m += mymodule.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

this is Makefile

#include <linux/module.h>
#include <linux/init.h>

/* Meta Information */
MODULE_LICENSE(“GPL”);
MODULE_AUTHOR(“Johannes 4 GNU/Linux”);
MODULE_DESCRIPTION(“A hello world LKM”);

/**

  • @brief This function is called, when the module is loaded into the kernel
    */
    static int __init my_init(void) {
    printk(“Hello, Kernel!\n”);
    return 0;
    }

/**

  • @brief This function is called, when the module is removed from the kernel
    */
    static void __exit my_exit(void) {
    printk(“Goodbye, Kernel\n”);
    }

module_init(my_init);
module_exit(my_exit);

this is mymodule.c

i use command simple make for build my kernel module,
but i didn t tryed to build a custom kernel module

ln -s /usr/src/linux-headers-4.19.re.42/ /lib/modules/4.19.re.42/build 
but the same problem

Does that director exist ?
If you type ‘uname -r’ in a console it will tell you what string is being inserted.

uname -r
4.19.94-ti-r42

debian@beaglebone:/$ cd lib
debian@beaglebone:/lib$ cd modules
debian@beaglebone:/lib/modules$ ls
4.19.94-ti-r42
debian@beaglebone:/lib/modules$ cd 4.19.94-ti-r42
debian@beaglebone:/lib/modules/4.19.94-ti-r42$ ls
build modules.alias.bin modules.dep.bin modules.symbols
extra modules.builtin modules.devname modules.symbols.bin
kernel modules.builtin.bin modules.order
modules.alias modules.dep modules.softdep
debian@beaglebone:/lib/modules/4.19.94-ti-r42$

debian@beaglebone:/lib/modules/4.19.94-ti-r42$ cd build
debian@beaglebone:/lib/modules/4.19.94-ti-r42/build$ ls
linux-headers-4.19.94-ti-r42
debian@beaglebone:/lib/modules/4.19.94-ti-r42/build$

Is there a Makefile in /lib/modules/4.19.94-ti-r42/build ?

The “make -C /lib/modules/$(shell uname -r)/build” is trying to call a Makefile.
I think you are probably missing some stuff.

no ,no Makefile

only linux-headers-4.19.94-ti-r42

Ok, just trued installing the linux headers on my BBB.
I am running 5.10.140-ti-r52 and installing the kernel headers does give me a Makefile in build.

Have you checked in /lib/modules/4.19.94-ti-r42/build/linux-headers-4.19.94-ti-r42
Perhaps on older versions the Makefile is in a different location

ok how can i remove this version and install the new one, what are the commands?

or else I have to change the directory:

/lib/modules/3.8.13-bone47/build/linux-headers-4.19.94-ti-r42