mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-12-15 19:40:07 +01:00
The SLIBOBJS variable was introduced in56572787aebut is no longer used. Another variable, SHLIBOBJS, was introduced after SLIBOBJS, in20b0d24c2f. The functionality from SLIBOBJS was effectively migrated to SHLIBOBJS inb77fff47d0. No code has used SLIBOBJS since. This commit removes all remaining references to SLIBOBJS from the build system.
136 lines
4.8 KiB
Makefile
136 lines
4.8 KiB
Makefile
include $(SRC_PATH)/ffbuild/common.mak
|
|
|
|
ifeq (,$(filter %clean config,$(MAKECMDGOALS)))
|
|
-include $(SUBDIR)lib$(NAME).version
|
|
endif
|
|
|
|
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) $(SUBDIR)lib$(FULLNAME).pc
|
|
all-$(CONFIG_SHARED): $(SUBDIR)$(SLIBNAME) $(SUBDIR)lib$(FULLNAME).pc
|
|
|
|
LIBOBJS := $(OBJS) $(SHLIBOBJS) $(STLIBOBJS) $(SUBDIR)%.h.o $(TESTOBJS)
|
|
$(LIBOBJS) $(LIBOBJS:.o=.s) $(LIBOBJS:.o=.i): CPPFLAGS += -DHAVE_AV_CONFIG_H
|
|
|
|
ifdef CONFIG_SHARED
|
|
# In case both shared libs and static libs are enabled, it can happen
|
|
# that a user might want to link e.g. libavformat statically, but
|
|
# libavcodec and the other libs dynamically. In this case
|
|
# libavformat won't be able to access libavcodec's internal symbols,
|
|
# so that they have to be duplicated into the archive just like
|
|
# for purely shared builds.
|
|
# Test programs are always statically linked against their library
|
|
# to be able to access their library's internals, even with shared builds.
|
|
# Yet linking against dependend libraries still uses dynamic linking.
|
|
# This means that we are in the scenario described above.
|
|
# In case only static libs are used, the linker will only use
|
|
# one of these copies; this depends on the duplicated object files
|
|
# containing exactly the same symbols.
|
|
OBJS += $(SHLIBOBJS)
|
|
endif
|
|
$(SUBDIR)$(LIBNAME): $(OBJS) $(STLIBOBJS)
|
|
$(RM) $@
|
|
ifeq ($(RESPONSE_FILES),yes)
|
|
$(Q)echo $^ > $@.objs
|
|
$(AR) $(ARFLAGS) $(AR_O) @$@.objs
|
|
else
|
|
$(AR) $(ARFLAGS) $(AR_O) $^
|
|
endif
|
|
$(RANLIB) $@
|
|
-$(RM) $@.objs
|
|
|
|
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)
|
|
|
|
$(LIBOBJS): CPPFLAGS += -DBUILDING_$(NAME)
|
|
|
|
$(TESTPROGS) $(TOOLS): %$(EXESUF): %.o
|
|
$$(LD) $(LDFLAGS) $(LDEXEFLAGS) $$(LD_O) $$(filter %.o,$$^) $$(THISLIB) $(FFEXTRALIBS) $$(EXTRALIBS-$$(*F)) $$(ELIBS)
|
|
|
|
$(SUBDIR)lib$(NAME).version: $(SUBDIR)version.h $(SUBDIR)version_major.h | $(SUBDIR)
|
|
$$(M) $$(SRC_PATH)/ffbuild/libversion.sh $(NAME) $$^ > $$@
|
|
|
|
$(SUBDIR)lib$(FULLNAME).pc: $(SUBDIR)version.h ffbuild/config.sh | $(SUBDIR)
|
|
$$(M) $$(SRC_PATH)/ffbuild/pkgconfig_generate.sh $(NAME) "$(DESC)"
|
|
|
|
$(SUBDIR)lib$(NAME).ver: $(SUBDIR)lib$(NAME).v $(OBJS)
|
|
$$(M)sed 's/MAJOR/$(lib$(NAME)_VERSION_MAJOR)/' $$< | $(VERSION_SCRIPT_POSTPROCESS_CMD) > $$@
|
|
|
|
$(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR)
|
|
$(Q)cd ./$(SUBDIR) && $(LN_S) $(SLIBNAME_WITH_MAJOR) $(SLIBNAME)
|
|
|
|
$(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(OBJS) $(SHLIBOBJS) $(SUBDIR)lib$(NAME).ver
|
|
$(SLIB_CREATE_DEF_CMD)
|
|
ifeq ($(RESPONSE_FILES),yes)
|
|
$(Q)echo $$(filter %.o,$$^) > $$@.objs
|
|
$$(LD) $(SHFLAGS) $(LDFLAGS) $(LDSOFLAGS) $$(LD_O) @$$@.objs $(FFEXTRALIBS)
|
|
else
|
|
$$(LD) $(SHFLAGS) $(LDFLAGS) $(LDSOFLAGS) $$(LD_O) $$(filter %.o,$$^) $(FFEXTRALIBS)
|
|
endif
|
|
$(SLIB_EXTRA_CMD)
|
|
-$(RM) $$@.objs
|
|
|
|
ifdef SUBDIR
|
|
$(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(DEP_LIBS)
|
|
endif
|
|
|
|
clean::
|
|
$(RM) $(addprefix $(SUBDIR),$(CLEANFILES) $(CLEANSUFFIXES) $(LIBSUFFIXES)) \
|
|
$(CLEANSUFFIXES:%=$(SUBDIR)$(ARCH)/%) $(CLEANSUFFIXES:%=$(SUBDIR)tests/%)
|
|
|
|
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))
|
|
-rmdir "$(INCINSTDIR)"
|
|
|
|
uninstall-pkgconfig::
|
|
$(RM) "$(PKGCONFIGDIR)/lib$(FULLNAME).pc"
|
|
endef
|
|
|
|
$(eval $(RULES))
|
|
|
|
$(TOOLS): $(DEP_LIBS) $(SUBDIR)$($(CONFIG_SHARED:yes=S)LIBNAME)
|
|
$(TESTPROGS): $(DEP_LIBS) $(SUBDIR)$(LIBNAME)
|
|
|
|
testprogs: $(TESTPROGS)
|