aboutsummaryrefslogtreecommitdiff
path: root/convert_android_asm.sh
diff options
context:
space:
mode:
authorflim <flim@google.com>2016-01-26 14:33:44 +0100
committerflim <flim@google.com>2016-03-04 17:40:32 +0100
commitc91ee5b5642fcc4969150f73d5f6848f88bf1638 (patch)
tree900cb39b975dfed729e37e5810fef61fd92d7a70 /convert_android_asm.sh
parent1391dbf0ccd121ce7a49d30e2142d36c8d404990 (diff)
downloadlibopus-c91ee5b5642fcc4969150f73d5f6848f88bf1638.tar.gz
Change-Id: I8211751bab026ab236a612c6e0873f8bdbcd6c98
Diffstat (limited to 'convert_android_asm.sh')
-rwxr-xr-xconvert_android_asm.sh33
1 files changed, 33 insertions, 0 deletions
diff --git a/convert_android_asm.sh b/convert_android_asm.sh
new file mode 100755
index 00000000..ea3d198c
--- /dev/null
+++ b/convert_android_asm.sh
@@ -0,0 +1,33 @@
+#!/bin/bash
+
+set -e
+ASM_CONVERTER="./celt/arm/arm2gnu.pl"
+
+if [[ ! -x "${ASM_CONVERTER}" ]]; then
+ echo "This script should be run from external/libopus."
+ exit
+fi
+
+while read file; do
+ # This check is required because the ASM conversion script doesn't seem to be
+ # idempotent.
+ if [[ ! "${file}" =~ .*_gnu\.s$ ]]; then
+ gnu_file="${file%.s}_gnu.s"
+ ${ASM_CONVERTER} "${file}" > "${gnu_file}"
+ # The ASM conversion script replaces includes with *_gnu.S. So, replace
+ # occurences of "*-gnu.S" with "*_gnu.s".
+ sed -i "s/-gnu\.S/_gnu\.s/g" "${gnu_file}"
+ rm -f "${file}"
+ fi
+done < <(find . -iname '*.s')
+
+# Generate armopts.s from armopts.s.in
+sed \
+ -e "s/@OPUS_ARM_MAY_HAVE_EDSP@/1/g" \
+ -e "s/@OPUS_ARM_MAY_HAVE_MEDIA@/1/g" \
+ -e "s/@OPUS_ARM_MAY_HAVE_NEON@/1/g" \
+ -e "s/@OPUS_ARM_MAY_HAVE_NEON_INTR@/1/g" \
+ celt/arm/armopts.s.in > celt/arm/armopts.s.temp
+${ASM_CONVERTER} "celt/arm/armopts.s.temp" > "celt/arm/armopts_gnu.s"
+rm "celt/arm/armopts.s.temp"
+echo "Converted all ASM files and generated armopts.s successfully."