2018-03-31 03:05:05 +03:00
|
|
|
#!/bin/bash
|
2018-09-07 01:07:01 +03:00
|
|
|
|
|
|
|
export PATH=/usr/local/bin:$PATH
|
|
|
|
|
2018-03-31 03:05:05 +03:00
|
|
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
|
|
echo "Current directory: $DIR"
|
|
|
|
cd $DIR
|
|
|
|
|
|
|
|
if [ "$1" == "clean" ]; then
|
|
|
|
rm -f CMakeCache.txt *.cmake
|
|
|
|
rm -rf out
|
|
|
|
rm -rf .buildtools
|
|
|
|
# make clean
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Install build tools and recent sqlite3
|
|
|
|
FILE=.buildtools
|
2018-11-07 09:39:27 +03:00
|
|
|
OS_NAME=`uname -a`
|
|
|
|
if [ ! -f $FILE ]; then
|
|
|
|
case "$OS_NAME" in
|
2019-02-26 11:41:48 +03:00
|
|
|
*Darwin*) tools/setup-buildtools-mac.sh ;;
|
2018-11-07 09:39:27 +03:00
|
|
|
*Linux*) sudo tools/setup-buildtools.sh ;;
|
|
|
|
*) echo "WARNING: unsupported OS $OS_NAME , skipping build tools installation.."
|
|
|
|
esac
|
|
|
|
# Assume that the build tools have been successfully installed
|
|
|
|
echo > $FILE
|
2018-03-31 03:05:05 +03:00
|
|
|
fi
|
|
|
|
|
2018-09-07 01:07:01 +03:00
|
|
|
if [ -f /usr/bin/gcc ]; then
|
2018-11-07 09:39:27 +03:00
|
|
|
echo "gcc version: `gcc --version`"
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -f /usr/bin/clang ]; then
|
|
|
|
echo "clang version: `clang --version`"
|
2018-09-07 01:07:01 +03:00
|
|
|
fi
|
|
|
|
|
2019-03-08 08:24:15 +03:00
|
|
|
# Skip Version.hpp changes
|
|
|
|
git update-index --skip-worktree lib/include/public/Version.hpp
|
|
|
|
|
2018-03-31 03:05:05 +03:00
|
|
|
#rm -rf out
|
|
|
|
mkdir -p out
|
|
|
|
cd out
|
|
|
|
|
2018-11-07 09:39:27 +03:00
|
|
|
# .tgz package
|
|
|
|
CMAKE_PACKAGE_TYPE=tgz
|
|
|
|
|
|
|
|
# .deb package
|
|
|
|
if [ -f /usr/bin/dpkg ]; then
|
|
|
|
export CMAKE_PACKAGE_TYPE=deb
|
|
|
|
fi
|
|
|
|
|
|
|
|
# .rpm package
|
2018-09-07 01:07:01 +03:00
|
|
|
if [ -f /usr/bin/rpmbuild ]; then
|
|
|
|
export CMAKE_PACKAGE_TYPE=rpm
|
|
|
|
fi
|
|
|
|
|
2018-03-31 03:05:05 +03:00
|
|
|
if [ "$2" == "release" ]; then
|
|
|
|
# TODO: pass custom build flags?
|
2018-09-07 01:07:01 +03:00
|
|
|
cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_PACKAGE_TYPE=$CMAKE_PACKAGE_TYPE ..
|
2018-03-31 03:05:05 +03:00
|
|
|
# TODO: strip symbols to minimize
|
|
|
|
else
|
2018-09-07 01:07:01 +03:00
|
|
|
cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PACKAGE_TYPE=$CMAKE_PACKAGE_TYPE ..
|
2018-03-31 03:05:05 +03:00
|
|
|
fi
|
|
|
|
|
|
|
|
# Build all
|
2018-11-07 09:39:27 +03:00
|
|
|
# TODO: what are the pros and cons of using 'make' vs 'cmake --build' ?
|
|
|
|
#make
|
|
|
|
cmake --build .
|
2018-03-31 03:05:05 +03:00
|
|
|
|
|
|
|
# Remove old package
|
2018-09-07 01:07:01 +03:00
|
|
|
rm -f *.deb *.rpm
|
2018-03-31 03:05:05 +03:00
|
|
|
|
|
|
|
# Build new package
|
|
|
|
make package
|
|
|
|
|
2018-11-07 09:39:27 +03:00
|
|
|
# Debian / Ubuntu / Raspbian
|
2018-09-07 01:07:01 +03:00
|
|
|
if [ -f /usr/bin/dpkg ]; then
|
2018-03-31 03:05:05 +03:00
|
|
|
# Install new package
|
|
|
|
sudo dpkg -i *.deb
|
2018-11-07 09:39:27 +03:00
|
|
|
fi
|
|
|
|
|
|
|
|
# RedHat / CentOS
|
|
|
|
if [ -f /usr/bin/rpmbuild ]; then
|
2018-09-07 01:20:22 +03:00
|
|
|
sudo rpm -i --force -v *.rpm
|
2018-09-07 01:07:01 +03:00
|
|
|
fi
|
2018-03-31 03:05:05 +03:00
|
|
|
|
|
|
|
# Install SDK headers and lib to /usr/local
|
|
|
|
#
|
2018-11-07 09:39:27 +03:00
|
|
|
## TODO: [MG] - fix this section for shared library
|
2019-03-29 02:40:31 +03:00
|
|
|
## strip --strip-unneeded out/lib/libmat.so
|
|
|
|
## strip -S --strip-unneeded --remove-section=.note.gnu.gold-version --remove-section=.comment --remove-section=.note --remove-section=.note.gnu.build-id --remove-section=.note.ABI-tag out/lib/libmat.so
|
2018-11-07 09:39:27 +03:00
|
|
|
|
|
|
|
if [ "$CMAKE_PACKAGE_TYPE" == "tgz" ]; then
|
|
|
|
cd ..
|
2019-03-29 02:40:31 +03:00
|
|
|
MATSDK_INSTALL_DIR="${MATSDK_INSTALL_DIR:-/usr/local}"
|
2019-03-08 08:24:15 +03:00
|
|
|
echo "+-----------------------------------------------------------------------------------+"
|
2019-03-29 02:40:31 +03:00
|
|
|
echo " This step may prompt for your sudo password to deploy SDK to $MATSDK_INSTALL_DIR "
|
2019-03-08 08:24:15 +03:00
|
|
|
echo "+-----------------------------------------------------------------------------------+"
|
2019-03-29 02:40:31 +03:00
|
|
|
sudo ./install.sh $MATSDK_INSTALL_DIR
|
2018-11-07 09:39:27 +03:00
|
|
|
fi
|