2020-09-25 16:43:53 +00:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
2021-09-17 02:00:40 +00:00
|
|
|
# Build
|
|
|
|
build() {
|
|
|
|
# Find Toolchain
|
|
|
|
local toolchain_file="$(pwd)/cmake/$2-toolchain.cmake"
|
|
|
|
if [ ! -f "${toolchain_file}" ]; then
|
|
|
|
echo "Invalid Architecture: $1" > /dev/stderr
|
|
|
|
exit 1
|
2021-06-17 21:32:24 +00:00
|
|
|
fi
|
|
|
|
|
2021-06-24 16:40:34 +00:00
|
|
|
# Create Build Dir
|
2021-09-17 02:00:40 +00:00
|
|
|
rm -rf "build/$1-$2"
|
|
|
|
mkdir -p "build/$1-$2"
|
|
|
|
cd "build/$1-$2"
|
2021-06-24 16:40:34 +00:00
|
|
|
|
|
|
|
# Create Prefix
|
2021-09-17 02:00:40 +00:00
|
|
|
local prefix="$(cd ../../; pwd)/out/$1-$2"
|
2021-06-24 16:40:34 +00:00
|
|
|
rm -rf "${prefix}"
|
|
|
|
mkdir -p "${prefix}"
|
|
|
|
|
|
|
|
# Prepare
|
|
|
|
local extra_arg='-DMCPI_USE_MEDIA_LAYER_PROXY=ON'
|
|
|
|
if [ "$1" = "server" ]; then
|
|
|
|
extra_arg='-DMCPI_SERVER_MODE=ON'
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Build ARM Components
|
|
|
|
mkdir arm
|
|
|
|
cd arm
|
|
|
|
cmake -DMCPI_BUILD_MODE=arm "${extra_arg}" ../../..
|
|
|
|
make -j$(nproc)
|
|
|
|
make install DESTDIR="${prefix}"
|
|
|
|
cd ../
|
|
|
|
|
|
|
|
# Build Native Components
|
|
|
|
mkdir native
|
|
|
|
cd native
|
2021-09-17 02:00:40 +00:00
|
|
|
cmake -DCMAKE_TOOLCHAIN_FILE="${toolchain_file}" -DMCPI_BUILD_MODE=native "${extra_arg}" ../../..
|
2021-06-24 16:40:34 +00:00
|
|
|
make -j$(nproc)
|
|
|
|
make install DESTDIR="${prefix}"
|
|
|
|
cd ../
|
|
|
|
|
|
|
|
# Exit
|
|
|
|
cd ../../
|
|
|
|
}
|
|
|
|
|
2021-06-17 21:32:24 +00:00
|
|
|
# Build For ARM
|
|
|
|
arm_build() {
|
|
|
|
# Create Build Dir
|
2021-09-17 02:00:40 +00:00
|
|
|
rm -rf "build/$1-arm"
|
|
|
|
mkdir -p "build/$1-arm"
|
|
|
|
cd "build/$1-arm"
|
2021-06-17 21:32:24 +00:00
|
|
|
|
|
|
|
# Create Prefix
|
|
|
|
local prefix="$(cd ../../; pwd)/out/$1-arm"
|
|
|
|
rm -rf "${prefix}"
|
|
|
|
mkdir -p "${prefix}"
|
|
|
|
|
|
|
|
# Prepare
|
|
|
|
local server_mode='OFF'
|
|
|
|
if [ "$1" = "server" ]; then
|
|
|
|
server_mode='ON'
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Build All Components
|
|
|
|
cmake -DMCPI_BUILD_MODE=both -DMCPI_SERVER_MODE="${server_mode}" ../..
|
|
|
|
make -j$(nproc)
|
|
|
|
make install DESTDIR="${prefix}"
|
|
|
|
|
|
|
|
# Exit
|
|
|
|
cd ../../
|
|
|
|
}
|
|
|
|
|
2021-09-16 20:39:24 +00:00
|
|
|
# Verify Mode
|
2021-09-17 02:00:40 +00:00
|
|
|
if [ "$1" != "client" ] && [ "$1" != "server" ]; then
|
2021-09-16 20:39:24 +00:00
|
|
|
echo "Invalid Mode: $2" > /dev/stderr
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2021-06-17 21:32:24 +00:00
|
|
|
# Build
|
2021-09-17 02:00:40 +00:00
|
|
|
if [ "$2" = "arm" ]; then
|
|
|
|
arm_build "$1"
|
2021-09-16 20:39:24 +00:00
|
|
|
else
|
2021-09-17 02:00:40 +00:00
|
|
|
build "$1" "$2"
|
2021-06-17 21:32:24 +00:00
|
|
|
fi
|