toxcore/other/docker/windows/build_dependencies.sh

78 lines
1.9 KiB
Bash
Raw Normal View History

#!/usr/bin/env sh
set -e -x
#=== Cross-Compile Dependencies ===
build()
{
ARCH=${1}
echo "Building for ${ARCH} architecture"
# set some things
WINDOWS_TOOLCHAIN=${ARCH}-w64-mingw32
# prefix that we will copy to the user
PREFIX_DIR="/root/prefix/${ARCH}"
# prefix for things that shouldn't be copied to the user
EXTRA_PREFIX_DIR="/root/extra-prefix/${ARCH}"
mkdir -p "${PREFIX_DIR}" "${EXTRA_PREFIX_DIR}"
export MAKEFLAGS=j$(nproc)
export CFLAGS=-O3
cd /tmp
echo
echo "=== Building Sodium ${VERSION_SODIUM} ${ARCH} ==="
git clone --depth=1 --branch="${VERSION_SODIUM}" https://github.com/jedisct1/libsodium
cd libsodium
./autogen.sh
./configure --host="${WINDOWS_TOOLCHAIN}" --prefix="${PREFIX_DIR}" --disable-shared --enable-static
make
make install
cd ..
echo
echo "=== Building Opus ${VERSION_OPUS} ${ARCH} ==="
git clone --depth=1 --branch="${VERSION_OPUS}" https://github.com/xiph/opus
cd opus
./autogen.sh
./configure --host="${WINDOWS_TOOLCHAIN}" --prefix="${PREFIX_DIR}" --disable-extra-programs --disable-doc --disable-shared --enable-static
make
make install
cd ..
echo
echo "=== Building VPX ${VERSION_VPX} ${ARCH} ==="
LIB_VPX_TARGET=""
if [ "${ARCH}" = "i686" ]; then
LIB_VPX_TARGET=x86-win32-gcc
else
LIB_VPX_TARGET=x86_64-win64-gcc
fi
git clone --depth=1 --branch="${VERSION_VPX}" https://github.com/webmproject/libvpx
cd libvpx
CROSS="${WINDOWS_TOOLCHAIN}"- ./configure --target="${LIB_VPX_TARGET}" --prefix="${PREFIX_DIR}" --disable-examples --disable-unit-tests --disable-shared --enable-static
make
make install
cd ..
rm -rf /tmp/*
}
if [ "${SUPPORT_ARCH_i686}" = "true" ]; then
build i686
fi
if [ "${SUPPORT_ARCH_x86_64}" = "true" ]; then
build x86_64
fi
tree /root
echo
echo "Built dependencies successfully!"
echo