Index: source/libvpx/libs.mk |
diff --git a/source/libvpx/libs.mk b/source/libvpx/libs.mk |
index 6eee0039c296d5f20243fa91bd5377a8c5b37158..8ac4c3614c3d8b1288156e5d971e2dbc8937988d 100644 |
--- a/source/libvpx/libs.mk |
+++ b/source/libvpx/libs.mk |
@@ -25,7 +25,7 @@ $$(BUILD_PFX)$(1).h: $$(SRC_PATH_BARE)/$(2) |
@echo " [CREATE] $$@" |
$$(qexec)$$(SRC_PATH_BARE)/build/make/rtcd.pl --arch=$$(TGT_ISA) \ |
--sym=$(1) \ |
- --config=$$(CONFIG_DIR)$$(target)$$(if $$(FAT_ARCHS),,-$$(TOOLCHAIN)).mk \ |
+ --config=$$(CONFIG_DIR)$$(target)-$$(TOOLCHAIN).mk \ |
$$(RTCD_OPTIONS) $$^ > $$@ |
CLEAN-OBJS += $$(BUILD_PFX)$(1).h |
RTCD += $$(BUILD_PFX)$(1).h |
@@ -34,13 +34,6 @@ endef |
CODEC_SRCS-yes += CHANGELOG |
CODEC_SRCS-yes += libs.mk |
-# If this is a universal (fat) binary, then all the subarchitectures have |
-# already been built and our job is to stitch them together. The |
-# BUILD_LIBVPX variable indicates whether we should be building |
-# (compiling, linking) the library. The LIPO_LIBVPX variable indicates |
-# that we're stitching. |
-$(eval $(if $(filter universal%,$(TOOLCHAIN)),LIPO_LIBVPX,BUILD_LIBVPX):=yes) |
- |
include $(SRC_PATH_BARE)/vpx/vpx_codec.mk |
CODEC_SRCS-yes += $(addprefix vpx/,$(call enabled,API_SRCS)) |
CODEC_DOC_SRCS += $(addprefix vpx/,$(call enabled,API_DOC_SRCS)) |
@@ -140,18 +133,18 @@ INSTALL_MAPS += $(foreach p,$(VS_PLATFORMS),$(LIBSUBDIR)/$(p)/% $(p)/Release/%) |
INSTALL_MAPS += $(foreach p,$(VS_PLATFORMS),$(LIBSUBDIR)/$(p)/% $(p)/Debug/%) |
endif |
-CODEC_SRCS-$(BUILD_LIBVPX) += build/make/version.sh |
-CODEC_SRCS-$(BUILD_LIBVPX) += build/make/rtcd.pl |
-CODEC_SRCS-$(BUILD_LIBVPX) += vpx_ports/emmintrin_compat.h |
-CODEC_SRCS-$(BUILD_LIBVPX) += vpx_ports/mem_ops.h |
-CODEC_SRCS-$(BUILD_LIBVPX) += vpx_ports/mem_ops_aligned.h |
-CODEC_SRCS-$(BUILD_LIBVPX) += vpx_ports/vpx_once.h |
-CODEC_SRCS-$(BUILD_LIBVPX) += $(BUILD_PFX)vpx_config.c |
+CODEC_SRCS-yes += build/make/version.sh |
+CODEC_SRCS-yes += build/make/rtcd.pl |
+CODEC_SRCS-yes += vpx_ports/emmintrin_compat.h |
+CODEC_SRCS-yes += vpx_ports/mem_ops.h |
+CODEC_SRCS-yes += vpx_ports/mem_ops_aligned.h |
+CODEC_SRCS-yes += vpx_ports/vpx_once.h |
+CODEC_SRCS-yes += $(BUILD_PFX)vpx_config.c |
INSTALL-SRCS-no += $(BUILD_PFX)vpx_config.c |
ifeq ($(ARCH_X86)$(ARCH_X86_64),yes) |
INSTALL-SRCS-$(CONFIG_CODEC_SRCS) += third_party/x86inc/x86inc.asm |
endif |
-CODEC_EXPORTS-$(BUILD_LIBVPX) += vpx/exports_com |
+CODEC_EXPORTS-yes += vpx/exports_com |
CODEC_EXPORTS-$(CONFIG_ENCODERS) += vpx/exports_enc |
CODEC_EXPORTS-$(CONFIG_DECODERS) += vpx/exports_dec |
@@ -218,7 +211,7 @@ vpx.$(VCPROJ_SFX): $(CODEC_SRCS) vpx.def |
$(filter-out $(addprefix %, $(ASM_INCLUDES)), $^) \ |
--src-path-bare="$(SRC_PATH_BARE)" \ |
-PROJECTS-$(BUILD_LIBVPX) += vpx.$(VCPROJ_SFX) |
+PROJECTS-yes += vpx.$(VCPROJ_SFX) |
vpx.$(VCPROJ_SFX): vpx_config.asm |
vpx.$(VCPROJ_SFX): $(RTCD) |
@@ -226,13 +219,10 @@ vpx.$(VCPROJ_SFX): $(RTCD) |
endif |
else |
LIBVPX_OBJS=$(call objs,$(CODEC_SRCS)) |
-OBJS-$(BUILD_LIBVPX) += $(LIBVPX_OBJS) |
-LIBS-$(if $(BUILD_LIBVPX),$(CONFIG_STATIC)) += $(BUILD_PFX)libvpx.a $(BUILD_PFX)libvpx_g.a |
+OBJS-yes += $(LIBVPX_OBJS) |
+LIBS-$(if yes,$(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)) |
- |
SO_VERSION_MAJOR := 2 |
SO_VERSION_MINOR := 0 |
SO_VERSION_PATCH := 0 |
@@ -249,7 +239,7 @@ LIBVPX_SO_SYMLINKS := $(addprefix $(LIBSUBDIR)/, \ |
libvpx.so.$(SO_VERSION_MAJOR).$(SO_VERSION_MINOR)) |
endif |
-LIBS-$(BUILD_LIBVPX_SO) += $(BUILD_PFX)$(LIBVPX_SO)\ |
+LIBS-$(CONFIG_SHARED) += $(BUILD_PFX)$(LIBVPX_SO)\ |
$(notdir $(LIBVPX_SO_SYMLINKS)) |
$(BUILD_PFX)$(LIBVPX_SO): $(LIBVPX_OBJS) $(EXPORT_FILE) |
$(BUILD_PFX)$(LIBVPX_SO): extralibs += -lm |
@@ -283,11 +273,11 @@ $(eval $(call libvpx_symlink_template,\ |
$(LIBVPX_SO))) |
-INSTALL-LIBS-$(BUILD_LIBVPX_SO) += $(LIBVPX_SO_SYMLINKS) |
-INSTALL-LIBS-$(BUILD_LIBVPX_SO) += $(LIBSUBDIR)/$(LIBVPX_SO) |
+INSTALL-LIBS-$(CONFIG_SHARED) += $(LIBVPX_SO_SYMLINKS) |
+INSTALL-LIBS-$(CONFIG_SHARED) += $(LIBSUBDIR)/$(LIBVPX_SO) |
-LIBS-$(BUILD_LIBVPX) += vpx.pc |
+LIBS-yes += vpx.pc |
vpx.pc: config.mk libs.mk |
@echo " [CREATE] $@" |
$(qexec)echo '# pkg-config file from libvpx $(VERSION_STRING)' > $@ |
@@ -313,9 +303,6 @@ INSTALL_MAPS += $(LIBSUBDIR)/pkgconfig/%.pc %.pc |
CLEAN-OBJS += vpx.pc |
endif |
-LIBS-$(LIPO_LIBVPX) += libvpx.a |
-$(eval $(if $(LIPO_LIBVPX),$(call lipo_lib_template,libvpx.a))) |
- |
# |
# Rule to make assembler configuration file from C configuration file |
# |
@@ -354,11 +341,14 @@ LIBVPX_TEST_DATA_PATH ?= . |
include $(SRC_PATH_BARE)/test/test.mk |
LIBVPX_TEST_SRCS=$(addprefix test/,$(call enabled,LIBVPX_TEST_SRCS)) |
-LIBVPX_TEST_BINS=./test_libvpx$(EXE_SFX) |
+LIBVPX_TEST_BIN=./test_libvpx$(EXE_SFX) |
LIBVPX_TEST_DATA=$(addprefix $(LIBVPX_TEST_DATA_PATH)/,\ |
$(call enabled,LIBVPX_TEST_DATA)) |
libvpx_test_data_url=http://downloads.webmproject.org/test_data/libvpx/$(1) |
+TEST_INTRA_PRED_SPEED_BIN=./test_intra_pred_speed$(EXE_SFX) |
+TEST_INTRA_PRED_SPEED_SRCS=$(addprefix test/,$(call enabled,TEST_INTRA_PRED_SPEED_SRCS)) |
+ |
libvpx_test_srcs.txt: |
@echo " [CREATE] $@" |
@echo $(LIBVPX_TEST_SRCS) | xargs -n1 echo | LC_ALL=C sort -u > $@ |
@@ -422,7 +412,25 @@ test_libvpx.$(VCPROJ_SFX): $(LIBVPX_TEST_SRCS) vpx.$(VCPROJ_SFX) gtest.$(VCPROJ_ |
PROJECTS-$(CONFIG_MSVS) += test_libvpx.$(VCPROJ_SFX) |
-LIBVPX_TEST_BINS := $(addprefix $(TGT_OS:win64=x64)/Release/,$(notdir $(LIBVPX_TEST_BINS))) |
+LIBVPX_TEST_BIN := $(addprefix $(TGT_OS:win64=x64)/Release/,$(notdir $(LIBVPX_TEST_BIN))) |
+ |
+ifneq ($(strip $(TEST_INTRA_PRED_SPEED_OBJS)),) |
+PROJECTS-$(CONFIG_MSVS) += test_intra_pred_speed.$(VCPROJ_SFX) |
+test_intra_pred_speed.$(VCPROJ_SFX): $(TEST_INTRA_PRED_SPEED_SRCS) vpx.$(VCPROJ_SFX) gtest.$(VCPROJ_SFX) |
+ @echo " [CREATE] $@" |
+ $(qexec)$(GEN_VCPROJ) \ |
+ --exe \ |
+ --target=$(TOOLCHAIN) \ |
+ --name=test_intra_pred_speed \ |
+ -D_VARIADIC_MAX=10 \ |
+ --proj-guid=CD837F5F-52D8-4314-A370-895D614166A7 \ |
+ --ver=$(CONFIG_VS_VERSION) \ |
+ --src-path-bare="$(SRC_PATH_BARE)" \ |
+ $(if $(CONFIG_STATIC_MSVCRT),--static-crt) \ |
+ --out=$@ $(INTERNAL_CFLAGS) $(CFLAGS) \ |
+ -I. -I"$(SRC_PATH_BARE)/third_party/googletest/src/include" \ |
+ -L. -l$(CODEC_LIB) -l$(GTEST_LIB) $^ |
+endif # TEST_INTRA_PRED_SPEED |
endif |
else |
@@ -433,45 +441,53 @@ ifeq ($(filter win%,$(TGT_OS)),$(TGT_OS)) |
# Disabling pthreads globally will cause issues on darwin and possibly elsewhere |
$(GTEST_OBJS) $(GTEST_OBJS:.o=.d): CXXFLAGS += -DGTEST_HAS_PTHREAD=0 |
endif |
-$(GTEST_OBJS) $(GTEST_OBJS:.o=.d): CXXFLAGS += -I$(SRC_PATH_BARE)/third_party/googletest/src |
-$(GTEST_OBJS) $(GTEST_OBJS:.o=.d): CXXFLAGS += -I$(SRC_PATH_BARE)/third_party/googletest/src/include |
-OBJS-$(BUILD_LIBVPX) += $(GTEST_OBJS) |
-LIBS-$(BUILD_LIBVPX) += $(BUILD_PFX)libgtest.a $(BUILD_PFX)libgtest_g.a |
+GTEST_INCLUDES := -I$(SRC_PATH_BARE)/third_party/googletest/src |
+GTEST_INCLUDES += -I$(SRC_PATH_BARE)/third_party/googletest/src/include |
+$(GTEST_OBJS) $(GTEST_OBJS:.o=.d): CXXFLAGS += $(GTEST_INCLUDES) |
+OBJS-yes += $(GTEST_OBJS) |
+LIBS-yes += $(BUILD_PFX)libgtest.a $(BUILD_PFX)libgtest_g.a |
$(BUILD_PFX)libgtest_g.a: $(GTEST_OBJS) |
LIBVPX_TEST_OBJS=$(sort $(call objs,$(LIBVPX_TEST_SRCS))) |
-$(LIBVPX_TEST_OBJS) $(LIBVPX_TEST_OBJS:.o=.d): CXXFLAGS += -I$(SRC_PATH_BARE)/third_party/googletest/src |
-$(LIBVPX_TEST_OBJS) $(LIBVPX_TEST_OBJS:.o=.d): CXXFLAGS += -I$(SRC_PATH_BARE)/third_party/googletest/src/include |
-OBJS-$(BUILD_LIBVPX) += $(LIBVPX_TEST_OBJS) |
-BINS-$(BUILD_LIBVPX) += $(LIBVPX_TEST_BINS) |
+$(LIBVPX_TEST_OBJS) $(LIBVPX_TEST_OBJS:.o=.d): CXXFLAGS += $(GTEST_INCLUDES) |
+OBJS-yes += $(LIBVPX_TEST_OBJS) |
+BINS-yes += $(LIBVPX_TEST_BIN) |
CODEC_LIB=$(if $(CONFIG_DEBUG_LIBS),vpx_g,vpx) |
CODEC_LIB_SUF=$(if $(CONFIG_SHARED),.so,.a) |
-$(foreach bin,$(LIBVPX_TEST_BINS),\ |
- $(if $(BUILD_LIBVPX),$(eval $(bin): \ |
- lib$(CODEC_LIB)$(CODEC_LIB_SUF) libgtest.a ))\ |
- $(if $(BUILD_LIBVPX),$(eval $(call linkerxx_template,$(bin),\ |
- $(LIBVPX_TEST_OBJS) \ |
- -L. -lvpx -lgtest $(extralibs) -lm)\ |
- )))\ |
- $(if $(LIPO_LIBS),$(eval $(call lipo_bin_template,$(bin))))\ |
- |
-endif |
+TEST_LIBS := lib$(CODEC_LIB)$(CODEC_LIB_SUF) libgtest.a |
+$(LIBVPX_TEST_BIN): $(TEST_LIBS) |
+$(eval $(call linkerxx_template,$(LIBVPX_TEST_BIN), \ |
+ $(LIBVPX_TEST_OBJS) \ |
+ -L. -lvpx -lgtest $(extralibs) -lm)) |
+ |
+TEST_INTRA_PRED_SPEED_OBJS := $(sort $(call objs,$(TEST_INTRA_PRED_SPEED_SRCS))) |
+ifneq ($(strip $(TEST_INTRA_PRED_SPEED_OBJS)),) |
+$(TEST_INTRA_PRED_SPEED_OBJS) $(TEST_INTRA_PRED_SPEED_OBJS:.o=.d): CXXFLAGS += $(GTEST_INCLUDES) |
+OBJS-yes += $(TEST_INTRA_PRED_SPEED_OBJS) |
+BINS-yes += $(TEST_INTRA_PRED_SPEED_BIN) |
+ |
+$(TEST_INTRA_PRED_SPEED_BIN): $(TEST_LIBS) |
+$(eval $(call linkerxx_template,$(TEST_INTRA_PRED_SPEED_BIN), \ |
+ $(TEST_INTRA_PRED_SPEED_OBJS) \ |
+ -L. -lvpx -lgtest $(extralibs) -lm)) |
+endif # TEST_INTRA_PRED_SPEED |
+ |
+endif # CONFIG_UNIT_TESTS |
# Install test sources only if codec source is included |
INSTALL-SRCS-$(CONFIG_CODEC_SRCS) += $(patsubst $(SRC_PATH_BARE)/%,%,\ |
$(shell find $(SRC_PATH_BARE)/third_party/googletest -type f)) |
INSTALL-SRCS-$(CONFIG_CODEC_SRCS) += $(LIBVPX_TEST_SRCS) |
+INSTALL-SRCS-$(CONFIG_CODEC_SRCS) += $(TEST_INTRA_PRED_SPEED_SRCS) |
define test_shard_template |
test:: test_shard.$(1) |
-test_shard.$(1): $(LIBVPX_TEST_BINS) testdata |
+test_shard.$(1): $(LIBVPX_TEST_BIN) testdata |
@set -e; \ |
- for t in $(LIBVPX_TEST_BINS); do \ |
- export GTEST_SHARD_INDEX=$(1); \ |
- export GTEST_TOTAL_SHARDS=$(2); \ |
- $$$$t; \ |
- done |
+ export GTEST_SHARD_INDEX=$(1); \ |
+ export GTEST_TOTAL_SHARDS=$(2); \ |
+ $(LIBVPX_TEST_BIN) |
.PHONY: test_shard.$(1) |
endef |