skia2/platform_tools/nacl/nacl_make
2015-02-12 11:34:09 -08:00

116 lines
2.9 KiB
Bash
Executable File

#!/bin/bash
function exportVar {
NAME=$1
VALUE=$2
echo export $NAME=\"$VALUE\"
export $NAME="$VALUE"
}
function setenv {
if [ -z "$1" ]; then
echo "ERROR: setenv() requires one argument."
exit 1
fi
if [ -z "${NACL_SDK_ROOT}" ]; then
echo "ERROR: This script requires NACL_SDK_ROOT to be set."
exit 1
fi
ARCH_WIDTH=$1
if [ ${ARCH_WIDTH} = "32" ]; then
ARCH_TYPE=x86
CROSS_ID=i686
elif [ ${ARCH_WIDTH} = "64" ]; then
ARCH_TYPE=x86_64
CROSS_ID=x86_64
else
echo "ERROR: Unknown arch width: ${ARCH_WIDTH}"
exit 1
fi
OS_NAME=$(uname -s)
if [ $OS_NAME = "Darwin" ]; then
OS_SUBDIR="mac"
OS_SUBDIR_SHORT="mac"
OS_JOBS=4
elif [ $OS_NAME = "Linux" ]; then
OS_SUBDIR="linux"
OS_SUBDIR_SHORT="linux"
OS_JOBS=4
else
OS_SUBDIR="windows"
OS_SUBDIR_SHORT="win"
OS_JOBS=1
fi
NACL_TOOLCHAIN_ROOT=${NACL_SDK_ROOT}/toolchain/${OS_SUBDIR_SHORT}_x86_newlib
NACL_BIN_PATH=${NACL_TOOLCHAIN_ROOT}/bin
export NACL_CROSS_PREFIX=${CROSS_ID}-nacl
if [[ -z "$NACL_MAKE_CCACHE" ]]; then
exportVar NACLCC ${NACL_BIN_PATH}/${NACL_CROSS_PREFIX}-gcc
exportVar NACLCXX ${NACL_BIN_PATH}/${NACL_CROSS_PREFIX}-g++
else
exportVar NACLCC "${NACL_MAKE_CCACHE} ${NACL_BIN_PATH}/${NACL_CROSS_PREFIX}-gcc"
exportVar NACLCXX "${NACL_MAKE_CCACHE} ${NACL_BIN_PATH}/${NACL_CROSS_PREFIX}-g++"
fi
exportVar NACLAR ${NACL_BIN_PATH}/${NACL_CROSS_PREFIX}-ar
exportVar NACLRANLIB ${NACL_BIN_PATH}/${NACL_CROSS_PREFIX}-ranlib
exportVar NACLLD ${NACL_BIN_PATH}/${NACL_CROSS_PREFIX}-ld
exportVar NACLSTRINGS ${NACL_BIN_PATH}/${NACL_CROSS_PREFIX}-strings
exportVar NACLSTRIP ${NACL_BIN_PATH}/${NACL_CROSS_PREFIX}-strip
exportVar CC "${NACLCC}"
exportVar CXX "${NACLCXX}"
exportVar AR "${NACLAR}"
exportVar RANLIB "${NACLRANLIB}"
exportVar PATH ${NACL_BIN_PATH}:${PATH};
exportVar C_INCLUDE_PATH "${NACL_SDK_ROOT}/include:${NACL_SDK_ROOT}/ports/include:${C_INCLUDE_PATH}"
exportVar CPLUS_INCLUDE_PATH "${NACL_SDK_ROOT}/include:${NACL_SDK_ROOT}/ports/include:${CPLUS_INCLUDE_PATH}"
exportVar GYP_DEFINES \
"skia_os=nacl skia_gpu=0 skia_arch_width=${ARCH_WIDTH} skia_arch_type=${ARCH_TYPE}"
}
function build {
if [ -z "$1" ]; then
echo "ERROR: build() requires one argument."
exit 1
fi
setenv $1
export SKIA_OUT=out/nacl$1
make ${MAKE_ARGS}
}
MAKE_ARGS=""
while (( "$#" )); do
if [[ "$1" == "--use-ccache" ]];
then
if [[ -z "$NACL_MAKE_CCACHE" ]];
then
NACL_MAKE_CCACHE=$(which ccache)
fi
elif [ -z "${MAKE_ARGS}" ]; then
MAKE_ARGS="$1"
else
MAKE_ARGS="${MAKE_ARGS} $1"
fi
shift
done
if [[ -n "$NACL_MAKE_CCACHE" ]]; then
$NACL_MAKE_CCACHE --version &> /dev/null
if [[ "$?" != "0" ]]; then
echo "Unable to find ccache!"
exit 1
fi
fi
build 32 && \
build 64 && \
if ! [ -L platform_tools/nacl/out ]; then
ln -s ../../out platform_tools/nacl
fi