1*a58d3d2aSXin Li#!/bin/bash 2*a58d3d2aSXin Li 3*a58d3d2aSXin Liset -e 4*a58d3d2aSXin LiASM_CONVERTER="./celt/arm/arm2gnu.pl" 5*a58d3d2aSXin Li 6*a58d3d2aSXin Liif [[ ! -x "${ASM_CONVERTER}" ]]; then 7*a58d3d2aSXin Li echo "This script should be run from external/libopus." 8*a58d3d2aSXin Li exit 9*a58d3d2aSXin Lifi 10*a58d3d2aSXin Li 11*a58d3d2aSXin Liwhile read file; do 12*a58d3d2aSXin Li # This check is required because the ASM conversion script doesn't seem to be 13*a58d3d2aSXin Li # idempotent. 14*a58d3d2aSXin Li if [[ ! "${file}" =~ .*_gnu\.s$ ]]; then 15*a58d3d2aSXin Li gnu_file="${file%.s}_gnu.s" 16*a58d3d2aSXin Li ${ASM_CONVERTER} "${file}" > "${gnu_file}" 17*a58d3d2aSXin Li # The ASM conversion script replaces includes with *_gnu.S. So, replace 18*a58d3d2aSXin Li # occurences of "*-gnu.S" with "*_gnu.s". 19*a58d3d2aSXin Li sed -i "s/-gnu\.S/_gnu\.s/g" "${gnu_file}" 20*a58d3d2aSXin Li rm -f "${file}" 21*a58d3d2aSXin Li fi 22*a58d3d2aSXin Lidone < <(find . -iname '*.s') 23*a58d3d2aSXin Li 24*a58d3d2aSXin Li# Generate armopts.s from armopts.s.in 25*a58d3d2aSXin Lised \ 26*a58d3d2aSXin Li -e "s/@OPUS_ARM_MAY_HAVE_EDSP@/1/g" \ 27*a58d3d2aSXin Li -e "s/@OPUS_ARM_MAY_HAVE_MEDIA@/1/g" \ 28*a58d3d2aSXin Li -e "s/@OPUS_ARM_MAY_HAVE_NEON@/1/g" \ 29*a58d3d2aSXin Li -e "s/@OPUS_ARM_MAY_HAVE_NEON_INTR@/1/g" \ 30*a58d3d2aSXin Li celt/arm/armopts.s.in > celt/arm/armopts.s.temp 31*a58d3d2aSXin Li${ASM_CONVERTER} "celt/arm/armopts.s.temp" > "celt/arm/armopts_gnu.s" 32*a58d3d2aSXin Lirm "celt/arm/armopts.s.temp" 33*a58d3d2aSXin Liecho "Converted all ASM files and generated armopts.s successfully." 34