[FFmpeg-devel] [PATCH] build: make out-of-tree builds bit-identical to in-tree builds
Andreas Cadhalpun
andreas.cadhalpun at googlemail.com
Fri Jan 15 01:13:25 CET 2016
On 28.12.2015 22:12, Andreas Cadhalpun wrote:
> 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.
>
> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
> ---
> Makefile | 1 +
> common.mak | 6 +++---
> configure | 1 +
> library.mak | 2 +-
> 4 files changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 7836a20..f3bd5f6 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 c3a8b93..bad2627 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 a510e8f..f604edd 100755
> --- a/configure
> +++ b/configure
> @@ -6205,6 +6205,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 6f95f63..0b23a28 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 $(<D)/ -M -o $@ $< > $(@:.o=.d)
> - $(YASM) $(YASMFLAGS) -I $(<D)/ -o $@ $<
> + $(Q)cd $(SRC_PATH); $(subst @,,$(YASM)) $(YASMFLAGS) -I $(<D)/ -o $(DST_PATH)/$@ $(subst $(SRC_PATH)/,,$<)
> -$(if $(ASMSTRIPFLAGS), $(STRIP) $(ASMSTRIPFLAGS) $@)
>
> LIBOBJS := $(OBJS) $(SUBDIR)%.h.o $(TESTOBJS)
>
Ping.
Best regards,
Andreas
More information about the ffmpeg-devel
mailing list