On 2014-06-19 12:12, Boaz Harrosh wrote:
> 
> The commit:
> 
>       commit 9da0763bdd82572be243fcf5161734f11568960f
>       Author: Michal Marek <mma...@suse.cz>
>       Date:   Fri Apr 25 23:25:18 2014 +0200
> 
>       kbuild: Use relative path when building in a subdir of the source tree
> 
>       When doing make O=<subdir>, use '..' to refer to the source tree. This
>       allows for more readable compiler messages, and, more importantly, it
>       sets the VPATH to '..', so filenames in WARN_ON() etc. will be shorter.
> 
>       Acked-by: Sam Ravnborg <s...@ravnborg.org>
>       Signed-off-by: Michal Marek <mma...@suse.cz>
> 
> Broke IDEs and other tools which analyze the make output.
> Introduce a new KBUILD_FULL_PATH switch to Makefile that will revert
> to the old output if KBUILD_FULL_PATH=1 is specified.
> The default is KBUILD_FULL_PATH=0

Parsing make output is a use case I did not think of, so the knob seems
inevitable :-/.


> Is there a document I need to edit for this new parameter?

That would be Documentation/kbuild/kbuild.txt


> Signed-off-by: Boaz Harrosh <b...@plexistor.com>
> ---
>  Makefile | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/Makefile b/Makefile
> index 97b2861..778732a 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -149,11 +149,17 @@ else
>  _all: modules
>  endif
>  
> +# put KBUILD_FULL_PATH=1 if relative path to sources breaks your system
> +ifneq ($(KBUILD_FULL_PATH), 1)
> +     KBUILD_FULL_PATH=""
> +endif
> +
>  ifeq ($(KBUILD_SRC),)
>          # building in the source tree
>          srctree := .
>  else
> -        ifeq ($(KBUILD_SRC)/,$(dir $(CURDIR)))
> +        # if KBUILD_FULL_PATH is not empty then condition will fail
> +        ifeq ($(KBUILD_FULL_PATH)$(KBUILD_SRC)/,$(dir $(CURDIR)))

This is an ugly way to express the logic.


>                  # building in a subdirectory of the source tree
>                  srctree := ..
>          else

How about generated sources like asm-offsets.s or the lexer and parser
in scripts/kconfig, does kdevelop figure out where the files live? If
not, you might need to add

-objtree                := .
+ifeq ($(KBUILD_FULL_PATH),1)
+       objtree := $(CURDIR)
+else
+        objtree        := .
+endif

to use the full path also for the O= directory.

Michal
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to