Re: [PATCH] scripts: Fallback to KBUILD_OUTPUT if O is not specified

From: Wangnan (F)
Date: Fri Apr 08 2016 - 11:37:36 EST




On 2016/4/8 22:58, Arnaldo Carvalho de Melo wrote:
Em Fri, Apr 08, 2016 at 11:14:09AM +0200, Thierry Reding escreveu:
From: Thierry Reding <treding@xxxxxxxxxx>

The KBUILD_OUTPUT environment can be used to set the build directory as
an alternative to passing the O variable on the command-line. This works
with regular kernel builds, so it's surprising if it doesn't work within
the tools/scripts directory.

Allow KBUILD_OUTPUT if O is not specified on the command-line to avoid
any surprises.
I think this is fine, Jiri, Wang?

The idea is fine, but we should be very careful when touching Makefile
to avoid breaking build-test like this:

# export KBUILD_OUTPUT=/tmp/xxxxx
# ./tests/perf-targz-src-pkg .
PERF_VERSION = 4.5.g337b7b
ls: cannot access perf-*.tar.gz: No such file or directory
tar: -C: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
make: *** /tmp/tmp.q4egWrFd3L/perf*/tools/perf: No such file or directory. Stop

Moreover, in the above case, the output directory should be

/tmp/xxxxx

or

/tmp/xxxxx/tools/perf ?

Since kernel build output things to /tmp/xxxxx, I think we'd better
output to /tmp/xxxxx/tools/perf.

Thank you.

- Arnaldo
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
---
Hi Arnaldo,

I'm not sure if you're the right person to send this to. There was noone
reported by scripts/get_maintainer.pl, but it looks like you ended up
applying most of the patches to this file lately, which kinda makes you
the de facto maintainer =).

Thierry

tools/scripts/Makefile.include | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/tools/scripts/Makefile.include b/tools/scripts/Makefile.include
index 8abbef164b4e..5467da41dc72 100644
--- a/tools/scripts/Makefile.include
+++ b/tools/scripts/Makefile.include
@@ -8,6 +8,10 @@ ifeq ($(objtree),)
objtree := $(O)
endif
endif
+else
+ifneq ($(KBUILD_OUTPUT),)
+ OUTPUT := $(KBUILD_OUTPUT)/$(if $(subdir),$(subdir)/)
+endif
endif
# check that the output directory actually exists
--
2.8.0