
Hi Simon,
2015-01-05 11:11 GMT+09:00 Simon Glass sjg@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