OLD | NEW |
1 ## | 1 ## |
2 ## Copyright (c) 2012 The WebM project authors. All Rights Reserved. | 2 ## Copyright (c) 2012 The WebM project authors. All Rights Reserved. |
3 ## | 3 ## |
4 ## Use of this source code is governed by a BSD-style license | 4 ## Use of this source code is governed by a BSD-style license |
5 ## that can be found in the LICENSE file in the root of the source | 5 ## that can be found in the LICENSE file in the root of the source |
6 ## tree. An additional intellectual property rights grant can be found | 6 ## tree. An additional intellectual property rights grant can be found |
7 ## in the file PATENTS. All contributing project authors may | 7 ## in the file PATENTS. All contributing project authors may |
8 ## be found in the AUTHORS file in the root of the source tree. | 8 ## be found in the AUTHORS file in the root of the source tree. |
9 ## | 9 ## |
10 | 10 |
(...skipping 25 matching lines...) Expand all Loading... |
36 # | 36 # |
37 # By default libvpx will detect at runtime the existance of NEON extension. | 37 # By default libvpx will detect at runtime the existance of NEON extension. |
38 # For this we import the 'cpufeatures' module from the NDK sources. | 38 # For this we import the 'cpufeatures' module from the NDK sources. |
39 # libvpx can also be configured without this runtime detection method. | 39 # libvpx can also be configured without this runtime detection method. |
40 # Configuring with --disable-runtime-cpu-detect will assume presence of NEON. | 40 # Configuring with --disable-runtime-cpu-detect will assume presence of NEON. |
41 # Configuring with --disable-runtime-cpu-detect --disable-neon \ | 41 # Configuring with --disable-runtime-cpu-detect --disable-neon \ |
42 # --disable-neon-asm | 42 # --disable-neon-asm |
43 # will remove any NEON dependency. | 43 # will remove any NEON dependency. |
44 | 44 |
45 # To change to building armeabi, run ./libvpx/configure again, but with | 45 # To change to building armeabi, run ./libvpx/configure again, but with |
46 # --target=arm5te-android-gcc and modify the Application.mk file to | 46 # --target=armv6-android-gcc and modify the Application.mk file to |
47 # set APP_ABI := armeabi | 47 # set APP_ABI := armeabi |
48 # | 48 # |
49 # Running ndk-build will build libvpx and include it in your project. | 49 # Running ndk-build will build libvpx and include it in your project. |
50 # | 50 # |
51 | 51 |
52 CONFIG_DIR := $(LOCAL_PATH)/ | 52 CONFIG_DIR := $(LOCAL_PATH)/ |
53 LIBVPX_PATH := $(LOCAL_PATH)/libvpx | 53 LIBVPX_PATH := $(LOCAL_PATH)/libvpx |
54 ASM_CNV_PATH_LOCAL := $(TARGET_ARCH_ABI)/ads2gas | 54 ASM_CNV_PATH_LOCAL := $(TARGET_ARCH_ABI)/ads2gas |
55 ASM_CNV_PATH := $(LOCAL_PATH)/$(ASM_CNV_PATH_LOCAL) | 55 ASM_CNV_PATH := $(LOCAL_PATH)/$(ASM_CNV_PATH_LOCAL) |
56 | 56 |
57 # Use the makefiles generated by upstream configure to determine which files to | 57 # Use the makefiles generated by upstream configure to determine which files to |
58 # build. Also set any architecture-specific flags. | 58 # build. Also set any architecture-specific flags. |
59 ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) | 59 ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) |
60 include $(CONFIG_DIR)libs-armv7-android-gcc.mk | 60 include $(CONFIG_DIR)libs-armv7-android-gcc.mk |
61 LOCAL_ARM_MODE := arm | 61 LOCAL_ARM_MODE := arm |
62 else ifeq ($(TARGET_ARCH_ABI),armeabi) | 62 else ifeq ($(TARGET_ARCH_ABI),armeabi) |
63 include $(CONFIG_DIR)libs-armv5te-android-gcc.mk | 63 include $(CONFIG_DIR)libs-armv6-android-gcc.mk |
64 LOCAL_ARM_MODE := arm | 64 LOCAL_ARM_MODE := arm |
65 else ifeq ($(TARGET_ARCH_ABI),arm64-v8a) | 65 else ifeq ($(TARGET_ARCH_ABI),arm64-v8a) |
66 include $(CONFIG_DIR)libs-armv8-android-gcc.mk | 66 include $(CONFIG_DIR)libs-armv8-android-gcc.mk |
67 LOCAL_ARM_MODE := arm | 67 LOCAL_ARM_MODE := arm |
68 else ifeq ($(TARGET_ARCH_ABI),x86) | 68 else ifeq ($(TARGET_ARCH_ABI),x86) |
69 include $(CONFIG_DIR)libs-x86-android-gcc.mk | 69 include $(CONFIG_DIR)libs-x86-android-gcc.mk |
70 else ifeq ($(TARGET_ARCH_ABI),mips) | 70 else ifeq ($(TARGET_ARCH_ABI),mips) |
71 include $(CONFIG_DIR)libs-mips-android-gcc.mk | 71 include $(CONFIG_DIR)libs-mips-android-gcc.mk |
72 else | 72 else |
73 $(error Not a supported TARGET_ARCH_ABI: $(TARGET_ARCH_ABI)) | 73 $(error Not a supported TARGET_ARCH_ABI: $(TARGET_ARCH_ABI)) |
(...skipping 10 matching lines...) Expand all Loading... |
84 # Include the list of files to be built | 84 # Include the list of files to be built |
85 include $(LIBVPX_PATH)/libs.mk | 85 include $(LIBVPX_PATH)/libs.mk |
86 | 86 |
87 # Optimise the code. May want to revisit this setting in the future. | 87 # Optimise the code. May want to revisit this setting in the future. |
88 LOCAL_CFLAGS := -O3 | 88 LOCAL_CFLAGS := -O3 |
89 | 89 |
90 # For x86, include the source code in the search path so it will find files | 90 # For x86, include the source code in the search path so it will find files |
91 # like x86inc.asm and x86_abi_support.asm | 91 # like x86inc.asm and x86_abi_support.asm |
92 LOCAL_ASMFLAGS := -I$(LIBVPX_PATH) | 92 LOCAL_ASMFLAGS := -I$(LIBVPX_PATH) |
93 | 93 |
94 # ----------------------------------------------------------------------------- | |
95 # Template : asm_offsets_template | |
96 # Arguments : 1: assembly offsets file to be created | |
97 # 2: c file to base assembly offsets on | |
98 # Returns : None | |
99 # Usage : $(eval $(call asm_offsets_template,<asmfile>, <srcfile> | |
100 # Rationale : Create offsets at compile time using for structures that are | |
101 # defined in c, but used in assembly functions. | |
102 # ----------------------------------------------------------------------------- | |
103 define asm_offsets_template | |
104 | |
105 _SRC:=$(2) | |
106 _OBJ:=$(ASM_CNV_PATH)/$$(notdir $(2)).S | |
107 | |
108 _FLAGS = $$($$(my)CFLAGS) \ | |
109 $$(call get-src-file-target-cflags,$(2)) \ | |
110 $$(call host-c-includes,$$(LOCAL_C_INCLUDES) $$(CONFIG_DIR)) \ | |
111 $$(LOCAL_CFLAGS) \ | |
112 $$(NDK_APP_CFLAGS) \ | |
113 $$(call host-c-includes,$$($(my)C_INCLUDES)) \ | |
114 -DINLINE_ASM \ | |
115 -S \ | |
116 | |
117 _TEXT = "Compile $$(call get-src-file-text,$(2))" | |
118 _CC = $$(TARGET_CC) | |
119 | |
120 $$(eval $$(call ev-build-file)) | |
121 | |
122 $(1) : $$(_OBJ) $(2) | |
123 @mkdir -p $$(dir $$@) | |
124 @grep $(OFFSET_PATTERN) $$< | tr -d '\#' | $(CONFIG_DIR)$(ASM_CONVERSION
) > $$@ | |
125 endef | |
126 | |
127 # Use ads2gas script to convert from RVCT format to GAS format. This | |
128 # puts the processed file under $(ASM_CNV_PATH). Local clean rule | |
129 # to handle removing these | |
130 ifeq ($(CONFIG_VP8_ENCODER), yes) | |
131 ASM_CNV_OFFSETS_DEPEND += $(ASM_CNV_PATH)/vp8_asm_enc_offsets.asm | |
132 endif | |
133 ifeq ($(HAVE_NEON_ASM), yes) | |
134 ASM_CNV_OFFSETS_DEPEND += $(ASM_CNV_PATH)/vpx_scale_asm_offsets.asm | |
135 endif | |
136 | |
137 .PRECIOUS: %.asm.s | 94 .PRECIOUS: %.asm.s |
138 $(ASM_CNV_PATH)/libvpx/%.asm.s: $(LIBVPX_PATH)/%.asm $(ASM_CNV_OFFSETS_DEPEND) | 95 $(ASM_CNV_PATH)/libvpx/%.asm.s: $(LIBVPX_PATH)/%.asm |
139 @mkdir -p $(dir $@) | 96 @mkdir -p $(dir $@) |
140 @$(CONFIG_DIR)$(ASM_CONVERSION) <$< > $@ | 97 @$(CONFIG_DIR)$(ASM_CONVERSION) <$< > $@ |
141 | 98 |
142 # For building *_rtcd.h, which have rules in libs.mk | 99 # For building *_rtcd.h, which have rules in libs.mk |
143 TGT_ISA:=$(word 1, $(subst -, ,$(TOOLCHAIN))) | 100 TGT_ISA:=$(word 1, $(subst -, ,$(TOOLCHAIN))) |
144 target := libs | 101 target := libs |
145 | 102 |
146 LOCAL_SRC_FILES += vpx_config.c | 103 LOCAL_SRC_FILES += vpx_config.c |
147 | 104 |
148 # Remove duplicate entries | 105 # Remove duplicate entries |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
217 $(foreach file, $(LOCAL_SRC_FILES), $(LOCAL_PATH)/$(file)): vpx_scale_rtcd.h | 174 $(foreach file, $(LOCAL_SRC_FILES), $(LOCAL_PATH)/$(file)): vpx_scale_rtcd.h |
218 | 175 |
219 ifeq ($(TARGET_ARCH_ABI),x86) | 176 ifeq ($(TARGET_ARCH_ABI),x86) |
220 $(foreach file, $(LOCAL_SRC_FILES), $(LOCAL_PATH)/$(file)): vpx_config.asm | 177 $(foreach file, $(LOCAL_SRC_FILES), $(LOCAL_PATH)/$(file)): vpx_config.asm |
221 endif | 178 endif |
222 | 179 |
223 .PHONY: clean | 180 .PHONY: clean |
224 clean: | 181 clean: |
225 @echo "Clean: ads2gas files [$(TARGET_ARCH_ABI)]" | 182 @echo "Clean: ads2gas files [$(TARGET_ARCH_ABI)]" |
226 @$(RM) $(CODEC_SRCS_ASM_ADS2GAS) $(CODEC_SRCS_ASM_NEON_ADS2GAS) | 183 @$(RM) $(CODEC_SRCS_ASM_ADS2GAS) $(CODEC_SRCS_ASM_NEON_ADS2GAS) |
227 @$(RM) $(patsubst %.asm, %.*, $(ASM_CNV_OFFSETS_DEPEND)) | |
228 @$(RM) -r $(ASM_CNV_PATH) | 184 @$(RM) -r $(ASM_CNV_PATH) |
229 @$(RM) $(CLEAN-OBJS) | 185 @$(RM) $(CLEAN-OBJS) |
230 | 186 |
231 include $(BUILD_SHARED_LIBRARY) | 187 include $(BUILD_SHARED_LIBRARY) |
232 | 188 |
233 ifeq ($(HAVE_NEON), yes) | |
234 $(eval $(call asm_offsets_template,\ | |
235 $(ASM_CNV_PATH)/vpx_scale_asm_offsets.asm, \ | |
236 $(LIBVPX_PATH)/vpx_scale/vpx_scale_asm_offsets.c)) | |
237 endif | |
238 | |
239 ifeq ($(CONFIG_VP8_ENCODER), yes) | |
240 $(eval $(call asm_offsets_template,\ | |
241 $(ASM_CNV_PATH)/vp8_asm_enc_offsets.asm, \ | |
242 $(LIBVPX_PATH)/vp8/encoder/vp8_asm_enc_offsets.c)) | |
243 endif | |
244 | |
245 ifeq ($(CONFIG_RUNTIME_CPU_DETECT),yes) | 189 ifeq ($(CONFIG_RUNTIME_CPU_DETECT),yes) |
246 $(call import-module,cpufeatures) | 190 $(call import-module,cpufeatures) |
247 endif | 191 endif |
OLD | NEW |