Skip to content
  • Michael Marineau's avatar
    Makefile.target: include top level build dir in vpath · 12a1ddc1
    Michael Marineau authored
    
    
    Using ccache with CCACHE_BASEDIR set to $(SRC_PATH) or a parent will
    rewrite all absolute paths to relative paths. This interacts poorly with
    QEMU's two-level build directory scheme. For example, lets say
    BUILD_DIR=$(SRC_PATH)/build so build/blockdev.d will contain:
    
      blockdev.o: ../blockdev.c ../include/sysemu/block-backend.h \
    
    Now the target build under build/x86_64-softmmu or similar will depend
    on ../blockdev.o which in turn will get make to source ../blockdev.d to
    check its dependencies. Since make always considers paths relative to
    the current working directory rather than the makefile the path appeared
    in the relative path to ../blockdev.c is useless.
    
    This change simply adds the top level build directory to vpath so paths
    relative to the source directory, top build directory, and target build
    directory all work just fine.
    
    Signed-off-by: default avatarMichael Marineau <michael.marineau@coreos.com>
    Message-Id: <1439103775-11836-1-git-send-email-michael.marineau@coreos.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    12a1ddc1