From 064963bd2702509afee2d2a4ed4eb4b4fd69d9c7 Mon Sep 17 00:00:00 2001 From: Andreas Cadhalpun Date: Mon, 28 Dec 2015 22:00:39 +0100 Subject: [PATCH] build: make out-of-tree builds bit-identical to in-tree builds Previously the full source path was embedded inconsistently in the debug information between in-tree/out-of-tree builds. The 'vpath %.inc' becomes necessary for finding libavfilter/all_channel_layouts.inc in out-of-tree builds. The full source path is still embedded in the debug information, but it's now independent of whether building in-tree or out-of-tree. The biggest improvement of this patch is that gdb now always searches for the path relative to the source directory. It still also searches for the full path. Previously it searched only for the full path in out-of-tree builds, making the debug information generated by Debian's buildds rather hard to use. Reviewed-by: Michael Niedermayer Signed-off-by: Andreas Cadhalpun --- Makefile | 1 + common.mak | 6 +++--- configure | 1 + library.mak | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 7836a20f87..f3bd5f682d 100644 --- a/Makefile +++ b/Makefile @@ -4,6 +4,7 @@ include config.mak vpath %.c $(SRC_PATH) vpath %.cpp $(SRC_PATH) vpath %.h $(SRC_PATH) +vpath %.inc $(SRC_PATH) vpath %.m $(SRC_PATH) vpath %.S $(SRC_PATH) vpath %.asm $(SRC_PATH) diff --git a/common.mak b/common.mak index c3a8b93095..bad262747d 100644 --- a/common.mak +++ b/common.mak @@ -32,7 +32,7 @@ endif ALLFFLIBS = avcodec avdevice avfilter avformat avresample avutil postproc swscale swresample # NASM requires -I path terminated with / -IFLAGS := -I. -I$(SRC_PATH)/ +IFLAGS := -I$(DST_PATH)/ -I$(SRC_PATH)/ CPPFLAGS := $(IFLAGS) $(CPPFLAGS) CFLAGS += $(ECFLAGS) CCFLAGS = $(CPPFLAGS) $(CFLAGS) @@ -43,11 +43,11 @@ CXXFLAGS += $(CPPFLAGS) $(CFLAGS) YASMFLAGS += $(IFLAGS:%=%/) -Pconfig.asm HOSTCCFLAGS = $(IFLAGS) $(HOSTCPPFLAGS) $(HOSTCFLAGS) -LDFLAGS := $(ALLFFLIBS:%=$(LD_PATH)lib%) $(LDFLAGS) +LDFLAGS := $(ALLFFLIBS:%=$(LD_PATH)$(DST_PATH)/lib%) $(LDFLAGS) define COMPILE $(call $(1)DEP,$(1)) - $($(1)) $($(1)FLAGS) $($(1)_DEPFLAGS) $($(1)_C) $($(1)_O) $< + $(Q)cd $(SRC_PATH); $(subst @,,$($(1))) $($(1)FLAGS) $($(1)_DEPFLAGS:$(@:.o=.d)=$(DST_PATH)/$(@:.o=.d)) $($(1)_C) $($(1)_O:$@=$(DST_PATH)/$@) $(subst $(SRC_PATH)/,,$<) endef COMPILE_C = $(call COMPILE,CC) diff --git a/configure b/configure index ef5a71289c..8f4642b898 100755 --- a/configure +++ b/configure @@ -6251,6 +6251,7 @@ SRC_PATH=$source_path ifndef MAIN_MAKEFILE SRC_PATH:=\$(SRC_PATH:.%=..%) endif +DST_PATH=$(pwd) CC_IDENT=$cc_ident ARCH=$arch INTRINSICS=$intrinsics diff --git a/library.mak b/library.mak index 6f95f63410..0b23a28f5b 100644 --- a/library.mak +++ b/library.mak @@ -28,7 +28,7 @@ $(SUBDIR)x86/%$(DEFAULT_YASMD).asm: $(SUBDIR)x86/%.asm $(SUBDIR)x86/%.o: $(SUBDIR)x86/%$(YASMD).asm $(DEPYASM) $(YASMFLAGS) -I $( $(@:.o=.d) - $(YASM) $(YASMFLAGS) -I $(