11e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#!/bin/bash
21e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)# Copyright (c) 2012 The Chromium Authors. All rights reserved.
31e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be
41e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)# found in the LICENSE file.
51e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
61e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)set -o nounset
71e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)set -o errexit
81e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)set -o xtrace
91e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
101e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)SCRIPT_DIR="$(cd $(dirname $0) && pwd)"
111e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)cd ${SCRIPT_DIR}
121e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
131e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)OUT_DIR=out
141e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)NACLPORTS_URL=http://naclports.googlecode.com/svn/trunk/src
15cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)NACLPORTS_REV=1290
161e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)NACLPORTS_DIR=${OUT_DIR}/naclports
171e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
181e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)if [ -z "${NACL_SDK_ROOT:-}" ]; then
191e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  echo "-------------------------------------------------------------------"
201e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  echo "NACL_SDK_ROOT is unset."
211e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  echo "This environment variable needs to be pointed at some version of"
221e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  echo "the Native Client SDK (the directory containing toolchain/)."
231e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  echo "NOTE: set this to an absolute path."
241e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  echo "-------------------------------------------------------------------"
251e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  exit -1
261e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)fi
271e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
281e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)Banner() {
291e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  echo "######################################################################"
301e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  echo $*
311e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  echo "######################################################################"
321e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}
331e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
341e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)# echo a command to stdout and then execute it.
351e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)LogExecute() {
361e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  echo $*
371e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  $*
381e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}
391e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
401e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)Clone() {
411e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  local url=$1
421e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  local dir=$2
431e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  local sha=$3
441e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  if [ ! -d $dir ]; then
451e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)    LogExecute git clone $url $dir
461e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  else
471e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)    pushd $dir
481e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)    LogExecute git fetch origin
491e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)    popd
501e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  fi
511e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
521e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  pushd $dir
531e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  LogExecute git checkout $sha
541e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  popd
551e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}
561e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
571e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)Banner Cloning naclports
581e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)if [ ! -d ${NACLPORTS_DIR} ]; then
591e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  mkdir -p ${NACLPORTS_DIR}
601e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  pushd ${NACLPORTS_DIR}
611e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  gclient config --name=src ${NACLPORTS_URL}
621e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  popd
631e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)fi
641e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
651e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)pushd ${NACLPORTS_DIR}
661e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)gclient sync -r ${NACLPORTS_REV}
671e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)popd
681e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
6946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
701e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)Banner Building lua
711e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)pushd ${NACLPORTS_DIR}/src
7246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)# Do a 'clean' first, since previous lua build from the naclports bundle
7346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)# building might be installed in the toolchain, and that one is built
7446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)# without readline support.
7546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)make TOOLCHAIN=pnacl clean
76cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)make TOOLCHAIN=pnacl lua-ppapi
771e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)popd
781e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
791e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)Banner Done!
80