osrm-backend/scripts/webp/0.6.0/script.sh
Daniel J. Hofmann ce1141982b Squashed 'third_party/mason/' changes from 6b4c359..c7a9670
git-subtree-dir: third_party/mason
git-subtree-split: c7a967003a7113a17faafe3b41082ad1ae3f1c2f
2017-02-15 11:48:43 +01:00

87 lines
2.4 KiB
Bash
Executable File

#!/usr/bin/env bash
MASON_NAME=webp
MASON_VERSION=0.6.0
MASON_LIB_FILE=lib/libwebp.a
MASON_PKGCONFIG_FILE=lib/pkgconfig/libwebp.pc
. ${MASON_DIR}/mason.sh
function mason_load_source {
mason_download \
http://downloads.webmproject.org/releases/webp/libwebp-$MASON_VERSION.tar.gz \
7669dc9a7c110cafc9e352d3abc1753bcb465dc0
mason_extract_tar_gz
export MASON_BUILD_PATH=${MASON_ROOT}/.build/libwebp-${MASON_VERSION}
}
function mason_compile {
# note CFLAGS overrides defaults
# -fvisibility=hidden -Wall -Wdeclaration-after-statement -Wextra -Wfloat-conversion -Wformat -Wformat-nonliteral -Wformat -Wformat-security -Wmissing-declarations -Wmissing-prototypes -Wold-style-definition -Wshadow -Wshorten-64-to-32 -Wunreachable-code -Wunused -Wvla -g -O2
# so we need to add optimization flags back
export CFLAGS="${CFLAGS:-} -O3 -DNDEBUG -fvisibility=hidden -Wall"
# -mfpu=neon is not enabled by default for cortex_a9 because
# it affects floating point precision. webp is fine with it.
# See: https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html
# this avoids the error from webp of:
# #error You must enable NEON instructions (e.g. -mfloat-abi=softfp -mfpu=neon) to use arm_neon.h
if [[ ${MASON_PLATFORM_VERSION} == "cortex_a9" ]]; then
CFLAGS="${CFLAGS:-} -mfloat-abi=softfp -mfpu=neon"
fi
# TODO(springmeyer) - why is --enable-swap-16bit-csp enabled?
./configure \
--prefix=${MASON_PREFIX} \
${MASON_HOST_ARG} \
--enable-static \
--disable-shared \
--with-pic \
--disable-cwebp \
--disable-dwebp \
--enable-swap-16bit-csp \
--disable-gl \
--disable-png \
--disable-jpeg \
--disable-tiff \
--disable-gif \
--disable-wic \
--disable-dependency-tracking
make V=1 -j${MASON_CONCURRENCY}
make install -j${MASON_CONCURRENCY}
}
function mason_strip_ldflags {
ldflags=()
while [[ $1 ]]
do
case "$1" in
-lwebp)
shift
;;
-L*)
shift
;;
*)
ldflags+=("$1")
shift
;;
esac
done
echo "${ldflags[@]}"
}
function mason_ldflags {
mason_strip_ldflags $(`mason_pkgconfig` --static --libs)
}
function mason_clean {
make clean
}
mason_run "$@"