1*5f39d1b3SJooyung Han#!/bin/bash 2*5f39d1b3SJooyung Han# Copyright 2015 The Gemmlowp Authors. All Rights Reserved. 3*5f39d1b3SJooyung Han# 4*5f39d1b3SJooyung Han# Licensed under the Apache License, Version 2.0 (the "License"); 5*5f39d1b3SJooyung Han# you may not use this file except in compliance with the License. 6*5f39d1b3SJooyung Han# You may obtain a copy of the License at 7*5f39d1b3SJooyung Han# 8*5f39d1b3SJooyung Han# http://www.apache.org/licenses/LICENSE-2.0 9*5f39d1b3SJooyung Han# 10*5f39d1b3SJooyung Han# Unless required by applicable law or agreed to in writing, software 11*5f39d1b3SJooyung Han# distributed under the License is distributed on an "AS IS" BASIS, 12*5f39d1b3SJooyung Han# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*5f39d1b3SJooyung Han# See the License for the specific language governing permissions and 14*5f39d1b3SJooyung Han# limitations under the License. 15*5f39d1b3SJooyung Han 16*5f39d1b3SJooyung Hanif [ -z "$CXX" ] 17*5f39d1b3SJooyung Hanthen 18*5f39d1b3SJooyung Han echo "please set the CXX environment variable to point to your native Android toolchain C++ compiler" 19*5f39d1b3SJooyung Han exit 1 20*5f39d1b3SJooyung Hanfi 21*5f39d1b3SJooyung Han 22*5f39d1b3SJooyung Handefault_cflags="-O3" 23*5f39d1b3SJooyung Han 24*5f39d1b3SJooyung Hanif [ "$#" -eq 0 ] 25*5f39d1b3SJooyung Hanthen 26*5f39d1b3SJooyung Han echo "Usage: $0 files... [cflags...]" 27*5f39d1b3SJooyung Han echo "All command-line parameters are passed along to the C++ compiler, so they can \ 28*5f39d1b3SJooyung Hanbe either source files, or compiler flags." 29*5f39d1b3SJooyung Han echo "Default cflags: $default_cflags" 30*5f39d1b3SJooyung Han echo "Relies on the CXX environment variable to point to an Android C++ toolchain compiler." 31*5f39d1b3SJooyung Han exit 1 32*5f39d1b3SJooyung Hanfi 33*5f39d1b3SJooyung Han 34*5f39d1b3SJooyung HanEXE=gemmlowp-android-binary 35*5f39d1b3SJooyung Han 36*5f39d1b3SJooyung Hanif [[ $CXX =~ .*aarch64.* ]] 37*5f39d1b3SJooyung Hanthen 38*5f39d1b3SJooyung Han NEON_FLAGS= 39*5f39d1b3SJooyung Hanelse 40*5f39d1b3SJooyung Han NEON_FLAGS="-mfpu=neon -mfloat-abi=softfp" 41*5f39d1b3SJooyung Hanfi 42*5f39d1b3SJooyung Han 43*5f39d1b3SJooyung Han$CXX \ 44*5f39d1b3SJooyung Han --std=c++11 \ 45*5f39d1b3SJooyung Han -Wall -Wextra -pedantic \ 46*5f39d1b3SJooyung Han -fPIE -pie $NEON_FLAGS \ 47*5f39d1b3SJooyung Han -lstdc++ -latomic \ 48*5f39d1b3SJooyung Han -I . -I .. \ 49*5f39d1b3SJooyung Han -o $EXE \ 50*5f39d1b3SJooyung Han -Wno-unused-variable -Wno-unused-parameter \ 51*5f39d1b3SJooyung Han $default_cflags \ 52*5f39d1b3SJooyung Han $* 53*5f39d1b3SJooyung Han 54*5f39d1b3SJooyung Hanif [ $? != 0 ]; then 55*5f39d1b3SJooyung Han echo "build failed" 56*5f39d1b3SJooyung Han exit 1 57*5f39d1b3SJooyung Hanfi 58*5f39d1b3SJooyung Han 59*5f39d1b3SJooyung Hanadb root 60*5f39d1b3SJooyung Han 61*5f39d1b3SJooyung Hanif [ $? != 0 ]; then 62*5f39d1b3SJooyung Han echo "$0: adb root failed" 63*5f39d1b3SJooyung Han exit 1 64*5f39d1b3SJooyung Hanfi 65*5f39d1b3SJooyung Han 66*5f39d1b3SJooyung Hanadb shell mkdir -p /data/local/tmp 67*5f39d1b3SJooyung Han 68*5f39d1b3SJooyung Hanif [ $? != 0 ]; then 69*5f39d1b3SJooyung Han echo "$0: adb shell failed to mkdir /data/local/tmp" 70*5f39d1b3SJooyung Han exit 1 71*5f39d1b3SJooyung Hanfi 72*5f39d1b3SJooyung Han 73*5f39d1b3SJooyung Hanadb push $EXE /data/local/tmp 74*5f39d1b3SJooyung Han 75*5f39d1b3SJooyung Hanif [ $? != 0 ]; then 76*5f39d1b3SJooyung Han echo "$0: adb push failed to write to /data/local/tmp" 77*5f39d1b3SJooyung Han exit 1 78*5f39d1b3SJooyung Hanfi 79*5f39d1b3SJooyung Han 80*5f39d1b3SJooyung Hanecho adb shell "/data/local/tmp/$EXE $TESTARGS" 81*5f39d1b3SJooyung Han 82*5f39d1b3SJooyung Hanadb shell "/data/local/tmp/$EXE $TESTARGS" | tee "log-$EXE" 83*5f39d1b3SJooyung Han 84*5f39d1b3SJooyung Hanif [ $? != 0 ]; then 85*5f39d1b3SJooyung Han echo "$0: adb shell failed to run binary on device" 86*5f39d1b3SJooyung Han exit 1 87*5f39d1b3SJooyung Hanfi 88