1*fb1b10abSAndroid Build Coastguard Worker#!/bin/bash -e 2*fb1b10abSAndroid Build Coastguard Worker# 3*fb1b10abSAndroid Build Coastguard Worker# Copyright (c) 2012 The Chromium Authors. All rights reserved. 4*fb1b10abSAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 5*fb1b10abSAndroid Build Coastguard Worker# found in the LICENSE file. 6*fb1b10abSAndroid Build Coastguard Worker 7*fb1b10abSAndroid Build Coastguard Worker# This script is used to generate files in the <platform> directories needed to 8*fb1b10abSAndroid Build Coastguard Worker# build libvpx. Every time libvpx source code is updated run this script. 9*fb1b10abSAndroid Build Coastguard Worker# 10*fb1b10abSAndroid Build Coastguard Worker# The script depends on the bpfmt tool, which may need to be built with 11*fb1b10abSAndroid Build Coastguard Worker# m -j blueprint_tools 12*fb1b10abSAndroid Build Coastguard Worker# 13*fb1b10abSAndroid Build Coastguard Worker# For example, from the top of an Android tree: 14*fb1b10abSAndroid Build Coastguard Worker# $ source build/envsetup.sh 15*fb1b10abSAndroid Build Coastguard Worker# $ m -j blueprint_tools 16*fb1b10abSAndroid Build Coastguard Worker# $ external/libvpx/generate_config.sh 17*fb1b10abSAndroid Build Coastguard Worker# 18*fb1b10abSAndroid Build Coastguard Worker# And this will update all the config files needed. 19*fb1b10abSAndroid Build Coastguard Worker 20*fb1b10abSAndroid Build Coastguard Workerexport LC_ALL=C 21*fb1b10abSAndroid Build Coastguard Workercd $(dirname $0) 22*fb1b10abSAndroid Build Coastguard WorkerBASE_DIR=$(pwd) 23*fb1b10abSAndroid Build Coastguard WorkerLIBVPX_SRC_DIR="." 24*fb1b10abSAndroid Build Coastguard WorkerLIBVPX_CONFIG_DIR="config" 25*fb1b10abSAndroid Build Coastguard Worker 26*fb1b10abSAndroid Build Coastguard Worker# Clean files from previous make. 27*fb1b10abSAndroid Build Coastguard Workerfunction make_clean { 28*fb1b10abSAndroid Build Coastguard Worker make clean > /dev/null 29*fb1b10abSAndroid Build Coastguard Worker rm -f libvpx_srcs.txt 30*fb1b10abSAndroid Build Coastguard Worker} 31*fb1b10abSAndroid Build Coastguard Worker 32*fb1b10abSAndroid Build Coastguard Worker# Lint a pair of vpx_config.h and vpx_config.asm to make sure they match. 33*fb1b10abSAndroid Build Coastguard Worker# $1 - Header file directory. 34*fb1b10abSAndroid Build Coastguard Workerfunction lint_config { 35*fb1b10abSAndroid Build Coastguard Worker $BASE_DIR/lint_config.sh \ 36*fb1b10abSAndroid Build Coastguard Worker -h $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vpx_config.h \ 37*fb1b10abSAndroid Build Coastguard Worker -a $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vpx_config.asm 38*fb1b10abSAndroid Build Coastguard Worker} 39*fb1b10abSAndroid Build Coastguard Worker 40*fb1b10abSAndroid Build Coastguard Worker# Print the configuration. 41*fb1b10abSAndroid Build Coastguard Worker# $1 - Header file directory. 42*fb1b10abSAndroid Build Coastguard Workerfunction print_config { 43*fb1b10abSAndroid Build Coastguard Worker $BASE_DIR/lint_config.sh -p \ 44*fb1b10abSAndroid Build Coastguard Worker -h $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vpx_config.h \ 45*fb1b10abSAndroid Build Coastguard Worker -a $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vpx_config.asm 46*fb1b10abSAndroid Build Coastguard Worker} 47*fb1b10abSAndroid Build Coastguard Worker 48*fb1b10abSAndroid Build Coastguard Worker# Print the configuration from Header file. 49*fb1b10abSAndroid Build Coastguard Worker# This function is an abridged version of print_config which does not use 50*fb1b10abSAndroid Build Coastguard Worker# lint_config and it does not require existence of vpx_config.asm. 51*fb1b10abSAndroid Build Coastguard Worker# $1 - Header file directory. 52*fb1b10abSAndroid Build Coastguard Workerfunction print_config_basic { 53*fb1b10abSAndroid Build Coastguard Worker combined_config="$(cat $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vpx_config.h \ 54*fb1b10abSAndroid Build Coastguard Worker | grep -E ' +[01] *$')" 55*fb1b10abSAndroid Build Coastguard Worker combined_config="$(echo "$combined_config" | grep -v DO1STROUNDING)" 56*fb1b10abSAndroid Build Coastguard Worker combined_config="$(echo "$combined_config" | sed 's/[ \t]//g')" 57*fb1b10abSAndroid Build Coastguard Worker combined_config="$(echo "$combined_config" | sed 's/.*define//')" 58*fb1b10abSAndroid Build Coastguard Worker combined_config="$(echo "$combined_config" | sed 's/0$/=no/')" 59*fb1b10abSAndroid Build Coastguard Worker combined_config="$(echo "$combined_config" | sed 's/1$/=yes/')" 60*fb1b10abSAndroid Build Coastguard Worker echo "$combined_config" | sort | uniq 61*fb1b10abSAndroid Build Coastguard Worker} 62*fb1b10abSAndroid Build Coastguard Worker 63*fb1b10abSAndroid Build Coastguard Worker# Generate *_rtcd.h files. 64*fb1b10abSAndroid Build Coastguard Worker# $1 - Header file directory. 65*fb1b10abSAndroid Build Coastguard Worker# $2 - Architecture. 66*fb1b10abSAndroid Build Coastguard Worker# $3 - Optional - any additional arguments to pass through. 67*fb1b10abSAndroid Build Coastguard Workerfunction gen_rtcd_header { 68*fb1b10abSAndroid Build Coastguard Worker echo "Generate $LIBVPX_CONFIG_DIR/$1/*_rtcd.h files." 69*fb1b10abSAndroid Build Coastguard Worker 70*fb1b10abSAndroid Build Coastguard Worker rm -rf $BASE_DIR/$TEMP_DIR/libvpx.config 71*fb1b10abSAndroid Build Coastguard Worker $BASE_DIR/lint_config.sh -p \ 72*fb1b10abSAndroid Build Coastguard Worker -h $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vpx_config.h \ 73*fb1b10abSAndroid Build Coastguard Worker -a $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vpx_config.asm \ 74*fb1b10abSAndroid Build Coastguard Worker -o $BASE_DIR/$TEMP_DIR/libvpx.config 75*fb1b10abSAndroid Build Coastguard Worker 76*fb1b10abSAndroid Build Coastguard Worker $BASE_DIR/$LIBVPX_SRC_DIR/build/make/rtcd.pl \ 77*fb1b10abSAndroid Build Coastguard Worker --arch=$2 \ 78*fb1b10abSAndroid Build Coastguard Worker --sym=vp8_rtcd $3 \ 79*fb1b10abSAndroid Build Coastguard Worker --config=$BASE_DIR/$TEMP_DIR/libvpx.config \ 80*fb1b10abSAndroid Build Coastguard Worker $BASE_DIR/$LIBVPX_SRC_DIR/vp8/common/rtcd_defs.pl \ 81*fb1b10abSAndroid Build Coastguard Worker > $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vp8_rtcd.h 82*fb1b10abSAndroid Build Coastguard Worker 83*fb1b10abSAndroid Build Coastguard Worker $BASE_DIR/$LIBVPX_SRC_DIR/build/make/rtcd.pl \ 84*fb1b10abSAndroid Build Coastguard Worker --arch=$2 \ 85*fb1b10abSAndroid Build Coastguard Worker --sym=vp9_rtcd $3 \ 86*fb1b10abSAndroid Build Coastguard Worker --config=$BASE_DIR/$TEMP_DIR/libvpx.config \ 87*fb1b10abSAndroid Build Coastguard Worker $BASE_DIR/$LIBVPX_SRC_DIR/vp9/common/vp9_rtcd_defs.pl \ 88*fb1b10abSAndroid Build Coastguard Worker > $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vp9_rtcd.h 89*fb1b10abSAndroid Build Coastguard Worker 90*fb1b10abSAndroid Build Coastguard Worker $BASE_DIR/$LIBVPX_SRC_DIR/build/make/rtcd.pl \ 91*fb1b10abSAndroid Build Coastguard Worker --arch=$2 \ 92*fb1b10abSAndroid Build Coastguard Worker --sym=vpx_scale_rtcd $3 \ 93*fb1b10abSAndroid Build Coastguard Worker --config=$BASE_DIR/$TEMP_DIR/libvpx.config \ 94*fb1b10abSAndroid Build Coastguard Worker $BASE_DIR/$LIBVPX_SRC_DIR/vpx_scale/vpx_scale_rtcd.pl \ 95*fb1b10abSAndroid Build Coastguard Worker > $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vpx_scale_rtcd.h 96*fb1b10abSAndroid Build Coastguard Worker 97*fb1b10abSAndroid Build Coastguard Worker $BASE_DIR/$LIBVPX_SRC_DIR/build/make/rtcd.pl \ 98*fb1b10abSAndroid Build Coastguard Worker --arch=$2 \ 99*fb1b10abSAndroid Build Coastguard Worker --sym=vpx_dsp_rtcd $3 \ 100*fb1b10abSAndroid Build Coastguard Worker --config=$BASE_DIR/$TEMP_DIR/libvpx.config \ 101*fb1b10abSAndroid Build Coastguard Worker $BASE_DIR/$LIBVPX_SRC_DIR/vpx_dsp/vpx_dsp_rtcd_defs.pl \ 102*fb1b10abSAndroid Build Coastguard Worker > $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vpx_dsp_rtcd.h 103*fb1b10abSAndroid Build Coastguard Worker 104*fb1b10abSAndroid Build Coastguard Worker rm -rf $BASE_DIR/$TEMP_DIR/libvpx.config 105*fb1b10abSAndroid Build Coastguard Worker} 106*fb1b10abSAndroid Build Coastguard Worker 107*fb1b10abSAndroid Build Coastguard Worker# Generate Config files. "--enable-external-build" must be set to skip 108*fb1b10abSAndroid Build Coastguard Worker# detection of capabilities on specific targets. 109*fb1b10abSAndroid Build Coastguard Worker# $1 - Header file directory. 110*fb1b10abSAndroid Build Coastguard Worker# $2 - Config command line. 111*fb1b10abSAndroid Build Coastguard Workerfunction gen_config_files { 112*fb1b10abSAndroid Build Coastguard Worker ./configure $2 > /dev/null 113*fb1b10abSAndroid Build Coastguard Worker 114*fb1b10abSAndroid Build Coastguard Worker # Generate vpx_config.asm for x86[_64]. 115*fb1b10abSAndroid Build Coastguard Worker if [[ "$1" == *x86* ]]; then 116*fb1b10abSAndroid Build Coastguard Worker egrep "#define [A-Z0-9_]+ [01]" vpx_config.h \ 117*fb1b10abSAndroid Build Coastguard Worker | awk '{print "%define " $2 " " $3}' > vpx_config.asm 118*fb1b10abSAndroid Build Coastguard Worker else 119*fb1b10abSAndroid Build Coastguard Worker # vpx_config.asm is unused for arm[64] but is needed to pass lint_config. 120*fb1b10abSAndroid Build Coastguard Worker egrep "#define [A-Z0-9_]+ [01]" vpx_config.h \ 121*fb1b10abSAndroid Build Coastguard Worker | awk '{print $2 " EQU " $3}' \ 122*fb1b10abSAndroid Build Coastguard Worker | perl $BASE_DIR/$LIBVPX_SRC_DIR/build/make/ads2gas.pl > vpx_config.asm 123*fb1b10abSAndroid Build Coastguard Worker fi 124*fb1b10abSAndroid Build Coastguard Worker 125*fb1b10abSAndroid Build Coastguard Worker # Generate vpx_version.h 126*fb1b10abSAndroid Build Coastguard Worker $BASE_DIR/$LIBVPX_SRC_DIR/build/make/version.sh "$BASE_DIR/$LIBVPX_SRC_DIR" vpx_version.h 127*fb1b10abSAndroid Build Coastguard Worker 128*fb1b10abSAndroid Build Coastguard Worker cp vpx_config.* vpx_version.h $BASE_DIR/$LIBVPX_CONFIG_DIR/$1 129*fb1b10abSAndroid Build Coastguard Worker make_clean 130*fb1b10abSAndroid Build Coastguard Worker rm -rf vpx_config.* vpx_version.h 131*fb1b10abSAndroid Build Coastguard Worker} 132*fb1b10abSAndroid Build Coastguard Worker 133*fb1b10abSAndroid Build Coastguard Worker# Generate a text file containing sources for a config 134*fb1b10abSAndroid Build Coastguard Worker# $1 - Config 135*fb1b10abSAndroid Build Coastguard Workerfunction gen_source_list { 136*fb1b10abSAndroid Build Coastguard Worker make_clean 137*fb1b10abSAndroid Build Coastguard Worker if [[ "$1" = "generic" ]]; then 138*fb1b10abSAndroid Build Coastguard Worker config=$(print_config_basic $1) 139*fb1b10abSAndroid Build Coastguard Worker else 140*fb1b10abSAndroid Build Coastguard Worker config=$(print_config $1) 141*fb1b10abSAndroid Build Coastguard Worker fi 142*fb1b10abSAndroid Build Coastguard Worker make libvpx_srcs.txt libvpxrc_srcs.txt target=libs $config > /dev/null 143*fb1b10abSAndroid Build Coastguard Worker mv libvpx_srcs.txt libvpx_srcs_$1.txt 144*fb1b10abSAndroid Build Coastguard Worker mv libvpxrc_srcs.txt libvpxrc_srcs_$1.txt 145*fb1b10abSAndroid Build Coastguard Worker} 146*fb1b10abSAndroid Build Coastguard Worker 147*fb1b10abSAndroid Build Coastguard Worker# Extract a list of C sources from a libvpx_srcs.txt file 148*fb1b10abSAndroid Build Coastguard Worker# $1 - path to libvpx_srcs.txt 149*fb1b10abSAndroid Build Coastguard Worker# $2 - C file match pattern 150*fb1b10abSAndroid Build Coastguard Worker# $3 - Negative match pattern (default: none) 151*fb1b10abSAndroid Build Coastguard Workerfunction libvpx_srcs_txt_to_c_srcs { 152*fb1b10abSAndroid Build Coastguard Worker local match_pattern="$2" 153*fb1b10abSAndroid Build Coastguard Worker local negative_patterns=(-e "^vpx_config\\.c$") 154*fb1b10abSAndroid Build Coastguard Worker if [[ -n "$3" ]]; then 155*fb1b10abSAndroid Build Coastguard Worker negative_patterns+=(-e "$3") 156*fb1b10abSAndroid Build Coastguard Worker fi 157*fb1b10abSAndroid Build Coastguard Worker grep "${match_pattern}" $1 \ 158*fb1b10abSAndroid Build Coastguard Worker | grep -v "${negative_patterns[@]}" \ 159*fb1b10abSAndroid Build Coastguard Worker | awk '$0="\""$0"\","' \ 160*fb1b10abSAndroid Build Coastguard Worker | sort 161*fb1b10abSAndroid Build Coastguard Worker} 162*fb1b10abSAndroid Build Coastguard Worker 163*fb1b10abSAndroid Build Coastguard Worker# Extract a list of C++ sources from a libvpxrc_srcs.txt file 164*fb1b10abSAndroid Build Coastguard Worker# $1 - path to libvpxrc_srcs.txt 165*fb1b10abSAndroid Build Coastguard Workerfunction libvpxrc_srcs_txt_to_cc_srcs { 166*fb1b10abSAndroid Build Coastguard Worker grep ".cc$" $1 | awk '$0="\""$0"\","' | sort 167*fb1b10abSAndroid Build Coastguard Worker} 168*fb1b10abSAndroid Build Coastguard Worker 169*fb1b10abSAndroid Build Coastguard Worker# Extract a list of ASM sources from a libvpx_srcs.txt file 170*fb1b10abSAndroid Build Coastguard Worker# $1 - path to libvpx_srcs.txt 171*fb1b10abSAndroid Build Coastguard Workerfunction libvpx_srcs_txt_to_asm_srcs { 172*fb1b10abSAndroid Build Coastguard Worker grep ".asm$" $1 | awk '$0="\""$0"\","' | sort 173*fb1b10abSAndroid Build Coastguard Worker} 174*fb1b10abSAndroid Build Coastguard Worker 175*fb1b10abSAndroid Build Coastguard Worker# Extract a list of converted ASM sources from a libvpx_srcs.txt file 176*fb1b10abSAndroid Build Coastguard Worker# $1 - path to libvpx_srcs.txt 177*fb1b10abSAndroid Build Coastguard Workerfunction libvpx_srcs_txt_to_asm_S_srcs { 178*fb1b10abSAndroid Build Coastguard Worker grep ".asm.S$" $1 | awk '$0="\""$0"\","' | sort 179*fb1b10abSAndroid Build Coastguard Worker} 180*fb1b10abSAndroid Build Coastguard Worker 181*fb1b10abSAndroid Build Coastguard Worker# Convert a list of sources to a blueprint file containing a variable 182*fb1b10abSAndroid Build Coastguard Worker# assignment. 183*fb1b10abSAndroid Build Coastguard Worker# $1 - Config 184*fb1b10abSAndroid Build Coastguard Workerfunction gen_bp_srcs { 185*fb1b10abSAndroid Build Coastguard Worker ( 186*fb1b10abSAndroid Build Coastguard Worker # First collect the libvpx sources into variables. 187*fb1b10abSAndroid Build Coastguard Worker varprefix=libvpx_${1//-/_} 188*fb1b10abSAndroid Build Coastguard Worker local negative_pattern 189*fb1b10abSAndroid Build Coastguard Worker if [[ "$1" == "arm64" ]]; then 190*fb1b10abSAndroid Build Coastguard Worker negative_pattern="\\(_neon_\\(dotprod\\|i8mm\\)\\|_sve\\)\\.c" 191*fb1b10abSAndroid Build Coastguard Worker for suffix in "neon_dotprod" "neon_i8mm" "sve"; do 192*fb1b10abSAndroid Build Coastguard Worker echo "${varprefix}_${suffix}_c_srcs = [" 193*fb1b10abSAndroid Build Coastguard Worker libvpx_srcs_txt_to_c_srcs libvpx_srcs_$1.txt "_${suffix}\\.c" 194*fb1b10abSAndroid Build Coastguard Worker echo "]" 195*fb1b10abSAndroid Build Coastguard Worker echo 196*fb1b10abSAndroid Build Coastguard Worker done 197*fb1b10abSAndroid Build Coastguard Worker fi 198*fb1b10abSAndroid Build Coastguard Worker echo "${varprefix}_c_srcs = [" 199*fb1b10abSAndroid Build Coastguard Worker libvpx_srcs_txt_to_c_srcs libvpx_srcs_$1.txt "\\.c$" "${negative_pattern}" 200*fb1b10abSAndroid Build Coastguard Worker echo "\"$LIBVPX_CONFIG_DIR/$1/vpx_config.c\"," 201*fb1b10abSAndroid Build Coastguard Worker echo "]" 202*fb1b10abSAndroid Build Coastguard Worker if grep -qE ".asm(.S)?$" libvpx_srcs_$1.txt; then 203*fb1b10abSAndroid Build Coastguard Worker echo 204*fb1b10abSAndroid Build Coastguard Worker echo "${varprefix}_asm_srcs = [" 205*fb1b10abSAndroid Build Coastguard Worker libvpx_srcs_txt_to_asm_srcs libvpx_srcs_$1.txt 206*fb1b10abSAndroid Build Coastguard Worker libvpx_srcs_txt_to_asm_S_srcs libvpx_srcs_$1.txt 207*fb1b10abSAndroid Build Coastguard Worker echo "]" 208*fb1b10abSAndroid Build Coastguard Worker fi 209*fb1b10abSAndroid Build Coastguard Worker 210*fb1b10abSAndroid Build Coastguard Worker # Now collect the libvpxrc sources into variables. Note that we're only 211*fb1b10abSAndroid Build Coastguard Worker # interested in x86_64 for now, but this can be expanded later. 212*fb1b10abSAndroid Build Coastguard Worker if [[ "$1" == "x86_64" ]]; then 213*fb1b10abSAndroid Build Coastguard Worker varprefix=libvpxrc_${1//-/_} 214*fb1b10abSAndroid Build Coastguard Worker echo 215*fb1b10abSAndroid Build Coastguard Worker echo "${varprefix}_c_srcs = [" 216*fb1b10abSAndroid Build Coastguard Worker libvpx_srcs_txt_to_c_srcs libvpxrc_srcs_$1.txt "\\.c$" "" 217*fb1b10abSAndroid Build Coastguard Worker echo "]" 218*fb1b10abSAndroid Build Coastguard Worker echo 219*fb1b10abSAndroid Build Coastguard Worker echo "${varprefix}_cc_srcs = [" 220*fb1b10abSAndroid Build Coastguard Worker libvpxrc_srcs_txt_to_cc_srcs libvpxrc_srcs_$1.txt "\\.cc$" "" 221*fb1b10abSAndroid Build Coastguard Worker echo "]" 222*fb1b10abSAndroid Build Coastguard Worker echo 223*fb1b10abSAndroid Build Coastguard Worker echo "${varprefix}_asm_srcs = [" 224*fb1b10abSAndroid Build Coastguard Worker libvpx_srcs_txt_to_asm_srcs libvpxrc_srcs_$1.txt 225*fb1b10abSAndroid Build Coastguard Worker libvpx_srcs_txt_to_asm_S_srcs libvpxrc_srcs_$1.txt 226*fb1b10abSAndroid Build Coastguard Worker echo "]" 227*fb1b10abSAndroid Build Coastguard Worker fi 228*fb1b10abSAndroid Build Coastguard Worker 229*fb1b10abSAndroid Build Coastguard Worker echo 230*fb1b10abSAndroid Build Coastguard Worker ) > config_$1.bp 231*fb1b10abSAndroid Build Coastguard Worker} 232*fb1b10abSAndroid Build Coastguard Worker 233*fb1b10abSAndroid Build Coastguard Worker# The ARM assembly sources must be converted from ADS to GAS compatible format. 234*fb1b10abSAndroid Build Coastguard Worker# This step is only required for ARM. MIPS uses intrinsics exclusively and x86 235*fb1b10abSAndroid Build Coastguard Worker# requires 'yasm' to pre-process its assembly files. 236*fb1b10abSAndroid Build Coastguard Workerfunction convert_arm_asm { 237*fb1b10abSAndroid Build Coastguard Worker find $BASE_DIR/$LIBVPX_CONFIG_DIR/arm-neon -name '*.asm.S' | xargs -r rm 238*fb1b10abSAndroid Build Coastguard Worker for src in $(grep ".asm$" libvpx_srcs_arm-neon.txt); do 239*fb1b10abSAndroid Build Coastguard Worker newsrc=$LIBVPX_CONFIG_DIR/arm-neon/$src.S 240*fb1b10abSAndroid Build Coastguard Worker mkdir -p $BASE_DIR/$(dirname $newsrc) 241*fb1b10abSAndroid Build Coastguard Worker perl $BASE_DIR/$LIBVPX_SRC_DIR/build/make/ads2gas.pl <$BASE_DIR/$LIBVPX_SRC_DIR/$src >$BASE_DIR/$newsrc 242*fb1b10abSAndroid Build Coastguard Worker echo $newsrc >>libvpx_srcs_arm-neon.txt 243*fb1b10abSAndroid Build Coastguard Worker done 244*fb1b10abSAndroid Build Coastguard Worker sed -i "/\.asm$/ d" libvpx_srcs_arm-neon.txt 245*fb1b10abSAndroid Build Coastguard Worker} 246*fb1b10abSAndroid Build Coastguard Worker 247*fb1b10abSAndroid Build Coastguard Workerecho "Create temporary directory." 248*fb1b10abSAndroid Build Coastguard WorkerTEMP_DIR="../libvpx.temp" 249*fb1b10abSAndroid Build Coastguard Workerrm -rf $TEMP_DIR 250*fb1b10abSAndroid Build Coastguard Workercp -R $LIBVPX_SRC_DIR $TEMP_DIR 251*fb1b10abSAndroid Build Coastguard Workercd $TEMP_DIR 252*fb1b10abSAndroid Build Coastguard Worker 253*fb1b10abSAndroid Build Coastguard Workerecho "Generate config files." 254*fb1b10abSAndroid Build Coastguard Workerall_platforms="--enable-external-build --enable-realtime-only --enable-pic" 255*fb1b10abSAndroid Build Coastguard Workerall_platforms+=" --disable-runtime-cpu-detect --disable-install-docs" 256*fb1b10abSAndroid Build Coastguard Workerall_platforms+=" --size-limit=4096x3072 --enable-vp9-highbitdepth" 257*fb1b10abSAndroid Build Coastguard Workerintel="--disable-sse4_1 --disable-avx --disable-avx2 --disable-avx512 --as=yasm" 258*fb1b10abSAndroid Build Coastguard Workergen_config_files x86 "--target=x86-linux-gcc ${intel} ${all_platforms}" 259*fb1b10abSAndroid Build Coastguard Workergen_config_files x86_64 "--target=x86_64-linux-gcc ${intel} ${all_platforms}" 260*fb1b10abSAndroid Build Coastguard Workergen_config_files arm-neon "--target=armv7-linux-gcc ${all_platforms}" 261*fb1b10abSAndroid Build Coastguard Workerarm64="--disable-sve2" 262*fb1b10abSAndroid Build Coastguard Workergen_config_files arm64 "--target=armv8-linux-gcc ${arm64} ${all_platforms} \ 263*fb1b10abSAndroid Build Coastguard Worker --enable-runtime-cpu-detect" 264*fb1b10abSAndroid Build Coastguard Workergen_config_files generic "--target=generic-gnu ${all_platforms}" 265*fb1b10abSAndroid Build Coastguard Worker 266*fb1b10abSAndroid Build Coastguard Workerecho "Remove temporary directory." 267*fb1b10abSAndroid Build Coastguard Workercd $BASE_DIR 268*fb1b10abSAndroid Build Coastguard Workerrm -rf $TEMP_DIR 269*fb1b10abSAndroid Build Coastguard Worker 270*fb1b10abSAndroid Build Coastguard Workerecho "Lint libvpx configuration." 271*fb1b10abSAndroid Build Coastguard Workerlint_config x86 272*fb1b10abSAndroid Build Coastguard Workerlint_config x86_64 273*fb1b10abSAndroid Build Coastguard Workerlint_config arm-neon 274*fb1b10abSAndroid Build Coastguard Workerlint_config arm64 275*fb1b10abSAndroid Build Coastguard Workerlint_config generic 276*fb1b10abSAndroid Build Coastguard Worker 277*fb1b10abSAndroid Build Coastguard Workerecho "Create temporary directory." 278*fb1b10abSAndroid Build Coastguard WorkerTEMP_DIR="../libvpx.temp" 279*fb1b10abSAndroid Build Coastguard Workerrm -rf $TEMP_DIR 280*fb1b10abSAndroid Build Coastguard Workercp -R $LIBVPX_SRC_DIR $TEMP_DIR 281*fb1b10abSAndroid Build Coastguard Workercd $TEMP_DIR 282*fb1b10abSAndroid Build Coastguard Worker 283*fb1b10abSAndroid Build Coastguard Workergen_rtcd_header x86 x86 "${intel}" 284*fb1b10abSAndroid Build Coastguard Workergen_rtcd_header x86_64 x86_64 "${intel}" 285*fb1b10abSAndroid Build Coastguard Workergen_rtcd_header arm-neon armv7 286*fb1b10abSAndroid Build Coastguard Workergen_rtcd_header arm64 armv8 "${arm64}" 287*fb1b10abSAndroid Build Coastguard Workergen_rtcd_header generic generic 288*fb1b10abSAndroid Build Coastguard Worker 289*fb1b10abSAndroid Build Coastguard Workerecho "Prepare Makefile." 290*fb1b10abSAndroid Build Coastguard Worker./configure --target=generic-gnu > /dev/null 291*fb1b10abSAndroid Build Coastguard Workermake_clean 292*fb1b10abSAndroid Build Coastguard Worker 293*fb1b10abSAndroid Build Coastguard Workerecho "Generate source lists" 294*fb1b10abSAndroid Build Coastguard Workergen_source_list x86 295*fb1b10abSAndroid Build Coastguard Workergen_source_list x86_64 296*fb1b10abSAndroid Build Coastguard Workergen_source_list arm-neon 297*fb1b10abSAndroid Build Coastguard Workergen_source_list arm64 298*fb1b10abSAndroid Build Coastguard Workergen_source_list generic 299*fb1b10abSAndroid Build Coastguard Worker 300*fb1b10abSAndroid Build Coastguard Workerecho "Convert ARM assembly format" 301*fb1b10abSAndroid Build Coastguard Workerconvert_arm_asm 302*fb1b10abSAndroid Build Coastguard Worker 303*fb1b10abSAndroid Build Coastguard Workerecho "Convert to bp" 304*fb1b10abSAndroid Build Coastguard Workergen_bp_srcs x86 305*fb1b10abSAndroid Build Coastguard Workergen_bp_srcs x86_64 306*fb1b10abSAndroid Build Coastguard Workergen_bp_srcs arm-neon 307*fb1b10abSAndroid Build Coastguard Workergen_bp_srcs arm64 308*fb1b10abSAndroid Build Coastguard Workergen_bp_srcs generic 309*fb1b10abSAndroid Build Coastguard Worker 310*fb1b10abSAndroid Build Coastguard Workerrm -f $BASE_DIR/Android.bp 311*fb1b10abSAndroid Build Coastguard Worker( 312*fb1b10abSAndroid Build Coastguard Worker echo "// THIS FILE IS AUTOGENERATED, DO NOT EDIT" 313*fb1b10abSAndroid Build Coastguard Worker echo "// Generated from Android.bp.in, run ./generate_config.sh to regenerate" 314*fb1b10abSAndroid Build Coastguard Worker echo 315*fb1b10abSAndroid Build Coastguard Worker cat config_*.bp 316*fb1b10abSAndroid Build Coastguard Worker cat $BASE_DIR/Android.bp.in 317*fb1b10abSAndroid Build Coastguard Worker) > $BASE_DIR/Android.bp 318*fb1b10abSAndroid Build Coastguard Workerbpfmt -s -w "${BASE_DIR}/Android.bp" \ 319*fb1b10abSAndroid Build Coastguard Worker || echo "bpfmt not found. Run 'm bpfmt' followed by" \ 320*fb1b10abSAndroid Build Coastguard Worker "'bpfmt -s -w ${BASE_DIR}/Android.bp'." 321*fb1b10abSAndroid Build Coastguard Worker 322*fb1b10abSAndroid Build Coastguard Workerecho "Remove temporary directory." 323*fb1b10abSAndroid Build Coastguard Workercd $BASE_DIR 324*fb1b10abSAndroid Build Coastguard Workerrm -rf $TEMP_DIR 325