osrm-backend/third_party/mason/scripts/boringssl/a6aabff2e6e95a71b2f966447eebd53e57d8bf83/script.sh

81 lines
2.7 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
MASON_NAME=boringssl
MASON_VERSION=a6aabff2e6e95a71b2f966447eebd53e57d8bf83
MASON_LIB_FILE=lib/libboringssl.a
. ${MASON_DIR}/mason.sh
MASON_PWD=$(pwd)
function mason_load_source {
# get gyp build scripts
URL=https://chromium.googlesource.com/experimental/chromium/src/+archive/master/third_party/boringssl.tar.gz
# we don't use `mason_download` here because the hash changes every download (google must be generating on the fly)
mkdir -p "${MASON_ROOT}/.cache"
cd "${MASON_ROOT}/.cache"
if [ ! -f ${MASON_SLUG} ] ; then
mason_step "Downloading ${URL}..."
curl --retry 3 -f -# -L "${URL}" -o ${MASON_SLUG}
fi
mason_extract_tar_gz
export MASON_BUILD_PATH=${MASON_ROOT}/.build/
}
function mason_compile {
# get code
git clone --depth 1 https://boringssl.googlesource.com/boringssl src
# get gyp
git clone --depth 1 https://chromium.googlesource.com/external/gyp.git
# TODO - download this patch from remote to be able to work non-locally
patch ./update_gypi_and_asm.py < ${MASON_PWD}/boringssl_asm_x86_64_fPIC.diff
# regenerate gyp configs
python update_gypi_and_asm.py
if [[ "${MASON_PLATFORM}" == "android" ]]; then
if [[ "${MASON_ANDROID_ARCH}" == "arm" ]]; then
export GYP_DEFINES="component=static_library OS=android target_arch=arm"
elif [[ "${MASON_ANDROID_ARCH}" == "x86" ]]; then
export GYP_DEFINES="component=static_library OS=android target_arch=ia32"
else
# Note: mips will be arch "mipsel"
export GYP_DEFINES="component=static_library OS=android target_arch=${MASON_ANDROID_ARCH}"
fi
else
export GYP_DEFINES="component=static_library target_arch=`uname -m | sed -e "s/i.86/ia32/;s/x86_64/x64/;s/amd64/x64/;s/arm.*/arm/;s/i86pc/ia32/"`"
fi
# generate makefiles
echo "{ 'target_defaults': { 'standalone_static_library': 1 } }" > config.gypi
./gyp/gyp boringssl.gyp --depth=. -Iconfig.gypi --generator-output=./build --format=make -Dcomponent=static_library -Dtarget_arch=x64
# compile
make -j${MASON_CONCURRENCY} -C build V=1
# install
mkdir -p ${MASON_PREFIX}/lib
if [[ "${MASON_PLATFORM}" == "osx" ]]; then
cp build/out/Default/libboringssl.a ${MASON_PREFIX}/lib/libboringssl.a
else
cp build/out/Default/obj.target/libboringssl.a ${MASON_PREFIX}/lib/libboringssl.a
fi
(cd ${MASON_PREFIX}/lib/ && ln -s libboringssl.a libssl.a && ln -s libboringssl.a libcrypto.a)
cp -r src/include ${MASON_PREFIX}/include
}
function mason_cflags {
echo -I${MASON_PREFIX}/include
}
function mason_ldflags {
echo -L${MASON_PREFIX}/lib -lboringssl
}
function mason_clean {
make clean
}
mason_run "$@"