Re: makefile

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jul 2, 2013 at 9:07 AM, 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
> endif
> It give the following output when I run make :
>
> make: Nothing to be done for `default'.

I guess you see ifneq($(KERNELRELEASE),).  And you see that the
"default:" statement is in the else clause of the if.

Thus I am guessing that you are invoking the makefile by hand and you
have the KERNELRELEASE variable set.

The logic used above requires KERNELRELEASE _not_ be defined when
manually invoking the makefile.  It should _only_ be set when invoked
by the kernel's overall build system which will set it internally.

Greg

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




[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux