Hi David,

As Rajat said, we need to give TAB space before an executable command in the Makefile. However, here is the simple Makefile, for your reference.

KDIR:=/lib/modules/$(shell uname -r)/build

obj-m:=hello.o

default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules

I hope this helps to you.

Regards,
Srinivas



On Tue, Jul 2, 2013 at 6:37 PM, David kiarie <davidkiarie4@gmail.com> wrote:
Hi everybody,
I currently started learning how to write Linux drivers.I am following Linux Device Drivers Third Edition.
I have everything set right but the makefile provided seem not to work.I am familiar with makefiles but the kernel build system confuses me
Here is the makefile:

# If KERNELRELEASE is defined, we've been invoked from the
# kernel build system and can use its language.
ifneq ($(KERNELRELEASE),)
obj-m := hello.o
# Otherwise we were called directly from the command
# line; invoke the kernel build system.
else
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
endif
It give the following output when I run make :

make: Nothing to be done for `default'.


_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies