[U-Boot] Full paths when compiling

Masahiro YAMADA yamada.m at jp.panasonic.com
Mon Jan 5 15:32:19 CET 2015


Hi Simon,


2015-01-05 11:11 GMT+09:00 Simon Glass <sjg at chromium.org>:
> Hi Masahiro,
>
> I notice that when compiling I get the full paths to the source when I
> use __FILE__:
>
> /home/sjg/c/src/third_party/u-boot/files/cros/lib/readwrite.c:
> vboot_rw_select_kernel: VbSelectAndLoadKernel: 65552
> /home/sjg/c/src/third_party/u-boot/files/cros/lib/vboot.c:
> vboot_set_error: Stage 'VbSelectAndLoadKernel' produced vboot error
> 0x10010
> /home/sjg/c/src/third_party/u-boot/files/cros/vboot/stages.c:
> vboot_run_stage: Error: stage 'rw_selectkernel' returned -1
>
> Is there a way to only get the relative path, say "cros/lib/readwrite.c"?



[1] In-tree build (without O=...)

[2] Out-of-tree build and the build directory is right under the source tree
    For example, O=foo

[3] Out-of-tree build and the build directory is not right under the source tree
    For example, O=foo/bar  or O=../foo


__FILE__  points to the source file in relative path for [1] and [2],
and in absolute path for [3].


I guess you are doing [3].  Just try [1] or [2].



FYI, the relative/absolute path is determined by "srctree" of the top Makefile.



ifeq ($(KBUILD_SRC),)
        # building in the source tree
        srctree := .
else
        ifeq ($(KBUILD_SRC)/,$(dir $(CURDIR)))
                # building in a subdirectory of the source tree
                srctree := ..
        else
                srctree := $(KBUILD_SRC)
        endif
endif






-- 
Best Regards
Masahiro Yamada


More information about the U-Boot mailing list