#####################################
###
Build Server on Debian 10
#####################################
##
Build GCC 9.2.0
To view the content, you need to sign in or register
##
Build MySQL 5.6
To view the content, you need to sign in or register
##
Build Server Linrary
To view the content, you need to sign in or register
##
Clear Devel Library Package
sudo apt-get --purge remove libevent-dev libevhtp-dev
##
Install Build Dependencies
sudo apt-get install screen libssl-dev libcurl4-nss-dev liboauth-dev
##
Download Build Library
To view the content, you need to sign in or register
tar zxvf libevhtp.tar.gz
copy libevhtp/include/* to roserver/common/include/
copy libevhtp/lib-debian-openssl-1.1/libevhtp.a to roserver/lib/
##
9.2.0 Environment Variable
sudo ln -sf ../bin/cpp /usr/local/gcc-9.2.0/lib/cpp
sudo ln -sf ../lib/gcc/x86_64-linux-gnu/lib64/libgcc_s.so.1 /usr/local/gcc-9.2.0/lib64/libgcc_s.so.1
sudo ln -sf libgcc_s.so.1 /usr/local/gcc-9.2.0/lib64/libgcc_s.so
sudo ln -sf /usr/local/gcc-9.2.0/lib/gcc/x86_64-linux-gnu/9.2.0/libstdc++.so.6.0.27 /usr/local/gcc-9.2.0/lib64/libstdc++.so.6.0.27
sudo ln -sf libstdc++.so.6.0.27 /usr/local/gcc-9.2.0/lib64/libstdc++.so.6
sudo ln -sf libstdc++.so.6 /usr/local/gcc-9.2.0/lib64/libstdc++.so
GCC_VER=9.2.0
GCC_ROOT=/usr/local/gcc-9.2.0
GCC_PATH=${GCC_ROOT}/bin
GCC_MANPATH=${GCC_ROOT}/share/man
GCC_INFOPATH=${GCC_ROOT}/share/info
export PATH=${GCC_PATH}:${PATH}
export MANPATH=${GCC_MANPATH}:${MANPATH}
export INFOPATH=${GCC_MANPATH}:${INFOPATH}
export PCP_DIR=${GCC_ROOT}
export PKG_CONFIG_PATH=${GCC_ROOT}/lib64/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}
export LD_LIBRARY_PATH=${GCC_ROOT}/lib64:${GCC_ROOT}/lib:${LD_LIBRARY_PATH}
#####################################
###
Build Release ServerFile
#####################################
ln -sf ../rogamelibs rogamelibs
ln -sf ../rogamelibs/buildtool/Server/lib/librogamelibs.a lib/librogamelibs.a
ln -sf ../rogamelibs/buildtool/Server/lib/librogamelibs_release.a lib/librogamelibs_release.a
ln -sf ../rogamelibs/table/buildtool/Server/lib/libconfiglib.a lib/libconfiglib.a
rm -rf Build
mkdir -p Build/Release/bin
install -D -m644 /usr/local/gcc-9.2.0/lib64/libstdc++.so.6 Build/Release/bin/lib/libstdc++.so.6
install -D -m644 /usr/local/gcc-9.2.0/lib64/libgcc_s.so.1 Build/Release/bin/lib/libgcc_s.so.1
install -D -m644 /usr/lib/x86_64-linux-gnu/libcurl-nss.so.4 Build/Release/bin/lib/libcurl-nss.so.4
install -D -m644 /usr/lib/x86_64-linux-gnu/libssl.so.1.1 Build/Release/bin/lib/libssl.so.1.1
install -D -m644 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 Build/Release/bin/lib/libcrypto.so.1.1
cp exe/server.xml Build/Release/bin/
cp exe/conf_create.py Build/Release/bin/
cp exe/dropdb.py Build/Release/bin/
cp -r exe/conf Build/Release/bin/
cp -r exe/loginconf Build/Release/bin/
cp -r exe/dbconf Build/Release/bin/
cp -r exe/gateconf Build/Release/bin/
cp -r exe/gsconf Build/Release/bin/
cp -r exe/audioconf Build/Release/bin/
cp -r exe/versionconf Build/Release/bin/
cd Build/Release
#
cmake config
cmake -DCMAKE_BUILD_TYPE=Release \
-DASAN=Off -DUSE_POOL=Off -DUSE_TCMALLOC=Off \
-DGCC=${GCC_VER} -DCMAKE_C_COMPILER=$GCC_PATH/gcc -DCMAKE_CXX_COMPILER=$GCC_PATH/g++ \
-DCMAKE_CXX_FLAGS='-D_GLIBCXX_USE_CXX11_ABI=1' \
../..
#
Build Server File
DIRNAME=("payserver" "gameserver" "gateserver" "controlserver" "dbserver" "masterserver" "loginserver" "tradeserver" "audioserver" "battleserver" "idipserver" "rankserver" "authserver" "fmserver")
for DIRS in ${DIRNAME[@]}
do
cd ${DIRS}
make -j$(nproc)
strip --strip-debug ../bin/${DIRS}
cd ..
done
mv bin ../../ServerFile
cd ../../