fgmeta/download_and_compile.sh
2014-07-17 15:04:31 +02:00

867 lines
29 KiB
Bash
Executable File

#!/bin/bash
#* Written by Francesco Angelo Brisa, started January 2008.
#
# Copyright (C) 2013 Francesco Angelo Brisa
# email: fbrisa@gmail.com - fbrisa@yahoo.it
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
VERSION="2.26"
#######################################################
# THANKS TO
#######################################################
# Special thanks to Alessandro Garosi for FGComGui and
# other patches
# Thanks to "Pat Callahan" for patches for fgrun compilation
# Thanks to "F-JJTH" for bug fixes and suggestions
# Thanks again to "F-JJTH" for OpenRTI and FGX
# Thanks to André, ( taureau89_9 ) for debian stable packages fixes
LOGFILE=compilation_log.txt
WHATTOBUILD=
#AVAILABLE VALUES: CGAL PLIB OSG SIMGEAR FGFS DATA FGO FGX FGRUN OPENRTI OPENRADAR TERRAGEAR TERRAGEARGUI
WHATTOBUILDALL=( CGAL PLIB OSG SIMGEAR FGFS DATA FGRUN OPENRTI TERRAGEAR TERRAGEARGUI)
UPDATE=
STABLE=
APT_GET_UPDATE="y"
DOWNLOAD_PACKAGES="y"
COMPILE="y"
RECONFIGURE="y"
DOWNLOAD="y"
JOPTION=""
OOPTION=""
DEBUG=""
while getopts "suhc:p:a:d:r:j:O:i" OPTION; do
case $OPTION in
s) STABLE="STABLE" ;;
u) UPDATE="UPDATE" ;;
h) HELP="HELP" ;;
a) APT_GET_UPDATE=$OPTARG ;;
c) COMPILE=$OPTARG ;;
p) DOWNLOAD_PACKAGES=$OPTARG ;;
d) DOWNLOAD=$OPTARG ;;
r) RECONFIGURE=$OPTARG ;;
j) JOPTION=" -j"$OPTARG" " ;;
O) OOPTION=" -O"$OPTARG" " ;;
?) HELP="HELP" ;;
esac
done
shift $(($OPTIND - 1))
if [ ! "$#" = "0" ]; then
for arg in $*
do
if [ "$arg" == "UPDATE" ]; then
UPDATE="UPDATE"
else
WHATTOBUILD=( "${WHATTOBUILD[@]}" "$arg" )
fi
done
else
WHATTOBUILD=( "${WHATTOBUILDALL[@]}" )
fi
if [[ "$(declare -p WHATTOBUILD)" =~ '['([0-9]+)']="ALL"' ]]; then
WHATTOBUILD=( "${WHATTOBUILDALL[@]}" )
fi
#############################################################"
# Some helper for redundant task
function _logSep(){
echo "***********************************" >> $LOGFILE
}
function _gitUpdate(){
if [ "$DOWNLOAD" != "y" ]; then
return
fi
branch=$1
set +e
git diff --exit-code 2>&1 > /dev/null
if [ $? != 1 ]; then
set -e
git checkout -f $branch
git pull -r
else
set -e
git stash save -u -q
git checkout -f $branch
git pull -r
git stash pop -q
fi
}
function _gitDownload(){
if [ "$DOWNLOAD" != "y" ]; then
return
fi
repo=$1
if [ -f "README" -o -f "README.txt" ]; then
echo "$repo exists already"
else
git clone $repo .
fi
}
function _make(){
if [ "$COMPILE" = "y" ]; then
pkg=$1
cd "$CBD"/build/$pkg
echo "MAKE $pkg" >> $LOGFILE
make $JOPTION $OOPTION 2>&1 | tee -a $LOGFILE
echo "INSTALL $pkg" >> $LOGFILE
make install 2>&1 | tee -a $LOGFILE
fi
}
#######################################################
OSG_STABLE_GIT_BRANCH="OpenSceneGraph-3.2"
PLIB_STABLE_GIT_BRANCH="master"
# common stable branch for flightgear, simgear and fgdata
FGSG_STABLE_GIT_BRANCH="release/3.2.0"
OPENRTI_STABLE_GIT_BRANCH="release-0.5"
# unstable branch: next for sg/fg, master for fgdata
FGSG_UNSTABLE_GIT_BRANCH="next"
FGDATA_UNSTABLE_GIT_BRANCH="master"
OPENRTI_UNSTABLE_GIT_BRANCH="master"
#OpenRadar
OR_STABLE_RELEASE="http://wagnerw.de/OpenRadar.zip"
#TerraGear
TG_STABLE_GIT_BRANCH="scenery/ws2.0"
TGGUI_STABLE_GIT_BRANCH="master"
CGAL_PACKAGE="https://gforge.inria.fr/frs/download.php/32183/CGAL-4.2-beta1.tar.gz"
#######################################################
# set script to stop if an error occours
set -e
if [ "$HELP" = "HELP" ]; then
echo "$0 Version $VERSION"
echo "Usage:"
echo "./$0 [-u] [-h] [-s] [-e] [-f] [-i] [-g] [-a y|n] [-c y|n] [-p y|n] [-d y|n] [-r y|n] [ALL|CGAL|PLIB|OSG|OPENRTI|SIMGEAR|FGFS|DATA|FGO|FGX|FGRUN|OPENRADAR|TERRAGEAR|TERRAGEARGUI] [UPDATE]"
echo "* without options or with ALL it recompiles the content of the WHATTOBUILDALL variable."
echo "* Feel you free to customize the WHATTOBUILDALL variable available on the top of this script"
echo "* Adding UPDATE it does not rebuild all (faster but to use only after one successfull first compile)"
echo "Switches:"
echo "* -u such as using UPDATE"
echo "* -h show this help"
echo "* -e compile FlightGear with --with-eventinput option (experimental)"
echo "* -g compile with debug info for gcc"
echo "* -a y|n y=do an apt-get update n=skip apt-get update default=y"
echo "* -p y|n y=download packages n=skip download packages default=y"
echo "* -c y|n y=compile programs n=do not compile programs default=y"
echo "* -d y|n y=fetch programs from internet (cvs, svn, etc...) n=do not fetch default=y"
echo "* -j X Add -jX to the make compilation default=None"
echo "* -O X Add -OX to the make compilation default=None"
echo "* -r y|n y=reconfigure programs before compiling them n=do not reconfigure default=y"
echo "* -s compile only last stable known versions default=y"
exit
fi
#######################################################
#######################################################
# Warning about compilation time and size
# Idea from Jester
echo "**************************************"
echo "* *"
echo "* Warning, the compilation process *"
echo "* is going to use 12 or more Gbytes *"
echo "* of space and at least a couple of *"
echo "* hours to download and build FG. *"
echo "* *"
echo "* Please, be patient ...... *"
echo "* *"
echo "**************************************"
#######################################################
#######################################################
# Debian 4.0rX (Etch) backports.org
# From D-HUND
ISSUE=$(cat /etc/issue)
if [ "$ISSUE" = "Debian GNU/Linux 4.0 \n \l" ]; then
clear
echo "*****************************************************"
echo "* Note to users of Debian Etch (Stable 4.0rX) *"
echo "*****************************************************"
echo
echo "Since autumn 2008 it is not possible anymore to easily install fgfs"
echo "cvs by using standard repositry. Therefore it is necessary to have"
echo "backports.org in the apt sources.list to run this script."
echo
echo "If you're using synaptic you may follow these steps:"
echo " - Open synaptics menu 'Settings' --> 'Repositories'"
echo " - Click 'Add' and do"
echo " select 'Binaries (deb)'"
echo " enter Address: 'www.backports.org/backports.org/'"
echo " enter Distribution: 'etch-backports'"
echo " enter Section(s): 'main contrib non-free'"
echo " - Close Repositries window using 'OK'"
echo " - Click 'Reload' to update database."
echo
echo "If you have backports.org in your apt-repositries and want to get"
echo "rid of this message have a look at the script."
echo -n "[c] to continue or just [ENTER] to exit script: "
if [ "$(read GOON)" != "c" ]; then
echo "Script aborted!"
exit 0
fi
fi
#######################################################
#######################################################
echo $0 $* > $LOGFILE
echo "APT_GET_UPDATE=$APT_GET_UPDATE" >> $LOGFILE
echo "DOWNLOAD_PACKAGES=$DOWNLOAD_PACKAGES" >> $LOGFILE
echo "COMPILE=$COMPILE" >> $LOGFILE
echo "RECONFIGURE=$RECONFIGURE" >> $LOGFILE
echo "DOWNLOAD=$DOWNLOAD" >> $LOGFILE
echo "JOPTION=$JOPTION" >> $LOGFILE
echo "OOPTION=$OOPTION" >> $LOGFILE
echo "DEBUG=$DEBUG" >> $LOGFILE
_logSep
# discovering linux
if [ -e /etc/lsb-release ]; then
. /etc/lsb-release
fi
DISTRO_PACKAGES="libopenal-dev libbz2-dev libalut-dev libalut0 cvs subversion cmake make build-essential automake zlib1g-dev zlib1g libwxgtk2.8-0 libwxgtk2.8-dev fluid gawk gettext libxi-dev libxi6 libxmu-dev libxmu6 libasound2-dev libasound2 libpng12-dev libpng12-0 libjasper1 libjasper-dev libopenexr-dev git-core libqt4-dev scons python-tk python-imaging-tk libsvn-dev libglew1.5-dev libxft2 libxft-dev libxinerama1 libxinerama-dev python-dev libboost-dev libcurl4-gnutls-dev libqt4-opengl-dev libqtwebkit-dev libjpeg-dev libpoppler-glib-dev librsvg2-dev libcairo2-dev libgtk2.0-dev libgtkglext1-dev libxrandr-dev libtiff5-dev libxml2-dev libgdal-dev libgmp-dev libmpfr-dev libgdal-dev libtiff5-dev python-dev libbz2-dev libqt4-dev libboost-dev libboost-thread-dev libboost-system-dev"
UBUNTU_PACKAGES="freeglut3-dev libapr1-dev libfltk1.3-dev libfltk1.3"
DEBIAN_PACKAGES_STABLE="freeglut3-dev libjpeg8-dev libjpeg8 libfltk1.1-dev libfltk1.1"
DEBIAN_PACKAGES_TESTING="freeglut3-dev libjpeg8-dev libjpeg8 libfltk1.3-dev libfltk1.3"
DEBIAN_PACKAGES_UNSTABLE="freeglut3-dev libjpeg8-dev libjpeg8 libfltk1.3-dev libfltk1.3"
# checking linux distro and version to differ needed packages
if [ "$DISTRIB_ID" = "Ubuntu" -o "$DISTRIB_ID" = "LinuxMint" ]; then
echo "$DISTRIB_ID $DISTRIB_RELEASE" >> $LOGFILE
DISTRO_PACKAGES="$DISTRO_PACKAGES $UBUNTU_PACKAGES"
else
echo "DEBIAN I SUPPOSE" >> $LOGFILE
DEBIAN_PACKAGES=$DEBIAN_PACKAGES_STABLE
if [ ! "$(apt-cache search libfltk1.3)" = "" ]; then
DEBIAN_PACKAGES=$DEBIAN_PACKAGES_TESTING
fi
DISTRO_PACKAGES="$DISTRO_PACKAGES $DEBIAN_PACKAGES"
fi
_logSep
if [ "$DOWNLOAD_PACKAGES" = "y" ]; then
echo -n "PACKAGE INSTALLATION ... " >> $LOGFILE
LIBOPENALPACKAGE=$(apt-cache search libopenal | grep "libopenal. " | sed s/\ .*//)
DISTRO_PACKAGES=$DISTRO_PACKAGES" "$LIBOPENALPACKAGE
# checking linux distro and version to differ needed packages
if [ "$DISTRIB_ID" = "Ubuntu" -o "$DISTRIB_ID" = "LinuxMint" ]; then
if [ "$APT_GET_UPDATE" = "y" ]; then
echo "Asking your password to perform an apt-get update"
sudo apt-get update
fi
echo "Asking your password to perform an apt-get install ... "
sudo apt-get install $DISTRO_PACKAGES
else
if [ "$APT_GET_UPDATE" = "y" ]; then
echo "Asking root password to perform an apt-get update"
su -c "apt-get update"
fi
echo "Asking root password to perform an apt-get install ... "
su -c "apt-get install $DISTRO_PACKAGES"
fi
fi
CBD=$(pwd)
LOGFILE=$CBD/$LOGFILE
echo "DIRECTORY= $CBD" >> $LOGFILE
_logSep
mkdir -p install
SUB_INSTALL_DIR=install
INSTALL_DIR=$CBD/$SUB_INSTALL_DIR
cd "$CBD"
mkdir -p build
#######################################################
# BACKWARD COMPATIBILITY WITH 1.9.14a
#######################################################
if [ -d "$CBD"/fgfs/flightgear ]; then
echo "Move to the new folder structure"
rm -rf OpenSceneGraph
rm -rf plib
rm -rf build
rm -rf install/fgo
rm -rf install/fgx
rm -rf install/osg
rm -rf install/plib
rm -rf install/simgear
rm -f *.log*
rm -f run_*.sh
mv openrti/openrti tmp && rm -rf openrti && mv tmp openrti
mv fgfs/flightgear tmp && rm -rf fgfs && mv tmp flightgear
mv simgear/simgear tmp && rm -rf simgear && mv tmp simgear
mkdir -p install/flightgear && mv install/fgfs/fgdata install/flightgear/fgdata
echo "Done"
fi
#######################################################
# PLIB
#######################################################
PLIB_INSTALL_DIR=plib
INSTALL_DIR_PLIB=$INSTALL_DIR/$PLIB_INSTALL_DIR
cd "$CBD"
mkdir -p "plib"
if [[ "$(declare -p WHATTOBUILD)" =~ '['([0-9]+)']="PLIB"' ]]; then
if [ ! "$UPDATE" = "UPDATE" ]; then
echo "****************************************" | tee -a $LOGFILE
echo "**************** PLIB ******************" | tee -a $LOGFILE
echo "****************************************" | tee -a $LOGFILE
cd "$CBD"/plib
_gitDownload git://gitorious.org/libplib/libplib.git
_gitUpdate $PLIB_STABLE_GIT_BRANCH
if [ "$RECONFIGURE" = "y" ]; then
cd "$CBD"
mkdir -p build/plib
echo "CONFIGURING plib" >> $LOGFILE
cd "$CBD"/build/plib
cmake -DCMAKE_INSTALL_PREFIX:PATH="$INSTALL_DIR_PLIB" ../../plib
fi
_make plib
fi
fi
#######################################################
# CGAL
#######################################################
CGAL_INSTALL_DIR=cgal
INSTALL_DIR_CGAL=$INSTALL_DIR/$CGAL_INSTALL_DIR
cd "$CBD"
if [[ "$(declare -p WHATTOBUILD)" =~ '['([0-9]+)']="CGAL"' ]]; then
echo "****************************************" | tee -a $LOGFILE
echo "***************** CGAL *****************" | tee -a $LOGFILE
echo "****************************************" | tee -a $LOGFILE
if [ ! -d "cgal" ]; then
echo "Download CGAL... $CGAL_PACKAGE"
wget -O cgal.tar.gz $CGAL_PACKAGE
tar -zxf cgal.tar.gz
mv CGAL* cgal
fi
if [ ! "$UPDATE" = "UPDATE" ]; then
if [ "$RECONFIGURE" = "y" ]; then
cd "$CBD"
mkdir -p build/cgal
cd "$CBD"/build/cgal
echo "CONFIGURING CGAL ... " >> $LOGFILE
cmake -DCMAKE_INSTALL_PREFIX:PATH="$INSTALL_DIR_CGAL" ../../cgal/ 2>&1 | tee -a $LOGFILE
echo "CONFIGURING CGAL DONE" >> $LOGFILE
fi
fi
_make cgal
fi
#######################################################
# OpenSceneGraph
#######################################################
OSG_INSTALL_DIR=openscenegraph
INSTALL_DIR_OSG=$INSTALL_DIR/$OSG_INSTALL_DIR
cd "$CBD"
mkdir -p "openscenegraph"
if [[ "$(declare -p WHATTOBUILD)" =~ '['([0-9]+)']="OSG"' ]]; then
echo "****************************************" | tee -a $LOGFILE
echo "**************** OSG *******************" | tee -a $LOGFILE
echo "****************************************" | tee -a $LOGFILE
cd "$CBD"/openscenegraph
_gitDownload http://github.com/openscenegraph/osg.git
_gitUpdate $OSG_STABLE_GIT_BRANCH
if [ ! "$UPDATE" = "UPDATE" ]; then
if [ "$RECONFIGURE" = "y" ]; then
cd "$CBD"
mkdir -p build/openscenegraph
cd "$CBD"/build/openscenegraph
rm -f CMakeCache.txt
cmake -DCMAKE_BUILD_TYPE="Release" \
-DCMAKE_INSTALL_PREFIX:PATH="$INSTALL_DIR_OSG" ../../openscenegraph/ 2>&1 | tee -a $LOGFILE
fi
fi
_make openscenegraph
#FIX FOR 64 BIT COMPILATION
if [ -d "$INSTALL_DIR_OSG/lib64" ]; then
if [ -L "$INSTALL_DIR_OSG/lib" ]; then
echo "link already done"
else
ln -s "$INSTALL_DIR_OSG/lib64" "$INSTALL_DIR_OSG/lib"
fi
fi
fi
#######################################################
# OPENRTI
#######################################################
OPENRTI_INSTALL_DIR=openrti
INSTALL_DIR_OPENRTI=$INSTALL_DIR/$OPENRTI_INSTALL_DIR
cd "$CBD"
mkdir -p "openrti"
if [[ "$(declare -p WHATTOBUILD)" =~ '['([0-9]+)']="OPENRTI"' ]]; then
echo "****************************************" | tee -a $LOGFILE
echo "**************** OPENRTI ***************" | tee -a $LOGFILE
echo "****************************************" | tee -a $LOGFILE
cd "$CBD"/openrti
_gitDownload git://gitorious.org/openrti/openrti.git
if [ "$STABLE" = "STABLE" ]; then
_gitUpdate $OPENRTI_STABLE_GIT_BRANCH
else
_gitUpdate $OPENRTI_UNSTABLE_GIT_BRANCH
fi
if [ ! "$UPDATE" = "UPDATE" ]; then
if [ "$RECONFIGURE" = "y" ]; then
cd "$CBD"
mkdir -p build/openrti
cd "$CBD"/build/openrti
rm -f CMakeCache.txt
cmake -DCMAKE_BUILD_TYPE="Release" \
-DCMAKE_INSTALL_PREFIX:PATH="$INSTALL_DIR_OPENRTI" ../../openrti 2>&1 | tee -a $LOGFILE
fi
fi
_make openrti
fi
#######################################################
# SIMGEAR
#######################################################
SIMGEAR_INSTALL_DIR=simgear
INSTALL_DIR_SIMGEAR=$INSTALL_DIR/$SIMGEAR_INSTALL_DIR
cd "$CBD"
mkdir -p "simgear"
if [[ "$(declare -p WHATTOBUILD)" =~ '['([0-9]+)']="SIMGEAR"' ]]; then
echo "****************************************" | tee -a $LOGFILE
echo "**************** SIMGEAR ***************" | tee -a $LOGFILE
echo "****************************************" | tee -a $LOGFILE
cd "$CBD"/simgear
_gitDownload git://gitorious.org/fg/simgear.git
if [ "$STABLE" = "STABLE" ]; then
_gitUpdate $FGSG_STABLE_GIT_BRANCH
else
_gitUpdate $FGSG_UNSTABLE_GIT_BRANCH
fi
# Remove DDS warning message
sed -i s/SG_ALERT,\ \"Image/SG_WARN,\ \"Image/g simgear/scene/model/ModelRegistry.cxx
if [ ! "$UPDATE" = "UPDATE" ]; then
if [ "$RECONFIGURE" = "y" ]; then
cd "$CBD"
mkdir -p build/simgear
cd "$CBD"/build/simgear
rm -f CMakeCache.txt
cmake -D CMAKE_BUILD_TYPE="Release" \
-D ENABLE_RTI=OFF \
-D CMAKE_INSTALL_PREFIX:PATH="$INSTALL_DIR_SIMGEAR" \
-D CMAKE_PREFIX_PATH="$INSTALL_DIR_OSG;$INSTALL_DIR_OPENRTI;$INSTALL_DIR_PLIB" \
../../simgear 2>&1 | tee -a $LOGFILE
fi
fi
_make simgear
fi
#######################################################
# FGFS
#######################################################
FGFS_INSTALL_DIR=flightgear
INSTALL_DIR_FGFS=$INSTALL_DIR/$FGFS_INSTALL_DIR
cd "$CBD"
mkdir -p "flightgear"
mkdir -p $INSTALL_DIR_FGFS/fgdata
if [[ "$(declare -p WHATTOBUILD)" =~ '['([0-9]+)']="FGFS"' || "$(declare -p WHATTOBUILD)" =~ '['([0-9]+)']="DATA"' ]]; then
echo "****************************************" | tee -a $LOGFILE
echo "************** FLIGHTGEAR **************" | tee -a $LOGFILE
echo "****************************************" | tee -a $LOGFILE
cd "$CBD"/flightgear
if [[ "$(declare -p WHATTOBUILD)" =~ '['([0-9]+)']="FGFS"' ]]; then
_gitDownload git://gitorious.org/fg/flightgear.git
if [ "$STABLE" = "STABLE" ]; then
_gitUpdate $FGSG_STABLE_GIT_BRANCH
else
_gitUpdate $FGSG_UNSTABLE_GIT_BRANCH
fi
if [ ! "$UPDATE" = "UPDATE" ]; then
if [ "$RECONFIGURE" = "y" ]; then
cd "$CBD"
mkdir -p build/flightgear
cd "$CBD"/build/flightgear
rm -f CMakeCache.txt
cmake -D CMAKE_BUILD_TYPE="Debug" \
-D ENABLE_RTI=OFF \
-D ENABLE_FLITE=ON \
-D CMAKE_INSTALL_PREFIX:PATH="$INSTALL_DIR_FGFS" \
-D CMAKE_PREFIX_PATH="$INSTALL_DIR_OSG;$INSTALL_DIR_PLIB;$INSTALL_DIR_SIMGEAR;$INSTALL_DIR_OPENRTI" \
../../flightgear 2>&1 | tee -a $LOGFILE
fi
fi
_make flightgear
fi
cd $INSTALL_DIR_FGFS/fgdata
if [[ "$(declare -p WHATTOBUILD)" =~ '['([0-9]+)']="DATA"' ]]; then
echo "****************************************" | tee -a $LOGFILE
echo "**************** DATA ******************" | tee -a $LOGFILE
echo "****************************************" | tee -a $LOGFILE
if [ ! "$UPDATE" = "UPDATE" ]; then
_gitDownload git://gitorious.org/fg/fgdata.git
if [ "$STABLE" = "STABLE" ]; then
_gitUpdate $FGSG_STABLE_GIT_BRANCH
else
_gitUpdate $FGDATA_UNSTABLE_GIT_BRANCH
fi
else
cd $INSTALL_DIR_FGFS/fgdata
_gitUpdate $FGDATA_UNSTABLE_GIT_BRANCH
fi
fi
cd "$CBD"
SCRIPT=run_fgfs.sh
echo "#!/bin/sh" > $SCRIPT
echo "cd \$(dirname \$0)" >> $SCRIPT
echo "cd $SUB_INSTALL_DIR/$FGFS_INSTALL_DIR/bin" >> $SCRIPT
echo "export LD_LIBRARY_PATH=../../$PLIB_INSTALL_DIR/lib:../../$OSG_INSTALL_DIR/lib:../../$SIMGEAR_INSTALL_DIR/lib:../../$OPENRTI_INSTALL_DIR/lib" >> $SCRIPT
echo "./fgfs --fg-root=\$PWD/../fgdata/ \$@" >> $SCRIPT
chmod 755 $SCRIPT
SCRIPT=run_fgfs_debug.sh
echo "#!/bin/sh" > $SCRIPT
echo "cd \$(dirname \$0)" >> $SCRIPT
echo "cd $SUB_INSTALL_DIR/$FGFS_INSTALL_DIR/bin" >> $SCRIPT
echo "export LD_LIBRARY_PATH=../../$PLIB_INSTALL_DIR/lib:../../$OSG_INSTALL_DIR/lib:../../$SIMGEAR_INSTALL_DIR/lib:../../$OPENRTI_INSTALL_DIR/lib" >> $SCRIPT
echo "gdb --directory="\$P1"/fgfs/source/src/ --args fgfs --fg-root=\$PWD/../fgdata/ \$@" >> $SCRIPT
chmod 755 $SCRIPT
SCRIPT=run_fgcom.sh
echo "#!/bin/sh" > $SCRIPT
echo "cd \$(dirname \$0)" >> $SCRIPT
echo "cd $SUB_INSTALL_DIR/$FGFS_INSTALL_DIR/bin" >> $SCRIPT
echo "./fgcom \$@" >> $SCRIPT
chmod 755 $SCRIPT
fi
#######################################################
# FGO!
#######################################################
FGO_INSTALL_DIR=fgo
INSTALL_DIR_FGO=$INSTALL_DIR/$FGO_INSTALL_DIR
cd "$CBD"
if [[ "$(declare -p WHATTOBUILD)" =~ '['([0-9]+)']="FGO"' ]]; then
echo "****************************************" | tee -a $LOGFILE
echo "***************** FGO ******************" | tee -a $LOGFILE
echo "****************************************" | tee -a $LOGFILE
if [ "$DOWNLOAD" = "y" ]; then
rm -rf fgo*.tar.gz
wget https://sites.google.com/site/erobosprojects/flightgear/add-ons/fgo/download/fgo-1.5.2.tar.gz -O fgo.tar.gz
cd install
tar zxvfh ../fgo.tar.gz
cd ..
fi
SCRIPT=run_fgo.sh
echo "#!/bin/sh" > $SCRIPT
echo "cd \$(dirname \$0)" >> $SCRIPT
echo "cd $SUB_INSTALL_DIR" >> $SCRIPT
echo "p=\$(pwd)" >> $SCRIPT
echo "cd $FGO_INSTALL_DIR" >> $SCRIPT
echo "export LD_LIBRARY_PATH=\$p/plib/lib:\$p/OpenSceneGraph/lib:\$p/simgear/lib" >> $SCRIPT
echo "python fgo" >> $SCRIPT
chmod 755 $SCRIPT
fi
#######################################################
# FGx
#######################################################
FGX_INSTALL_DIR=fgx
INSTALL_DIR_FGX=$INSTALL_DIR/$FGX_INSTALL_DIR
cd "$CBD"
mkdir -p "fgx"
if [[ "$(declare -p WHATTOBUILD)" =~ '['([0-9]+)']="FGX"' ]]; then
echo "****************************************" | tee -a $LOGFILE
echo "***************** FGX ******************" | tee -a $LOGFILE
echo "****************************************" | tee -a $LOGFILE
cd "$CBD"/fgx
_gitDownload git://gitorious.org/fgx/fgx.git fgx
_gitUpdate $FGX_STABLE_GIT_BRANCH
cd "$CBD"/fgx/src/
#Patch in order to pre-setting paths
cd resources/default/
cp x_default.ini x_default.ini.orig
cat x_default.ini | sed s/\\/usr\\/bin\\/fgfs/INSTALL_DIR_FGXMY_SLASH_HERE..MY_SLASH_HEREfgfsMY_SLASH_HEREbinMY_SLASH_HEREfgfs/g > tmp1
cat tmp1 | sed s/\\/usr\\/share\\/flightgear/INSTALL_DIR_FGXMY_SLASH_HERE..MY_SLASH_HEREfgfsMY_SLASH_HEREfgdata/g > tmp2
cat tmp2 | sed s/\\/usr\\/bin\\/terrasync/INSTALL_DIR_FGXMY_SLASH_HERE..MY_SLASH_HEREfgfsMY_SLASH_HEREbinMY_SLASH_HEREterrasync/g > tmp3
cat tmp3 | sed s/\\/usr\\/bin\\/fgcom/INSTALL_DIR_FGXMY_SLASH_HERE..MY_SLASH_HEREfgcomMY_SLASH_HEREbinMY_SLASH_HEREfgcom/g > tmp4
cat tmp4 | sed s/\\/usr\\/bin\\/js_demo/INSTALL_DIR_FGXMY_SLASH_HERE..MY_SLASH_HEREfgfsMY_SLASH_HEREbinMY_SLASH_HEREjs_demo/g > tmp5
INSTALL_DIR_FGX_NO_SLASHS=$(echo "$INSTALL_DIR_FGX" | sed -e 's/\//MY_SLASH_HERE/g')
cat tmp5 | sed s/INSTALL_DIR_FGX/"$INSTALL_DIR_FGX_NO_SLASHS"/g > tmp
cat tmp | sed s/MY_SLASH_HERE/\\//g > x_default.ini
rm tmp*
cd ..
if [ ! "$UPDATE" = "UPDATE" ]; then
if [ "$RECONFIGURE" = "y" ]; then
mkdir -p $INSTALL_DIR_FGX
cd $INSTALL_DIR_FGX
qmake ../../fgx/src
fi
fi
if [ "$COMPILE" = "y" ]; then
cd $INSTALL_DIR_FGX
echo "MAKE AND INSTALL FGX" >> $LOGFILE
echo "make $JOPTION $OOPTION " >> $LOGFILE
make $JOPTION $OOPTION | tee -a $LOGFILE
cd ..
fi
cd "$CBD"
SCRIPT=run_fgx.sh
echo "#!/bin/sh" > $SCRIPT
echo "cd \$(dirname \$0)" >> $SCRIPT
echo "cd $ " >> $SCRIPT
echo "p=\$(pwd)" >> $SCRIPT
echo "cd $FGX_INSTALL_DIR" >> $SCRIPT
echo "export LD_LIBRARY_PATH=\$p/plib/lib:\$p/OpenSceneGraph/lib:\$p/simgear/lib" >> $SCRIPT
echo "./fgx" >> $SCRIPT
chmod 755 $SCRIPT
fi
#######################################################
# FGRUN
#######################################################
FGRUN_INSTALL_DIR=fgrun
INSTALL_DIR_FGRUN=$INSTALL_DIR/$FGRUN_INSTALL_DIR
cd "$CBD"
mkdir -p "fgrun"
if [[ "$(declare -p WHATTOBUILD)" =~ '['([0-9]+)']="FGRUN"' ]]; then
echo "****************************************" | tee -a $LOGFILE
echo "**************** FGRUN *****************" | tee -a $LOGFILE
echo "****************************************" | tee -a $LOGFILE
cd "$CBD"/fgrun
_gitDownload git://gitorious.org/fg/fgrun.git
if [ "$STABLE" = "STABLE" ]; then
_gitUpdate $FGSG_STABLE_GIT_BRANCH
else
_gitUpdate $FGSG_UNSTABLE_GIT_BRANCH
fi
if [ ! "$UPDATE" = "UPDATE" ]; then
if [ "$RECONFIGURE" = "y" ]; then
cd "$CBD"
mkdir -p build/fgrun
cd "$CBD"/build/fgrun
rm -f ../../fgrun/CMakeCache.txt
cmake -D CMAKE_BUILD_TYPE="Release" \
-D CMAKE_INSTALL_PREFIX:PATH="$INSTALL_DIR_FGRUN" \
-D CMAKE_PREFIX_PATH="$INSTALL_DIR_OSG;$INSTALL_DIR_PLIB;$INSTALL_DIR_SIMGEAR" \
../../fgrun/ 2>&1 | tee -a $LOGFILE
fi
fi
_make fgrun
cd "$CBD"
SCRIPT=run_fgrun.sh
echo "#!/bin/sh" > $SCRIPT
echo "cd \$(dirname \$0)" >> $SCRIPT
echo "cd $SUB_INSTALL_DIR/$FGRUN_INSTALL_DIR/bin" >> $SCRIPT
echo "export LD_LIBRARY_PATH=../../$PLIB_INSTALL_DIR/lib:../../$OSG_INSTALL_DIR/lib:../../$SIMGEAR_INSTALL_DIR/lib" >> $SCRIPT
echo "./fgrun --fg-exe=\$PWD/../../$FGFS_INSTALL_DIR/bin/fgfs --fg-root=\$PWD/../../$FGFS_INSTALL_DIR/fgdata \$@" >> $SCRIPT
chmod 755 $SCRIPT
fi
#######################################################
# OPENRADAR
#######################################################
OR_INSTALL_DIR=openradar
INSTALL_DIR_OR=$INSTALL_DIR/$OR_INSTALL_DIR
cd "$CBD"
if [[ "$(declare -p WHATTOBUILD)" =~ '['([0-9]+)']="OPENRADAR"' ]]; then
echo "****************************************" | tee -a $LOGFILE
echo "************** OPENRADAR ***************" | tee -a $LOGFILE
echo "****************************************" | tee -a $LOGFILE
if [ "$DOWNLOAD" = "y" ]; then
wget $OR_STABLE_RELEASE -O OpenRadar.zip
cd install
unzip -o ../OpenRadar.zip
cd ..
fi
SCRIPT=run_openradar.sh
echo "#!/bin/sh" > $SCRIPT
echo "cd \$(dirname \$0)" >> $SCRIPT
echo "cd install/OpenRadar" >> $SCRIPT
echo "java -jar OpenRadar.jar" >> $SCRIPT
chmod 755 $SCRIPT
fi
#######################################################
#######################################################
# TERRAGEAR
#######################################################
#######################################################
TG_INSTALL_DIR=terragear
INSTALL_DIR_TG=$INSTALL_DIR/$TG_INSTALL_DIR
cd "$CBD"
mkdir -p "terragear"
if [[ "$(declare -p WHATTOBUILD)" =~ '['([0-9]+)']="TERRAGEAR"' ]]; then
echo "****************************************" | tee -a $LOGFILE
echo "*************** TERRAGEAR **************" | tee -a $LOGFILE
echo "****************************************" | tee -a $LOGFILE
cd "$CBD"/terragear
_gitDownload git://gitorious.org/fg/terragear.git
_gitUpdate $TG_STABLE_GIT_BRANCH
if [ ! "$UPDATE" = "UPDATE" ]; then
if [ "$RECONFIGURE" = "y" ]; then
cd "$CBD"
mkdir -p build/terragear
cd "$CBD"/build/terragear
rm -f CMakeCache.txt
cmake -DCMAKE_BUILD_TYPE="Debug" \
-DCMAKE_INSTALL_PREFIX:PATH="$INSTALL_DIR_TG" \
-DCMAKE_PREFIX_PATH="$INSTALL_DIR_SIMGEAR;$INSTALL_DIR_CGAL" \
../../terragear/ 2>&1 | tee -a $LOGFILE
fi
fi
_make terragear
cd "$CBD"
echo "#!/bin/sh" > run_tg-construct.sh
echo "cd $(dirname $0)" >> run_tg-construct.sh
echo "cd install/terragear/bin" >> run_tg-construct.sh
echo "export LD_LIBRARY_PATH=$INSTALL_DIR_SIMGEAR/lib:$INSTALL_DIR_CGAL/lib" >> run_tg-construct.sh
echo "./tg-construct \$@" >> run_tg-construct.sh
echo "#!/bin/sh" > run_ogr-decode.sh
echo "cd $(dirname $0)" >> run_ogr-decode.sh
echo "cd install/terragear/bin" >> run_ogr-decode.sh
echo "export LD_LIBRARY_PATH=$INSTALL_DIR_SIMGEAR/lib:$INSTALL_DIR_CGAL/lib" >> run_ogr-decode.sh
echo "./ogr-decode \$@" >> run_ogr-decode.sh
echo "#!/bin/sh" > run_genapts850.sh
echo "cd $(dirname $0)" >> run_genapts850.sh
echo "cd install/terragear/bin" >> run_genapts850.sh
echo "export LD_LIBRARY_PATH=$INSTALL_DIR_SIMGEAR/lib:$INSTALL_DIR_CGAL/lib" >> run_genapts850.sh
echo "./genapts850 \$@" >> run_genapts850.sh
fi
_logSep
#######################################################
#######################################################
# TERRAGEAR GUI
#######################################################
#######################################################
TGGUI_INSTALL_DIR=terrageargui
INSTALL_DIR_TGGUI=$INSTALL_DIR/$TGGUI_INSTALL_DIR
cd "$CBD"
mkdir -p "terrageargui"
if [[ "$(declare -p WHATTOBUILD)" =~ '['([0-9]+)']="TERRAGEARGUI"' ]]; then
echo "****************************************" | tee -a $LOGFILE
echo "************* TERRAGEAR GUI ************" | tee -a $LOGFILE
echo "****************************************" | tee -a $LOGFILE
cd "$CBD"/terrageargui
_gitDownload git://gitorious.org/fgscenery/terrageargui.git
_gitUpdate $TGGUI_STABLE_GIT_BRANCH
if [ ! "$UPDATE" = "UPDATE" ]; then
if [ "$RECONFIGURE" = "y" ]; then
cd "$CBD"
mkdir -p build/terrageargui
cd "$CBD"/build/terrageargui
rm -f ../../terrageargui/CMakeCache.txt
cmake -DCMAKE_BUILD_TYPE="Release" \
-DCMAKE_INSTALL_PREFIX="$INSTALL_DIR_TGGUI" ../../terrageargui 2>&1 | tee -a $LOGFILE
fi
fi
_make terrageargui
cd "$CBD"
# Fill TerraGear Root field
if [ ! -f ~/.config/TerraGear/TerraGearGUI.conf ]; then
echo "Fill TerraGear Root field" >> $LOGFILE
echo "[paths]" > TerraGearGUI.conf
echo "terragear=$INSTALL_DIR_TG/bin" >> TerraGearGUI.conf
mkdir -p ~/.config/TerraGear
mv TerraGearGUI.conf ~/.config/TerraGear
fi
echo "Create run_terrageargui.sh" >> $LOGFILE
echo "#!/bin/sh" > run_terrageargui.sh
echo "cd \$(dirname \$0)" >> run_terrageargui.sh
echo "cd install/terrageargui/bin" >> run_terrageargui.sh
echo "export LD_LIBRARY_PATH=$INSTALL_DIR_SIMGEAR/lib:$INSTALL_DIR_CGAL/lib" >> run_terrageargui.sh
echo "./TerraGUI \$@" >> run_terrageargui.sh
fi
echo "download_and_compile.sh has finished to work"
cd "$CBD"