114 lines
2.8 KiB
Bash
114 lines
2.8 KiB
Bash
|
|
#!/bin/bash
|
|||
|
|
|
|||
|
|
# Get an up to date system with all the packages we require.
|
|||
|
|
|
|||
|
|
sudo apt update
|
|||
|
|
sudo apt upgrade -y
|
|||
|
|
sudo apt install -y git build-essential libmariadbclient-dev \
|
|||
|
|
mariadb-server autoconf autopoint \
|
|||
|
|
libssl-dev libtool libgtkmm-3.0-dev \
|
|||
|
|
libcurl4-openssl-dev cmake texinfo xauth \
|
|||
|
|
gettext ed
|
|||
|
|
|
|||
|
|
|
|||
|
|
# Set up the database to make it possible for anybody (in particular the
|
|||
|
|
# trader-desk application) to use the database root account.
|
|||
|
|
|
|||
|
|
sudo mysql mysql <<-\EOF
|
|||
|
|
update mysql.user set password='', plugin='';
|
|||
|
|
flush privileges;
|
|||
|
|
exit
|
|||
|
|
EOF
|
|||
|
|
|
|||
|
|
|
|||
|
|
# Download, build and install gcc 9.3. We use the latest C++20 standards,
|
|||
|
|
# and need the best compiler we can get.
|
|||
|
|
|
|||
|
|
sudo bash -c 'cat > /etc/ld.so.conf.d/01-local.conf' <<-\EOF
|
|||
|
|
/usr/local/lib64
|
|||
|
|
/usr/local/lib
|
|||
|
|
EOF
|
|||
|
|
sudo ldconfig
|
|||
|
|
|
|||
|
|
mkdir ${HOME}/sources; cd ${HOME}/sources
|
|||
|
|
wget ftp://ftp.gnu.org/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.xz
|
|||
|
|
wget ftp://ftp.gnu.org/gnu/gmp/gmp-6.2.0.tar.xz
|
|||
|
|
wget ftp://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
|
|||
|
|
wget ftp://ftp.gnu.org/gnu/mpfr/mpfr-4.0.2.tar.xz
|
|||
|
|
tar xf gcc-9.3.0.tar.xz
|
|||
|
|
cd gcc-9.3.0
|
|||
|
|
tar xf ../gmp-6.2.0.tar.xz
|
|||
|
|
ln -s gmp-6.2.0 gmp
|
|||
|
|
tar xf ../mpc-1.1.0.tar.gz
|
|||
|
|
ln -s mpc-1.1.0 mpc
|
|||
|
|
tar xf ../mpfr-4.0.2.tar.xz
|
|||
|
|
ln -s mpfr-4.0.2 mpfr
|
|||
|
|
./configure --enable-languages=c,c++ --disable-bootstrap --disable-multilib
|
|||
|
|
make -j2 # Takes a long time.
|
|||
|
|
sudo make install
|
|||
|
|
cd ${HOME}/sources; rm -rf gcc-9.3.0
|
|||
|
|
|
|||
|
|
|
|||
|
|
# Make a couple of third-party packages that don’t come with the Debian
|
|||
|
|
# system.
|
|||
|
|
|
|||
|
|
cmake_build() { cd $1
|
|||
|
|
mkdir build
|
|||
|
|
cd build
|
|||
|
|
cmake -DBUILD_SHARED_LIBS=TRUE ..
|
|||
|
|
make -j2
|
|||
|
|
sudo make install
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
cd ${HOME}/sources
|
|||
|
|
git clone https://github.com/fmtlib/fmt.git
|
|||
|
|
( cmake_build fmt )
|
|||
|
|
|
|||
|
|
|
|||
|
|
cd ${HOME}/sources
|
|||
|
|
git clone https://github.com/jpbarrette/curlpp.git
|
|||
|
|
( cmake_build curlpp )
|
|||
|
|
|
|||
|
|
sudo ed /usr/local/lib/pkgconfig/curlpp.pc <<-\EOF
|
|||
|
|
1,$s@-Llib@-L${prefix}/lib@
|
|||
|
|
w
|
|||
|
|
q
|
|||
|
|
EOF
|
|||
|
|
|
|||
|
|
|
|||
|
|
# Now build the DMBCS packages which make up the trader-desk application.
|
|||
|
|
|
|||
|
|
autotools_build() { cd $1
|
|||
|
|
autoreconf --install
|
|||
|
|
./configure
|
|||
|
|
make -j2
|
|||
|
|
sudo make install
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
cd ${HOME}
|
|||
|
|
|
|||
|
|
git clone https://rdmp.org/dmbcs/market-data-api.git dmbcs-market-data-api
|
|||
|
|
( autotools_build dmbcs-market-data-api )
|
|||
|
|
|
|||
|
|
git clone https://rdmp.org/dmbcs/trader-desk.git dmbcs-trader-desk
|
|||
|
|
( autotools_build dmbcs-trader-desk )
|
|||
|
|
|
|||
|
|
sudo ldconfig
|
|||
|
|
|
|||
|
|
mkdir ${HOME}/.config
|
|||
|
|
|
|||
|
|
|
|||
|
|
# Take heed of this message!
|
|||
|
|
|
|||
|
|
cat <<EOF
|
|||
|
|
|
|||
|
|
The dmbcs-trader-desk installation is complete. If you have just done
|
|||
|
|
this on a fresh Debian installation, you will now need to log out and
|
|||
|
|
then back in again with the -X option on the ssh line, so that
|
|||
|
|
graphics will appear in front of you.
|
|||
|
|
|
|||
|
|
Then just type trader-desk.
|
|||
|
|
|
|||
|
|
EOF
|