mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-26 19:01:44 +02:00
064963bd27
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 <michael@niedermayer.cc> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
117 lines
3.9 KiB
Makefile
117 lines
3.9 KiB
Makefile
include $(SRC_PATH)/common.mak
|
|
|
|
LIBVERSION := $(lib$(NAME)_VERSION)
|
|
LIBMAJOR := $(lib$(NAME)_VERSION_MAJOR)
|
|
LIBMINOR := $(lib$(NAME)_VERSION_MINOR)
|
|
INCINSTDIR := $(INCDIR)/lib$(NAME)
|
|
|
|
INSTHEADERS := $(INSTHEADERS) $(HEADERS:%=$(SUBDIR)%)
|
|
|
|
all-$(CONFIG_STATIC): $(SUBDIR)$(LIBNAME)
|
|
all-$(CONFIG_SHARED): $(SUBDIR)$(SLIBNAME)
|
|
|
|
$(SUBDIR)%-test.o: $(SUBDIR)%-test.c
|
|
$(COMPILE_C)
|
|
|
|
$(SUBDIR)%-test.o: $(SUBDIR)%.c
|
|
$(COMPILE_C)
|
|
|
|
$(SUBDIR)%-test.i: $(SUBDIR)%-test.c
|
|
$(CC) $(CCFLAGS) $(CC_E) $<
|
|
|
|
$(SUBDIR)%-test.i: $(SUBDIR)%.c
|
|
$(CC) $(CCFLAGS) $(CC_E) $<
|
|
|
|
$(SUBDIR)x86/%$(DEFAULT_YASMD).asm: $(SUBDIR)x86/%.asm
|
|
$(DEPYASM) $(YASMFLAGS) -I $(<D)/ -M -o $@ $< > $(@:.asm=.d)
|
|
$(YASM) $(YASMFLAGS) -I $(<D)/ -e $< | sed '/^%/d;/^$$/d;' > $@
|
|
|
|
$(SUBDIR)x86/%.o: $(SUBDIR)x86/%$(YASMD).asm
|
|
$(DEPYASM) $(YASMFLAGS) -I $(<D)/ -M -o $@ $< > $(@:.o=.d)
|
|
$(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)
|
|
$(LIBOBJS) $(LIBOBJS:.o=.s) $(LIBOBJS:.o=.i): CPPFLAGS += -DHAVE_AV_CONFIG_H
|
|
$(TESTOBJS) $(TESTOBJS:.o=.i): CPPFLAGS += -DTEST
|
|
$(TESTOBJS) $(TESTOBJS:.o=.i): CFLAGS += -Umain
|
|
|
|
$(SUBDIR)$(LIBNAME): $(OBJS)
|
|
$(RM) $@
|
|
$(AR) $(ARFLAGS) $(AR_O) $^
|
|
$(RANLIB) $@
|
|
|
|
install-headers: install-lib$(NAME)-headers install-lib$(NAME)-pkgconfig
|
|
|
|
install-libs-$(CONFIG_STATIC): install-lib$(NAME)-static
|
|
install-libs-$(CONFIG_SHARED): install-lib$(NAME)-shared
|
|
|
|
define RULES
|
|
$(TOOLS): THISLIB = $(FULLNAME:%=$(LD_LIB))
|
|
$(TESTPROGS): THISLIB = $(SUBDIR)$(LIBNAME)
|
|
|
|
$(TESTPROGS) $(TOOLS): %$(EXESUF): %.o $(EXEOBJS)
|
|
$$(LD) $(LDFLAGS) $(LDEXEFLAGS) $$(LD_O) $$(filter %.o,$$^) $$(THISLIB) $(FFEXTRALIBS) $$(ELIBS)
|
|
|
|
$(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR)
|
|
$(Q)cd ./$(SUBDIR) && $(LN_S) $(SLIBNAME_WITH_MAJOR) $(SLIBNAME)
|
|
|
|
$(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(OBJS) $(SLIBOBJS) $(SUBDIR)lib$(NAME).ver
|
|
$(SLIB_CREATE_DEF_CMD)
|
|
$$(LD) $(SHFLAGS) $(LDFLAGS) $(LDLIBFLAGS) $$(LD_O) $$(filter %.o,$$^) $(FFEXTRALIBS)
|
|
$(SLIB_EXTRA_CMD)
|
|
|
|
ifdef SUBDIR
|
|
$(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(DEP_LIBS)
|
|
endif
|
|
|
|
clean::
|
|
$(RM) $(addprefix $(SUBDIR),*-test$(EXESUF) $(CLEANFILES) $(CLEANSUFFIXES) $(LIBSUFFIXES)) \
|
|
$(CLEANSUFFIXES:%=$(SUBDIR)$(ARCH)/%)
|
|
|
|
distclean:: clean
|
|
$(RM) $(DISTCLEANSUFFIXES:%=$(SUBDIR)%) $(DISTCLEANSUFFIXES:%=$(SUBDIR)$(ARCH)/%)
|
|
|
|
install-lib$(NAME)-shared: $(SUBDIR)$(SLIBNAME)
|
|
$(Q)mkdir -p "$(SHLIBDIR)"
|
|
$$(INSTALL) -m 755 $$< "$(SHLIBDIR)/$(SLIB_INSTALL_NAME)"
|
|
$$(STRIP) "$(SHLIBDIR)/$(SLIB_INSTALL_NAME)"
|
|
$(Q)$(foreach F,$(SLIB_INSTALL_LINKS),(cd "$(SHLIBDIR)" && $(LN_S) $(SLIB_INSTALL_NAME) $(F));)
|
|
$(if $(SLIB_INSTALL_EXTRA_SHLIB),$$(INSTALL) -m 644 $(SLIB_INSTALL_EXTRA_SHLIB:%=$(SUBDIR)%) "$(SHLIBDIR)")
|
|
$(if $(SLIB_INSTALL_EXTRA_LIB),$(Q)mkdir -p "$(LIBDIR)")
|
|
$(if $(SLIB_INSTALL_EXTRA_LIB),$$(INSTALL) -m 644 $(SLIB_INSTALL_EXTRA_LIB:%=$(SUBDIR)%) "$(LIBDIR)")
|
|
|
|
install-lib$(NAME)-static: $(SUBDIR)$(LIBNAME)
|
|
$(Q)mkdir -p "$(LIBDIR)"
|
|
$$(INSTALL) -m 644 $$< "$(LIBDIR)"
|
|
$(LIB_INSTALL_EXTRA_CMD)
|
|
|
|
install-lib$(NAME)-headers: $(addprefix $(SUBDIR),$(HEADERS) $(BUILT_HEADERS))
|
|
$(Q)mkdir -p "$(INCINSTDIR)"
|
|
$$(INSTALL) -m 644 $$^ "$(INCINSTDIR)"
|
|
|
|
install-lib$(NAME)-pkgconfig: $(SUBDIR)lib$(FULLNAME).pc
|
|
$(Q)mkdir -p "$(PKGCONFIGDIR)"
|
|
$$(INSTALL) -m 644 $$^ "$(PKGCONFIGDIR)"
|
|
|
|
uninstall-libs::
|
|
-$(RM) "$(SHLIBDIR)/$(SLIBNAME_WITH_MAJOR)" \
|
|
"$(SHLIBDIR)/$(SLIBNAME)" \
|
|
"$(SHLIBDIR)/$(SLIBNAME_WITH_VERSION)"
|
|
-$(RM) $(SLIB_INSTALL_EXTRA_SHLIB:%="$(SHLIBDIR)/%")
|
|
-$(RM) $(SLIB_INSTALL_EXTRA_LIB:%="$(LIBDIR)/%")
|
|
-$(RM) "$(LIBDIR)/$(LIBNAME)"
|
|
|
|
uninstall-headers::
|
|
$(RM) $(addprefix "$(INCINSTDIR)/",$(HEADERS) $(BUILT_HEADERS))
|
|
$(RM) "$(PKGCONFIGDIR)/lib$(FULLNAME).pc"
|
|
-rmdir "$(INCINSTDIR)"
|
|
endef
|
|
|
|
$(eval $(RULES))
|
|
|
|
$(TOOLS): $(DEP_LIBS) $(SUBDIR)$($(CONFIG_SHARED:yes=S)LIBNAME)
|
|
$(TESTPROGS): $(DEP_LIBS) $(SUBDIR)$(LIBNAME)
|
|
|
|
testprogs: $(TESTPROGS)
|