1*89c4ff92SAndroid Build Coastguard Worker#!/bin/sh 2*89c4ff92SAndroid Build Coastguard Worker# 3*89c4ff92SAndroid Build Coastguard Worker# Copyright © 2017 Arm Ltd. All rights reserved. 4*89c4ff92SAndroid Build Coastguard Worker# SPDX-License-Identifier: MIT 5*89c4ff92SAndroid Build Coastguard Worker# 6*89c4ff92SAndroid Build Coastguard Worker 7*89c4ff92SAndroid Build Coastguard WorkerTHIS_SCRIPT=$0 8*89c4ff92SAndroid Build Coastguard WorkerOUTPUT_DIR=$1 9*89c4ff92SAndroid Build Coastguard WorkerPROTOBUF_INSTALL_DIR=$2 10*89c4ff92SAndroid Build Coastguard Worker 11*89c4ff92SAndroid Build Coastguard Workerusage() 12*89c4ff92SAndroid Build Coastguard Worker{ 13*89c4ff92SAndroid Build Coastguard Worker echo 14*89c4ff92SAndroid Build Coastguard Worker echo "Usage: ${THIS_SCRIPT} <OUTPUT_DIR> [PROTOBUF_INSTALL_DIR]" 15*89c4ff92SAndroid Build Coastguard Worker echo 16*89c4ff92SAndroid Build Coastguard Worker echo " <OUTPUT_DIR> is the location where the generated files will be placed" 17*89c4ff92SAndroid Build Coastguard Worker echo " [PROTOBUF_INSTALL_DIR] the location of the protobuf installation" 18*89c4ff92SAndroid Build Coastguard Worker echo 19*89c4ff92SAndroid Build Coastguard Worker} 20*89c4ff92SAndroid Build Coastguard Worker 21*89c4ff92SAndroid Build Coastguard Workerif [ "x$OUTPUT_DIR" = "x" ] 22*89c4ff92SAndroid Build Coastguard Workerthen 23*89c4ff92SAndroid Build Coastguard Worker usage 24*89c4ff92SAndroid Build Coastguard Worker exit 1 25*89c4ff92SAndroid Build Coastguard Workerfi 26*89c4ff92SAndroid Build Coastguard Worker 27*89c4ff92SAndroid Build Coastguard Workermkdir -p "${OUTPUT_DIR}" 28*89c4ff92SAndroid Build Coastguard WorkerERR=$? 29*89c4ff92SAndroid Build Coastguard Workerif [ $ERR -ne 0 ] 30*89c4ff92SAndroid Build Coastguard Workerthen 31*89c4ff92SAndroid Build Coastguard Worker echo 32*89c4ff92SAndroid Build Coastguard Worker echo "Cannot create output dir: ${OUTPUT_DIR}" 33*89c4ff92SAndroid Build Coastguard Worker echo "mkdir returned: $ERR" 34*89c4ff92SAndroid Build Coastguard Worker echo 35*89c4ff92SAndroid Build Coastguard Worker usage 36*89c4ff92SAndroid Build Coastguard Worker exit 1 37*89c4ff92SAndroid Build Coastguard Workerfi 38*89c4ff92SAndroid Build Coastguard Worker 39*89c4ff92SAndroid Build Coastguard Worker 40*89c4ff92SAndroid Build Coastguard Workerif [ "x${PROTOBUF_INSTALL_DIR}" = "x" ] 41*89c4ff92SAndroid Build Coastguard Workerthen 42*89c4ff92SAndroid Build Coastguard Worker PROTOBUF_INSTALL_DIR=/usr/local 43*89c4ff92SAndroid Build Coastguard Workerfi 44*89c4ff92SAndroid Build Coastguard Worker 45*89c4ff92SAndroid Build Coastguard Workerif [ ! -x "${PROTOBUF_INSTALL_DIR}/bin/protoc" ] 46*89c4ff92SAndroid Build Coastguard Workerthen 47*89c4ff92SAndroid Build Coastguard Worker echo 48*89c4ff92SAndroid Build Coastguard Worker echo "No usable protocol buffer (protoc) compiler found in ${PROTOBUF_INSTALL_DIR}/bin/" 49*89c4ff92SAndroid Build Coastguard Worker echo "You can specify the location of the protobuf installation as the second" 50*89c4ff92SAndroid Build Coastguard Worker echo "argument of ${THIS_SCRIPT}." 51*89c4ff92SAndroid Build Coastguard Worker usage 52*89c4ff92SAndroid Build Coastguard Worker exit 1 53*89c4ff92SAndroid Build Coastguard Workerfi 54*89c4ff92SAndroid Build Coastguard Worker 55*89c4ff92SAndroid Build Coastguard WorkerOLD_LD_LIBRARY_PATH=$LD_LIBRARY_PATH 56*89c4ff92SAndroid Build Coastguard Worker#hardware_types.proto and autotuning.proto not required 57*89c4ff92SAndroid Build Coastguard Workerfind tensorflow -type f -name '*.proto' | grep -v autotuning | grep -v hardware_types | while read -r i; do 58*89c4ff92SAndroid Build Coastguard Worker LD_LIBRARY_PATH=$OLD_LD_LIBRARY_PATH:${PROTOBUF_INSTALL_DIR}/lib $PROTOBUF_INSTALL_DIR/bin/protoc "$i" \ 59*89c4ff92SAndroid Build Coastguard Worker --proto_path=. \ 60*89c4ff92SAndroid Build Coastguard Worker --proto_path=${PROTOBUF_INSTALL_DIR}/include \ 61*89c4ff92SAndroid Build Coastguard Worker --cpp_out "$OUTPUT_DIR" 62*89c4ff92SAndroid Build Coastguard Worker EXIT_CODE=$? 63*89c4ff92SAndroid Build Coastguard Worker if [ $EXIT_CODE -ne 0 ]; then 64*89c4ff92SAndroid Build Coastguard Worker echo "Failed to make proto files" 65*89c4ff92SAndroid Build Coastguard Worker exit 1 66*89c4ff92SAndroid Build Coastguard Worker fi 67*89c4ff92SAndroid Build Coastguard Workerdone