All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Kbuild: remove extra ifdef/endif of top Makefile
@ 2009-05-26  8:03 Cheng Renquan
  2009-05-27 10:00 ` Cheng Renquan
  2009-06-05 21:56 ` Sam Ravnborg
  0 siblings, 2 replies; 3+ messages in thread
From: Cheng Renquan @ 2009-05-26  8:03 UTC (permalink / raw
  To: linux-kbuild, Sam Ravnborg; +Cc: Andrew Morton, linux-kernel, crquan

From: Cheng Renquan <crq@kernel.org>

The GNU make's origin function know undefined variable well,
so the outer ifdef/endif is unneeded.

I've checked the minimal requirements from Documentation/Changes
is GNU make 3.79.1, and that version of GNU make has support of
origin function already, so now it's safe to kill the outer
conditional checking, without upgrading the minimal requirements.

Signed-off-by: Cheng Renquan <crq@kernel.org>
---
 Makefile |   26 +++++++++-----------------
 1 files changed, 9 insertions(+), 17 deletions(-)

diff --git a/Makefile b/Makefile
index 9b2b58c..3798f26 100644
--- a/Makefile
+++ b/Makefile
@@ -35,10 +35,8 @@ MAKEFLAGS += -rR --no-print-directory
 # To put more focus on warnings, be less verbose as default
 # Use 'make V=1' to see the full commands
 
-ifdef V
-  ifeq ("$(origin V)", "command line")
-    KBUILD_VERBOSE = $(V)
-  endif
+ifeq ("$(origin V)", "command line")
+  KBUILD_VERBOSE = $(V)
 endif
 ifndef KBUILD_VERBOSE
   KBUILD_VERBOSE = 0
@@ -54,10 +52,8 @@ endif
 # See the file "Documentation/sparse.txt" for more details, including
 # where to get the "sparse" utility.
 
-ifdef C
-  ifeq ("$(origin C)", "command line")
-    KBUILD_CHECKSRC = $(C)
-  endif
+ifeq ("$(origin C)", "command line")
+  KBUILD_CHECKSRC = $(C)
 endif
 ifndef KBUILD_CHECKSRC
   KBUILD_CHECKSRC = 0
@@ -69,12 +65,10 @@ endif
 ifdef SUBDIRS
   KBUILD_EXTMOD ?= $(SUBDIRS)
 endif
-ifdef M
-  ifeq ("$(origin M)", "command line")
-    KBUILD_EXTMOD := $(M)
-  endif
-endif
 
+ifeq ("$(origin M)", "command line")
+  KBUILD_EXTMOD := $(M)
+endif
 
 # kbuild supports saving output files in a separate directory.
 # To locate output files in a separate directory two syntaxes are supported.
@@ -98,10 +92,8 @@ ifeq ($(KBUILD_SRC),)
 
 # OK, Make called in directory where kernel src resides
 # Do we want to locate output files in a separate directory?
-ifdef O
-  ifeq ("$(origin O)", "command line")
-    KBUILD_OUTPUT := $(O)
-  endif
+ifeq ("$(origin O)", "command line")
+  KBUILD_OUTPUT := $(O)
 endif
 
 # That's our default target when none is given on the command line

-- 
Cheng Renquan, Shenzhen, China

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

* Re: [PATCH] Kbuild: remove extra ifdef/endif of top Makefile
  2009-05-26  8:03 [PATCH] Kbuild: remove extra ifdef/endif of top Makefile Cheng Renquan
@ 2009-05-27 10:00 ` Cheng Renquan
  2009-06-05 21:56 ` Sam Ravnborg
  1 sibling, 0 replies; 3+ messages in thread
From: Cheng Renquan @ 2009-05-27 10:00 UTC (permalink / raw
  To: Cheng Renquan; +Cc: linux-kbuild, Sam Ravnborg, Andrew Morton

A better description:

The GNU make's origin function know undefined variable well,
so the outer ifdef/endif conditional checking is unneeded.

From `info make` documentation, origin will return

  `undefined'
     if VARIABLE was never defined.
  `command line'
     if VARIABLE was defined on the command line.
   ...

Therefore, $(origin V) will get a value anyway, killing ifdef/endif is
viable and safe.

Furthermore, I've checked the minimal requirements from
Documentation/Changes is GNU make 3.79.1, and that version of GNU make
has support of origin function well already, so now it's safe to kill
the outer conditional checking, without upgrading the minimal
requirements.

Signed-off-by: Cheng Renquan <crq@kernel.org>

> ---
>  Makefile |   26 +++++++++-----------------
>  1 files changed, 9 insertions(+), 17 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 9b2b58c..3798f26 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -35,10 +35,8 @@ MAKEFLAGS += -rR --no-print-directory
>  # To put more focus on warnings, be less verbose as default
>  # Use 'make V=1' to see the full commands
>
> -ifdef V
> -  ifeq ("$(origin V)", "command line")
> -    KBUILD_VERBOSE = $(V)
> -  endif
> +ifeq ("$(origin V)", "command line")
> +  KBUILD_VERBOSE = $(V)
>  endif
>  ifndef KBUILD_VERBOSE
>   KBUILD_VERBOSE = 0
> @@ -54,10 +52,8 @@ endif
>  # See the file "Documentation/sparse.txt" for more details, including
>  # where to get the "sparse" utility.
>
> -ifdef C
> -  ifeq ("$(origin C)", "command line")
> -    KBUILD_CHECKSRC = $(C)
> -  endif
> +ifeq ("$(origin C)", "command line")
> +  KBUILD_CHECKSRC = $(C)
>  endif
>  ifndef KBUILD_CHECKSRC
>   KBUILD_CHECKSRC = 0
> @@ -69,12 +65,10 @@ endif
>  ifdef SUBDIRS
>   KBUILD_EXTMOD ?= $(SUBDIRS)
>  endif
> -ifdef M
> -  ifeq ("$(origin M)", "command line")
> -    KBUILD_EXTMOD := $(M)
> -  endif
> -endif
>
> +ifeq ("$(origin M)", "command line")
> +  KBUILD_EXTMOD := $(M)
> +endif
>
>  # kbuild supports saving output files in a separate directory.
>  # To locate output files in a separate directory two syntaxes are supported.
> @@ -98,10 +92,8 @@ ifeq ($(KBUILD_SRC),)
>
>  # OK, Make called in directory where kernel src resides
>  # Do we want to locate output files in a separate directory?
> -ifdef O
> -  ifeq ("$(origin O)", "command line")
> -    KBUILD_OUTPUT := $(O)
> -  endif
> +ifeq ("$(origin O)", "command line")
> +  KBUILD_OUTPUT := $(O)
>  endif
>
>  # That's our default target when none is given on the command line

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

* Re: [PATCH] Kbuild: remove extra ifdef/endif of top Makefile
  2009-05-26  8:03 [PATCH] Kbuild: remove extra ifdef/endif of top Makefile Cheng Renquan
  2009-05-27 10:00 ` Cheng Renquan
@ 2009-06-05 21:56 ` Sam Ravnborg
  1 sibling, 0 replies; 3+ messages in thread
From: Sam Ravnborg @ 2009-06-05 21:56 UTC (permalink / raw
  To: Cheng Renquan; +Cc: linux-kbuild, Andrew Morton, linux-kernel, crquan

On Tue, May 26, 2009 at 04:03:07PM +0800, Cheng Renquan wrote:
> From: Cheng Renquan <crq@kernel.org>
> 
> The GNU make's origin function know undefined variable well,
> so the outer ifdef/endif is unneeded.
> 
> I've checked the minimal requirements from Documentation/Changes
> is GNU make 3.79.1, and that version of GNU make has support of
> origin function already, so now it's safe to kill the outer
> conditional checking, without upgrading the minimal requirements.

Applied with V2 of your description,

	Sam

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

end of thread, other threads:[~2009-06-05 21:54 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-05-26  8:03 [PATCH] Kbuild: remove extra ifdef/endif of top Makefile Cheng Renquan
2009-05-27 10:00 ` Cheng Renquan
2009-06-05 21:56 ` Sam Ravnborg

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.