All of lore.kernel.org
 help / color / mirror / Atom feed
From: Cheng Renquan <crquan@gmail.com>
To: Cheng Renquan <crq@hera.kernel.org>
Cc: linux-kbuild@vger.kernel.org, Sam Ravnborg <sam@ravnborg.org>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [PATCH] Kbuild: remove extra ifdef/endif of top Makefile
Date: Wed, 27 May 2009 18:00:46 +0800	[thread overview]
Message-ID: <91b13c310905270300i7591ac44yd2f4877a13391c37@mail.gmail.com> (raw)
In-Reply-To: <1243324987-17840-1-git-send-email-crq@hera.kernel.org>

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

  reply	other threads:[~2009-05-27 10:00 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-26  8:03 [PATCH] Kbuild: remove extra ifdef/endif of top Makefile Cheng Renquan
2009-05-27 10:00 ` Cheng Renquan [this message]
2009-06-05 21:56 ` Sam Ravnborg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=91b13c310905270300i7591ac44yd2f4877a13391c37@mail.gmail.com \
    --to=crquan@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=crq@hera.kernel.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=sam@ravnborg.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.