build_mace_run.sh 2.3 KB
Newer Older
1 2 3
#!/bin/bash

Usage() {
4
  echo "Usage: bash tools/build_mace_run.sh production_mode model_output_dir hexagon_mode"
5 6
}

7
if [ $# -lt 3 ]; then
8 9 10 11 12 13 14 15 16
  Usage
  exit 1
fi

CURRENT_DIR=`dirname $0`
source ${CURRENT_DIR}/env.sh

PRODUCTION_MODE=$1
MODEL_OUTPUT_DIR=$2
17
HEXAGON_MODE=$3
18 19 20 21 22

if [ "$PRODUCTION_MODE" = 1 ]; then
  PRODUCTION_MODE_BUILD_FLAGS="--define production=true"
fi

23
if [ x"$TARGET_ABI" = x"host" ]; then
Y
yejianwu 已提交
24
  bazel build --verbose_failures -c opt --strip always //mace/codegen:generated_models \
25 26 27 28 29
    --copt="-std=c++11" \
    --copt="-D_GLIBCXX_USE_C99_MATH_TR1" \
    --copt="-Werror=return-type" \
    --copt="-DMACE_MODEL_TAG=${MODEL_TAG}" \
    --define openmp=true \
30
    --copt="-O3" \
31 32
    $PRODUCTION_MODE_BUILD_FLAGS || exit 1

L
liuqi 已提交
33
  bazel build --verbose_failures -c opt --strip always //mace/tools/validation:mace_run \
34 35 36 37 38
    --copt="-std=c++11" \
    --copt="-D_GLIBCXX_USE_C99_MATH_TR1" \
    --copt="-Werror=return-type" \
    --copt="-DMACE_MODEL_TAG=${MODEL_TAG}" \
    --define openmp=true \
39
    --copt="-O3" \
40 41
    $PRODUCTION_MODE_BUILD_FLAGS || exit 1
else
42
  if [ "$HEXAGON_MODE" = 1 ]; then
43 44 45
    HEXAGON_MODE_BUILD_FLAG="--define hexagon=true"
  fi

Y
yejianwu 已提交
46 47 48 49
  if [ x"$TARGET_ABI" = x"arm64-v8a" ]; then
    NEON_ENABLE_FLAG="--define neon=true"
  fi

L
liuqi 已提交
50
  bazel build --verbose_failures -c opt --strip always //mace/tools/validation:mace_run \
51 52
    --crosstool_top=//external:android/crosstool \
    --host_crosstool_top=@bazel_tools//tools/cpp:toolchain \
53
    --cpu=${TARGET_ABI} \
54 55 56
    --copt="-std=c++11" \
    --copt="-D_GLIBCXX_USE_C99_MATH_TR1" \
    --copt="-Werror=return-type" \
Y
yejianwu 已提交
57
    --copt="-DMACE_OBFUSCATE_LITERALS" \
58
    --copt="-DMACE_MODEL_TAG=${MODEL_TAG}" \
59
    --define openmp=true \
李寅 已提交
60
    --define neon=true \
61
    --copt="-O3" \
Y
yejianwu 已提交
62
    $NEON_ENABLE_FLAG \
63 64 65 66
    $PRODUCTION_MODE_BUILD_FLAGS \
    $HEXAGON_MODE_BUILD_FLAG || exit 1
fi

L
liuqi 已提交
67 68
rm -rf $MODEL_OUTPUT_DIR/libmace_${MODEL_TAG}.a
cp $GENERATED_MODEL_LIB_PATH $MODEL_OUTPUT_DIR/libmace_${MODEL_TAG}.a
Y
yejianwu 已提交
69 70 71 72

if [ -f "$MODEL_OUTPUT_DIR/mace_run" ]; then
  rm -rf $MODEL_OUTPUT_DIR/mace_run
fi
L
liuqi 已提交
73
cp bazel-bin/mace/tools/validation/mace_run $MODEL_OUTPUT_DIR
W
wuchenghui 已提交
74
if [ "$EMBED_MODEL_DATA" = 0 ]; then
Y
yejianwu 已提交
75
  cp mace/codegen/models/${MODEL_TAG}/${MODEL_TAG}.data $MODEL_OUTPUT_DIR
76 77 78
fi

# copy model header file to build output dir
Y
yejianwu 已提交
79
cp mace/codegen/models/${MODEL_TAG}/${MODEL_TAG}.h $MODEL_OUTPUT_DIR