diff options
author | trav90 <travawine@palemoon.org> | 2018-10-19 21:52:15 -0500 |
---|---|---|
committer | trav90 <travawine@palemoon.org> | 2018-10-19 21:52:20 -0500 |
commit | bbcc64772580c8a979288791afa02d30bc476d2e (patch) | |
tree | 437ce94c3fdd7497508e5b55de06c6d011678597 /third_party/aom/build/make | |
parent | 14805f6ddbfb173c327768fff9f81f40ce5e81b0 (diff) | |
download | UXP-bbcc64772580c8a979288791afa02d30bc476d2e.tar UXP-bbcc64772580c8a979288791afa02d30bc476d2e.tar.gz UXP-bbcc64772580c8a979288791afa02d30bc476d2e.tar.lz UXP-bbcc64772580c8a979288791afa02d30bc476d2e.tar.xz UXP-bbcc64772580c8a979288791afa02d30bc476d2e.zip |
Update aom to v1.0.0
Update aom to commit id d14c5bb4f336ef1842046089849dee4a301fbbf0.
Diffstat (limited to 'third_party/aom/build/make')
-rw-r--r-- | third_party/aom/build/make/Android.mk | 194 | ||||
-rw-r--r-- | third_party/aom/build/make/Makefile | 466 | ||||
-rwxr-xr-x | third_party/aom/build/make/ads2armasm_ms.pl | 39 | ||||
-rwxr-xr-x | third_party/aom/build/make/ads2gas.pl | 236 | ||||
-rwxr-xr-x | third_party/aom/build/make/ads2gas_apple.pl | 235 | ||||
-rwxr-xr-x | third_party/aom/build/make/armlink_adapter.sh | 53 | ||||
-rw-r--r-- | third_party/aom/build/make/configure.sh | 1522 | ||||
-rwxr-xr-x | third_party/aom/build/make/gen_asm_deps.sh | 65 | ||||
-rwxr-xr-x | third_party/aom/build/make/gen_msvs_def.sh | 82 | ||||
-rwxr-xr-x | third_party/aom/build/make/gen_msvs_sln.sh | 257 | ||||
-rwxr-xr-x | third_party/aom/build/make/gen_msvs_vcxproj.sh | 477 | ||||
-rwxr-xr-x | third_party/aom/build/make/iosbuild.sh | 1 | ||||
-rw-r--r-- | third_party/aom/build/make/msvs_common.sh | 114 | ||||
-rwxr-xr-x | third_party/aom/build/make/rtcd.pl | 71 | ||||
-rw-r--r-- | third_party/aom/build/make/thumb.pm | 7 | ||||
-rwxr-xr-x | third_party/aom/build/make/version.sh | 78 |
16 files changed, 61 insertions, 3836 deletions
diff --git a/third_party/aom/build/make/Android.mk b/third_party/aom/build/make/Android.mk deleted file mode 100644 index e50faef92..000000000 --- a/third_party/aom/build/make/Android.mk +++ /dev/null @@ -1,194 +0,0 @@ -## -## Copyright (c) 2016, Alliance for Open Media. All rights reserved -## -## This source code is subject to the terms of the BSD 2 Clause License and -## the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License -## was not distributed with this source code in the LICENSE file, you can -## obtain it at www.aomedia.org/license/software. If the Alliance for Open -## Media Patent License 1.0 was not distributed with this source code in the -## PATENTS file, you can obtain it at www.aomedia.org/license/patent. -## - - -# -# This file is to be used for compiling libaom for Android using the NDK. -# In an Android project place a libaom checkout in the jni directory. -# Run the configure script from the jni directory. Base libaom -# encoder/decoder configuration will look similar to: -# ./libaom/configure --target=armv7-android-gcc --disable-examples \ -# --sdk-path=/opt/android-ndk-r6b/ -# -# When targeting Android, realtime-only is enabled by default. This can -# be overridden by adding the command line flag: -# --disable-realtime-only -# -# This will create .mk files that contain variables that contain the -# source files to compile. -# -# Place an Android.mk file in the jni directory that references the -# Android.mk file in the libaom directory: -# LOCAL_PATH := $(call my-dir) -# include $(CLEAR_VARS) -# include jni/libaom/build/make/Android.mk -# -# There are currently two TARGET_ARCH_ABI targets for ARM. -# armeabi and armeabi-v7a. armeabi-v7a is selected by creating an -# Application.mk in the jni directory that contains: -# APP_ABI := armeabi-v7a -# -# By default libaom will detect at runtime the existance of NEON extension. -# For this we import the 'cpufeatures' module from the NDK sources. -# libaom can also be configured without this runtime detection method. -# Configuring with --disable-runtime-cpu-detect will assume presence of NEON. -# Configuring with --disable-runtime-cpu-detect --disable-neon \ -# --disable-neon-asm -# will remove any NEON dependency. -# -# Running ndk-build will build libaom and include it in your project. -# - -CONFIG_DIR := $(LOCAL_PATH)/ -LIBAOM_PATH := $(LOCAL_PATH)/libaom -ASM_CNV_PATH_LOCAL := $(TARGET_ARCH_ABI)/ads2gas -ASM_CNV_PATH := $(LOCAL_PATH)/$(ASM_CNV_PATH_LOCAL) - -# Use the makefiles generated by upstream configure to determine which files to -# build. Also set any architecture-specific flags. -ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) - include $(CONFIG_DIR)libs-armv7-android-gcc.mk - LOCAL_ARM_MODE := arm -else ifeq ($(TARGET_ARCH_ABI),arm64-v8a) - include $(CONFIG_DIR)libs-armv8-android-gcc.mk - LOCAL_ARM_MODE := arm -else ifeq ($(TARGET_ARCH_ABI),x86) - include $(CONFIG_DIR)libs-x86-android-gcc.mk -else ifeq ($(TARGET_ARCH_ABI),x86_64) - include $(CONFIG_DIR)libs-x86_64-android-gcc.mk -else ifeq ($(TARGET_ARCH_ABI),mips) - include $(CONFIG_DIR)libs-mips-android-gcc.mk -else - $(error Not a supported TARGET_ARCH_ABI: $(TARGET_ARCH_ABI)) -endif - -# Rule that is normally in Makefile created by libaom -# configure. Used to filter out source files based on configuration. -enabled=$(filter-out $($(1)-no),$($(1)-yes)) - -# Override the relative path that is defined by the libaom -# configure process -SRC_PATH_BARE := $(LIBAOM_PATH) - -# Include the list of files to be built -include $(LIBAOM_PATH)/libs.mk - -# Optimise the code. May want to revisit this setting in the future. -LOCAL_CFLAGS := -O3 - -# For x86, include the source code in the search path so it will find files -# like x86inc.asm and x86_abi_support.asm -LOCAL_ASMFLAGS := -I$(LIBAOM_PATH) - -.PRECIOUS: %.asm.s -$(ASM_CNV_PATH)/libaom/%.asm.s: $(LIBAOM_PATH)/%.asm - @mkdir -p $(dir $@) - @$(CONFIG_DIR)$(ASM_CONVERSION) <$< > $@ - -# For building *_rtcd.h, which have rules in libs.mk -TGT_ISA:=$(word 1, $(subst -, ,$(TOOLCHAIN))) -target := libs - -LOCAL_SRC_FILES += aom_config.c - -# Remove duplicate entries -CODEC_SRCS_UNIQUE = $(sort $(CODEC_SRCS)) - -# Pull out C files. aom_config.c is in the immediate directory and -# so it does not need libaom/ prefixed like the rest of the source files. -# The neon files with intrinsics need to have .neon appended so the proper -# flags are applied. -CODEC_SRCS_C = $(filter %.c, $(CODEC_SRCS_UNIQUE)) -LOCAL_NEON_SRCS_C = $(filter %_neon.c, $(CODEC_SRCS_C)) -LOCAL_CODEC_SRCS_C = $(filter-out aom_config.c %_neon.c, $(CODEC_SRCS_C)) - -LOCAL_SRC_FILES += $(foreach file, $(LOCAL_CODEC_SRCS_C), libaom/$(file)) -ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) - LOCAL_SRC_FILES += $(foreach file, $(LOCAL_NEON_SRCS_C), libaom/$(file).neon) -else # If there are neon sources then we are building for arm64 and do not need to specify .neon - LOCAL_SRC_FILES += $(foreach file, $(LOCAL_NEON_SRCS_C), libaom/$(file)) -endif - -# Pull out assembly files, splitting NEON from the rest. This is -# done to specify that the NEON assembly files use NEON assembler flags. -# x86 assembly matches %.asm, arm matches %.asm.s - -# x86: - -CODEC_SRCS_ASM_X86 = $(filter %.asm, $(CODEC_SRCS_UNIQUE)) -LOCAL_SRC_FILES += $(foreach file, $(CODEC_SRCS_ASM_X86), libaom/$(file)) - -# arm: -CODEC_SRCS_ASM_ARM_ALL = $(filter %.asm.s, $(CODEC_SRCS_UNIQUE)) -CODEC_SRCS_ASM_ARM = $(foreach v, \ - $(CODEC_SRCS_ASM_ARM_ALL), \ - $(if $(findstring neon,$(v)),,$(v))) -CODEC_SRCS_ASM_ADS2GAS = $(patsubst %.s, \ - $(ASM_CNV_PATH_LOCAL)/libaom/%.s, \ - $(CODEC_SRCS_ASM_ARM)) -LOCAL_SRC_FILES += $(CODEC_SRCS_ASM_ADS2GAS) - -ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) - CODEC_SRCS_ASM_NEON = $(foreach v, \ - $(CODEC_SRCS_ASM_ARM_ALL),\ - $(if $(findstring neon,$(v)),$(v),)) - CODEC_SRCS_ASM_NEON_ADS2GAS = $(patsubst %.s, \ - $(ASM_CNV_PATH_LOCAL)/libaom/%.s, \ - $(CODEC_SRCS_ASM_NEON)) - LOCAL_SRC_FILES += $(patsubst %.s, \ - %.s.neon, \ - $(CODEC_SRCS_ASM_NEON_ADS2GAS)) -endif - -LOCAL_CFLAGS += \ - -DHAVE_CONFIG_H=aom_config.h \ - -I$(LIBAOM_PATH) \ - -I$(ASM_CNV_PATH) - -LOCAL_MODULE := libaom - -ifeq ($(CONFIG_RUNTIME_CPU_DETECT),yes) - LOCAL_STATIC_LIBRARIES := cpufeatures -endif - -# Add a dependency to force generation of the RTCD files. -define rtcd_dep_template -rtcd_dep_template_SRCS := $(addprefix $(LOCAL_PATH)/, $(LOCAL_SRC_FILES)) -rtcd_dep_template_SRCS := $$(rtcd_dep_template_SRCS:.neon=) -ifeq ($(CONFIG_AV1), yes) -$$(rtcd_dep_template_SRCS): av1_rtcd.h -endif -$$(rtcd_dep_template_SRCS): aom_scale_rtcd.h -$$(rtcd_dep_template_SRCS): aom_dsp_rtcd.h - -ifneq ($(findstring $(TARGET_ARCH_ABI),x86 x86_64),) -$$(rtcd_dep_template_SRCS): aom_config.asm -endif -endef - -$(eval $(call rtcd_dep_template)) - -.PHONY: clean -clean: - @echo "Clean: ads2gas files [$(TARGET_ARCH_ABI)]" - @$(RM) $(CODEC_SRCS_ASM_ADS2GAS) $(CODEC_SRCS_ASM_NEON_ADS2GAS) - @$(RM) -r $(ASM_CNV_PATH) - @$(RM) $(CLEAN-OBJS) - -ifeq ($(ENABLE_SHARED),1) - include $(BUILD_SHARED_LIBRARY) -else - include $(BUILD_STATIC_LIBRARY) -endif - -ifeq ($(CONFIG_RUNTIME_CPU_DETECT),yes) -$(call import-module,cpufeatures) -endif diff --git a/third_party/aom/build/make/Makefile b/third_party/aom/build/make/Makefile deleted file mode 100644 index 0b869db0a..000000000 --- a/third_party/aom/build/make/Makefile +++ /dev/null @@ -1,466 +0,0 @@ -## Copyright (c) 2016, Alliance for Open Media. All rights reserved -## -## This source code is subject to the terms of the BSD 2 Clause License and -## the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License -## was not distributed with this source code in the LICENSE file, you can -## obtain it at www.aomedia.org/license/software. If the Alliance for Open -## Media Patent License 1.0 was not distributed with this source code in the -## PATENTS file, you can obtain it at www.aomedia.org/license/patent. -## - - -include config.mk -quiet?=true -ifeq ($(target),) -# If a target wasn't specified, invoke for all enabled targets. -.DEFAULT: - @for t in $(ALL_TARGETS); do \ - $(MAKE) --no-print-directory target=$$t $(MAKECMDGOALS) || exit $$?;\ - done -all: .DEFAULT -clean:: .DEFAULT -exampletest: .DEFAULT -install:: .DEFAULT -test:: .DEFAULT -test-no-data-check:: .DEFAULT -testdata:: .DEFAULT -utiltest: .DEFAULT -exampletest-no-data-check utiltest-no-data-check: .DEFAULT -test_%: .DEFAULT ; - -# Note: md5sum is not installed on OS X, but openssl is. Openssl may not be -# installed on cygwin, so we need to autodetect here. -md5sum := $(firstword $(wildcard \ - $(foreach e,md5sum openssl,\ - $(foreach p,$(subst :, ,$(PATH)),$(p)/$(e)*))\ - )) -md5sum := $(if $(filter %openssl,$(md5sum)),$(md5sum) dgst -md5,$(md5sum)) - -TGT_CC:=$(word 3, $(subst -, ,$(TOOLCHAIN))) -dist: - @for t in $(ALL_TARGETS); do \ - $(MAKE) --no-print-directory target=$$t $(MAKECMDGOALS) || exit $$?;\ - done - # Run configure for the user with the current toolchain. - @if [ -d "$(DIST_DIR)/src" ]; then \ - mkdir -p "$(DIST_DIR)/build"; \ - cd "$(DIST_DIR)/build"; \ - echo "Rerunning configure $(CONFIGURE_ARGS)"; \ - ../src/configure $(CONFIGURE_ARGS); \ - $(if $(filter vs%,$(TGT_CC)),make NO_LAUNCH_DEVENV=1;) \ - fi - @if [ -d "$(DIST_DIR)" ]; then \ - echo " [MD5SUM] $(DIST_DIR)"; \ - cd $(DIST_DIR) && \ - $(md5sum) `find . -name md5sums.txt -prune -o -type f -print` \ - | sed -e 's/MD5(\(.*\))= \([0-9a-f]\{32\}\)/\2 \1/' \ - > md5sums.txt;\ - fi -endif - -# Since we invoke make recursively for multiple targets we need to include the -# .mk file for the correct target, but only when $(target) is non-empty. -ifneq ($(target),) -include $(target)-$(TOOLCHAIN).mk -endif -BUILD_ROOT?=. -VPATH=$(SRC_PATH_BARE) -CFLAGS+=-I$(BUILD_PFX)$(BUILD_ROOT) -I$(SRC_PATH) -CXXFLAGS+=-I$(BUILD_PFX)$(BUILD_ROOT) -I$(SRC_PATH) -ASFLAGS+=-I$(BUILD_PFX)$(BUILD_ROOT)/ -I$(SRC_PATH)/ -DIST_DIR?=dist -HOSTCC?=gcc -TGT_ISA:=$(word 1, $(subst -, ,$(TOOLCHAIN))) -TGT_OS:=$(word 2, $(subst -, ,$(TOOLCHAIN))) -TGT_CC:=$(word 3, $(subst -, ,$(TOOLCHAIN))) -quiet:=$(if $(or $(verbose), $(V)),, yes) -qexec=$(if $(quiet),@) - -# Cancel built-in implicit rules -%: %.o -%.asm: -%.a: -%: %.cc - -# -# Common rules" -# -.PHONY: all -all: - -.PHONY: clean -clean:: - rm -f $(OBJS-yes) $(OBJS-yes:.o=.d) $(OBJS-yes:.asm.s.o=.asm.s) - rm -f $(CLEAN-OBJS) - -.PHONY: clean -distclean: clean - if [ -z "$(target)" ]; then \ - rm -f Makefile; \ - rm -f config.log config.mk; \ - rm -f aom_config.[hc] aom_config.asm; \ - else \ - rm -f $(target)-$(TOOLCHAIN).mk; \ - fi - -.PHONY: dist -dist: -.PHONY: exampletest -exampletest: -.PHONY: install -install:: -.PHONY: test -test:: -.PHONY: testdata -testdata:: -.PHONY: utiltest -utiltest: -.PHONY: test-no-data-check exampletest-no-data-check utiltest-no-data-check -test-no-data-check:: -exampletest-no-data-check utiltest-no-data-check: - -# Force to realign stack always on OS/2 -ifeq ($(TOOLCHAIN), x86-os2-gcc) -CFLAGS += -mstackrealign -endif - -$(BUILD_PFX)%_mmx.c.d: CFLAGS += -mmmx -$(BUILD_PFX)%_mmx.c.o: CFLAGS += -mmmx -$(BUILD_PFX)%_sse2.c.d: CFLAGS += -msse2 -$(BUILD_PFX)%_sse2.c.o: CFLAGS += -msse2 -$(BUILD_PFX)%_sse3.c.d: CFLAGS += -msse3 -$(BUILD_PFX)%_sse3.c.o: CFLAGS += -msse3 -$(BUILD_PFX)%_ssse3.c.d: CFLAGS += -mssse3 -$(BUILD_PFX)%_ssse3.c.o: CFLAGS += -mssse3 -$(BUILD_PFX)%_sse4.c.d: CFLAGS += -msse4.1 -$(BUILD_PFX)%_sse4.c.o: CFLAGS += -msse4.1 -$(BUILD_PFX)%_avx.c.d: CFLAGS += -mavx -$(BUILD_PFX)%_avx.c.o: CFLAGS += -mavx -$(BUILD_PFX)%_avx2.c.d: CFLAGS += -mavx2 -$(BUILD_PFX)%_avx2.c.o: CFLAGS += -mavx2 -$(BUILD_PFX)%_mmx.cc.d: CXXFLAGS += -mmmx -$(BUILD_PFX)%_mmx.cc.o: CXXFLAGS += -mmmx -$(BUILD_PFX)%_sse2.cc.d: CXXFLAGS += -msse2 -$(BUILD_PFX)%_sse2.cc.o: CXXFLAGS += -msse2 -$(BUILD_PFX)%_sse3.cc.d: CXXFLAGS += -msse3 -$(BUILD_PFX)%_sse3.cc.o: CXXFLAGS += -msse3 -$(BUILD_PFX)%_ssse3.cc.d: CXXFLAGS += -mssse3 -$(BUILD_PFX)%_ssse3.cc.o: CXXFLAGS += -mssse3 -$(BUILD_PFX)%_sse4.cc.d: CXXFLAGS += -msse4.1 -$(BUILD_PFX)%_sse4.cc.o: CXXFLAGS += -msse4.1 -$(BUILD_PFX)%_avx.cc.d: CXXFLAGS += -mavx -$(BUILD_PFX)%_avx.cc.o: CXXFLAGS += -mavx -$(BUILD_PFX)%_avx2.cc.d: CXXFLAGS += -mavx2 -$(BUILD_PFX)%_avx2.cc.o: CXXFLAGS += -mavx2 - -$(BUILD_PFX)%.c.d: %.c - $(if $(quiet),@echo " [DEP] $@") - $(qexec)mkdir -p $(dir $@) - $(qexec)$(CC) $(INTERNAL_CFLAGS) $(CFLAGS) -M $< | $(fmt_deps) > $@ - -$(BUILD_PFX)%.c.o: %.c - $(if $(quiet),@echo " [CC] $@") - $(qexec)$(if $(CONFIG_DEPENDENCY_TRACKING),,mkdir -p $(dir $@)) - $(qexec)$(CC) $(INTERNAL_CFLAGS) $(CFLAGS) -c -o $@ $< - -$(BUILD_PFX)%.cc.d: %.cc - $(if $(quiet),@echo " [DEP] $@") - $(qexec)mkdir -p $(dir $@) - $(qexec)$(CXX) $(INTERNAL_CFLAGS) $(CXXFLAGS) -M $< | $(fmt_deps) > $@ - -$(BUILD_PFX)%.cc.o: %.cc - $(if $(quiet),@echo " [CXX] $@") - $(qexec)$(if $(CONFIG_DEPENDENCY_TRACKING),,mkdir -p $(dir $@)) - $(qexec)$(CXX) $(INTERNAL_CFLAGS) $(CXXFLAGS) -c -o $@ $< - -$(BUILD_PFX)%.cpp.d: %.cpp - $(if $(quiet),@echo " [DEP] $@") - $(qexec)mkdir -p $(dir $@) - $(qexec)$(CXX) $(INTERNAL_CFLAGS) $(CXXFLAGS) -M $< | $(fmt_deps) > $@ - -$(BUILD_PFX)%.cpp.o: %.cpp - $(if $(quiet),@echo " [CXX] $@") - $(qexec)$(if $(CONFIG_DEPENDENCY_TRACKING),,mkdir -p $(dir $@)) - $(qexec)$(CXX) $(INTERNAL_CFLAGS) $(CXXFLAGS) -c -o $@ $< - -$(BUILD_PFX)%.asm.d: %.asm - $(if $(quiet),@echo " [DEP] $@") - $(qexec)mkdir -p $(dir $@) - $(qexec)$(SRC_PATH_BARE)/build/make/gen_asm_deps.sh \ - --build-pfx=$(BUILD_PFX) --depfile=$@ $(ASFLAGS) $< > $@ - -$(BUILD_PFX)%.asm.o: %.asm - $(if $(quiet),@echo " [AS] $@") - $(qexec)$(if $(CONFIG_DEPENDENCY_TRACKING),,mkdir -p $(dir $@)) - $(qexec)$(AS) $(ASFLAGS) -o $@ $< - -$(BUILD_PFX)%.s.d: %.s - $(if $(quiet),@echo " [DEP] $@") - $(qexec)mkdir -p $(dir $@) - $(qexec)$(SRC_PATH_BARE)/build/make/gen_asm_deps.sh \ - --build-pfx=$(BUILD_PFX) --depfile=$@ $(ASFLAGS) $< > $@ - -$(BUILD_PFX)%.s.o: %.s - $(if $(quiet),@echo " [AS] $@") - $(qexec)$(if $(CONFIG_DEPENDENCY_TRACKING),,mkdir -p $(dir $@)) - $(qexec)$(AS) $(ASFLAGS) -o $@ $< - -.PRECIOUS: %.c.S -%.c.S: CFLAGS += -DINLINE_ASM -$(BUILD_PFX)%.c.S: %.c - $(if $(quiet),@echo " [GEN] $@") - $(qexec)$(if $(CONFIG_DEPENDENCY_TRACKING),,mkdir -p $(dir $@)) - $(qexec)$(CC) -S $(CFLAGS) -o $@ $< - -.PRECIOUS: %.asm.s -$(BUILD_PFX)%.asm.s: %.asm - $(if $(quiet),@echo " [ASM CONVERSION] $@") - $(qexec)mkdir -p $(dir $@) - $(qexec)$(ASM_CONVERSION) <$< >$@ - -# If we're in debug mode, pretend we don't have GNU strip, to fall back to -# the copy implementation -HAVE_GNU_STRIP := $(if $(CONFIG_DEBUG),,$(HAVE_GNU_STRIP)) -ifeq ($(HAVE_GNU_STRIP),yes) -# Older binutils strip global symbols not needed for relocation processing -# when given --strip-unneeded. Using nm and awk to identify globals and -# keep them caused command line length issues under mingw and segfaults in -# test_libaom were observed under OS/2: simply use --strip-debug. -%.a: %_g.a - $(if $(quiet),@echo " [STRIP] $@ < $<") - $(qexec)$(STRIP) --strip-debug \ - -o $@ $< -else -%.a: %_g.a - $(if $(quiet),@echo " [CP] $@ < $<") - $(qexec)cp $< $@ -endif - -# -# Utility functions -# -pairmap=$(if $(strip $(2)),\ - $(call $(1),$(word 1,$(2)),$(word 2,$(2)))\ - $(call pairmap,$(1),$(wordlist 3,$(words $(2)),$(2)))\ -) - -enabled=$(filter-out $($(1)-no),$($(1)-yes)) -cond_enabled=$(if $(filter yes,$($(1))), $(call enabled,$(2))) - -find_file1=$(word 1,$(wildcard $(subst //,/,$(addsuffix /$(1),$(2))))) -find_file=$(foreach f,$(1),$(call find_file1,$(strip $(f)),$(strip $(2))) ) -obj_pats=.c=.c.o $(AS_SFX)=$(AS_SFX).o .cc=.cc.o .cpp=.cpp.o -objs=$(addprefix $(BUILD_PFX),$(foreach p,$(obj_pats),$(filter %.o,$(1:$(p))) )) - -install_map_templates=$(eval $(call install_map_template,$(1),$(2))) - -not=$(subst yes,no,$(1)) - -ifeq ($(CONFIG_MSVS),yes) -lib_file_name=$(1).lib -else -lib_file_name=lib$(1).a -endif -# -# Rule Templates -# -define linker_template -$(1): $(filter-out -%,$(2)) -$(1): - $(if $(quiet),@echo " [LD] $$@") - $(qexec)$$(LD) $$(strip $$(INTERNAL_LDFLAGS) $$(LDFLAGS) -o $$@ $(2) $(3) $$(extralibs)) -endef -define linkerxx_template -$(1): $(filter-out -%,$(2)) -$(1): - $(if $(quiet),@echo " [LD] $$@") - $(qexec)$$(CXX) $$(strip $$(INTERNAL_LDFLAGS) $$(LDFLAGS) -o $$@ $(2) $(3) $$(extralibs)) -endef -# make-3.80 has a bug with expanding large input strings to the eval function, -# which was triggered in some cases by the following component of -# linker_template: -# $(1): $$(call find_file, $(patsubst -l%,lib%.a,$(filter -l%,$(2))),\ -# $$(patsubst -L%,%,$$(filter -L%,$$(LDFLAGS) $(2)))) -# This may be useful to revisit in the future (it tries to locate libraries -# in a search path and add them as prerequisites - -define install_map_template -$(DIST_DIR)/$(1): $(2) - $(if $(quiet),@echo " [INSTALL] $$@") - $(qexec)mkdir -p $$(dir $$@) - $(qexec)cp -p $$< $$@ -endef - -define archive_template -# Not using a pattern rule here because we don't want to generate empty -# archives when they are listed as a dependency in files not responsible -# for creating them. -$(1): - $(if $(quiet),@echo " [AR] $$@") - $(qexec)$$(AR) $$(ARFLAGS) $$@ $$^ -endef - -define so_template -# Not using a pattern rule here because we don't want to generate empty -# archives when they are listed as a dependency in files not responsible -# for creating them. -# -# This needs further abstraction for dealing with non-GNU linkers. -$(1): - $(if $(quiet),@echo " [LD] $$@") - $(qexec)$$(LD) -shared $$(LDFLAGS) \ - -Wl,--no-undefined -Wl,-soname,$$(SONAME) \ - -Wl,--version-script,$$(EXPORTS_FILE) -o $$@ \ - $$(filter %.o,$$^) $$(extralibs) -endef - -define dl_template -# Not using a pattern rule here because we don't want to generate empty -# archives when they are listed as a dependency in files not responsible -# for creating them. -$(1): - $(if $(quiet),@echo " [LD] $$@") - $(qexec)$$(LD) -dynamiclib $$(LDFLAGS) \ - -exported_symbols_list $$(EXPORTS_FILE) \ - -Wl,-headerpad_max_install_names,-compatibility_version,1.0,-current_version,$$(VERSION_MAJOR) \ - -o $$@ \ - $$(filter %.o,$$^) $$(extralibs) -endef - -define dll_template -# Not using a pattern rule here because we don't want to generate empty -# archives when they are listed as a dependency in files not responsible -# for creating them. -$(1): - $(if $(quiet),@echo " [LD] $$@") - $(qexec)$$(LD) -Zdll $$(LDFLAGS) \ - -o $$@ \ - $$(filter %.o,$$^) $$(extralibs) $$(EXPORTS_FILE) -endef - - -# -# Get current configuration -# -ifneq ($(target),) -include $(SRC_PATH_BARE)/$(target:-$(TOOLCHAIN)=).mk -endif - -skip_deps := $(filter %clean,$(MAKECMDGOALS)) -skip_deps += $(findstring testdata,$(MAKECMDGOALS)) -ifeq ($(strip $(skip_deps)),) - ifeq ($(CONFIG_DEPENDENCY_TRACKING),yes) - # Older versions of make don't like -include directives with no arguments - ifneq ($(filter %.d,$(OBJS-yes:.o=.d)),) - -include $(filter %.d,$(OBJS-yes:.o=.d)) - endif - endif -endif - -# -# Configuration dependent rules -# -$(call pairmap,install_map_templates,$(INSTALL_MAPS)) - -DOCS=$(call cond_enabled,CONFIG_INSTALL_DOCS,DOCS) -.docs: $(DOCS) - @touch $@ - -INSTALL-DOCS=$(call cond_enabled,CONFIG_INSTALL_DOCS,INSTALL-DOCS) -ifeq ($(MAKECMDGOALS),dist) -INSTALL-DOCS+=$(call cond_enabled,CONFIG_INSTALL_DOCS,DIST-DOCS) -endif -.install-docs: .docs $(addprefix $(DIST_DIR)/,$(INSTALL-DOCS)) - @touch $@ - -clean:: - rm -f .docs .install-docs $(DOCS) - -BINS=$(call enabled,BINS) -.bins: $(BINS) - @touch $@ - -INSTALL-BINS=$(call cond_enabled,CONFIG_INSTALL_BINS,INSTALL-BINS) -ifeq ($(MAKECMDGOALS),dist) -INSTALL-BINS+=$(call cond_enabled,CONFIG_INSTALL_BINS,DIST-BINS) -endif -.install-bins: .bins $(addprefix $(DIST_DIR)/,$(INSTALL-BINS)) - @touch $@ - -clean:: - rm -f .bins .install-bins $(BINS) - -LIBS=$(call enabled,LIBS) -.libs: $(LIBS) - @touch $@ -$(foreach lib,$(filter %_g.a,$(LIBS)),$(eval $(call archive_template,$(lib)))) -$(foreach lib,$(filter %so.$(SO_VERSION_MAJOR).$(SO_VERSION_MINOR).$(SO_VERSION_PATCH),$(LIBS)),$(eval $(call so_template,$(lib)))) -$(foreach lib,$(filter %$(SO_VERSION_MAJOR).dylib,$(LIBS)),$(eval $(call dl_template,$(lib)))) -$(foreach lib,$(filter %$(SO_VERSION_MAJOR).dll,$(LIBS)),$(eval $(call dll_template,$(lib)))) - -INSTALL-LIBS=$(call cond_enabled,CONFIG_INSTALL_LIBS,INSTALL-LIBS) -ifeq ($(MAKECMDGOALS),dist) -INSTALL-LIBS+=$(call cond_enabled,CONFIG_INSTALL_LIBS,DIST-LIBS) -endif -.install-libs: .libs $(addprefix $(DIST_DIR)/,$(INSTALL-LIBS)) - @touch $@ - -clean:: - rm -f .libs .install-libs $(LIBS) - -ifeq ($(CONFIG_EXTERNAL_BUILD),yes) -PROJECTS=$(call enabled,PROJECTS) -.projects: $(PROJECTS) - @touch $@ - -INSTALL-PROJECTS=$(call cond_enabled,CONFIG_INSTALL_PROJECTS,INSTALL-PROJECTS) -ifeq ($(MAKECMDGOALS),dist) -INSTALL-PROJECTS+=$(call cond_enabled,CONFIG_INSTALL_PROJECTS,DIST-PROJECTS) -endif -.install-projects: .projects $(addprefix $(DIST_DIR)/,$(INSTALL-PROJECTS)) - @touch $@ - -clean:: - rm -f .projects .install-projects $(PROJECTS) -endif - -# If there are any source files to be distributed, then include the build -# system too. -ifneq ($(call enabled,DIST-SRCS),) - DIST-SRCS-yes += configure - DIST-SRCS-yes += build/make/configure.sh - DIST-SRCS-yes += build/make/gen_asm_deps.sh - DIST-SRCS-yes += build/make/Makefile - DIST-SRCS-$(CONFIG_MSVS) += build/make/gen_msvs_def.sh - DIST-SRCS-$(CONFIG_MSVS) += build/make/gen_msvs_sln.sh - DIST-SRCS-$(CONFIG_MSVS) += build/make/gen_msvs_vcxproj.sh - DIST-SRCS-$(CONFIG_MSVS) += build/make/msvs_common.sh - DIST-SRCS-$(CONFIG_RVCT) += build/make/armlink_adapter.sh - DIST-SRCS-$(ARCH_ARM) += build/make/ads2gas.pl - DIST-SRCS-$(ARCH_ARM) += build/make/ads2gas_apple.pl - DIST-SRCS-$(ARCH_ARM) += build/make/ads2armasm_ms.pl - DIST-SRCS-$(ARCH_ARM) += build/make/thumb.pm - DIST-SRCS-yes += $(target:-$(TOOLCHAIN)=).mk -endif -INSTALL-SRCS := $(call cond_enabled,CONFIG_INSTALL_SRCS,INSTALL-SRCS) -ifeq ($(MAKECMDGOALS),dist) -INSTALL-SRCS += $(call cond_enabled,CONFIG_INSTALL_SRCS,DIST-SRCS) -endif -.install-srcs: $(addprefix $(DIST_DIR)/src/,$(INSTALL-SRCS)) - @touch $@ - -clean:: - rm -f .install-srcs - -ifeq ($(CONFIG_EXTERNAL_BUILD),yes) - BUILD_TARGETS += .projects - INSTALL_TARGETS += .install-projects -endif -BUILD_TARGETS += .docs .libs .bins -INSTALL_TARGETS += .install-docs .install-srcs .install-libs .install-bins -all: $(BUILD_TARGETS) -install:: $(INSTALL_TARGETS) -dist: $(INSTALL_TARGETS) -test:: - -.SUFFIXES: # Delete default suffix rules diff --git a/third_party/aom/build/make/ads2armasm_ms.pl b/third_party/aom/build/make/ads2armasm_ms.pl deleted file mode 100755 index 8568a2dad..000000000 --- a/third_party/aom/build/make/ads2armasm_ms.pl +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/env perl -## Copyright (c) 2016, Alliance for Open Media. All rights reserved -## -## This source code is subject to the terms of the BSD 2 Clause License and -## the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License -## was not distributed with this source code in the LICENSE file, you can -## obtain it at www.aomedia.org/license/software. If the Alliance for Open -## Media Patent License 1.0 was not distributed with this source code in the -## PATENTS file, you can obtain it at www.aomedia.org/license/patent. -## - -use FindBin; -use lib $FindBin::Bin; -use thumb; - -print "; This file was created from a .asm file\n"; -print "; using the ads2armasm_ms.pl script.\n"; - -while (<STDIN>) -{ - undef $comment; - undef $line; - - s/REQUIRE8//; - s/PRESERVE8//; - s/^\s*ARM\s*$//; - s/AREA\s+\|\|(.*)\|\|/AREA |$1|/; - s/qsubaddx/qsax/i; - s/qaddsubx/qasx/i; - - thumb::FixThumbInstructions($_, 1); - - s/ldrneb/ldrbne/i; - s/ldrneh/ldrhne/i; - s/^(\s*)ENDP.*/$&\n$1ALIGN 4/; - - print; -} - diff --git a/third_party/aom/build/make/ads2gas.pl b/third_party/aom/build/make/ads2gas.pl deleted file mode 100755 index adf45a3c9..000000000 --- a/third_party/aom/build/make/ads2gas.pl +++ /dev/null @@ -1,236 +0,0 @@ -#!/usr/bin/env perl -## Copyright (c) 2016, Alliance for Open Media. All rights reserved -## -## This source code is subject to the terms of the BSD 2 Clause License and -## the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License -## was not distributed with this source code in the LICENSE file, you can -## obtain it at www.aomedia.org/license/software. If the Alliance for Open -## Media Patent License 1.0 was not distributed with this source code in the -## PATENTS file, you can obtain it at www.aomedia.org/license/patent. -## - - -# ads2gas.pl -# Author: Eric Fung (efung (at) acm.org) -# -# Convert ARM Developer Suite 1.0.1 syntax assembly source to GNU as format -# -# Usage: cat inputfile | perl ads2gas.pl > outputfile -# - -use FindBin; -use lib $FindBin::Bin; -use thumb; - -my $thumb = 0; - -foreach my $arg (@ARGV) { - $thumb = 1 if ($arg eq "-thumb"); -} - -print "@ This file was created from a .asm file\n"; -print "@ using the ads2gas.pl script.\n"; -print "\t.equ DO1STROUNDING, 0\n"; -if ($thumb) { - print "\t.syntax unified\n"; - print "\t.thumb\n"; -} - -# Stack of procedure names. -@proc_stack = (); - -while (<STDIN>) -{ - undef $comment; - undef $line; - $comment_char = ";"; - $comment_sub = "@"; - - # Handle comments. - if (/$comment_char/) - { - $comment = ""; - ($line, $comment) = /(.*?)$comment_char(.*)/; - $_ = $line; - } - - # Load and store alignment - s/@/,:/g; - - # Hexadecimal constants prefaced by 0x - s/#&/#0x/g; - - # Convert :OR: to | - s/:OR:/ | /g; - - # Convert :AND: to & - s/:AND:/ & /g; - - # Convert :NOT: to ~ - s/:NOT:/ ~ /g; - - # Convert :SHL: to << - s/:SHL:/ << /g; - - # Convert :SHR: to >> - s/:SHR:/ >> /g; - - # Convert ELSE to .else - s/\bELSE\b/.else/g; - - # Convert ENDIF to .endif - s/\bENDIF\b/.endif/g; - - # Convert ELSEIF to .elseif - s/\bELSEIF\b/.elseif/g; - - # Convert LTORG to .ltorg - s/\bLTORG\b/.ltorg/g; - - # Convert endfunc to nothing. - s/\bendfunc\b//ig; - - # Convert FUNCTION to nothing. - s/\bFUNCTION\b//g; - s/\bfunction\b//g; - - s/\bENTRY\b//g; - s/\bMSARMASM\b/0/g; - s/^\s+end\s+$//g; - - # Convert IF :DEF:to .if - # gcc doesn't have the ability to do a conditional - # if defined variable that is set by IF :DEF: on - # armasm, so convert it to a normal .if and then - # make sure to define a value elesewhere - if (s/\bIF :DEF:\b/.if /g) - { - s/=/==/g; - } - - # Convert IF to .if - if (s/\bIF\b/.if/g) - { - s/=+/==/g; - } - - # Convert INCLUDE to .INCLUDE "file" - s/INCLUDE(\s*)(.*)$/.include $1\"$2\"/; - - # Code directive (ARM vs Thumb) - s/CODE([0-9][0-9])/.code $1/; - - # No AREA required - # But ALIGNs in AREA must be obeyed - s/^\s*AREA.*ALIGN=([0-9])$/.text\n.p2align $1/; - # If no ALIGN, strip the AREA and align to 4 bytes - s/^\s*AREA.*$/.text\n.p2align 2/; - - # DCD to .word - # This one is for incoming symbols - s/DCD\s+\|(\w*)\|/.long $1/; - - # DCW to .short - s/DCW\s+\|(\w*)\|/.short $1/; - s/DCW(.*)/.short $1/; - - # Constants defined in scope - s/DCD(.*)/.long $1/; - s/DCB(.*)/.byte $1/; - - # RN to .req - if (s/RN\s+([Rr]\d+|lr)/.req $1/) - { - print; - print "$comment_sub$comment\n" if defined $comment; - next; - } - - # Make function visible to linker, and make additional symbol with - # prepended underscore - s/EXPORT\s+\|([\$\w]*)\|/.global $1 \n\t.type $1, function/; - s/IMPORT\s+\|([\$\w]*)\|/.global $1/; - - s/EXPORT\s+([\$\w]*)/.global $1/; - s/export\s+([\$\w]*)/.global $1/; - - # No vertical bars required; make additional symbol with prepended - # underscore - s/^\|(\$?\w+)\|/_$1\n\t$1:/g; - - # Labels need trailing colon -# s/^(\w+)/$1:/ if !/EQU/; - # put the colon at the end of the line in the macro - s/^([a-zA-Z_0-9\$]+)/$1:/ if !/EQU/; - - # ALIGN directive - s/\bALIGN\b/.balign/g; - - if ($thumb) { - # ARM code - we force everything to thumb with the declaration in the header - s/\sARM//g; - } else { - # ARM code - s/\sARM/.arm/g; - } - - # push/pop - s/(push\s+)(r\d+)/stmdb sp\!, \{$2\}/g; - s/(pop\s+)(r\d+)/ldmia sp\!, \{$2\}/g; - - # NEON code - s/(vld1.\d+\s+)(q\d+)/$1\{$2\}/g; - s/(vtbl.\d+\s+[^,]+),([^,]+)/$1,\{$2\}/g; - - if ($thumb) { - thumb::FixThumbInstructions($_, 0); - } - - # eabi_attributes numerical equivalents can be found in the - # "ARM IHI 0045C" document. - - # REQUIRE8 Stack is required to be 8-byte aligned - s/\sREQUIRE8/.eabi_attribute 24, 1 \@Tag_ABI_align_needed/g; - - # PRESERVE8 Stack 8-byte align is preserved - s/\sPRESERVE8/.eabi_attribute 25, 1 \@Tag_ABI_align_preserved/g; - - # Use PROC and ENDP to give the symbols a .size directive. - # This makes them show up properly in debugging tools like gdb and valgrind. - if (/\bPROC\b/) - { - my $proc; - /^_([\.0-9A-Z_a-z]\w+)\b/; - $proc = $1; - push(@proc_stack, $proc) if ($proc); - s/\bPROC\b/@ $&/; - } - if (/\bENDP\b/) - { - my $proc; - s/\bENDP\b/@ $&/; - $proc = pop(@proc_stack); - $_ = "\t.size $proc, .-$proc".$_ if ($proc); - } - - # EQU directive - s/(\S+\s+)EQU(\s+\S+)/.equ $1, $2/; - - # Begin macro definition - if (/\bMACRO\b/) { - $_ = <STDIN>; - s/^/.macro/; - s/\$//g; # remove formal param reference - s/;/@/g; # change comment characters - } - - # For macros, use \ to reference formal params - s/\$/\\/g; # End macro definition - s/\bMEND\b/.endm/; # No need to tell it where to stop assembling - next if /^\s*END\s*$/; - print; - print "$comment_sub$comment\n" if defined $comment; -} - -# Mark that this object doesn't need an executable stack. -printf ("\t.section\t.note.GNU-stack,\"\",\%\%progbits\n"); diff --git a/third_party/aom/build/make/ads2gas_apple.pl b/third_party/aom/build/make/ads2gas_apple.pl deleted file mode 100755 index 31ec91d56..000000000 --- a/third_party/aom/build/make/ads2gas_apple.pl +++ /dev/null @@ -1,235 +0,0 @@ -#!/usr/bin/env perl -## Copyright (c) 2016, Alliance for Open Media. All rights reserved -## -## This source code is subject to the terms of the BSD 2 Clause License and -## the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License -## was not distributed with this source code in the LICENSE file, you can -## obtain it at www.aomedia.org/license/software. If the Alliance for Open -## Media Patent License 1.0 was not distributed with this source code in the -## PATENTS file, you can obtain it at www.aomedia.org/license/patent. -## - - -# ads2gas_apple.pl -# Author: Eric Fung (efung (at) acm.org) -# -# Convert ARM Developer Suite 1.0.1 syntax assembly source to GNU as format -# -# Usage: cat inputfile | perl ads2gas_apple.pl > outputfile -# - -my $chromium = 0; - -foreach my $arg (@ARGV) { - $chromium = 1 if ($arg eq "-chromium"); -} - -print "@ This file was created from a .asm file\n"; -print "@ using the ads2gas_apple.pl script.\n\n"; -print "\t.set WIDE_REFERENCE, 0\n"; -print "\t.set ARCHITECTURE, 5\n"; -print "\t.set DO1STROUNDING, 0\n"; - -my %register_aliases; -my %macro_aliases; - -my @mapping_list = ("\$0", "\$1", "\$2", "\$3", "\$4", "\$5", "\$6", "\$7", "\$8", "\$9"); - -my @incoming_array; - -my @imported_functions; - -# Perl trim function to remove whitespace from the start and end of the string -sub trim($) -{ - my $string = shift; - $string =~ s/^\s+//; - $string =~ s/\s+$//; - return $string; -} - -while (<STDIN>) -{ - # Load and store alignment - s/@/,:/g; - - # Comment character - s/;/ @/g; - - # Hexadecimal constants prefaced by 0x - s/#&/#0x/g; - - # Convert :OR: to | - s/:OR:/ | /g; - - # Convert :AND: to & - s/:AND:/ & /g; - - # Convert :NOT: to ~ - s/:NOT:/ ~ /g; - - # Convert :SHL: to << - s/:SHL:/ << /g; - - # Convert :SHR: to >> - s/:SHR:/ >> /g; - - # Convert ELSE to .else - s/\bELSE\b/.else/g; - - # Convert ENDIF to .endif - s/\bENDIF\b/.endif/g; - - # Convert ELSEIF to .elseif - s/\bELSEIF\b/.elseif/g; - - # Convert LTORG to .ltorg - s/\bLTORG\b/.ltorg/g; - - # Convert IF :DEF:to .if - # gcc doesn't have the ability to do a conditional - # if defined variable that is set by IF :DEF: on - # armasm, so convert it to a normal .if and then - # make sure to define a value elesewhere - if (s/\bIF :DEF:\b/.if /g) - { - s/=/==/g; - } - - # Convert IF to .if - if (s/\bIF\b/.if/g) - { - s/=/==/g; - } - - # Convert INCLUDE to .INCLUDE "file" - s/INCLUDE(\s*)(.*)$/.include $1\"$2\"/; - - # Code directive (ARM vs Thumb) - s/CODE([0-9][0-9])/.code $1/; - - # No AREA required - # But ALIGNs in AREA must be obeyed - s/^\s*AREA.*ALIGN=([0-9])$/.text\n.p2align $1/; - # If no ALIGN, strip the AREA and align to 4 bytes - s/^\s*AREA.*$/.text\n.p2align 2/; - - # DCD to .word - # This one is for incoming symbols - s/DCD\s+\|(\w*)\|/.long $1/; - - # DCW to .short - s/DCW\s+\|(\w*)\|/.short $1/; - s/DCW(.*)/.short $1/; - - # Constants defined in scope - s/DCD(.*)/.long $1/; - s/DCB(.*)/.byte $1/; - - # Build a hash of all the register - alias pairs. - if (s/(.*)RN(.*)/$1 .req $2/g) - { - $register_aliases{trim($1)} = trim($2); - next; - } - - while (($key, $value) = each(%register_aliases)) - { - s/\b$key\b/$value/g; - } - - # Make function visible to linker, and make additional symbol with - # prepended underscore - s/EXPORT\s+\|([\$\w]*)\|/.globl _$1\n\t.globl $1/; - - # Prepend imported functions with _ - if (s/IMPORT\s+\|([\$\w]*)\|/.globl $1/) - { - $function = trim($1); - push(@imported_functions, $function); - } - - foreach $function (@imported_functions) - { - s/$function/_$function/; - } - - # No vertical bars required; make additional symbol with prepended - # underscore - s/^\|(\$?\w+)\|/_$1\n\t$1:/g; - - # Labels need trailing colon -# s/^(\w+)/$1:/ if !/EQU/; - # put the colon at the end of the line in the macro - s/^([a-zA-Z_0-9\$]+)/$1:/ if !/EQU/; - - # ALIGN directive - s/\bALIGN\b/.balign/g; - - # Strip ARM - s/\sARM/@ ARM/g; - - # Strip REQUIRE8 - #s/\sREQUIRE8/@ REQUIRE8/g; - s/\sREQUIRE8/@ /g; - - # Strip PRESERVE8 - s/\sPRESERVE8/@ PRESERVE8/g; - - # Strip PROC and ENDPROC - s/\bPROC\b/@/g; - s/\bENDP\b/@/g; - - # EQU directive - s/(.*)EQU(.*)/.set $1, $2/; - - # Begin macro definition - if (/\bMACRO\b/) - { - # Process next line down, which will be the macro definition - $_ = <STDIN>; - - $trimmed = trim($_); - - # remove commas that are separating list - $trimmed =~ s/,//g; - - # string to array - @incoming_array = split(/\s+/, $trimmed); - - print ".macro @incoming_array[0]\n"; - - # remove the first element, as that is the name of the macro - shift (@incoming_array); - - @macro_aliases{@incoming_array} = @mapping_list; - - next; - } - - while (($key, $value) = each(%macro_aliases)) - { - $key =~ s/\$/\\\$/; - s/$key\b/$value/g; - } - - # For macros, use \ to reference formal params -# s/\$/\\/g; # End macro definition - s/\bMEND\b/.endm/; # No need to tell it where to stop assembling - next if /^\s*END\s*$/; - - # Clang used by Chromium differs slightly from clang in XCode in what it - # will accept in the assembly. - if ($chromium) { - s/qsubaddx/qsax/i; - s/qaddsubx/qasx/i; - s/ldrneb/ldrbne/i; - s/ldrneh/ldrhne/i; - s/(vqshrun\.s16 .*, \#)0$/${1}8/i; - - # http://llvm.org/bugs/show_bug.cgi?id=16022 - s/\.include/#include/; - } - - print; -} diff --git a/third_party/aom/build/make/armlink_adapter.sh b/third_party/aom/build/make/armlink_adapter.sh deleted file mode 100755 index 85c6c96c1..000000000 --- a/third_party/aom/build/make/armlink_adapter.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/sh -## Copyright (c) 2016, Alliance for Open Media. All rights reserved -## -## This source code is subject to the terms of the BSD 2 Clause License and -## the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License -## was not distributed with this source code in the LICENSE file, you can -## obtain it at www.aomedia.org/license/software. If the Alliance for Open -## Media Patent License 1.0 was not distributed with this source code in the -## PATENTS file, you can obtain it at www.aomedia.org/license/patent. -## - -verbose=0 -set -- $* -for i; do - if [ "$i" = "-o" ]; then - on_of=1 - elif [ "$i" = "-v" ]; then - verbose=1 - elif [ "$i" = "-g" ]; then - args="${args} --debug" - elif [ "$on_of" = "1" ]; then - outfile=$i - on_of=0 - elif [ -f "$i" ]; then - infiles="$infiles $i" - elif [ "${i#-l}" != "$i" ]; then - libs="$libs ${i#-l}" - elif [ "${i#-L}" != "$i" ]; then - libpaths="${libpaths} ${i#-L}" - else - args="${args} ${i}" - fi - shift -done - -# Absolutize library file names -for f in $libs; do - found=0 - for d in $libpaths; do - [ -f "$d/$f" ] && infiles="$infiles $d/$f" && found=1 && break - [ -f "$d/lib${f}.so" ] && infiles="$infiles $d/lib${f}.so" && found=1 && break - [ -f "$d/lib${f}.a" ] && infiles="$infiles $d/lib${f}.a" && found=1 && break - done - [ $found -eq 0 ] && infiles="$infiles $f" -done -for d in $libpaths; do - [ -n "$libsearchpath" ] && libsearchpath="${libsearchpath}," - libsearchpath="${libsearchpath}$d" -done - -cmd="armlink $args --userlibpath=$libsearchpath --output=$outfile $infiles" -[ $verbose -eq 1 ] && echo $cmd -$cmd diff --git a/third_party/aom/build/make/configure.sh b/third_party/aom/build/make/configure.sh deleted file mode 100644 index b18173b82..000000000 --- a/third_party/aom/build/make/configure.sh +++ /dev/null @@ -1,1522 +0,0 @@ -#!/bin/sh -## -## configure.sh -## -## This script is sourced by the main configure script and contains -## utility functions and other common bits that aren't strictly libaom -## related. -## -## This build system is based in part on the FFmpeg configure script. -## - - -# -# Logging / Output Functions -# -die_unknown(){ - echo "Unknown option \"$1\"." - echo "See $0 --help for available options." - clean_temp_files - exit 1 -} - -die() { - echo "$@" - echo - echo "Configuration failed. This could reflect a misconfiguration of your" - echo "toolchains, improper options selected, or another problem. If you" - echo "don't see any useful error messages above, the next step is to look" - echo "at the configure error log file ($logfile) to determine what" - echo "configure was trying to do when it died." - clean_temp_files - exit 1 -} - -log(){ - echo "$@" >>$logfile -} - -log_file(){ - log BEGIN $1 - cat -n $1 >>$logfile - log END $1 -} - -log_echo() { - echo "$@" - log "$@" -} - -fwrite () { - outfile=$1 - shift - echo "$@" >> ${outfile} -} - -show_help_pre(){ - for opt in ${CMDLINE_SELECT}; do - opt2=`echo $opt | sed -e 's;_;-;g'` - if enabled $opt; then - eval "toggle_${opt}=\"--disable-${opt2}\"" - else - eval "toggle_${opt}=\"--enable-${opt2} \"" - fi - done - - cat <<EOF -Usage: configure [options] -Options: - -Build options: - --help print this message - --log=yes|no|FILE file configure log is written to [config.log] - --target=TARGET target platform tuple [generic-gnu] - --cpu=CPU optimize for a specific cpu rather than a family - --extra-cflags=ECFLAGS add ECFLAGS to CFLAGS [$CFLAGS] - --extra-cxxflags=ECXXFLAGS add ECXXFLAGS to CXXFLAGS [$CXXFLAGS] - ${toggle_extra_warnings} emit harmless warnings (always non-fatal) - ${toggle_werror} treat warnings as errors, if possible - (not available with all compilers) - ${toggle_optimizations} turn on/off compiler optimization flags - ${toggle_pic} turn on/off Position Independent Code - ${toggle_ccache} turn on/off compiler cache - ${toggle_debug} enable/disable debug mode - ${toggle_gprof} enable/disable gprof profiling instrumentation - ${toggle_gcov} enable/disable gcov coverage instrumentation - ${toggle_thumb} enable/disable building arm assembly in thumb mode - ${toggle_dependency_tracking} - disable to speed up one-time build - -Install options: - ${toggle_install_docs} control whether docs are installed - ${toggle_install_bins} control whether binaries are installed - ${toggle_install_libs} control whether libraries are installed - ${toggle_install_srcs} control whether sources are installed - - -EOF -} - -show_help_post(){ - cat <<EOF - - -NOTES: - Object files are built at the place where configure is launched. - - All boolean options can be negated. The default value is the opposite - of that shown above. If the option --disable-foo is listed, then - the default value for foo is enabled. - -Supported targets: -EOF - show_targets ${all_platforms} - echo - exit 1 -} - -show_targets() { - while [ -n "$*" ]; do - if [ "${1%%-*}" = "${2%%-*}" ]; then - if [ "${2%%-*}" = "${3%%-*}" ]; then - printf " %-24s %-24s %-24s\n" "$1" "$2" "$3" - shift; shift; shift - else - printf " %-24s %-24s\n" "$1" "$2" - shift; shift - fi - else - printf " %-24s\n" "$1" - shift - fi - done -} - -show_help() { - show_help_pre - show_help_post -} - -# -# List Processing Functions -# -set_all(){ - value=$1 - shift - for var in $*; do - eval $var=$value - done -} - -is_in(){ - value=$1 - shift - for var in $*; do - [ $var = $value ] && return 0 - done - return 1 -} - -add_cflags() { - CFLAGS="${CFLAGS} $@" - CXXFLAGS="${CXXFLAGS} $@" -} - -add_cflags_only() { - CFLAGS="${CFLAGS} $@" -} - -add_cxxflags_only() { - CXXFLAGS="${CXXFLAGS} $@" -} - -add_ldflags() { - LDFLAGS="${LDFLAGS} $@" -} - -add_asflags() { - ASFLAGS="${ASFLAGS} $@" -} - -add_extralibs() { - extralibs="${extralibs} $@" -} - -# -# Boolean Manipulation Functions -# - -enable_feature(){ - set_all yes $* -} - -disable_feature(){ - set_all no $* -} - -enabled(){ - eval test "x\$$1" = "xyes" -} - -disabled(){ - eval test "x\$$1" = "xno" -} - -enable_codec(){ - enabled "${1}" || echo " enabling ${1}" - enable_feature "${1}" - - is_in "${1}" av1 && enable_feature "${1}_encoder" "${1}_decoder" -} - -disable_codec(){ - disabled "${1}" || echo " disabling ${1}" - disable_feature "${1}" - - is_in "${1}" av1 && disable_feature "${1}_encoder" "${1}_decoder" -} - -# Iterates through positional parameters, checks to confirm the parameter has -# not been explicitly (force) disabled, and enables the setting controlled by -# the parameter when the setting is not disabled. -# Note: Does NOT alter RTCD generation options ($RTCD_OPTIONS). -soft_enable() { - for var in $*; do - if ! disabled $var; then - enabled $var || log_echo " enabling $var" - enable_feature $var - fi - done -} - -# Iterates through positional parameters, checks to confirm the parameter has -# not been explicitly (force) enabled, and disables the setting controlled by -# the parameter when the setting is not enabled. -# Note: Does NOT alter RTCD generation options ($RTCD_OPTIONS). -soft_disable() { - for var in $*; do - if ! enabled $var; then - disabled $var || log_echo " disabling $var" - disable_feature $var - fi - done -} - -# -# Text Processing Functions -# -toupper(){ - echo "$@" | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ -} - -tolower(){ - echo "$@" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz -} - -# -# Temporary File Functions -# -source_path=${0%/*} -enable_feature source_path_used -if [ -z "$source_path" ] || [ "$source_path" = "." ]; then - source_path="`pwd`" - disable_feature source_path_used -fi - -if test ! -z "$TMPDIR" ; then - TMPDIRx="${TMPDIR}" -elif test ! -z "$TEMPDIR" ; then - TMPDIRx="${TEMPDIR}" -else - TMPDIRx="/tmp" -fi -RAND=$(awk 'BEGIN { srand(); printf "%d\n",(rand() * 32768)}') -TMP_H="${TMPDIRx}/aom-conf-$$-${RAND}.h" -TMP_C="${TMPDIRx}/aom-conf-$$-${RAND}.c" -TMP_CC="${TMPDIRx}/aom-conf-$$-${RAND}.cc" -TMP_O="${TMPDIRx}/aom-conf-$$-${RAND}.o" -TMP_X="${TMPDIRx}/aom-conf-$$-${RAND}.x" -TMP_ASM="${TMPDIRx}/aom-conf-$$-${RAND}.asm" - -clean_temp_files() { - rm -f ${TMP_C} ${TMP_CC} ${TMP_H} ${TMP_O} ${TMP_X} ${TMP_ASM} - enabled gcov && rm -f ${TMP_C%.c}.gcno ${TMP_CC%.cc}.gcno -} - -# -# Toolchain Check Functions -# -check_cmd() { - enabled external_build && return - log "$@" - "$@" >>${logfile} 2>&1 -} - -check_cc() { - log check_cc "$@" - cat >${TMP_C} - log_file ${TMP_C} - check_cmd ${CC} ${CFLAGS} "$@" -c -o ${TMP_O} ${TMP_C} -} - -check_cxx() { - log check_cxx "$@" - cat >${TMP_CC} - log_file ${TMP_CC} - check_cmd ${CXX} ${CXXFLAGS} "$@" -c -o ${TMP_O} ${TMP_CC} -} - -check_cpp() { - log check_cpp "$@" - cat > ${TMP_C} - log_file ${TMP_C} - check_cmd ${CC} ${CFLAGS} "$@" -E -o ${TMP_O} ${TMP_C} -} - -check_ld() { - log check_ld "$@" - check_cc $@ \ - && check_cmd ${LD} ${LDFLAGS} "$@" -o ${TMP_X} ${TMP_O} ${extralibs} -} - -check_header(){ - log check_header "$@" - header=$1 - shift - var=`echo $header | sed 's/[^A-Za-z0-9_]/_/g'` - disable_feature $var - check_cpp "$@" <<EOF && enable_feature $var -#include "$header" -int x; -EOF -} - -check_cflags() { - log check_cflags "$@" - check_cc -Werror "$@" <<EOF -int x; -EOF -} - -check_cxxflags() { - log check_cxxflags "$@" - - # Catch CFLAGS that trigger CXX warnings - case "$CXX" in - *c++-analyzer|*clang++|*g++*) - check_cxx -Werror "$@" <<EOF -int x; -EOF - ;; - *) - check_cxx -Werror "$@" <<EOF -int x; -EOF - ;; - esac -} - -check_add_cflags() { - check_cxxflags "$@" && add_cxxflags_only "$@" - check_cflags "$@" && add_cflags_only "$@" -} - -check_add_cxxflags() { - check_cxxflags "$@" && add_cxxflags_only "$@" -} - -check_add_asflags() { - log add_asflags "$@" - add_asflags "$@" -} - -check_add_ldflags() { - log add_ldflags "$@" - add_ldflags "$@" -} - -check_asm_align() { - log check_asm_align "$@" - cat >${TMP_ASM} <<EOF -section .rodata -align 16 -EOF - log_file ${TMP_ASM} - check_cmd ${AS} ${ASFLAGS} -o ${TMP_O} ${TMP_ASM} - readelf -WS ${TMP_O} >${TMP_X} - log_file ${TMP_X} - if ! grep -q '\.rodata .* 16$' ${TMP_X}; then - die "${AS} ${ASFLAGS} does not support section alignment (nasm <=2.08?)" - fi -} - -# tests for -m$1 toggling the feature given in $2. If $2 is empty $1 is used. -check_gcc_machine_option() { - opt="$1" - feature="$2" - [ -n "$feature" ] || feature="$opt" - - if enabled gcc && ! disabled "$feature" && ! check_cflags "-m$opt"; then - RTCD_OPTIONS="${RTCD_OPTIONS}--disable-$feature " - else - soft_enable "$feature" - fi -} - -write_common_config_banner() { - print_webm_license config.mk "##" "" - echo '# This file automatically generated by configure. Do not edit!' >> config.mk - echo "TOOLCHAIN := ${toolchain}" >> config.mk - - case ${toolchain} in - *-linux-rvct) - echo "ALT_LIBC := ${alt_libc}" >> config.mk - ;; - esac -} - -write_common_config_targets() { - for t in ${all_targets}; do - if enabled ${t}; then - if enabled child; then - fwrite config.mk "ALL_TARGETS += ${t}-${toolchain}" - else - fwrite config.mk "ALL_TARGETS += ${t}" - fi - fi - true; - done - true -} - -write_common_target_config_mk() { - saved_CC="${CC}" - saved_CXX="${CXX}" - enabled ccache && CC="ccache ${CC}" - enabled ccache && CXX="ccache ${CXX}" - print_webm_license $1 "##" "" - - cat >> $1 << EOF -# This file automatically generated by configure. Do not edit! -SRC_PATH="$source_path" -SRC_PATH_BARE=$source_path -BUILD_PFX=${BUILD_PFX} -TOOLCHAIN=${toolchain} -ASM_CONVERSION=${asm_conversion_cmd:-${source_path}/build/make/ads2gas.pl} -GEN_VCPROJ=${gen_vcproj_cmd} -MSVS_ARCH_DIR=${msvs_arch_dir} - -CC=${CC} -CXX=${CXX} -AR=${AR} -LD=${LD} -AS=${AS} -STRIP=${STRIP} -NM=${NM} - -CFLAGS = ${CFLAGS} -CXXFLAGS = ${CXXFLAGS} -ARFLAGS = crs\$(if \$(quiet),,v) -LDFLAGS = ${LDFLAGS} -ASFLAGS = ${ASFLAGS} -extralibs = ${extralibs} -AS_SFX = ${AS_SFX:-.asm} -EXE_SFX = ${EXE_SFX} -VCPROJ_SFX = ${VCPROJ_SFX} -RTCD_OPTIONS = ${RTCD_OPTIONS} -WX_CXXFLAGS = ${WX_CXXFLAGS} -WX_LDFLAGS = ${WX_LDFLAGS} -EOF - - if enabled rvct; then cat >> $1 << EOF -fmt_deps = sed -e 's;^__image.axf;\${@:.d=.o} \$@;' #hide -EOF - else cat >> $1 << EOF -fmt_deps = sed -e 's;^\([a-zA-Z0-9_]*\)\.o;\${@:.d=.o} \$@;' -EOF - fi - - print_config_mk ARCH "${1}" ${ARCH_LIST} - print_config_mk HAVE "${1}" ${HAVE_LIST} - print_config_mk CONFIG "${1}" ${CONFIG_LIST} - print_config_mk HAVE "${1}" gnu_strip - - enabled msvs && echo "CONFIG_VS_VERSION=${vs_version}" >> "${1}" - - CC="${saved_CC}" - CXX="${saved_CXX}" -} - -write_common_target_config_h() { - print_webm_license ${TMP_H} "/*" " */" - cat >> ${TMP_H} << EOF -/* This file automatically generated by configure. Do not edit! */ -#ifndef AOM_CONFIG_H -#define AOM_CONFIG_H -#define RESTRICT ${RESTRICT} -#define INLINE ${INLINE} -EOF - print_config_h ARCH "${TMP_H}" ${ARCH_LIST} - print_config_h HAVE "${TMP_H}" ${HAVE_LIST} - print_config_h CONFIG "${TMP_H}" ${CONFIG_LIST} - print_config_vars_h "${TMP_H}" ${VAR_LIST} - echo "#endif /* AOM_CONFIG_H */" >> ${TMP_H} - mkdir -p `dirname "$1"` - cmp "$1" ${TMP_H} >/dev/null 2>&1 || mv ${TMP_H} "$1" -} - -process_common_cmdline() { - for opt in "$@"; do - optval="${opt#*=}" - case "$opt" in - --child) - enable_feature child - ;; - --log*) - logging="$optval" - if ! disabled logging ; then - enabled logging || logfile="$logging" - else - logfile=/dev/null - fi - ;; - --target=*) - toolchain="${toolchain:-${optval}}" - ;; - --force-target=*) - toolchain="${toolchain:-${optval}}" - enable_feature force_toolchain - ;; - --cpu=*) - tune_cpu="$optval" - ;; - --extra-cflags=*) - extra_cflags="${optval}" - ;; - --extra-cxxflags=*) - extra_cxxflags="${optval}" - ;; - --enable-?*|--disable-?*) - eval `echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g'` - if is_in ${option} ${ARCH_EXT_LIST}; then - [ $action = "disable" ] && RTCD_OPTIONS="${RTCD_OPTIONS}--disable-${option} " - elif [ $action = "disable" ] && ! disabled $option ; then - is_in ${option} ${CMDLINE_SELECT} || die_unknown $opt - log_echo " disabling $option" - elif [ $action = "enable" ] && ! enabled $option ; then - is_in ${option} ${CMDLINE_SELECT} || die_unknown $opt - log_echo " enabling $option" - fi - ${action}_feature $option - ;; - --require-?*) - eval `echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g'` - if is_in ${option} ${ARCH_EXT_LIST}; then - RTCD_OPTIONS="${RTCD_OPTIONS}${opt} " - else - die_unknown $opt - fi - ;; - --force-enable-?*|--force-disable-?*) - eval `echo "$opt" | sed 's/--force-/action=/;s/-/ option=/;s/-/_/g'` - ${action}_feature $option - ;; - --libc=*) - [ -d "${optval}" ] || die "Not a directory: ${optval}" - disable_feature builtin_libc - alt_libc="${optval}" - ;; - --as=*) - [ "${optval}" = yasm ] || [ "${optval}" = nasm ] \ - || [ "${optval}" = auto ] \ - || die "Must be yasm, nasm or auto: ${optval}" - alt_as="${optval}" - ;; - --size-limit=*) - w="${optval%%x*}" - h="${optval##*x}" - VAR_LIST="DECODE_WIDTH_LIMIT ${w} DECODE_HEIGHT_LIMIT ${h}" - [ ${w} -gt 0 ] && [ ${h} -gt 0 ] || die "Invalid size-limit: too small." - [ ${w} -lt 65536 ] && [ ${h} -lt 65536 ] \ - || die "Invalid size-limit: too big." - enable_feature size_limit - ;; - --prefix=*) - prefix="${optval}" - ;; - --libdir=*) - libdir="${optval}" - ;; - --sdk-path=*) - [ -d "${optval}" ] || die "Not a directory: ${optval}" - sdk_path="${optval}" - ;; - --libc|--as|--prefix|--libdir|--sdk-path) - die "Option ${opt} requires argument" - ;; - --help|-h) - show_help - ;; - *) - die_unknown $opt - ;; - esac - done -} - -process_cmdline() { - for opt do - optval="${opt#*=}" - case "$opt" in - *) - process_common_cmdline $opt - ;; - esac - done -} - -post_process_common_cmdline() { - prefix="${prefix:-/usr/local}" - prefix="${prefix%/}" - libdir="${libdir:-${prefix}/lib}" - libdir="${libdir%/}" - if [ "${libdir#${prefix}}" = "${libdir}" ]; then - die "Libdir ${libdir} must be a subdirectory of ${prefix}" - fi -} - -post_process_cmdline() { - true; -} - -setup_gnu_toolchain() { - CC=${CC:-${CROSS}gcc} - CXX=${CXX:-${CROSS}g++} - AR=${AR:-${CROSS}ar} - LD=${LD:-${CROSS}${link_with_cc:-ld}} - AS=${AS:-${CROSS}as} - STRIP=${STRIP:-${CROSS}strip} - NM=${NM:-${CROSS}nm} - AS_SFX=.s - EXE_SFX= -} - -# Reliably find the newest available Darwin SDKs. (Older versions of -# xcrun don't support --show-sdk-path.) -show_darwin_sdk_path() { - xcrun --sdk $1 --show-sdk-path 2>/dev/null || - xcodebuild -sdk $1 -version Path 2>/dev/null -} - -# Print the major version number of the Darwin SDK specified by $1. -show_darwin_sdk_major_version() { - xcrun --sdk $1 --show-sdk-version 2>/dev/null | cut -d. -f1 -} - -# Print the Xcode version. -show_xcode_version() { - xcodebuild -version | head -n1 | cut -d' ' -f2 -} - -# Fails when Xcode version is less than 6.3. -check_xcode_minimum_version() { - xcode_major=$(show_xcode_version | cut -f1 -d.) - xcode_minor=$(show_xcode_version | cut -f2 -d.) - xcode_min_major=6 - xcode_min_minor=3 - if [ ${xcode_major} -lt ${xcode_min_major} ]; then - return 1 - fi - if [ ${xcode_major} -eq ${xcode_min_major} ] \ - && [ ${xcode_minor} -lt ${xcode_min_minor} ]; then - return 1 - fi -} - -process_common_toolchain() { - case "$toolchain" in - *-vs*) ;; - *) add_cflags_only -std=c99 ;; - esac - - if [ -z "$toolchain" ]; then - gcctarget="${CHOST:-$(gcc -dumpmachine 2> /dev/null)}" - - # detect tgt_isa - case "$gcctarget" in - aarch64*) - tgt_isa=arm64 - ;; - armv7*-hardfloat* | armv7*-gnueabihf | arm-*-gnueabihf) - tgt_isa=armv7 - float_abi=hard - ;; - armv7*) - tgt_isa=armv7 - float_abi=softfp - ;; - *x86_64*|*amd64*) - tgt_isa=x86_64 - ;; - *i[3456]86*) - tgt_isa=x86 - ;; - *sparc*) - tgt_isa=sparc - ;; - esac - - # detect tgt_os - case "$gcctarget" in - *darwin10*) - tgt_isa=x86_64 - tgt_os=darwin10 - ;; - *darwin11*) - tgt_isa=x86_64 - tgt_os=darwin11 - ;; - *darwin12*) - tgt_isa=x86_64 - tgt_os=darwin12 - ;; - *darwin13*) - tgt_isa=x86_64 - tgt_os=darwin13 - ;; - *darwin14*) - tgt_isa=x86_64 - tgt_os=darwin14 - ;; - *darwin15*) - tgt_isa=x86_64 - tgt_os=darwin15 - ;; - *darwin16*) - tgt_isa=x86_64 - tgt_os=darwin16 - ;; - x86_64*mingw32*) - tgt_os=win64 - ;; - *mingw32*|*cygwin*) - [ -z "$tgt_isa" ] && tgt_isa=x86 - tgt_os=win32 - ;; - *linux*|*bsd*) - tgt_os=linux - ;; - *solaris2.10) - tgt_os=solaris - ;; - *os2*) - tgt_os=os2 - ;; - esac - - if [ -n "$tgt_isa" ] && [ -n "$tgt_os" ]; then - toolchain=${tgt_isa}-${tgt_os}-gcc - fi - fi - - toolchain=${toolchain:-generic-gnu} - - is_in ${toolchain} ${all_platforms} || enabled force_toolchain \ - || die "Unrecognized toolchain '${toolchain}'" - - enabled child || log_echo "Configuring for target '${toolchain}'" - - # - # Set up toolchain variables - # - tgt_isa=$(echo ${toolchain} | awk 'BEGIN{FS="-"}{print $1}') - tgt_os=$(echo ${toolchain} | awk 'BEGIN{FS="-"}{print $2}') - tgt_cc=$(echo ${toolchain} | awk 'BEGIN{FS="-"}{print $3}') - - # Mark the specific ISA requested as enabled - soft_enable ${tgt_isa} - enable_feature ${tgt_os} - enable_feature ${tgt_cc} - - # Enable the architecture family - case ${tgt_isa} in - arm*) - enable_feature arm - ;; - mips*) - enable_feature mips - ;; - esac - - # PIC is probably what we want when building shared libs - enabled shared && soft_enable pic - - # Minimum iOS version for all target platforms (darwin and iphonesimulator). - # Shared library framework builds are only possible on iOS 8 and later. - if enabled shared; then - IOS_VERSION_OPTIONS="--enable-shared" - IOS_VERSION_MIN="8.0" - else - IOS_VERSION_OPTIONS="" - IOS_VERSION_MIN="6.0" - fi - - # Handle darwin variants. Newer SDKs allow targeting older - # platforms, so use the newest one available. - case ${toolchain} in - arm*-darwin*) - add_cflags "-miphoneos-version-min=${IOS_VERSION_MIN}" - iphoneos_sdk_dir="$(show_darwin_sdk_path iphoneos)" - if [ -d "${iphoneos_sdk_dir}" ]; then - add_cflags "-isysroot ${iphoneos_sdk_dir}" - add_ldflags "-isysroot ${iphoneos_sdk_dir}" - fi - ;; - x86*-darwin*) - osx_sdk_dir="$(show_darwin_sdk_path macosx)" - if [ -d "${osx_sdk_dir}" ]; then - add_cflags "-isysroot ${osx_sdk_dir}" - add_ldflags "-isysroot ${osx_sdk_dir}" - fi - ;; - esac - - case ${toolchain} in - *-darwin8-*) - add_cflags "-mmacosx-version-min=10.4" - add_ldflags "-mmacosx-version-min=10.4" - ;; - *-darwin9-*) - add_cflags "-mmacosx-version-min=10.5" - add_ldflags "-mmacosx-version-min=10.5" - ;; - *-darwin10-*) - add_cflags "-mmacosx-version-min=10.6" - add_ldflags "-mmacosx-version-min=10.6" - ;; - *-darwin11-*) - add_cflags "-mmacosx-version-min=10.7" - add_ldflags "-mmacosx-version-min=10.7" - ;; - *-darwin12-*) - add_cflags "-mmacosx-version-min=10.8" - add_ldflags "-mmacosx-version-min=10.8" - ;; - *-darwin13-*) - add_cflags "-mmacosx-version-min=10.9" - add_ldflags "-mmacosx-version-min=10.9" - ;; - *-darwin14-*) - add_cflags "-mmacosx-version-min=10.10" - add_ldflags "-mmacosx-version-min=10.10" - ;; - *-darwin15-*) - add_cflags "-mmacosx-version-min=10.11" - add_ldflags "-mmacosx-version-min=10.11" - ;; - *-darwin16-*) - add_cflags "-mmacosx-version-min=10.12" - add_ldflags "-mmacosx-version-min=10.12" - ;; - *-iphonesimulator-*) - add_cflags "-miphoneos-version-min=${IOS_VERSION_MIN}" - add_ldflags "-miphoneos-version-min=${IOS_VERSION_MIN}" - iossim_sdk_dir="$(show_darwin_sdk_path iphonesimulator)" - if [ -d "${iossim_sdk_dir}" ]; then - add_cflags "-isysroot ${iossim_sdk_dir}" - add_ldflags "-isysroot ${iossim_sdk_dir}" - fi - ;; - esac - - # Handle Solaris variants. Solaris 10 needs -lposix4 - case ${toolchain} in - sparc-solaris-*) - add_extralibs -lposix4 - ;; - *-solaris-*) - add_extralibs -lposix4 - ;; - esac - - # Process ARM architecture variants - case ${toolchain} in - arm*) - # on arm, isa versions are supersets - case ${tgt_isa} in - arm64|armv8) - soft_enable neon - ;; - armv7|armv7s) - soft_enable neon - # Only enable neon_asm when neon is also enabled. - enabled neon && soft_enable neon_asm - # If someone tries to force it through, die. - if disabled neon && enabled neon_asm; then - die "Disabling neon while keeping neon-asm is not supported" - fi - esac - - asm_conversion_cmd="cat" - - case ${tgt_cc} in - gcc) - link_with_cc=gcc - setup_gnu_toolchain - arch_int=${tgt_isa##armv} - arch_int=${arch_int%%te} - check_add_asflags --defsym ARCHITECTURE=${arch_int} - tune_cflags="-mtune=" - if [ ${tgt_isa} = "armv7" ] || [ ${tgt_isa} = "armv7s" ]; then - if [ -z "${float_abi}" ]; then - check_cpp <<EOF && float_abi=hard || float_abi=softfp -#ifndef __ARM_PCS_VFP -#error "not hardfp" -#endif -EOF - fi - check_add_cflags -march=armv7-a -mfloat-abi=${float_abi} - check_add_asflags -march=armv7-a -mfloat-abi=${float_abi} - - if enabled neon || enabled neon_asm; then - check_add_cflags -mfpu=neon #-ftree-vectorize - check_add_asflags -mfpu=neon - fi - elif [ ${tgt_isa} = "arm64" ] || [ ${tgt_isa} = "armv8" ]; then - check_add_cflags -march=armv8-a - check_add_asflags -march=armv8-a - else - check_add_cflags -march=${tgt_isa} - check_add_asflags -march=${tgt_isa} - fi - - enabled debug && add_asflags -g - asm_conversion_cmd="${source_path}/build/make/ads2gas.pl" - if enabled thumb; then - asm_conversion_cmd="$asm_conversion_cmd -thumb" - check_add_cflags -mthumb - check_add_asflags -mthumb -mimplicit-it=always - fi - ;; - vs*) - asm_conversion_cmd="${source_path}/build/make/ads2armasm_ms.pl" - AS_SFX=.s - msvs_arch_dir=arm-msvs - disable_feature multithread - disable_feature unit_tests - vs_version=${tgt_cc##vs} - # MSVC 2013 doesn't allow doing plain .exe projects for ARM, - # only "AppContainerApplication" which requires an AppxManifest. - # Therefore disable the examples, just build the library. - disable_feature examples - ;; - rvct) - CC=armcc - AR=armar - AS=armasm - LD="${source_path}/build/make/armlink_adapter.sh" - STRIP=arm-none-linux-gnueabi-strip - NM=arm-none-linux-gnueabi-nm - tune_cflags="--cpu=" - tune_asflags="--cpu=" - if [ -z "${tune_cpu}" ]; then - if [ ${tgt_isa} = "armv7" ]; then - if enabled neon || enabled neon_asm - then - check_add_cflags --fpu=softvfp+vfpv3 - check_add_asflags --fpu=softvfp+vfpv3 - fi - check_add_cflags --cpu=Cortex-A8 - check_add_asflags --cpu=Cortex-A8 - else - check_add_cflags --cpu=${tgt_isa##armv} - check_add_asflags --cpu=${tgt_isa##armv} - fi - fi - arch_int=${tgt_isa##armv} - arch_int=${arch_int%%te} - check_add_asflags --pd "\"ARCHITECTURE SETA ${arch_int}\"" - enabled debug && add_asflags -g - add_cflags --gnu - add_cflags --enum_is_int - add_cflags --wchar32 - ;; - esac - - case ${tgt_os} in - none*) - disable_feature multithread - disable_feature os_support - ;; - - android*) - if [ -z "${sdk_path}" ]; then - die "Must specify --sdk-path for Android builds." - fi - - SDK_PATH=${sdk_path} - COMPILER_LOCATION=`find "${SDK_PATH}" \ - -name "arm-linux-androideabi-gcc*" -print -quit` - TOOLCHAIN_PATH=${COMPILER_LOCATION%/*}/arm-linux-androideabi- - CC=${TOOLCHAIN_PATH}gcc - CXX=${TOOLCHAIN_PATH}g++ - AR=${TOOLCHAIN_PATH}ar - LD=${TOOLCHAIN_PATH}gcc - AS=${TOOLCHAIN_PATH}as - STRIP=${TOOLCHAIN_PATH}strip - NM=${TOOLCHAIN_PATH}nm - - if [ -z "${alt_libc}" ]; then - alt_libc=`find "${SDK_PATH}" -name arch-arm -print | \ - awk '{n = split($0,a,"/"); \ - split(a[n-1],b,"-"); \ - print $0 " " b[2]}' | \ - sort -g -k 2 | \ - awk '{ print $1 }' | tail -1` - fi - - if [ -d "${alt_libc}" ]; then - add_cflags "--sysroot=${alt_libc}" - add_ldflags "--sysroot=${alt_libc}" - fi - - # linker flag that routes around a CPU bug in some - # Cortex-A8 implementations (NDK Dev Guide) - add_ldflags "-Wl,--fix-cortex-a8" - - enable_feature pic - soft_enable realtime_only - if [ ${tgt_isa} = "armv7" ]; then - soft_enable runtime_cpu_detect - fi - if enabled runtime_cpu_detect; then - add_cflags "-I${SDK_PATH}/sources/android/cpufeatures" - fi - ;; - - darwin*) - XCRUN_FIND="xcrun --sdk iphoneos --find" - CXX="$(${XCRUN_FIND} clang++)" - CC="$(${XCRUN_FIND} clang)" - AR="$(${XCRUN_FIND} ar)" - AS="$(${XCRUN_FIND} as)" - STRIP="$(${XCRUN_FIND} strip)" - NM="$(${XCRUN_FIND} nm)" - RANLIB="$(${XCRUN_FIND} ranlib)" - AS_SFX=.s - LD="${CXX:-$(${XCRUN_FIND} ld)}" - - # ASFLAGS is written here instead of using check_add_asflags - # because we need to overwrite all of ASFLAGS and purge the - # options that were put in above - ASFLAGS="-arch ${tgt_isa} -g" - - add_cflags -arch ${tgt_isa} - add_ldflags -arch ${tgt_isa} - - alt_libc="$(show_darwin_sdk_path iphoneos)" - if [ -d "${alt_libc}" ]; then - add_cflags -isysroot ${alt_libc} - fi - - if [ "${LD}" = "${CXX}" ]; then - add_ldflags -miphoneos-version-min="${IOS_VERSION_MIN}" - else - add_ldflags -ios_version_min "${IOS_VERSION_MIN}" - fi - - for d in lib usr/lib usr/lib/system; do - try_dir="${alt_libc}/${d}" - [ -d "${try_dir}" ] && add_ldflags -L"${try_dir}" - done - - case ${tgt_isa} in - armv7|armv7s|armv8|arm64) - if enabled neon && ! check_xcode_minimum_version; then - soft_disable neon - log_echo " neon disabled: upgrade Xcode (need v6.3+)." - if enabled neon_asm; then - soft_disable neon_asm - log_echo " neon_asm disabled: upgrade Xcode (need v6.3+)." - fi - fi - ;; - esac - - asm_conversion_cmd="${source_path}/build/make/ads2gas_apple.pl" - - if [ "$(show_darwin_sdk_major_version iphoneos)" -gt 8 ]; then - check_add_cflags -fembed-bitcode - check_add_asflags -fembed-bitcode - check_add_ldflags -fembed-bitcode - fi - ;; - - linux*) - enable_feature linux - if enabled rvct; then - # Check if we have CodeSourcery GCC in PATH. Needed for - # libraries - which arm-none-linux-gnueabi-gcc 2>&- || \ - die "Couldn't find CodeSourcery GCC from PATH" - - # Use armcc as a linker to enable translation of - # some gcc specific options such as -lm and -lpthread. - LD="armcc --translate_gcc" - - # create configuration file (uses path to CodeSourcery GCC) - armcc --arm_linux_configure --arm_linux_config_file=arm_linux.cfg - - add_cflags --arm_linux_paths --arm_linux_config_file=arm_linux.cfg - add_asflags --no_hide_all --apcs=/interwork - add_ldflags --arm_linux_paths --arm_linux_config_file=arm_linux.cfg - enabled pic && add_cflags --apcs=/fpic - enabled pic && add_asflags --apcs=/fpic - enabled shared && add_cflags --shared - fi - ;; - esac - ;; - mips*) - link_with_cc=gcc - setup_gnu_toolchain - tune_cflags="-mtune=" - if enabled dspr2; then - check_add_cflags -mips32r2 -mdspr2 - fi - - if enabled runtime_cpu_detect; then - disable_feature runtime_cpu_detect - fi - - if [ -n "${tune_cpu}" ]; then - case ${tune_cpu} in - p5600) - check_add_cflags -mips32r5 -mload-store-pairs - check_add_cflags -msched-weight -mhard-float -mfp64 - check_add_asflags -mips32r5 -mhard-float -mfp64 - check_add_ldflags -mfp64 - ;; - i6400|p6600) - check_add_cflags -mips64r6 -mabi=64 -msched-weight - check_add_cflags -mload-store-pairs -mhard-float -mfp64 - check_add_asflags -mips64r6 -mabi=64 -mhard-float -mfp64 - check_add_ldflags -mips64r6 -mabi=64 -mfp64 - ;; - esac - - if enabled msa; then - add_cflags -mmsa - add_asflags -mmsa - add_ldflags -mmsa - fi - fi - - check_add_cflags -march=${tgt_isa} - check_add_asflags -march=${tgt_isa} - check_add_asflags -KPIC - ;; - x86*) - case ${tgt_os} in - win*) - enabled gcc && add_cflags -fno-common - ;; - solaris*) - CC=${CC:-${CROSS}gcc} - CXX=${CXX:-${CROSS}g++} - LD=${LD:-${CROSS}gcc} - CROSS=${CROSS-g} - ;; - os2) - disable_feature pic - AS=${AS:-nasm} - add_ldflags -Zhigh-mem - ;; - esac - - AS="${alt_as:-${AS:-auto}}" - case ${tgt_cc} in - icc*) - CC=${CC:-icc} - LD=${LD:-icc} - setup_gnu_toolchain - add_cflags -use-msasm # remove -use-msasm too? - # add -no-intel-extensions to suppress warning #10237 - # refer to http://software.intel.com/en-us/forums/topic/280199 - add_ldflags -i-static -no-intel-extensions - enabled x86_64 && add_cflags -ipo -static -O3 -no-prec-div - enabled x86_64 && AR=xiar - case ${tune_cpu} in - atom*) - tune_cflags="-x" - tune_cpu="SSE3_ATOM" - ;; - *) - tune_cflags="-march=" - ;; - esac - ;; - gcc*) - link_with_cc=gcc - tune_cflags="-march=" - setup_gnu_toolchain - #for 32 bit x86 builds, -O3 did not turn on this flag - enabled optimizations && disabled gprof && check_add_cflags -fomit-frame-pointer - ;; - vs*) - # When building with Microsoft Visual Studio the assembler is - # invoked directly. Checking at configure time is unnecessary. - # Skip the check by setting AS arbitrarily - AS=msvs - msvs_arch_dir=x86-msvs - vc_version=${tgt_cc##vs} - ;; - esac - - bits=32 - enabled x86_64 && bits=64 - check_cpp <<EOF && bits=x32 -#if !defined(__ILP32__) || !defined(__x86_64__) -#error "not x32" -#endif -EOF - case ${tgt_cc} in - gcc*) - add_cflags -m${bits} - add_ldflags -m${bits} - ;; - esac - - soft_enable runtime_cpu_detect - # We can't use 'check_cflags' until the compiler is configured and CC is - # populated. - for ext in ${ARCH_EXT_LIST_X86}; do - # disable higher order extensions to simplify asm dependencies - if [ "$disable_exts" = "yes" ]; then - if ! disabled $ext; then - RTCD_OPTIONS="${RTCD_OPTIONS}--disable-${ext} " - disable_feature $ext - fi - elif disabled $ext; then - disable_exts="yes" - else - # use the shortened version for the flag: sse4_1 -> sse4 - check_gcc_machine_option ${ext%_*} $ext - fi - done - - if enabled external_build; then - log_echo " skipping assembler detection" - else - case "${AS}" in - auto|"") - which nasm >/dev/null 2>&1 && AS=nasm - which yasm >/dev/null 2>&1 && AS=yasm - if [ "${AS}" = nasm ] ; then - # Apple ships version 0.98 of nasm through at least Xcode 6. Revisit - # this check if they start shipping a compatible version. - apple=`nasm -v | grep "Apple"` - [ -n "${apple}" ] \ - && echo "Unsupported version of nasm: ${apple}" \ - && AS="" - fi - [ "${AS}" = auto ] || [ -z "${AS}" ] \ - && die "Neither yasm nor nasm have been found." \ - "See the prerequisites section in the README for more info." - ;; - esac - log_echo " using $AS" - fi - [ "${AS##*/}" = nasm ] && add_asflags -Ox - AS_SFX=.asm - case ${tgt_os} in - win32) - add_asflags -f win32 - enabled debug && add_asflags -g cv8 - EXE_SFX=.exe - ;; - win64) - add_asflags -f x64 - enabled debug && add_asflags -g cv8 - EXE_SFX=.exe - ;; - linux*|solaris*|android*) - add_asflags -f elf${bits} - enabled debug && [ "${AS}" = yasm ] && add_asflags -g dwarf2 - enabled debug && [ "${AS}" = nasm ] && add_asflags -g - [ "${AS##*/}" = nasm ] && check_asm_align - ;; - darwin*) - add_asflags -f macho${bits} - enabled x86 && darwin_arch="-arch i386" || darwin_arch="-arch x86_64" - add_cflags ${darwin_arch} - add_ldflags ${darwin_arch} - # -mdynamic-no-pic is still a bit of voodoo -- it was required at - # one time, but does not seem to be now, and it breaks some of the - # code that still relies on inline assembly. - # enabled icc && ! enabled pic && add_cflags -fno-pic -mdynamic-no-pic - enabled icc && ! enabled pic && add_cflags -fno-pic - ;; - iphonesimulator) - add_asflags -f macho${bits} - enabled x86 && sim_arch="-arch i386" || sim_arch="-arch x86_64" - add_cflags ${sim_arch} - add_ldflags ${sim_arch} - - if [ "$(show_darwin_sdk_major_version iphonesimulator)" -gt 8 ]; then - # yasm v1.3.0 doesn't know what -fembed-bitcode means, so turning it - # on is pointless (unless building a C-only lib). Warn the user, but - # do nothing here. - log "Warning: Bitcode embed disabled for simulator targets." - fi - ;; - os2) - add_asflags -f aout - enabled debug && add_asflags -g - EXE_SFX=.exe - ;; - *) - log "Warning: Unknown os $tgt_os while setting up $AS flags" - ;; - esac - ;; - *-gcc|generic-gnu) - link_with_cc=gcc - enable_feature gcc - setup_gnu_toolchain - ;; - esac - - # Try to enable CPU specific tuning - if [ -n "${tune_cpu}" ]; then - if [ -n "${tune_cflags}" ]; then - check_add_cflags ${tune_cflags}${tune_cpu} || \ - die "Requested CPU '${tune_cpu}' not supported by compiler" - fi - if [ -n "${tune_asflags}" ]; then - check_add_asflags ${tune_asflags}${tune_cpu} || \ - die "Requested CPU '${tune_cpu}' not supported by assembler" - fi - if [ -z "${tune_cflags}${tune_asflags}" ]; then - log_echo "Warning: CPU tuning not supported by this toolchain" - fi - fi - - if enabled debug; then - check_add_cflags -g && check_add_ldflags -g - else - check_add_cflags -DNDEBUG - fi - - enabled gprof && check_add_cflags -pg && check_add_ldflags -pg - enabled gcov && - check_add_cflags -fprofile-arcs -ftest-coverage && - check_add_ldflags -fprofile-arcs -ftest-coverage - - if enabled optimizations; then - if enabled rvct; then - enabled small && check_add_cflags -Ospace || check_add_cflags -Otime - else - enabled small && check_add_cflags -O2 || check_add_cflags -O3 - fi - fi - - # Position Independent Code (PIC) support, for building relocatable - # shared objects - enabled gcc && enabled pic && check_add_cflags -fPIC - - # Work around longjmp interception on glibc >= 2.11, to improve binary - # compatibility. See http://code.google.com/p/webm/issues/detail?id=166 - enabled linux && check_add_cflags -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 - - # Check for strip utility variant - ${STRIP} -V 2>/dev/null | grep GNU >/dev/null && enable_feature gnu_strip - - # Try to determine target endianness - check_cc <<EOF -unsigned int e = 'O'<<24 | '2'<<16 | 'B'<<8 | 'E'; -EOF - [ -f "${TMP_O}" ] && od -A n -t x1 "${TMP_O}" | tr -d '\n' | - grep '4f *32 *42 *45' >/dev/null 2>&1 && enable_feature big_endian - - # Try to find which inline keywords are supported - check_cc <<EOF && INLINE="inline" -static inline function() {} -EOF - - # Almost every platform uses pthreads. - if enabled multithread; then - case ${toolchain} in - *-win*-vs*) - ;; - *-android-gcc) - ;; - *) - check_header pthread.h && add_extralibs -lpthread - ;; - esac - fi - - # only for MIPS platforms - case ${toolchain} in - mips*) - if enabled big_endian; then - if enabled dspr2; then - echo "dspr2 optimizations are available only for little endian platforms" - disable_feature dspr2 - fi - if enabled msa; then - echo "msa optimizations are available only for little endian platforms" - disable_feature msa - fi - fi - ;; - esac - - # glibc needs these - if enabled linux || [ "$toolchain" = "generic-gnu" ]; then - add_cflags -D_LARGEFILE_SOURCE - add_cflags -D_FILE_OFFSET_BITS=64 - fi -} - -process_toolchain() { - process_common_toolchain -} - -print_config_mk() { - saved_prefix="${prefix}" - prefix=$1 - makefile=$2 - shift 2 - for cfg; do - if enabled $cfg; then - upname="`toupper $cfg`" - echo "${prefix}_${upname}=yes" >> $makefile - fi - done - prefix="${saved_prefix}" -} - -print_config_h() { - saved_prefix="${prefix}" - prefix=$1 - header=$2 - shift 2 - for cfg; do - upname="`toupper $cfg`" - if enabled $cfg; then - echo "#define ${prefix}_${upname} 1" >> $header - else - echo "#define ${prefix}_${upname} 0" >> $header - fi - done - prefix="${saved_prefix}" -} - -print_config_vars_h() { - header=$1 - shift - while [ $# -gt 0 ]; do - upname="`toupper $1`" - echo "#define ${upname} $2" >> $header - shift 2 - done -} - -print_webm_license() { - saved_prefix="${prefix}" - destination=$1 - prefix="$2" - suffix="$3" - shift 3 - cat <<EOF > ${destination} -${prefix} Copyright (c) 2016, Alliance for Open Media. All rights reserved.${suffix} -${prefix} ${suffix} -${prefix} This source code is subject to the terms of the BSD 2 Clause License and${suffix} -${prefix} the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License${suffix} -${prefix} was not distributed with this source code in the LICENSE file, you can${suffix} -${prefix} obtain it at www.aomedia.org/license/software. If the Alliance for Open${suffix} -${prefix} Media Patent License 1.0 was not distributed with this source code in the${suffix} -${prefix} PATENTS file, you can obtain it at www.aomedia.org/license/patent.${suffix} -EOF - prefix="${saved_prefix}" -} - -process_targets() { - true; -} - -process_detect() { - true; -} - -enable_feature logging -logfile="config.log" -self=$0 -process() { - cmdline_args="$@" - process_cmdline "$@" - if enabled child; then - echo "# ${self} $@" >> ${logfile} - else - echo "# ${self} $@" > ${logfile} - fi - post_process_common_cmdline - post_process_cmdline - process_toolchain - process_detect - process_targets - - OOT_INSTALLS="${OOT_INSTALLS}" - if enabled source_path_used; then - # Prepare the PWD for building. - for f in ${OOT_INSTALLS}; do - install -D "${source_path}/$f" "$f" - done - fi - cp "${source_path}/build/make/Makefile" . - - clean_temp_files - true -} diff --git a/third_party/aom/build/make/gen_asm_deps.sh b/third_party/aom/build/make/gen_asm_deps.sh deleted file mode 100755 index c867cc2bf..000000000 --- a/third_party/aom/build/make/gen_asm_deps.sh +++ /dev/null @@ -1,65 +0,0 @@ -#!/bin/sh -## -## Copyright (c) 2016, Alliance for Open Media. All rights reserved -## -## This source code is subject to the terms of the BSD 2 Clause License and -## the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License -## was not distributed with this source code in the LICENSE file, you can -## obtain it at www.aomedia.org/license/software. If the Alliance for Open -## Media Patent License 1.0 was not distributed with this source code in the -## PATENTS file, you can obtain it at www.aomedia.org/license/patent. -## - - -self=$0 -show_help() { - echo "usage: $self [options] <srcfile>" - echo - echo "Generate Makefile dependency information from assembly code source" - echo - exit 1 -} -die_unknown(){ - echo "Unknown option \"$1\"." - echo "See $0 --help for available options." - exit 1 -} -for opt do - optval="${opt#*=}" - case "$opt" in - --build-pfx=*) pfx="${optval}" - ;; - --depfile=*) out="${optval}" - ;; - -I*) raw_inc_paths="${raw_inc_paths} ${opt}" - inc_path="${inc_path} ${opt#-I}" - ;; - -h|--help) show_help - ;; - *) [ -f "$opt" ] && srcfile="$opt" - ;; - esac -done - -[ -n "$srcfile" ] || show_help -sfx=${sfx:-asm} -includes=$(LC_ALL=C egrep -i "include +\"?[a-z0-9_/]+\.${sfx}" $srcfile | - perl -p -e "s;.*?([a-z0-9_/]+.${sfx}).*;\1;") -#" restore editor state -for inc in ${includes}; do - found_inc_path= - for idir in ${inc_path}; do - [ -f "${idir}/${inc}" ] && found_inc_path="${idir}" && break - done - if [ -f `dirname $srcfile`/$inc ]; then - # Handle include files in the same directory as the source - $self --build-pfx=$pfx --depfile=$out ${raw_inc_paths} `dirname $srcfile`/$inc - elif [ -n "${found_inc_path}" ]; then - # Handle include files on the include path - $self --build-pfx=$pfx --depfile=$out ${raw_inc_paths} "${found_inc_path}/$inc" - else - # Handle generated includes in the build root (which may not exist yet) - echo ${out} ${out%d}o: "${pfx}${inc}" - fi -done -echo ${out} ${out%d}o: $srcfile diff --git a/third_party/aom/build/make/gen_msvs_def.sh b/third_party/aom/build/make/gen_msvs_def.sh deleted file mode 100755 index dbb2674ac..000000000 --- a/third_party/aom/build/make/gen_msvs_def.sh +++ /dev/null @@ -1,82 +0,0 @@ -#!/bin/bash -## Copyright (c) 2016, Alliance for Open Media. All rights reserved -## -## This source code is subject to the terms of the BSD 2 Clause License and -## the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License -## was not distributed with this source code in the LICENSE file, you can -## obtain it at www.aomedia.org/license/software. If the Alliance for Open -## Media Patent License 1.0 was not distributed with this source code in the -## PATENTS file, you can obtain it at www.aomedia.org/license/patent. -## - -self=$0 -self_basename=${self##*/} -EOL=$'\n' - -show_help() { - cat <<EOF -Usage: ${self_basename} [options] file1 [file2 ...] - -This script generates a MSVC module definition file containing a list of symbols -to export from a DLL. Source files are technically bash scripts (and thus may -use #comment syntax) but in general, take the form of a list of symbols: - - <kind> symbol1 [symbol2, symbol3, ...] - -where <kind> is either 'text' or 'data' - - -Options: - --help Print this message - --out=filename Write output to a file [stdout] - --name=project_name Name of the library (required) -EOF - exit 1 -} - -die() { - echo "${self_basename}: $@" - exit 1 -} - -die_unknown(){ - echo "Unknown option \"$1\"." - echo "See ${self_basename} --help for available options." - exit 1 -} - -text() { - for sym in "$@"; do - echo " $sym" >> ${outfile} - done -} - -data() { - for sym in "$@"; do - printf " %-40s DATA\n" "$sym" >> ${outfile} - done -} - -# Process command line -for opt in "$@"; do - optval="${opt#*=}" - case "$opt" in - --help|-h) show_help - ;; - --out=*) outfile="$optval" - ;; - --name=*) name="${optval}" - ;; - -*) die_unknown $opt - ;; - *) file_list[${#file_list[@]}]="$opt" - esac -done -outfile=${outfile:-/dev/stdout} -[ -n "$name" ] || die "Library name (--name) must be specified!" - -echo "LIBRARY ${name}" > ${outfile} -echo "EXPORTS" >> ${outfile} -for f in "${file_list[@]}"; do - . $f -done diff --git a/third_party/aom/build/make/gen_msvs_sln.sh b/third_party/aom/build/make/gen_msvs_sln.sh deleted file mode 100755 index 268a81706..000000000 --- a/third_party/aom/build/make/gen_msvs_sln.sh +++ /dev/null @@ -1,257 +0,0 @@ -#!/bin/bash -## Copyright (c) 2016, Alliance for Open Media. All rights reserved -## -## This source code is subject to the terms of the BSD 2 Clause License and -## the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License -## was not distributed with this source code in the LICENSE file, you can -## obtain it at www.aomedia.org/license/software. If the Alliance for Open -## Media Patent License 1.0 was not distributed with this source code in the -## PATENTS file, you can obtain it at www.aomedia.org/license/patent. -## - - -self=$0 -self_basename=${self##*/} -EOL=$'\n' -EOLDOS=$'\r' - -show_help() { - cat <<EOF -Usage: ${self_basename} [options] file1 [file2 ...] - -This script generates a Visual Studio solution file from a list of project -files. - -Options: - --help Print this message - --out=outfile Redirect output to a file - --ver=version Version (12,14,15) of visual studio to generate for - --target=isa-os-cc Target specifier -EOF - exit 1 -} - -die() { - echo "${self_basename}: $@" >&2 - [ -f "${outfile}" ] && rm -f ${outfile}{,.mk} - exit 1 -} - -die_unknown(){ - echo "Unknown option \"$1\"." >&2 - echo "See ${self_basename} --help for available options." >&2 - [ -f "${outfile}" ] && rm -f ${outfile}{,.mk} - exit 1 -} - -indent1=$'\t' -indent="" -indent_push() { - indent="${indent}${indent1}" -} -indent_pop() { - indent="${indent%${indent1}}" -} - -parse_project() { - local file=$1 - local name=`grep RootNamespace "$file" | sed 's,.*<.*>\(.*\)</.*>.*,\1,'` - local guid=`grep ProjectGuid "$file" | sed 's,.*<.*>\(.*\)</.*>.*,\1,'` - - # save the project GUID to a varaible, normalizing to the basename of the - # vcxproj file without the extension - local var - var=${file##*/} - var=${var%%.${sfx}} - eval "${var}_file=\"$1\"" - eval "${var}_name=$name" - eval "${var}_guid=$guid" - - cur_config_list=`grep -B1 'Label="Configuration"' $file | - grep Condition | cut -d\' -f4` - new_config_list=$(for i in $config_list $cur_config_list; do - echo $i - done | sort | uniq) - if [ "$config_list" != "" ] && [ "$config_list" != "$new_config_list" ]; then - mixed_platforms=1 - fi - config_list="$new_config_list" - eval "${var}_config_list=\"$cur_config_list\"" - proj_list="${proj_list} ${var}" -} - -process_project() { - eval "local file=\${$1_file}" - eval "local name=\${$1_name}" - eval "local guid=\${$1_guid}" - - # save the project GUID to a varaible, normalizing to the basename of the - # vcproj file without the extension - local var - var=${file##*/} - var=${var%%.${sfx}} - eval "${var}_guid=$guid" - - echo "Project(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"$name\", \"$file\", \"$guid\"" - echo "EndProject" -} - -process_global() { - echo "Global" - indent_push - - # - # Solution Configuration Platforms - # - echo "${indent}GlobalSection(SolutionConfigurationPlatforms) = preSolution" - indent_push - IFS_bak=${IFS} - IFS=$'\r'$'\n' - if [ "$mixed_platforms" != "" ]; then - config_list=" -Release|Mixed Platforms -Debug|Mixed Platforms" - fi - for config in ${config_list}; do - echo "${indent}$config = $config" - done - IFS=${IFS_bak} - indent_pop - echo "${indent}EndGlobalSection" - - # - # Project Configuration Platforms - # - echo "${indent}GlobalSection(ProjectConfigurationPlatforms) = postSolution" - indent_push - for proj in ${proj_list}; do - eval "local proj_guid=\${${proj}_guid}" - eval "local proj_config_list=\${${proj}_config_list}" - IFS=$'\r'$'\n' - for config in ${proj_config_list}; do - if [ "$mixed_platforms" != "" ]; then - local c=${config%%|*} - echo "${indent}${proj_guid}.${c}|Mixed Platforms.ActiveCfg = ${config}" - echo "${indent}${proj_guid}.${c}|Mixed Platforms.Build.0 = ${config}" - else - echo "${indent}${proj_guid}.${config}.ActiveCfg = ${config}" - echo "${indent}${proj_guid}.${config}.Build.0 = ${config}" - fi - - done - IFS=${IFS_bak} - done - indent_pop - echo "${indent}EndGlobalSection" - - # - # Solution Properties - # - echo "${indent}GlobalSection(SolutionProperties) = preSolution" - indent_push - echo "${indent}HideSolutionNode = FALSE" - indent_pop - echo "${indent}EndGlobalSection" - - indent_pop - echo "EndGlobal" -} - -process_makefile() { - IFS_bak=${IFS} - IFS=$'\r'$'\n' - local TAB=$'\t' - cat <<EOF -MSBUILD_TOOL := msbuild.exe -found_devenv := \$(shell which \$(MSBUILD_TOOL) >/dev/null 2>&1 && echo yes) -.nodevenv.once: -${TAB}@echo " * \$(MSBUILD_TOOL) not found in path." -${TAB}@echo " * " -${TAB}@echo " * You will have to build all configurations manually using the" -${TAB}@echo " * Visual Studio IDE. To allow make to build them automatically," -${TAB}@echo " * add the Common7/IDE directory of your Visual Studio" -${TAB}@echo " * installation to your path, eg:" -${TAB}@echo " * C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE" -${TAB}@echo " * " -${TAB}@touch \$@ -CLEAN-OBJS += \$(if \$(found_devenv),,.nodevenv.once) - -EOF - - for sln_config in ${config_list}; do - local config=${sln_config%%|*} - local platform=${sln_config##*|} - local nows_sln_config=`echo $sln_config | sed -e 's/[^a-zA-Z0-9]/_/g'` - cat <<EOF -BUILD_TARGETS += \$(if \$(NO_LAUNCH_DEVENV),,$nows_sln_config) -clean:: -${TAB}rm -rf "$platform"/"$config" -.PHONY: $nows_sln_config -ifneq (\$(found_devenv),) -$nows_sln_config: $outfile -${TAB}\$(MSBUILD_TOOL) $outfile -m -t:Build \\ -${TAB}${TAB}-p:Configuration="$config" -p:Platform="$platform" -else -$nows_sln_config: $outfile .nodevenv.once -${TAB}@echo " * Skipping build of $sln_config (\$(MSBUILD_TOOL) not in path)." -${TAB}@echo " * " -endif - -EOF - done - IFS=${IFS_bak} -} - -# Process command line -outfile=/dev/stdout -for opt in "$@"; do - optval="${opt#*=}" - case "$opt" in - --help|-h) show_help - ;; - --out=*) outfile="${optval}"; mkoutfile="${optval}".mk - ;; - --dep=*) eval "${optval%%:*}_deps=\"\${${optval%%:*}_deps} ${optval##*:}\"" - ;; - --ver=*) vs_ver="$optval" - case $optval in - 12|14|15) - ;; - *) die Unrecognized Visual Studio Version in $opt - ;; - esac - ;; - --target=*) target="${optval}" - ;; - -*) die_unknown $opt - ;; - *) file_list[${#file_list[@]}]="$opt" - esac -done -outfile=${outfile:-/dev/stdout} -mkoutfile=${mkoutfile:-/dev/stdout} -case "${vs_ver:-12}" in - 12) sln_vers="12.00" - sln_vers_str="Visual Studio 2013" - ;; - 14) sln_vers="12.00" - sln_vers_str="Visual Studio 2015" - ;; - 15) sln_vers="12.00" - sln_vers_str="Visual Studio 2017" - ;; -esac -sfx=vcxproj - -for f in "${file_list[@]}"; do - parse_project $f -done -cat >${outfile} <<EOF -Microsoft Visual Studio Solution File, Format Version $sln_vers${EOLDOS} -# $sln_vers_str${EOLDOS} -EOF -for proj in ${proj_list}; do - process_project $proj >>${outfile} -done -process_global >>${outfile} -process_makefile >${mkoutfile} diff --git a/third_party/aom/build/make/gen_msvs_vcxproj.sh b/third_party/aom/build/make/gen_msvs_vcxproj.sh deleted file mode 100755 index a119b07aa..000000000 --- a/third_party/aom/build/make/gen_msvs_vcxproj.sh +++ /dev/null @@ -1,477 +0,0 @@ -#!/bin/bash -## Copyright (c) 2016, Alliance for Open Media. All rights reserved -## -## This source code is subject to the terms of the BSD 2 Clause License and -## the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License -## was not distributed with this source code in the LICENSE file, you can -## obtain it at www.aomedia.org/license/software. If the Alliance for Open -## Media Patent License 1.0 was not distributed with this source code in the -## PATENTS file, you can obtain it at www.aomedia.org/license/patent. -## - -self=$0 -self_basename=${self##*/} -self_dirname=$(dirname "$0") - -. "$self_dirname/msvs_common.sh"|| exit 127 - -show_help() { - cat <<EOF -Usage: ${self_basename} --name=projname [options] file1 [file2 ...] - -This script generates a Visual Studio project file from a list of source -code files. - -Options: - --help Print this message - --exe Generate a project for building an Application - --lib Generate a project for creating a static library - --dll Generate a project for creating a dll - --static-crt Use the static C runtime (/MT) - --enable-werror Treat warnings as errors (/WX) - --target=isa-os-cc Target specifier (required) - --out=filename Write output to a file [stdout] - --name=project_name Name of the project (required) - --proj-guid=GUID GUID to use for the project - --module-def=filename File containing export definitions (for DLLs) - --ver=version Version (12,14,15) of visual studio to generate for - --src-path-bare=dir Path to root of source tree - -Ipath/to/include Additional include directories - -DFLAG[=value] Preprocessor macros to define - -Lpath/to/lib Additional library search paths - -llibname Library to link against -EOF - exit 1 -} - -tag_content() { - local tag=$1 - local content=$2 - shift - shift - if [ $# -ne 0 ]; then - echo "${indent}<${tag}" - indent_push - tag_attributes "$@" - echo "${indent}>${content}</${tag}>" - indent_pop - else - echo "${indent}<${tag}>${content}</${tag}>" - fi -} - -generate_filter() { - local name=$1 - local pats=$2 - local file_list_sz - local i - local f - local saveIFS="$IFS" - local pack - echo "generating filter '$name' from ${#file_list[@]} files" >&2 - IFS=* - - file_list_sz=${#file_list[@]} - for i in ${!file_list[@]}; do - f=${file_list[i]} - for pat in ${pats//;/$IFS}; do - if [ "${f##*.}" == "$pat" ]; then - unset file_list[i] - - objf=$(echo ${f%.*}.obj \ - | sed -e "s,$src_path_bare,," \ - -e 's/^[\./]\+//g' -e 's,[:/ ],_,g') - - if ([ "$pat" == "asm" ] || [ "$pat" == "s" ]) && $asm_use_custom_step; then - # Avoid object file name collisions, i.e. aom_config.c and - # aom_config.asm produce the same object file without - # this additional suffix. - objf=${objf%.obj}_asm.obj - open_tag CustomBuild \ - Include="$f" - for plat in "${platforms[@]}"; do - for cfg in Debug Release; do - tag_content Message "Assembling %(Filename)%(Extension)" \ - Condition="'\$(Configuration)|\$(Platform)'=='$cfg|$plat'" - tag_content Command "$(eval echo \$asm_${cfg}_cmdline) -o \$(IntDir)$objf" \ - Condition="'\$(Configuration)|\$(Platform)'=='$cfg|$plat'" - tag_content Outputs "\$(IntDir)$objf" \ - Condition="'\$(Configuration)|\$(Platform)'=='$cfg|$plat'" - done - done - close_tag CustomBuild - elif [ "$pat" == "c" ] || \ - [ "$pat" == "cc" ] || [ "$pat" == "cpp" ]; then - open_tag ClCompile \ - Include="$f" - # Separate file names with Condition? - tag_content ObjectFileName "\$(IntDir)$objf" - # Check for AVX and turn it on to avoid warnings. - if [[ $f =~ avx.?\.c$ ]]; then - tag_content AdditionalOptions "/arch:AVX" - fi - close_tag ClCompile - elif [ "$pat" == "h" ] ; then - tag ClInclude \ - Include="$f" - elif [ "$pat" == "vcxproj" ] ; then - open_tag ProjectReference \ - Include="$f" - depguid=`grep ProjectGuid "$f" | sed 's,.*<.*>\(.*\)</.*>.*,\1,'` - tag_content Project "$depguid" - tag_content ReferenceOutputAssembly false - close_tag ProjectReference - else - tag None \ - Include="$f" - fi - - break - fi - done - done - - IFS="$saveIFS" -} - -# Process command line -unset target -for opt in "$@"; do - optval="${opt#*=}" - case "$opt" in - --help|-h) show_help - ;; - --target=*) target="${optval}" - ;; - --out=*) outfile="$optval" - ;; - --name=*) name="${optval}" - ;; - --proj-guid=*) guid="${optval}" - ;; - --module-def=*) module_def="${optval}" - ;; - --exe) proj_kind="exe" - ;; - --dll) proj_kind="dll" - ;; - --lib) proj_kind="lib" - ;; - --src-path-bare=*) - src_path_bare=$(fix_path "$optval") - src_path_bare=${src_path_bare%/} - ;; - --static-crt) use_static_runtime=true - ;; - --enable-werror) werror=true - ;; - --ver=*) - vs_ver="$optval" - case "$optval" in - 12|14|15) - ;; - *) die Unrecognized Visual Studio Version in $opt - ;; - esac - ;; - -I*) - opt=${opt##-I} - opt=$(fix_path "$opt") - opt="${opt%/}" - incs="${incs}${incs:+;}"${opt}"" - yasmincs="${yasmincs} -I"${opt}"" - ;; - -D*) defines="${defines}${defines:+;}${opt##-D}" - ;; - -L*) # fudge . to $(OutDir) - if [ "${opt##-L}" == "." ]; then - libdirs="${libdirs}${libdirs:+;}"\$(OutDir)"" - else - # Also try directories for this platform/configuration - opt=${opt##-L} - opt=$(fix_path "$opt") - libdirs="${libdirs}${libdirs:+;}"${opt}"" - libdirs="${libdirs}${libdirs:+;}"${opt}/\$(PlatformName)/\$(Configuration)"" - libdirs="${libdirs}${libdirs:+;}"${opt}/\$(PlatformName)"" - fi - ;; - -l*) libs="${libs}${libs:+ }${opt##-l}.lib" - ;; - -*) die_unknown $opt - ;; - *) - # The paths in file_list are fixed outside of the loop. - file_list[${#file_list[@]}]="$opt" - case "$opt" in - *.asm|*.s) uses_asm=true - ;; - esac - ;; - esac -done - -# Make one call to fix_path for file_list to improve performance. -fix_file_list file_list - -outfile=${outfile:-/dev/stdout} -guid=${guid:-`generate_uuid`} -asm_use_custom_step=false -uses_asm=${uses_asm:-false} -case "${vs_ver:-12}" in - 12|14|15) - asm_use_custom_step=$uses_asm - ;; -esac - -[ -n "$name" ] || die "Project name (--name) must be specified!" -[ -n "$target" ] || die "Target (--target) must be specified!" - -if ${use_static_runtime:-false}; then - release_runtime=MultiThreaded - debug_runtime=MultiThreadedDebug - lib_sfx=mt -else - release_runtime=MultiThreadedDLL - debug_runtime=MultiThreadedDebugDLL - lib_sfx=md -fi - -# Calculate debug lib names: If a lib ends in ${lib_sfx}.lib, then rename -# it to ${lib_sfx}d.lib. This precludes linking to release libs from a -# debug exe, so this may need to be refactored later. -for lib in ${libs}; do - if [ "$lib" != "${lib%${lib_sfx}.lib}" ]; then - lib=${lib%.lib}d.lib - fi - debug_libs="${debug_libs}${debug_libs:+ }${lib}" -done -debug_libs=${debug_libs// /;} -libs=${libs// /;} - - -# List of all platforms supported for this target -case "$target" in - x86_64*) - platforms[0]="x64" - asm_Debug_cmdline="yasm -Xvc -g cv8 -f win64 ${yasmincs} "%(FullPath)"" - asm_Release_cmdline="yasm -Xvc -f win64 ${yasmincs} "%(FullPath)"" - ;; - x86*) - platforms[0]="Win32" - asm_Debug_cmdline="yasm -Xvc -g cv8 -f win32 ${yasmincs} "%(FullPath)"" - asm_Release_cmdline="yasm -Xvc -f win32 ${yasmincs} "%(FullPath)"" - ;; - arm*) - platforms[0]="ARM" - asm_Debug_cmdline="armasm -nologo -oldit "%(FullPath)"" - asm_Release_cmdline="armasm -nologo -oldit "%(FullPath)"" - ;; - *) die "Unsupported target $target!" - ;; -esac - -generate_vcxproj() { - echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>" - open_tag Project \ - DefaultTargets="Build" \ - ToolsVersion="4.0" \ - xmlns="http://schemas.microsoft.com/developer/msbuild/2003" \ - - open_tag ItemGroup \ - Label="ProjectConfigurations" - for plat in "${platforms[@]}"; do - for config in Debug Release; do - open_tag ProjectConfiguration \ - Include="$config|$plat" - tag_content Configuration $config - tag_content Platform $plat - close_tag ProjectConfiguration - done - done - close_tag ItemGroup - - open_tag PropertyGroup \ - Label="Globals" - tag_content ProjectGuid "{${guid}}" - tag_content RootNamespace ${name} - tag_content Keyword ManagedCProj - if [ "${platforms[0]}" = "ARM" ]; then - tag_content AppContainerApplication true - # The application type can be one of "Windows Store", - # "Windows Phone" or "Windows Phone Silverlight". The - # actual value doesn't matter from the libaom point of view, - # since a static library built for one works on the others. - # The PlatformToolset field needs to be set in sync with this; - # for Windows Store and Windows Phone Silverlight it should be - # v120 while it should be v120_wp81 if the type is Windows Phone. - tag_content ApplicationType "Windows Store" - tag_content ApplicationTypeRevision 8.1 - fi - close_tag PropertyGroup - - tag Import \ - Project="\$(VCTargetsPath)\\Microsoft.Cpp.Default.props" - - for plat in "${platforms[@]}"; do - for config in Release Debug; do - open_tag PropertyGroup \ - Condition="'\$(Configuration)|\$(Platform)'=='$config|$plat'" \ - Label="Configuration" - if [ "$proj_kind" = "exe" ]; then - tag_content ConfigurationType Application - elif [ "$proj_kind" = "dll" ]; then - tag_content ConfigurationType DynamicLibrary - else - tag_content ConfigurationType StaticLibrary - fi - if [ "$vs_ver" = "12" ]; then - # Setting a PlatformToolset indicating windows phone isn't - # enough to build code for arm with MSVC 2013, one strictly - # has to enable AppContainerApplication as well. - tag_content PlatformToolset v120 - fi - if [ "$vs_ver" = "14" ]; then - tag_content PlatformToolset v140 - fi - if [ "$vs_ver" = "15" ]; then - tag_content PlatformToolset v141 - fi - tag_content CharacterSet Unicode - if [ "$config" = "Release" ]; then - tag_content WholeProgramOptimization true - fi - close_tag PropertyGroup - done - done - - tag Import \ - Project="\$(VCTargetsPath)\\Microsoft.Cpp.props" - - open_tag ImportGroup \ - Label="PropertySheets" - tag Import \ - Project="\$(UserRootDir)\\Microsoft.Cpp.\$(Platform).user.props" \ - Condition="exists('\$(UserRootDir)\\Microsoft.Cpp.\$(Platform).user.props')" \ - Label="LocalAppDataPlatform" - close_tag ImportGroup - - tag PropertyGroup \ - Label="UserMacros" - - for plat in "${platforms[@]}"; do - plat_no_ws=`echo $plat | sed 's/[^A-Za-z0-9_]/_/g'` - for config in Debug Release; do - open_tag PropertyGroup \ - Condition="'\$(Configuration)|\$(Platform)'=='$config|$plat'" - tag_content OutDir "\$(SolutionDir)$plat_no_ws\\\$(Configuration)\\" - tag_content IntDir "$plat_no_ws\\\$(Configuration)\\${name}\\" - if [ "$proj_kind" == "lib" ]; then - if [ "$config" == "Debug" ]; then - config_suffix=d - else - config_suffix="" - fi - tag_content TargetName "${name}${lib_sfx}${config_suffix}" - fi - close_tag PropertyGroup - done - done - - for plat in "${platforms[@]}"; do - for config in Debug Release; do - open_tag ItemDefinitionGroup \ - Condition="'\$(Configuration)|\$(Platform)'=='$config|$plat'" - if [ "$name" == "aom" ]; then - hostplat=$plat - if [ "$hostplat" == "ARM" ]; then - hostplat=Win32 - fi - fi - open_tag ClCompile - if [ "$config" = "Debug" ]; then - opt=Disabled - runtime=$debug_runtime - curlibs=$debug_libs - debug=_DEBUG - else - opt=MaxSpeed - runtime=$release_runtime - curlibs=$libs - tag_content FavorSizeOrSpeed Speed - debug=NDEBUG - fi - extradefines=";$defines" - tag_content Optimization $opt - tag_content AdditionalIncludeDirectories "$incs;%(AdditionalIncludeDirectories)" - tag_content PreprocessorDefinitions "WIN32;$debug;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE$extradefines;%(PreprocessorDefinitions)" - tag_content RuntimeLibrary $runtime - tag_content WarningLevel Level3 - if ${werror:-false}; then - tag_content TreatWarningAsError true - fi - # We need to override the defaults for these settings - # if AppContainerApplication is set. - tag_content CompileAsWinRT false - tag_content PrecompiledHeader NotUsing - tag_content SDLCheck false - close_tag ClCompile - case "$proj_kind" in - exe) - open_tag Link - tag_content GenerateDebugInformation true - # Console is the default normally, but if - # AppContainerApplication is set, we need to override it. - tag_content SubSystem Console - close_tag Link - ;; - dll) - open_tag Link - tag_content GenerateDebugInformation true - tag_content ModuleDefinitionFile $module_def - close_tag Link - ;; - lib) - ;; - esac - close_tag ItemDefinitionGroup - done - - done - - open_tag ItemGroup - generate_filter "Source Files" "c;cc;cpp;def;odl;idl;hpj;bat;asm;asmx;s" - close_tag ItemGroup - open_tag ItemGroup - generate_filter "Header Files" "h;hm;inl;inc;xsd" - close_tag ItemGroup - open_tag ItemGroup - generate_filter "Build Files" "mk" - close_tag ItemGroup - open_tag ItemGroup - generate_filter "References" "vcxproj" - close_tag ItemGroup - - tag Import \ - Project="\$(VCTargetsPath)\\Microsoft.Cpp.targets" - - open_tag ImportGroup \ - Label="ExtensionTargets" - close_tag ImportGroup - - close_tag Project - - # This must be done from within the {} subshell - echo "Ignored files list (${#file_list[@]} items) is:" >&2 - for f in "${file_list[@]}"; do - echo " $f" >&2 - done -} - -# This regexp doesn't catch most of the strings in the vcxproj format, -# since they're like <tag>path</tag> instead of <tag attr="path" /> -# as previously. It still seems to work ok despite this. -generate_vcxproj | - sed -e '/"/s;\([^ "]\)/;\1\\;g' | - sed -e '/xmlns/s;\\;/;g' > ${outfile} - -exit diff --git a/third_party/aom/build/make/iosbuild.sh b/third_party/aom/build/make/iosbuild.sh index ca8214b62..75f0b1b08 100755 --- a/third_party/aom/build/make/iosbuild.sh +++ b/third_party/aom/build/make/iosbuild.sh @@ -56,6 +56,7 @@ build_target() { mkdir "${target}" cd "${target}" + # TODO(tomfinegan@google.com): switch to cmake. eval "${LIBAOM_SOURCE_DIR}/configure" --target="${target}" \ ${CONFIGURE_ARGS} ${EXTRA_CONFIGURE_ARGS} ${target_specific_flags} \ ${devnull} diff --git a/third_party/aom/build/make/msvs_common.sh b/third_party/aom/build/make/msvs_common.sh deleted file mode 100644 index 2df27df8d..000000000 --- a/third_party/aom/build/make/msvs_common.sh +++ /dev/null @@ -1,114 +0,0 @@ -#!/bin/bash -## Copyright (c) 2016, Alliance for Open Media. All rights reserved -## -## This source code is subject to the terms of the BSD 2 Clause License and -## the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License -## was not distributed with this source code in the LICENSE file, you can -## obtain it at www.aomedia.org/license/software. If the Alliance for Open -## Media Patent License 1.0 was not distributed with this source code in the -## PATENTS file, you can obtain it at www.aomedia.org/license/patent. -## - -if [ "$(uname -o 2>/dev/null)" = "Cygwin" ] \ - && cygpath --help >/dev/null 2>&1; then - FIXPATH='cygpath -m' -else - FIXPATH='echo_path' -fi - -die() { - echo "${self_basename}: $@" >&2 - exit 1 -} - -die_unknown(){ - echo "Unknown option \"$1\"." >&2 - echo "See ${self_basename} --help for available options." >&2 - exit 1 -} - -echo_path() { - for path; do - echo "$path" - done -} - -# Output one, possibly changed based on the system, path per line. -fix_path() { - $FIXPATH "$@" -} - -# Corrects the paths in file_list in one pass for efficiency. -# $1 is the name of the array to be modified. -fix_file_list() { - declare -n array_ref=$1 - files=$(fix_path "${array_ref[@]}") - local IFS=$'\n' - array_ref=($files) -} - -generate_uuid() { - local hex="0123456789ABCDEF" - local i - local uuid="" - local j - #93995380-89BD-4b04-88EB-625FBE52EBFB - for ((i=0; i<32; i++)); do - (( j = $RANDOM % 16 )) - uuid="${uuid}${hex:$j:1}" - done - echo "${uuid:0:8}-${uuid:8:4}-${uuid:12:4}-${uuid:16:4}-${uuid:20:12}" -} - -indent1=" " -indent="" -indent_push() { - indent="${indent}${indent1}" -} -indent_pop() { - indent="${indent%${indent1}}" -} - -tag_attributes() { - for opt in "$@"; do - optval="${opt#*=}" - [ -n "${optval}" ] || - die "Missing attribute value in '$opt' while generating $tag tag" - echo "${indent}${opt%%=*}=\"${optval}\"" - done -} - -open_tag() { - local tag=$1 - shift - if [ $# -ne 0 ]; then - echo "${indent}<${tag}" - indent_push - tag_attributes "$@" - echo "${indent}>" - else - echo "${indent}<${tag}>" - indent_push - fi -} - -close_tag() { - local tag=$1 - indent_pop - echo "${indent}</${tag}>" -} - -tag() { - local tag=$1 - shift - if [ $# -ne 0 ]; then - echo "${indent}<${tag}" - indent_push - tag_attributes "$@" - indent_pop - echo "${indent}/>" - else - echo "${indent}<${tag}/>" - fi -} - diff --git a/third_party/aom/build/make/rtcd.pl b/third_party/aom/build/make/rtcd.pl index 7add5a036..8d8be25c0 100755 --- a/third_party/aom/build/make/rtcd.pl +++ b/third_party/aom/build/make/rtcd.pl @@ -1,5 +1,14 @@ #!/usr/bin/env perl - +## +## Copyright (c) 2017, Alliance for Open Media. All rights reserved +## +## This source code is subject to the terms of the BSD 2 Clause License and +## the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License +## was not distributed with this source code in the LICENSE file, you can +## obtain it at www.aomedia.org/license/software. If the Alliance for Open +## Media Patent License 1.0 was not distributed with this source code in the +## PATENTS file, you can obtain it at www.aomedia.org/license/patent. +## no strict 'refs'; use warnings; use Getopt::Long; @@ -205,6 +214,7 @@ sub filter { sub common_top() { my $include_guard = uc($opts{sym})."_H_"; print <<EOF; +// This file is generated. Do not edit. #ifndef ${include_guard} #define ${include_guard} @@ -279,15 +289,12 @@ sub arm() { # Assign the helper variable for each enabled extension foreach my $opt (@ALL_ARCHS) { my $opt_uc = uc $opt; - # Enable neon assembly based on HAVE_NEON logic instead of adding new - # HAVE_NEON_ASM logic - if ($opt eq 'neon_asm') { $opt_uc = 'NEON' } eval "\$have_${opt}=\"flags & HAS_${opt_uc}\""; } common_top; print <<EOF; -#include "aom_config.h" +#include "config/aom_config.h" #ifdef RTCD_C #include "aom_ports/arm.h" @@ -310,10 +317,17 @@ EOF sub mips() { determine_indirection("c", @ALL_ARCHS); + + # Assign the helper variable for each enabled extension + foreach my $opt (@ALL_ARCHS) { + my $opt_uc = uc $opt; + eval "\$have_${opt}=\"flags & HAS_${opt_uc}\""; + } + common_top; print <<EOF; -#include "aom_config.h" +#include "config/aom_config.h" #ifdef RTCD_C static void setup_rtcd_internal(void) @@ -333,11 +347,44 @@ EOF common_bottom; } +sub ppc() { + determine_indirection("c", @ALL_ARCHS); + + # Assign the helper variable for each enabled extension + foreach my $opt (@ALL_ARCHS) { + my $opt_uc = uc $opt; + eval "\$have_${opt}=\"flags & HAS_${opt_uc}\""; + } + + common_top; + + print <<EOF; +#include "config/aom_config.h" + +#ifdef RTCD_C +#include "aom_ports/ppc.h" +static void setup_rtcd_internal(void) +{ + int flags = ppc_simd_caps(); + + (void)flags; + +EOF + + set_function_pointers("c", @ALL_ARCHS); + + print <<EOF; +} +#endif +EOF + common_bottom; +} + sub unoptimized() { determine_indirection "c"; common_top; print <<EOF; -#include "aom_config.h" +#include "config/aom_config.h" #ifdef RTCD_C static void setup_rtcd_internal(void) @@ -359,10 +406,10 @@ EOF &require("c"); if ($opts{arch} eq 'x86') { - @ALL_ARCHS = filter(qw/mmx sse sse2 sse3 ssse3 sse4_1 avx avx2/); + @ALL_ARCHS = filter(qw/mmx sse sse2 sse3 ssse3 sse4_1 sse4_2 avx avx2/); x86; } elsif ($opts{arch} eq 'x86_64') { - @ALL_ARCHS = filter(qw/mmx sse sse2 sse3 ssse3 sse4_1 avx avx2/); + @ALL_ARCHS = filter(qw/mmx sse sse2 sse3 ssse3 sse4_1 sse4_2 avx avx2/); @REQUIRES = filter(keys %required ? keys %required : qw/mmx sse sse2/); &require(@REQUIRES); x86; @@ -383,12 +430,14 @@ if ($opts{arch} eq 'x86') { close CONFIG_FILE; mips; } elsif ($opts{arch} =~ /armv7\w?/) { - @ALL_ARCHS = filter(qw/neon_asm neon/); - &require(@REQUIRES); + @ALL_ARCHS = filter(qw/neon/); arm; } elsif ($opts{arch} eq 'armv8' || $opts{arch} eq 'arm64' ) { @ALL_ARCHS = filter(qw/neon/); arm; +} elsif ($opts{arch} eq 'ppc') { + @ALL_ARCHS = filter(qw/vsx/); + ppc; } else { unoptimized; } diff --git a/third_party/aom/build/make/thumb.pm b/third_party/aom/build/make/thumb.pm index 8248694e9..0a6629d78 100644 --- a/third_party/aom/build/make/thumb.pm +++ b/third_party/aom/build/make/thumb.pm @@ -55,13 +55,6 @@ sub FixThumbInstructions($$) # "addne r0, r0, r2". s/^(\s*)((ldr|str)(ne)?[bhd]?)(\s+)(\w+),(\s*\w+,)?\s*\[(\w+)\],\s*(\w+)/$1$2$5$6,$7 [$8]\n$1add$4$5$8, $8, $9/g; - # Convert a conditional addition to the pc register into a series of - # instructions. This converts "addlt pc, pc, r3, lsl #2" into - # "itttt lt", "movlt.n r12, pc", "addlt.w r12, #12", - # "addlt.w r12, r12, r3, lsl #2", "movlt.n pc, r12". - # This assumes that r12 is free at this point. - s/^(\s*)addlt(\s+)pc,\s*pc,\s*(\w+),\s*lsl\s*#(\d+)/$1itttt$2lt\n$1movlt.n$2r12, pc\n$1addlt.w$2r12, #12\n$1addlt.w$2r12, r12, $3, lsl #($4-$branch_shift_offset)\n$1movlt.n$2pc, r12/g; - # Convert "mov pc, lr" into "bx lr", since the former only works # for switching from arm to thumb (and only in armv7), but not # from thumb to arm. diff --git a/third_party/aom/build/make/version.sh b/third_party/aom/build/make/version.sh deleted file mode 100755 index 2a7090e4d..000000000 --- a/third_party/aom/build/make/version.sh +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/sh -## Copyright (c) 2016, Alliance for Open Media. All rights reserved -## -## This source code is subject to the terms of the BSD 2 Clause License and -## the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License -## was not distributed with this source code in the LICENSE file, you can -## obtain it at www.aomedia.org/license/software. If the Alliance for Open -## Media Patent License 1.0 was not distributed with this source code in the -## PATENTS file, you can obtain it at www.aomedia.org/license/patent. -## - - - -for opt in "$@"; do - optval="${opt#*=}" - case "$opt" in - --bare) bare=true ;; - *) break ;; - esac - shift -done -source_path=${1:-.} -out_file=${2} -id=${3:-VERSION_STRING} - -git_version_id="" -if [ -e "${source_path}/.git" ]; then - # Source Path is a git working copy. Check for local modifications. - # Note that git submodules may have a file as .git, not a directory. - export GIT_DIR="${source_path}/.git" - git_version_id=$(git describe --match=v[0-9]* 2>/dev/null) -fi - -changelog_version="" -for p in "${source_path}" "${source_path}/.."; do - if [ -z "$git_version_id" -a -f "${p}/CHANGELOG" ]; then - changelog_version=$(grep -m 1 " v[0-9]" "${p}/CHANGELOG" \ - | awk '{print $2}') - changelog_version="${changelog_version}" - break - fi -done -version_str="${changelog_version}${git_version_id}" -bare_version=${version_str#v} -major_version=${bare_version%%.*} -bare_version=${bare_version#*.} -minor_version=${bare_version%%.*} -bare_version=${bare_version#*.} -patch_version=${bare_version%%-*} -bare_version=${bare_version#${patch_version}} -extra_version=${bare_version##-} - -#since they'll be used as integers below make sure they are or force to 0 -for v in major_version minor_version patch_version; do - if eval echo \$$v |grep -E -q '[^[:digit:]]'; then - eval $v=0 - fi -done - -if [ ${bare} ]; then - echo "${changelog_version}${git_version_id}" > $$.tmp -else - cat<<EOF>$$.tmp -#define VERSION_MAJOR $major_version -#define VERSION_MINOR $minor_version -#define VERSION_PATCH $patch_version -#define VERSION_EXTRA "$extra_version" -#define VERSION_PACKED ((VERSION_MAJOR<<16)|(VERSION_MINOR<<8)|(VERSION_PATCH)) -#define ${id}_NOSP "${version_str}" -#define ${id} " ${version_str}" -EOF -fi -if [ -n "$out_file" ]; then -diff $$.tmp ${out_file} >/dev/null 2>&1 || cat $$.tmp > ${out_file} -else -cat $$.tmp -fi -rm $$.tmp |