All of lore.kernel.org
 help / color / mirror / Atom feed
* makefile
@ 2013-07-02 13:07 David kiarie
  2013-07-02 13:31 ` makefile Greg Freemyer
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: David kiarie @ 2013-07-02 13:07 UTC (permalink / raw)
  To: kernelnewbies

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'.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20130702/d9a5994f/attachment.html 

^ permalink raw reply	[flat|nested] 4+ messages in thread

* makefile
  2013-07-02 13:07 makefile David kiarie
@ 2013-07-02 13:31 ` Greg Freemyer
  2013-07-02 15:00 ` makefile Rajat Sharma
  2013-07-10  8:02 ` makefile Srinivas Ganji
  2 siblings, 0 replies; 4+ messages in thread
From: Greg Freemyer @ 2013-07-02 13:31 UTC (permalink / raw)
  To: kernelnewbies

On Tue, Jul 2, 2013 at 9:07 AM, 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'.

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* makefile
  2013-07-02 13:07 makefile David kiarie
  2013-07-02 13:31 ` makefile Greg Freemyer
@ 2013-07-02 15:00 ` Rajat Sharma
  2013-07-10  8:02 ` makefile Srinivas Ganji
  2 siblings, 0 replies; 4+ messages in thread
From: Rajat Sharma @ 2013-07-02 15:00 UTC (permalink / raw)
  To: kernelnewbies

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

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 at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>

-Rajat

^ permalink raw reply	[flat|nested] 4+ messages in thread

* makefile
  2013-07-02 13:07 makefile David kiarie
  2013-07-02 13:31 ` makefile Greg Freemyer
  2013-07-02 15:00 ` makefile Rajat Sharma
@ 2013-07-10  8:02 ` Srinivas Ganji
  2 siblings, 0 replies; 4+ messages in thread
From: Srinivas Ganji @ 2013-07-10  8:02 UTC (permalink / raw)
  To: kernelnewbies

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 at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20130710/b4749ea9/attachment.html 

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-07-10  8:02 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-07-02 13:07 makefile David kiarie
2013-07-02 13:31 ` makefile Greg Freemyer
2013-07-02 15:00 ` makefile Rajat Sharma
2013-07-10  8:02 ` makefile Srinivas Ganji

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.