14e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#!/bin/bash 20f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)# Copyright (c) 2013 The Chromium Authors. All rights reserved. 34e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be 44e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)# found in the LICENSE file. 54e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 64e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)set -o nounset 74e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)set -o errexit 84e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 91e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)SCRIPT_DIR="$(cd $(dirname $0) && pwd)" 101e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)cd ${SCRIPT_DIR} 111e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 121e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)OUT_DIR=out 131e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)NACLPORTS_URL=https://chromium.googlesource.com/external/naclports 14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)NACLPORTS_SHA=04ba2e1abe8557ef888b653b7a0da974e4734641 151e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)NACLPORTS_DIR=${OUT_DIR}/naclports 161e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)NACLAM_URL=https://github.com/johnmccutchan/NaClAMBase 171e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)NACLAM_DIR=${OUT_DIR}/NaClAMBase 181e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)NACLAM_SHA=0eb4647a3f99c6e66156959edc6c55d4a913468a 191e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 204e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)if [ -z "${NACL_SDK_ROOT:-}" ]; then 214e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) echo "-------------------------------------------------------------------" 224e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) echo "NACL_SDK_ROOT is unset." 234e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) echo "This environment variable needs to be pointed at some version of" 244e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) echo "the Native Client SDK (the directory containing toolchain/)." 254e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) echo "NOTE: set this to an absolute path." 264e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) echo "-------------------------------------------------------------------" 274e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) exit -1 284e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)fi 294e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 304e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)Banner() { 314e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) echo "######################################################################" 324e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) echo $* 334e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) echo "######################################################################" 344e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 354e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 364e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)# echo a command to stdout and then execute it. 374e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)LogExecute() { 384e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) echo $* 394e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) $* 404e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 414e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 424e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)Clone() { 434e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) local url=$1 444e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) local dir=$2 451e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) local sha=$3 464e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) if [ ! -d $dir ]; then 474e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) LogExecute git clone $url $dir 484e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) else 494e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) pushd $dir 501e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) LogExecute git fetch origin 514e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) popd 524e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) fi 531e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 541e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) pushd $dir 551e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) LogExecute git checkout $sha 561e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) popd 574e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 584e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 594e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)readonly OS_NAME=$(uname -s) 604e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)if [ $OS_NAME = "Darwin" ]; then 614e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) OS_JOBS=4 624e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)elif [ $OS_NAME = "Linux" ]; then 634e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) OS_JOBS=`nproc` 644e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)else 654e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) OS_JOBS=1 664e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)fi 674e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 684e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)Banner Cloning naclports 691e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)Clone ${NACLPORTS_URL} ${NACLPORTS_DIR} ${NACLPORTS_SHA} 704e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 714e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)Banner Building bullet 724e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)pushd ${NACLPORTS_DIR} 734e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)make NACL_ARCH=pnacl bullet 744e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)popd 754e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 764e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)Banner Cloning NaClAMBase 771e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)Clone ${NACLAM_URL} ${NACLAM_DIR} ${NACLAM_SHA} 784e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 794e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)Banner Building NaClAM 804e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)LogExecute cp Makefile ${NACLAM_DIR} 814e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)pushd ${NACLAM_DIR} 824e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)LogExecute make -j${OS_JOBS} 834e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)popd 844e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 851e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)LogExecute cp ${NACLAM_DIR}/pnacl/Release/NaClAMBullet.{pexe,nmf} ${OUT_DIR} 864e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 874e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)Banner Done! 88