diff --git a/configure b/configure index 92fa04c41..dfc3ffd35 100755 --- a/configure +++ b/configure @@ -40,6 +40,7 @@ Advanced options: ${toggle_error_concealment} enable this option to get a decoder which is able to conceal losses ${toggle_runtime_cpu_detect} runtime cpu detection ${toggle_shared} shared library support + ${toggle_static} static library support ${toggle_small} favor smaller size over speed ${toggle_postproc_visualizer} macro block / block level visualizers @@ -153,6 +154,7 @@ enabled doxygen && php -v >/dev/null 2>&1 && enable install_docs enable install_bins enable install_libs +enable static enable optimizations enable fast_unaligned #allow unaligned accesses, if supported by hw enable md5 @@ -255,6 +257,7 @@ CONFIG_LIST=" realtime_only error_concealment shared + static small postproc_visualizer os_support @@ -299,6 +302,7 @@ CMDLINE_SELECT=" realtime_only error_concealment shared + static small postproc_visualizer experimental diff --git a/examples.mk b/examples.mk index ad56ff040..4ebb035d9 100644 --- a/examples.mk +++ b/examples.mk @@ -167,8 +167,10 @@ BINS-$(NOT_MSVS) += $(addprefix $(BUILD_PFX),$(ALL_EXAMPLES:.c=)) # Instantiate linker template for all examples. CODEC_LIB=$(if $(CONFIG_DEBUG_LIBS),vpx_g,vpx) +CODEC_LIB_SUF=$(if $(CONFIG_SHARED),.so,.a) $(foreach bin,$(BINS-yes),\ - $(if $(BUILD_OBJS),$(eval $(bin): $(LIB_PATH)/lib$(CODEC_LIB).a))\ + $(if $(BUILD_OBJS),$(eval $(bin):\ + $(LIB_PATH)/lib$(CODEC_LIB)$(CODEC_LIB_SUF)))\ $(if $(BUILD_OBJS),$(eval $(call linker_template,$(bin),\ $(call objs,$($(notdir $(bin)).SRCS)) \ -l$(CODEC_LIB) $(addprefix -l,$(CODEC_EXTRA_LIBS))\ diff --git a/libs.mk b/libs.mk index ae86fbd9e..47709ba8e 100644 --- a/libs.mk +++ b/libs.mk @@ -121,7 +121,7 @@ INSTALL-LIBS-$(CONFIG_SHARED) += $(foreach p,$(VS_PLATFORMS),$(LIBSUBDIR)/$(p)/v INSTALL-LIBS-$(CONFIG_SHARED) += $(foreach p,$(VS_PLATFORMS),$(LIBSUBDIR)/$(p)/vpx.exp) endif else -INSTALL-LIBS-yes += $(LIBSUBDIR)/libvpx.a +INSTALL-LIBS-$(CONFIG_STATIC) += $(LIBSUBDIR)/libvpx.a INSTALL-LIBS-$(CONFIG_DEBUG_LIBS) += $(LIBSUBDIR)/libvpx_g.a endif @@ -177,12 +177,13 @@ endif else LIBVPX_OBJS=$(call objs,$(CODEC_SRCS)) OBJS-$(BUILD_LIBVPX) += $(LIBVPX_OBJS) -LIBS-$(BUILD_LIBVPX) += $(BUILD_PFX)libvpx.a $(BUILD_PFX)libvpx_g.a +LIBS-$(CONFIG_STATIC) += $(BUILD_PFX)libvpx.a $(BUILD_PFX)libvpx_g.a $(BUILD_PFX)libvpx_g.a: $(LIBVPX_OBJS) BUILD_LIBVPX_SO := $(if $(BUILD_LIBVPX),$(CONFIG_SHARED)) LIBVPX_SO := libvpx.so.$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_PATCH) -LIBS-$(BUILD_LIBVPX_SO) += $(BUILD_PFX)$(LIBVPX_SO) +LIBS-$(BUILD_LIBVPX_SO) += $(BUILD_PFX)$(LIBVPX_SO)\ + $(notdir $(LIBVPX_SO_SYMLINKS)) $(BUILD_PFX)$(LIBVPX_SO): $(LIBVPX_OBJS) libvpx.ver $(BUILD_PFX)$(LIBVPX_SO): extralibs += -lm $(BUILD_PFX)$(LIBVPX_SO): SONAME = libvpx.so.$(VERSION_MAJOR) @@ -198,9 +199,18 @@ libvpx.ver: $(call enabled,CODEC_EXPORTS) $(qexec)echo "local: *; };" >> $@ CLEAN-OBJS += libvpx.ver -$(addprefix $(DIST_DIR)/,$(LIBVPX_SO_SYMLINKS)): $(DIST_DIR)/$(LIBSUBDIR)/$(LIBVPX_SO) - @echo " [LN] $@" - $(qexec)ln -sf $(LIBVPX_SO) $@ +define libvpx_symlink_template +$(1): $(2) + @echo " [LN] $$@" + $(qexec)ln -sf $(LIBVPX_SO) $$@ +endef + +$(eval $(call libvpx_symlink_template,\ + $(addprefix $(BUILD_PFX),$(notdir $(LIBVPX_SO_SYMLINKS))),\ + $(BUILD_PFX)$(LIBVPX_SO))) +$(eval $(call libvpx_symlink_template,\ + $(addprefix $(DIST_DIR)/,$(LIBVPX_SO_SYMLINKS)),\ + $(DIST_DIR)/$(LIBSUBDIR)/$(LIBVPX_SO))) INSTALL-LIBS-$(CONFIG_SHARED) += $(LIBVPX_SO_SYMLINKS) INSTALL-LIBS-$(CONFIG_SHARED) += $(LIBSUBDIR)/$(LIBVPX_SO)