On Tue, Jul 2, 2013 at 6:37 PM, David kiarie <davidkiarie4@xxxxxxxxx> 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 Press a tab here just before $(MAKE) and remember your editor (e.g. vim) should not have setting to convert tabs into spaces. Makefile strictly requires a tab. You must be knowing all these already since you are familiar with Makefiles. > endif > It give the following output when I run make : > > make: Nothing to be done for `default'. > > > _______________________________________________ > Kernelnewbies mailing list > Kernelnewbies@xxxxxxxxxxxxxxxxx > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies > -Rajat _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies