Re: [PATCH] tags: honor COMPILED_SOURCE with apart output directory

From: Michal Marek
Date: Mon Dec 12 2016 - 15:41:34 EST


Dne 12.12.2016 v 18:13 Robert Jarzmik napsal(a):
> Michal Marek <mmarek@xxxxxxxx> writes:
>> Please use the KBUILD_OUTPUT variable and not O.
> Well, I can't as far as I know. I tried, see below ...
>
> Explanation :
> - if I add just below the line "j=${i/\.[cS]/\.o}" the following :
> k="$O/${j#$tree}"
> echo "tree=$tree; O=$O; KBUILD_OUTPUT=$KBUILD_OUTPUT; i=$i, j=$j, k=$k"
> - and I launch:
> make O=out cscope COMPILED_SOURCE=1
>
> I get these kind of lines :
> tree=../; O=/home/rj/mio_linux/kernel/out; KBUILD_OUTPUT=;
> i=../kernel/sched/core.c, j=../kernel/sched/core.o, k=../kernel/sched/core.o
>
> From here I understand that :
> - $KBUILD_OUTPUT is not usable

Hm, you are right, we never export $KBUILD_OUTPUT anywhere. But, we
actualy chdir into the build tree before doing anything. So you can
assume that if $KBUILD_SRC != "", the build tree is ".".


>> should only match at the beginning of the filename (so use something
>> like ${i#$tree}).
> Ok, I can use then : k="$O/${j#$tree}". The subtle part is when O is empty, in
> which case this returns /xxxx, which doesn't look nice, while the former
> expression returned either a substituted path or the source path.

... so you can simply strip the leading $tree here and obtain the path
in the build directory.

Michal