Guest User

download_and_compile.sh

a guest
Mar 20th, 2015
352
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 29.61 KB | None | 0 0
  1. #!/bin/bash
  2. #* Written by Francesco Angelo Brisa, started January 2008.
  3. #
  4. # Copyright (C) 2013 Francesco Angelo Brisa
  5. #
  6. # This program is free software: you can redistribute it and/or modify
  7. # it under the terms of the GNU General Public License as published by
  8. # the Free Software Foundation, either version 3 of the License, or
  9. # (at your option) any later version.
  10. #
  11. # This program is distributed in the hope that it will be useful,
  12. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. # GNU General Public License for more details.
  15. #
  16. # You should have received a copy of the GNU General Public License
  17. # along with this program.  If not, see <http://www.gnu.org/licenses/>.
  18.  
  19. VERSION="2.28-OSG-GIT"
  20.  
  21. #######################################################
  22. # THANKS TO
  23. #######################################################
  24. # Special thanks to Alessandro Garosi for FGComGui and
  25. # other patches
  26. # Thanks to "Pat Callahan" for patches for fgrun compilation
  27. # Thanks to "F-JJTH" for bug fixes and suggestions
  28. # Thanks again to "F-JJTH" for OpenRTI and FGX
  29. # Thanks to André, ( taureau89_9 ) for debian stable packages fixes
  30.  
  31. LOGFILE=compilation_log.txt
  32. WHATTOBUILD=
  33. #AVAILABLE VALUES: CGAL PLIB OSG SIMGEAR FGFS DATA FGO FGX FGRUN OPENRTI OPENRADAR TERRAGEAR TERRAGEARGUI
  34. WHATTOBUILDALL=( CGAL PLIB OSG SIMGEAR FGFS DATA FGRUN OPENRTI TERRAGEAR TERRAGEARGUI)
  35. UPDATE=
  36. STABLE=
  37. APT_GET_UPDATE="y"
  38. DOWNLOAD_PACKAGES="y"
  39. COMPILE="y"
  40. RECONFIGURE="y"
  41. DOWNLOAD="y"
  42. JOPTION=""
  43. OOPTION=""
  44. DEBUG=""
  45.  
  46. while getopts "suhc:p:a:d:r:j:O:i" OPTION; do
  47.      case $OPTION in
  48.          s) STABLE="STABLE" ;;
  49.          u) UPDATE="UPDATE" ;;
  50.          h) HELP="HELP" ;;
  51.          a) APT_GET_UPDATE=$OPTARG ;;
  52.          c) COMPILE=$OPTARG ;;
  53.          p) DOWNLOAD_PACKAGES=$OPTARG ;;
  54.          d) DOWNLOAD=$OPTARG ;;
  55.          r) RECONFIGURE=$OPTARG ;;
  56.          j) JOPTION=" -j"$OPTARG" " ;;
  57.      O) OOPTION=" -O"$OPTARG" " ;;
  58.          ?) HELP="HELP" ;;
  59.      esac
  60. done
  61. shift $(($OPTIND - 1))
  62.  
  63. if [ ! "$#" = "0" ]; then
  64.     for arg in $*
  65.     do
  66.         if [ "$arg" == "UPDATE" ]; then
  67.             UPDATE="UPDATE"
  68.         else
  69.             WHATTOBUILD=( "${WHATTOBUILD[@]}" "$arg" )
  70.         fi
  71.     done
  72. else
  73.     WHATTOBUILD=( "${WHATTOBUILDALL[@]}" )
  74. fi
  75.  
  76. if [[ "$(declare -p WHATTOBUILD)" =~ '['([0-9]+)']="ALL"' ]]; then
  77.     WHATTOBUILD=( "${WHATTOBUILDALL[@]}" )
  78. fi
  79.  
  80. #############################################################"
  81. # Some helper for redundant task
  82.  
  83. function _logSep(){
  84.     echo "***********************************" >> $LOGFILE
  85. }
  86.  
  87. function _gitUpdate(){
  88.     if [ "$DOWNLOAD" != "y" ]; then
  89.         return
  90.     fi
  91.     branch=$1
  92.     set +e
  93.     git diff --exit-code 2>&1 > /dev/null
  94.     if [ $? != 1 ]; then
  95.         set -e
  96.         git checkout -f $branch
  97.         git pull -r
  98.     else
  99.         set -e
  100.         git stash save -u -q
  101.         git checkout -f $branch
  102.         git pull -r
  103.         git stash pop -q
  104.     fi
  105. }
  106.  
  107. function _gitDownload(){
  108.     if [ "$DOWNLOAD" != "y" ]; then
  109.         return
  110.     fi
  111.     repo=$1
  112.     if [ -f "README" -o -f "README.txt" ]; then
  113.         echo "$repo exists already"
  114.     else
  115.         git clone $repo .
  116.     fi
  117. }
  118.  
  119. function _make(){
  120.     if [ "$COMPILE" = "y" ]; then
  121.             pkg=$1
  122.         cd "$CBD"/build/$pkg
  123.         echo "MAKE $pkg" >> $LOGFILE
  124.         make $JOPTION $OOPTION 2>&1 | tee -a $LOGFILE
  125.         echo "INSTALL $pkg" >> $LOGFILE
  126.         make install 2>&1 | tee -a $LOGFILE
  127.     fi
  128. }
  129.  
  130. #######################################################
  131. OSG_STABLE_GIT_BRANCH="OpenSceneGraph-3.2"
  132. PLIB_STABLE_GIT_BRANCH="master"
  133. # common stable branch for flightgear, simgear and fgdata
  134. FGSG_STABLE_GIT_BRANCH="release/3.2.0"
  135. OPENRTI_STABLE_GIT_BRANCH="release-0.5"
  136. # unstable branch: next for sg/fg, master for fgdata
  137. FGSG_UNSTABLE_GIT_BRANCH="next"
  138. FGDATA_UNSTABLE_GIT_BRANCH="next"
  139. OPENRTI_UNSTABLE_GIT_BRANCH="master"
  140. #OpenRadar
  141. OR_STABLE_RELEASE="http://wagnerw.de/OpenRadar.zip"
  142. #TerraGear
  143. TG_STABLE_GIT_BRANCH="scenery/ws2.0"
  144. TGGUI_STABLE_GIT_BRANCH="master"
  145. CGAL_PACKAGE="https://gforge.inria.fr/frs/download.php/32183/CGAL-4.2-beta1.tar.gz"
  146.  
  147. #######################################################
  148. # set script to stop if an error occours
  149. set -e
  150.  
  151. if [ "$HELP" = "HELP" ]; then
  152.     echo "$0 Version $VERSION"
  153.     echo "Usage:"
  154.     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]"
  155.     echo "* without options or with ALL it recompiles the content of the WHATTOBUILDALL variable."
  156.     echo "* Feel you free to customize the WHATTOBUILDALL variable available on the top of this script"
  157.     echo "* Adding UPDATE it does not rebuild all (faster but to use only after one successfull first compile)"
  158.     echo "Switches:"
  159.     echo "* -u  such as using UPDATE"
  160.     echo "* -h  show this help"
  161.     echo "* -e  compile FlightGear with --with-eventinput option (experimental)"
  162.     echo "* -g  compile with debug info for gcc"
  163.     echo "* -a y|n  y=do an apt-get update n=skip apt-get update                        default=y"
  164.     echo "* -p y|n  y=download packages n=skip download packages                        default=y"
  165.     echo "* -c y|n  y=compile programs  n=do not compile programs                       default=y"
  166.     echo "* -d y|n  y=fetch programs from internet (cvs, svn, etc...)  n=do not fetch   default=y"
  167.     echo "* -j X    Add -jX to the make compilation                                     default=None"
  168.     echo "* -O X    Add -OX to the make compilation                         default=None"
  169.     echo "* -r y|n  y=reconfigure programs before compiling them  n=do not reconfigure  default=y"
  170.     echo "* -s compile only last stable known versions                  default=y"
  171.     exit
  172. fi
  173.  
  174. #######################################################
  175. #######################################################
  176. # Warning about compilation time and size
  177. # Idea from Jester
  178. echo "**************************************"
  179. echo "*                                    *"
  180. echo "* Warning, the compilation process   *"
  181. echo "* is going to use 12 or more Gbytes  *"
  182. echo "* of space and at least a couple of  *"
  183. echo "* hours to download and build FG.    *"
  184. echo "*                                    *"
  185. echo "* Please, be patient ......          *"
  186. echo "*                                    *"
  187. echo "**************************************"
  188.  
  189. #######################################################
  190. #######################################################
  191. # Debian 4.0rX (Etch) backports.org
  192. # From D-HUND
  193. ISSUE=$(cat /etc/issue)
  194. if [ "$ISSUE" = "Debian GNU/Linux 4.0 \n \l" ]; then
  195.     clear
  196.     echo "*****************************************************"
  197.     echo "*    Note to users of Debian Etch (Stable 4.0rX)    *"
  198.     echo "*****************************************************"
  199.     echo
  200.     echo "Since autumn 2008 it is not possible anymore to easily install fgfs"
  201.     echo "cvs by using standard repositry. Therefore it is necessary to have"
  202.     echo "backports.org in the apt sources.list to run this script."
  203.     echo
  204.     echo "If you're using synaptic you may follow these steps:"
  205.     echo "  - Open synaptics menu 'Settings' --> 'Repositories'"
  206.     echo "  - Click 'Add' and do"
  207.     echo "      select 'Binaries (deb)'"
  208.     echo "      enter Address:      'www.backports.org/backports.org/'"
  209.     echo "      enter Distribution: 'etch-backports'"
  210.     echo "      enter Section(s):   'main contrib non-free'"
  211.     echo "  - Close Repositries window using 'OK'"
  212.     echo "  - Click 'Reload' to update database."
  213.     echo
  214.     echo "If you have backports.org in your apt-repositries and want to get"
  215.     echo "rid of this message have a look at the script."
  216.     echo -n "[c] to continue or just [ENTER] to exit script: "
  217.     if [ "$(read GOON)" != "c" ]; then
  218.         echo "Script aborted!"
  219.         exit 0
  220.     fi
  221. fi
  222. #######################################################
  223. #######################################################
  224.  
  225. echo $0 $* > $LOGFILE
  226. echo "APT_GET_UPDATE=$APT_GET_UPDATE" >> $LOGFILE
  227. echo "DOWNLOAD_PACKAGES=$DOWNLOAD_PACKAGES" >> $LOGFILE
  228. echo "COMPILE=$COMPILE" >> $LOGFILE
  229. echo "RECONFIGURE=$RECONFIGURE" >> $LOGFILE
  230. echo "DOWNLOAD=$DOWNLOAD" >> $LOGFILE
  231. echo "JOPTION=$JOPTION" >> $LOGFILE
  232. echo "OOPTION=$OOPTION" >> $LOGFILE
  233. echo "DEBUG=$DEBUG" >> $LOGFILE
  234. _logSep
  235.  
  236. # discovering linux
  237. if [ -e /etc/lsb-release ]; then
  238.     . /etc/lsb-release
  239. fi
  240.  
  241. 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"
  242.  
  243. UBUNTU_PACKAGES="freeglut3-dev libapr1-dev libfltk1.3-dev libfltk1.3"
  244. DEBIAN_PACKAGES_STABLE="freeglut3-dev libjpeg8-dev libjpeg8 libfltk1.1-dev libfltk1.1"
  245. DEBIAN_PACKAGES_TESTING="freeglut3-dev libjpeg8-dev libjpeg8 libfltk1.3-dev libfltk1.3"
  246. DEBIAN_PACKAGES_UNSTABLE="freeglut3-dev libjpeg8-dev libjpeg8 libfltk1.3-dev libfltk1.3"
  247.  
  248. # checking linux distro and version to differ needed packages
  249. if [ "$DISTRIB_ID" = "Ubuntu" -o "$DISTRIB_ID" = "LinuxMint" ]; then
  250.     echo "$DISTRIB_ID $DISTRIB_RELEASE" >> $LOGFILE
  251.     DISTRO_PACKAGES="$DISTRO_PACKAGES $UBUNTU_PACKAGES"
  252. else
  253.     echo "DEBIAN I SUPPOSE" >> $LOGFILE
  254.     DEBIAN_PACKAGES=$DEBIAN_PACKAGES_STABLE
  255.     if [ ! "$(apt-cache search libfltk1.3)" = "" ]; then
  256.       DEBIAN_PACKAGES=$DEBIAN_PACKAGES_TESTING
  257.     fi
  258.     DISTRO_PACKAGES="$DISTRO_PACKAGES $DEBIAN_PACKAGES"
  259. fi
  260. _logSep
  261.  
  262. if [ "$DOWNLOAD_PACKAGES" = "y" ]; then
  263.     echo -n "PACKAGE INSTALLATION ... " >> $LOGFILE
  264.     LIBOPENALPACKAGE=$(apt-cache search libopenal | grep "libopenal. " | sed s/\ .*//)
  265.     DISTRO_PACKAGES=$DISTRO_PACKAGES" "$LIBOPENALPACKAGE
  266.     # checking linux distro and version to differ needed packages
  267.     if [ "$DISTRIB_ID" = "Ubuntu" -o "$DISTRIB_ID" = "LinuxMint" ]; then
  268.         if [ "$APT_GET_UPDATE" = "y" ]; then
  269.             echo "Asking your password to perform an apt-get update"
  270.             sudo apt-get update
  271.         fi
  272.         echo "Asking your password to perform an apt-get install ... "
  273.         sudo apt-get install $DISTRO_PACKAGES
  274.     else
  275.         if [ "$APT_GET_UPDATE" = "y" ]; then
  276.             echo "Asking root password to perform an apt-get update"
  277.             su -c "apt-get update"
  278.         fi
  279.         echo "Asking root password to perform an apt-get install ... "
  280.         su -c "apt-get install $DISTRO_PACKAGES"
  281.     fi
  282. fi
  283.  
  284. CBD=$(pwd)
  285. LOGFILE=$CBD/$LOGFILE
  286. echo "DIRECTORY= $CBD" >> $LOGFILE
  287. _logSep
  288. mkdir -p install
  289. SUB_INSTALL_DIR=install
  290. INSTALL_DIR=$CBD/$SUB_INSTALL_DIR
  291. cd "$CBD"
  292. mkdir -p build
  293.  
  294. #######################################################
  295. # BACKWARD COMPATIBILITY WITH 1.9.14a
  296. #######################################################
  297.  
  298. if [ -d "$CBD"/fgfs/flightgear ]; then
  299.     echo "Move to the new folder structure"
  300.     rm -rf OpenSceneGraph
  301.     rm -rf plib
  302.     rm -rf build
  303.     rm -rf install/fgo
  304.     rm -rf install/fgx
  305.     rm -rf install/osg
  306.     rm -rf install/plib
  307.     rm -rf install/simgear
  308.     rm -f *.log*
  309.     rm -f run_*.sh
  310.     mv openrti/openrti tmp && rm -rf openrti && mv tmp openrti
  311.     mv fgfs/flightgear tmp && rm -rf fgfs && mv tmp flightgear
  312.     mv simgear/simgear tmp && rm -rf simgear && mv tmp simgear
  313.     mkdir -p install/flightgear && mv install/fgfs/fgdata install/flightgear/fgdata
  314.     echo "Done"
  315. fi
  316.  
  317. #######################################################
  318. # PLIB
  319. #######################################################
  320. PLIB_INSTALL_DIR=plib
  321. INSTALL_DIR_PLIB=$INSTALL_DIR/$PLIB_INSTALL_DIR
  322. cd "$CBD"
  323. mkdir -p "plib"
  324.  
  325. if [[ "$(declare -p WHATTOBUILD)" =~ '['([0-9]+)']="PLIB"' ]]; then
  326.     if [ ! "$UPDATE" = "UPDATE" ]; then
  327.         echo "****************************************" | tee -a $LOGFILE
  328.         echo "**************** PLIB ******************" | tee -a $LOGFILE
  329.         echo "****************************************" | tee -a $LOGFILE
  330.  
  331.         cd "$CBD"/plib
  332.         _gitDownload git://git.code.sf.net/p/libplib/code libplib
  333.         _gitUpdate $PLIB_STABLE_GIT_BRANCH
  334.  
  335.         if [ "$RECONFIGURE" = "y" ]; then
  336.             cd "$CBD"
  337.             mkdir -p build/plib
  338.             echo "CONFIGURING plib" >> $LOGFILE
  339.             cd "$CBD"/build/plib
  340.             cmake -DCMAKE_INSTALL_PREFIX:PATH="$INSTALL_DIR_PLIB" ../../plib
  341.         fi
  342.  
  343.         _make plib
  344.     fi
  345. fi
  346.  
  347. #######################################################
  348. # CGAL
  349. #######################################################
  350. CGAL_INSTALL_DIR=cgal
  351. INSTALL_DIR_CGAL=$INSTALL_DIR/$CGAL_INSTALL_DIR
  352. cd "$CBD"
  353.  
  354. if [[ "$(declare -p WHATTOBUILD)" =~ '['([0-9]+)']="CGAL"' ]]; then
  355.     echo "****************************************" | tee -a $LOGFILE
  356.     echo "***************** CGAL *****************" | tee -a $LOGFILE
  357.     echo "****************************************" | tee -a $LOGFILE
  358.  
  359.     if [ ! -d "cgal" ]; then
  360.         echo "Download CGAL... $CGAL_PACKAGE"
  361.         wget -O cgal.tar.gz $CGAL_PACKAGE
  362.         tar -zxf cgal.tar.gz
  363.         mv CGAL* cgal
  364.     fi
  365.  
  366.     if [ ! "$UPDATE" = "UPDATE" ]; then
  367.         if [ "$RECONFIGURE" = "y" ]; then
  368.             cd "$CBD"
  369.             mkdir -p build/cgal
  370.             cd "$CBD"/build/cgal
  371.             echo "CONFIGURING CGAL ... " >> $LOGFILE
  372.             cmake -DCMAKE_INSTALL_PREFIX:PATH="$INSTALL_DIR_CGAL" ../../cgal/ 2>&1 | tee -a $LOGFILE
  373.             echo "CONFIGURING CGAL DONE" >> $LOGFILE
  374.         fi
  375.     fi
  376.  
  377.     _make cgal
  378. fi
  379.  
  380. #######################################################
  381. # OpenSceneGraph
  382. #######################################################
  383. OSG_INSTALL_DIR=openscenegraph
  384. INSTALL_DIR_OSG=$INSTALL_DIR/$OSG_INSTALL_DIR
  385. cd "$CBD"
  386. mkdir -p "openscenegraph"
  387.  
  388. if [[ "$(declare -p WHATTOBUILD)" =~ '['([0-9]+)']="OSG"' ]]; then
  389.     echo "****************************************" | tee -a $LOGFILE
  390.     echo "**************** OSG *******************" | tee -a $LOGFILE
  391.     echo "****************************************" | tee -a $LOGFILE
  392.  
  393.     cd "$CBD"/openscenegraph
  394.     _gitDownload http://github.com/openscenegraph/osg.git
  395.  
  396.     _gitUpdate $OSG_STABLE_GIT_BRANCH
  397.  
  398.     if [ ! "$UPDATE" = "UPDATE" ]; then
  399.         if [ "$RECONFIGURE" = "y" ]; then
  400.             cd "$CBD"
  401.             mkdir -p build/openscenegraph
  402.             cd "$CBD"/build/openscenegraph
  403.             rm -f CMakeCache.txt
  404.             cmake   -DCMAKE_BUILD_TYPE="Release" \
  405.                 -DCMAKE_INSTALL_PREFIX:PATH="$INSTALL_DIR_OSG" ../../openscenegraph/ 2>&1 | tee -a $LOGFILE
  406.         fi
  407.     fi
  408.  
  409.     _make openscenegraph
  410.  
  411.     #FIX FOR 64 BIT COMPILATION
  412.     if [ -d "$INSTALL_DIR_OSG/lib64" ]; then
  413.         if [ -L "$INSTALL_DIR_OSG/lib" ]; then
  414.             echo "link already done"
  415.         else
  416.             ln -s "$INSTALL_DIR_OSG/lib64" "$INSTALL_DIR_OSG/lib"
  417.         fi
  418.     fi
  419. fi
  420.  
  421. #######################################################
  422. # OPENRTI
  423. #######################################################
  424. OPENRTI_INSTALL_DIR=openrti
  425. INSTALL_DIR_OPENRTI=$INSTALL_DIR/$OPENRTI_INSTALL_DIR
  426. cd "$CBD"
  427. mkdir -p "openrti"
  428.  
  429. if [[ "$(declare -p WHATTOBUILD)" =~ '['([0-9]+)']="OPENRTI"' ]]; then
  430.     echo "****************************************" | tee -a $LOGFILE
  431.     echo "**************** OPENRTI ***************" | tee -a $LOGFILE
  432.     echo "****************************************" | tee -a $LOGFILE
  433.  
  434.     cd "$CBD"/openrti
  435.     _gitDownload git://git.code.sf.net/p/openrti/OpenRTI openrti
  436.  
  437.     if [ "$STABLE" = "STABLE" ]; then
  438.         _gitUpdate $OPENRTI_STABLE_GIT_BRANCH
  439.     else
  440.         _gitUpdate $OPENRTI_UNSTABLE_GIT_BRANCH
  441.     fi
  442.  
  443.     if [ ! "$UPDATE" = "UPDATE" ]; then
  444.         if [ "$RECONFIGURE" = "y" ]; then
  445.             cd "$CBD"
  446.             mkdir -p build/openrti
  447.             cd "$CBD"/build/openrti
  448.             rm -f CMakeCache.txt
  449.             cmake   -DCMAKE_BUILD_TYPE="Release" \
  450.                 -DCMAKE_INSTALL_PREFIX:PATH="$INSTALL_DIR_OPENRTI" ../../openrti 2>&1 | tee -a $LOGFILE
  451.         fi
  452.     fi
  453.    
  454.     _make openrti
  455. fi
  456.  
  457. #######################################################
  458. # SIMGEAR
  459. #######################################################
  460. SIMGEAR_INSTALL_DIR=simgear
  461. INSTALL_DIR_SIMGEAR=$INSTALL_DIR/$SIMGEAR_INSTALL_DIR
  462. cd "$CBD"
  463. mkdir -p "simgear"
  464.  
  465. if [[ "$(declare -p WHATTOBUILD)" =~ '['([0-9]+)']="SIMGEAR"' ]]; then
  466.     echo "****************************************" | tee -a $LOGFILE
  467.     echo "**************** SIMGEAR ***************" | tee -a $LOGFILE
  468.     echo "****************************************" | tee -a $LOGFILE
  469.  
  470.     cd "$CBD"/simgear
  471.     _gitDownload git://git.code.sf.net/p/flightgear/simgear
  472.  
  473.     if [ "$STABLE" = "STABLE" ]; then
  474.         _gitUpdate $FGSG_STABLE_GIT_BRANCH
  475.     else
  476.         _gitUpdate $FGSG_UNSTABLE_GIT_BRANCH
  477.     fi
  478.    
  479.     if [ ! "$UPDATE" = "UPDATE" ]; then
  480.         if [ "$RECONFIGURE" = "y" ]; then
  481.             cd "$CBD"
  482.             mkdir -p build/simgear
  483.             cd "$CBD"/build/simgear
  484.             rm -f CMakeCache.txt
  485.             cmake   -D CMAKE_BUILD_TYPE="Release" \
  486.                 -D ENABLE_RTI=OFF \
  487.                 -D CMAKE_INSTALL_PREFIX:PATH="$INSTALL_DIR_SIMGEAR" \
  488.                 -D CMAKE_PREFIX_PATH="$INSTALL_DIR_OSG;$INSTALL_DIR_OPENRTI;$INSTALL_DIR_PLIB" \
  489.                 ../../simgear 2>&1 | tee -a $LOGFILE
  490.         fi
  491.     fi
  492.    
  493.     _make simgear
  494. fi
  495.  
  496. #######################################################
  497. # FGFS
  498. #######################################################
  499. FGFS_INSTALL_DIR=flightgear
  500. INSTALL_DIR_FGFS=$INSTALL_DIR/$FGFS_INSTALL_DIR
  501. cd "$CBD"
  502. mkdir -p "flightgear"
  503. mkdir -p $INSTALL_DIR_FGFS/fgdata
  504.  
  505. if [[ "$(declare -p WHATTOBUILD)" =~ '['([0-9]+)']="FGFS"' || "$(declare -p WHATTOBUILD)" =~ '['([0-9]+)']="DATA"' ]]; then
  506.     echo "****************************************" | tee -a $LOGFILE
  507.     echo "************** FLIGHTGEAR **************" | tee -a $LOGFILE
  508.     echo "****************************************" | tee -a $LOGFILE
  509.  
  510.     cd "$CBD"/flightgear
  511.     if [[ "$(declare -p WHATTOBUILD)" =~ '['([0-9]+)']="FGFS"' ]]; then
  512.         _gitDownload git://git.code.sf.net/p/flightgear/flightgear
  513.  
  514.         if [ "$STABLE" = "STABLE" ]; then
  515.             _gitUpdate $FGSG_STABLE_GIT_BRANCH
  516.         else
  517.             _gitUpdate $FGSG_UNSTABLE_GIT_BRANCH
  518.         fi
  519.  
  520.         if [ ! "$UPDATE" = "UPDATE" ];  then
  521.             if [ "$RECONFIGURE" = "y" ]; then
  522.                             cd "$CBD"
  523.                     mkdir -p build/flightgear
  524.                             cd "$CBD"/build/flightgear
  525.                 rm -f CMakeCache.txt
  526.                 cmake   -D CMAKE_BUILD_TYPE="Debug" \
  527.                     -D ENABLE_RTI=OFF \
  528.                     -D ENABLE_FLITE=ON \
  529.                     -D CMAKE_INSTALL_PREFIX:PATH="$INSTALL_DIR_FGFS" \
  530.                     -D CMAKE_PREFIX_PATH="$INSTALL_DIR_OSG;$INSTALL_DIR_PLIB;$INSTALL_DIR_SIMGEAR;$INSTALL_DIR_OPENRTI" \
  531.                     ../../flightgear 2>&1 | tee -a $LOGFILE
  532.             fi
  533.         fi
  534.  
  535.         _make flightgear
  536.     fi
  537.  
  538.     cd $INSTALL_DIR_FGFS/fgdata
  539.     if [[ "$(declare -p WHATTOBUILD)" =~ '['([0-9]+)']="DATA"' ]]; then
  540.         echo "****************************************" | tee -a $LOGFILE
  541.         echo "**************** DATA ******************" | tee -a $LOGFILE
  542.         echo "****************************************" | tee -a $LOGFILE
  543.  
  544.         if [ ! "$UPDATE" = "UPDATE" ]; then
  545.             _gitDownload git://git.code.sf.net/p/flightgear/fgdata
  546.  
  547.             if [ "$STABLE" = "STABLE" ]; then
  548.                 _gitUpdate $FGSG_STABLE_GIT_BRANCH
  549.             else
  550.                 _gitUpdate $FGDATA_UNSTABLE_GIT_BRANCH
  551.             fi
  552.         else
  553.             cd $INSTALL_DIR_FGFS/fgdata
  554.             _gitUpdate $FGDATA_UNSTABLE_GIT_BRANCH
  555.         fi
  556.     fi
  557.     cd "$CBD"
  558.  
  559.     SCRIPT=run_fgfs.sh
  560.     echo "#!/bin/sh" > $SCRIPT
  561.     echo "cd \$(dirname \$0)" >> $SCRIPT
  562.     echo "cd $SUB_INSTALL_DIR/$FGFS_INSTALL_DIR/bin" >> $SCRIPT
  563.     echo "export LD_LIBRARY_PATH=../../$PLIB_INSTALL_DIR/lib:../../$OSG_INSTALL_DIR/lib:../../$SIMGEAR_INSTALL_DIR/lib:../../$OPENRTI_INSTALL_DIR/lib" >> $SCRIPT
  564.     echo "./fgfs --fg-root=\$PWD/../fgdata/ \$@" >> $SCRIPT
  565.     chmod 755 $SCRIPT
  566.  
  567.     SCRIPT=run_fgfs_debug.sh
  568.     echo "#!/bin/sh" > $SCRIPT
  569.     echo "cd \$(dirname \$0)" >> $SCRIPT
  570.     echo "cd $SUB_INSTALL_DIR/$FGFS_INSTALL_DIR/bin" >> $SCRIPT
  571.     echo "export LD_LIBRARY_PATH=../../$PLIB_INSTALL_DIR/lib:../../$OSG_INSTALL_DIR/lib:../../$SIMGEAR_INSTALL_DIR/lib:../../$OPENRTI_INSTALL_DIR/lib" >> $SCRIPT
  572.     echo "gdb  --directory="\$P1"/fgfs/source/src/ --args fgfs --fg-root=\$PWD/../fgdata/ \$@" >> $SCRIPT
  573.     chmod 755 $SCRIPT
  574.  
  575.     SCRIPT=run_fgcom.sh
  576.     echo "#!/bin/sh" > $SCRIPT
  577.     echo "cd \$(dirname \$0)" >> $SCRIPT
  578.     echo "cd $SUB_INSTALL_DIR/$FGFS_INSTALL_DIR/bin" >> $SCRIPT
  579.     echo "./fgcom \$@" >> $SCRIPT
  580.     chmod 755 $SCRIPT
  581. fi
  582.  
  583. #######################################################
  584. # FGO!
  585. #######################################################
  586. FGO_INSTALL_DIR=fgo
  587. INSTALL_DIR_FGO=$INSTALL_DIR/$FGO_INSTALL_DIR
  588. cd "$CBD"
  589.  
  590. if [[ "$(declare -p WHATTOBUILD)" =~ '['([0-9]+)']="FGO"' ]]; then
  591.     echo "****************************************" | tee -a $LOGFILE
  592.     echo "***************** FGO ******************" | tee -a $LOGFILE
  593.     echo "****************************************" | tee -a $LOGFILE
  594.  
  595.     if [ "$DOWNLOAD" = "y" ]; then
  596.         rm -rf fgo*.tar.gz
  597.         wget https://sites.google.com/site/erobosprojects/flightgear/add-ons/fgo/download/fgo-1.5.2.tar.gz -O fgo.tar.gz
  598.         cd install
  599.         tar zxvfh ../fgo.tar.gz
  600.         cd ..
  601.     fi
  602.  
  603.     SCRIPT=run_fgo.sh
  604.     echo "#!/bin/sh" > $SCRIPT
  605.     echo "cd \$(dirname \$0)" >> $SCRIPT
  606.     echo "cd $SUB_INSTALL_DIR" >> $SCRIPT
  607.     echo "p=\$(pwd)" >> $SCRIPT
  608.     echo "cd $FGO_INSTALL_DIR" >> $SCRIPT
  609.         echo "export LD_LIBRARY_PATH=\$p/plib/lib:\$p/OpenSceneGraph/lib:\$p/simgear/lib"  >> $SCRIPT
  610.     echo "python fgo" >> $SCRIPT
  611.     chmod 755 $SCRIPT
  612. fi
  613.  
  614. #######################################################
  615. # FGx
  616. #######################################################
  617. FGX_INSTALL_DIR=fgx
  618. INSTALL_DIR_FGX=$INSTALL_DIR/$FGX_INSTALL_DIR
  619. cd "$CBD"
  620. mkdir -p "fgx"
  621.  
  622. if [[ "$(declare -p WHATTOBUILD)" =~ '['([0-9]+)']="FGX"' ]]; then
  623.     echo "****************************************" | tee -a $LOGFILE
  624.     echo "***************** FGX ******************" | tee -a $LOGFILE
  625.     echo "****************************************" | tee -a $LOGFILE
  626.  
  627.     cd "$CBD"/fgx
  628.     _gitDownload git://gitorious.org/fgx/fgx.git fgx
  629.  
  630.     _gitUpdate $FGX_STABLE_GIT_BRANCH
  631.  
  632.     cd "$CBD"/fgx/src/
  633.     #Patch in order to pre-setting paths
  634.     cd resources/default/
  635.     cp x_default.ini x_default.ini.orig
  636.     cat x_default.ini | sed s/\\/usr\\/bin\\/fgfs/INSTALL_DIR_FGXMY_SLASH_HERE..MY_SLASH_HEREfgfsMY_SLASH_HEREbinMY_SLASH_HEREfgfs/g > tmp1
  637.     cat tmp1 | sed s/\\/usr\\/share\\/flightgear/INSTALL_DIR_FGXMY_SLASH_HERE..MY_SLASH_HEREfgfsMY_SLASH_HEREfgdata/g > tmp2
  638.     cat tmp2 | sed s/\\/usr\\/bin\\/terrasync/INSTALL_DIR_FGXMY_SLASH_HERE..MY_SLASH_HEREfgfsMY_SLASH_HEREbinMY_SLASH_HEREterrasync/g > tmp3
  639.     cat tmp3 | sed s/\\/usr\\/bin\\/fgcom/INSTALL_DIR_FGXMY_SLASH_HERE..MY_SLASH_HEREfgcomMY_SLASH_HEREbinMY_SLASH_HEREfgcom/g > tmp4
  640.     cat tmp4 | sed s/\\/usr\\/bin\\/js_demo/INSTALL_DIR_FGXMY_SLASH_HERE..MY_SLASH_HEREfgfsMY_SLASH_HEREbinMY_SLASH_HEREjs_demo/g > tmp5
  641.     INSTALL_DIR_FGX_NO_SLASHS=$(echo "$INSTALL_DIR_FGX" | sed -e 's/\//MY_SLASH_HERE/g')
  642.     cat tmp5 | sed s/INSTALL_DIR_FGX/"$INSTALL_DIR_FGX_NO_SLASHS"/g > tmp
  643.     cat tmp | sed s/MY_SLASH_HERE/\\//g > x_default.ini
  644.     rm tmp*
  645.     cd ..
  646.  
  647.     if [ ! "$UPDATE" = "UPDATE" ]; then
  648.         if [ "$RECONFIGURE" = "y" ]; then
  649.             mkdir -p $INSTALL_DIR_FGX
  650.             cd $INSTALL_DIR_FGX
  651.             qmake ../../fgx/src
  652.         fi
  653.     fi
  654.    
  655.     if [ "$COMPILE" = "y" ]; then
  656.         cd $INSTALL_DIR_FGX
  657.         echo "MAKE AND INSTALL FGX" >> $LOGFILE
  658.         echo "make $JOPTION $OOPTION " >> $LOGFILE
  659.         make $JOPTION $OOPTION | tee -a $LOGFILE
  660.         cd ..
  661.     fi
  662.     cd "$CBD"
  663.  
  664.     SCRIPT=run_fgx.sh
  665.     echo "#!/bin/sh" > $SCRIPT
  666.     echo "cd \$(dirname \$0)" >> $SCRIPT
  667.     echo "cd $ " >> $SCRIPT
  668.     echo "p=\$(pwd)" >> $SCRIPT
  669.     echo "cd $FGX_INSTALL_DIR" >> $SCRIPT
  670.         echo "export LD_LIBRARY_PATH=\$p/plib/lib:\$p/OpenSceneGraph/lib:\$p/simgear/lib"  >> $SCRIPT
  671.     echo "./fgx" >> $SCRIPT
  672.     chmod 755 $SCRIPT
  673. fi
  674.  
  675. #######################################################
  676. # FGRUN
  677. #######################################################
  678. FGRUN_INSTALL_DIR=fgrun
  679. INSTALL_DIR_FGRUN=$INSTALL_DIR/$FGRUN_INSTALL_DIR
  680. cd "$CBD"
  681. mkdir -p "fgrun"
  682.  
  683. if [[ "$(declare -p WHATTOBUILD)" =~ '['([0-9]+)']="FGRUN"' ]]; then
  684.     echo "****************************************" | tee -a $LOGFILE
  685.     echo "**************** FGRUN *****************" | tee -a $LOGFILE
  686.     echo "****************************************" | tee -a $LOGFILE
  687.  
  688.     cd "$CBD"/fgrun
  689.     _gitDownload git://git.code.sf.net/p/flightgear/fgrun
  690.  
  691.     if [ "$STABLE" = "STABLE" ]; then
  692.         _gitUpdate $FGSG_STABLE_GIT_BRANCH
  693.     else
  694.         _gitUpdate $FGSG_UNSTABLE_GIT_BRANCH
  695.     fi
  696.  
  697.     if [ ! "$UPDATE" = "UPDATE" ]; then
  698.         if [ "$RECONFIGURE" = "y" ]; then
  699.                         cd "$CBD"
  700.                         mkdir -p build/fgrun
  701.                         cd "$CBD"/build/fgrun
  702.             rm -f ../../fgrun/CMakeCache.txt
  703.             cmake -D CMAKE_BUILD_TYPE="Release" \
  704.                               -D CMAKE_INSTALL_PREFIX:PATH="$INSTALL_DIR_FGRUN" \
  705.                               -D CMAKE_PREFIX_PATH="$INSTALL_DIR_OSG;$INSTALL_DIR_PLIB;$INSTALL_DIR_SIMGEAR" \
  706.                               ../../fgrun/ 2>&1 | tee -a $LOGFILE
  707.         fi
  708.     fi
  709.    
  710.     _make fgrun
  711.  
  712.     cd "$CBD"
  713.  
  714.     SCRIPT=run_fgrun.sh
  715.     echo "#!/bin/sh" > $SCRIPT
  716.     echo "cd \$(dirname \$0)" >> $SCRIPT
  717.     echo "cd $SUB_INSTALL_DIR/$FGRUN_INSTALL_DIR/bin" >> $SCRIPT
  718.     echo "export LD_LIBRARY_PATH=../../$PLIB_INSTALL_DIR/lib:../../$OSG_INSTALL_DIR/lib:../../$SIMGEAR_INSTALL_DIR/lib" >> $SCRIPT
  719.     echo "./fgrun --fg-exe=\$PWD/../../$FGFS_INSTALL_DIR/bin/fgfs --fg-root=\$PWD/../../$FGFS_INSTALL_DIR/fgdata   \$@" >> $SCRIPT
  720.     chmod 755 $SCRIPT
  721. fi
  722.  
  723. #######################################################
  724. # OPENRADAR
  725. #######################################################
  726. OR_INSTALL_DIR=openradar
  727. INSTALL_DIR_OR=$INSTALL_DIR/$OR_INSTALL_DIR
  728. cd "$CBD"
  729.  
  730. if [[ "$(declare -p WHATTOBUILD)" =~ '['([0-9]+)']="OPENRADAR"' ]]; then
  731.     echo "****************************************" | tee -a $LOGFILE
  732.     echo "************** OPENRADAR ***************" | tee -a $LOGFILE
  733.     echo "****************************************" | tee -a $LOGFILE
  734.  
  735.     if [ "$DOWNLOAD" = "y" ]; then
  736.         wget $OR_STABLE_RELEASE -O OpenRadar.zip
  737.         cd install
  738.         unzip -o ../OpenRadar.zip
  739.         cd ..
  740.     fi
  741.  
  742.     SCRIPT=run_openradar.sh
  743.     echo "#!/bin/sh" > $SCRIPT
  744.     echo "cd \$(dirname \$0)" >> $SCRIPT
  745.     echo "cd install/OpenRadar" >> $SCRIPT
  746.     echo "java -jar OpenRadar.jar" >> $SCRIPT
  747.     chmod 755 $SCRIPT
  748. fi
  749.  
  750. #######################################################
  751. #######################################################
  752. # TERRAGEAR
  753. #######################################################
  754. #######################################################
  755.  
  756. TG_INSTALL_DIR=terragear
  757. INSTALL_DIR_TG=$INSTALL_DIR/$TG_INSTALL_DIR
  758. cd "$CBD"
  759. mkdir -p "terragear"
  760.  
  761. if [[ "$(declare -p WHATTOBUILD)" =~ '['([0-9]+)']="TERRAGEAR"' ]]; then
  762.     echo "****************************************" | tee -a $LOGFILE
  763.     echo "*************** TERRAGEAR **************" | tee -a $LOGFILE
  764.     echo "****************************************" | tee -a $LOGFILE
  765.  
  766.     cd "$CBD"/terragear
  767.     _gitDownload git://git.code.sf.net/p/flightgear/terragear
  768.  
  769.     _gitUpdate $TG_STABLE_GIT_BRANCH
  770.  
  771.     if [ ! "$UPDATE" = "UPDATE" ]; then
  772.         if [ "$RECONFIGURE" = "y" ]; then
  773.             cd "$CBD"
  774.             mkdir -p build/terragear
  775.             cd "$CBD"/build/terragear
  776.             rm -f CMakeCache.txt
  777.             cmake   -DCMAKE_BUILD_TYPE="Debug" \
  778.                 -DCMAKE_INSTALL_PREFIX:PATH="$INSTALL_DIR_TG" \
  779.                 -DCMAKE_PREFIX_PATH="$INSTALL_DIR_SIMGEAR;$INSTALL_DIR_CGAL" \
  780.                 ../../terragear/ 2>&1 | tee -a $LOGFILE
  781.         fi
  782.     fi
  783.  
  784.     _make terragear
  785.  
  786.     cd "$CBD"
  787.     echo "#!/bin/sh" > run_tg-construct.sh
  788.     echo "cd $(dirname $0)" >> run_tg-construct.sh
  789.     echo "cd install/terragear/bin" >> run_tg-construct.sh
  790.     echo "export LD_LIBRARY_PATH=$INSTALL_DIR_SIMGEAR/lib:$INSTALL_DIR_CGAL/lib" >> run_tg-construct.sh
  791.     echo "./tg-construct \$@" >> run_tg-construct.sh
  792.  
  793.     echo "#!/bin/sh" > run_ogr-decode.sh
  794.     echo "cd $(dirname $0)" >> run_ogr-decode.sh
  795.     echo "cd install/terragear/bin" >> run_ogr-decode.sh
  796.     echo "export LD_LIBRARY_PATH=$INSTALL_DIR_SIMGEAR/lib:$INSTALL_DIR_CGAL/lib" >> run_ogr-decode.sh
  797.     echo "./ogr-decode \$@" >> run_ogr-decode.sh
  798.  
  799.     echo "#!/bin/sh" > run_genapts850.sh
  800.     echo "cd $(dirname $0)" >> run_genapts850.sh
  801.     echo "cd install/terragear/bin" >> run_genapts850.sh
  802.     echo "export LD_LIBRARY_PATH=$INSTALL_DIR_SIMGEAR/lib:$INSTALL_DIR_CGAL/lib" >> run_genapts850.sh
  803.     echo "./genapts850 \$@" >> run_genapts850.sh
  804. fi
  805. _logSep
  806.  
  807. #######################################################
  808. #######################################################
  809. # TERRAGEAR GUI
  810. #######################################################
  811. #######################################################
  812.  
  813. TGGUI_INSTALL_DIR=terrageargui
  814. INSTALL_DIR_TGGUI=$INSTALL_DIR/$TGGUI_INSTALL_DIR
  815. cd "$CBD"
  816. mkdir -p "terrageargui"
  817.  
  818. if [[ "$(declare -p WHATTOBUILD)" =~ '['([0-9]+)']="TERRAGEARGUI"' ]]; then
  819.     echo "****************************************" | tee -a $LOGFILE
  820.     echo "************* TERRAGEAR GUI ************" | tee -a $LOGFILE
  821.     echo "****************************************" | tee -a $LOGFILE
  822.  
  823.     cd "$CBD"/terrageargui
  824.     _gitDownload git://gitorious.org/fgscenery/terrageargui.git
  825.  
  826.     _gitUpdate $TGGUI_STABLE_GIT_BRANCH
  827.    
  828.     if [ ! "$UPDATE" = "UPDATE" ]; then
  829.         if [ "$RECONFIGURE" = "y" ]; then
  830.             cd "$CBD"
  831.             mkdir -p build/terrageargui
  832.             cd "$CBD"/build/terrageargui
  833.             rm -f ../../terrageargui/CMakeCache.txt
  834.             cmake   -DCMAKE_BUILD_TYPE="Release" \
  835.                 -DCMAKE_INSTALL_PREFIX="$INSTALL_DIR_TGGUI" ../../terrageargui 2>&1 | tee -a $LOGFILE
  836.         fi
  837.     fi
  838.    
  839.     _make terrageargui
  840.  
  841.     cd "$CBD"
  842.     # Fill TerraGear Root field
  843.     if [ ! -f ~/.config/TerraGear/TerraGearGUI.conf ]; then
  844.         echo "Fill TerraGear Root field" >> $LOGFILE
  845.         echo "[paths]" > TerraGearGUI.conf
  846.         echo "terragear=$INSTALL_DIR_TG/bin" >> TerraGearGUI.conf
  847.         mkdir -p ~/.config/TerraGear
  848.         mv TerraGearGUI.conf ~/.config/TerraGear
  849.     fi
  850.  
  851.     echo "Create run_terrageargui.sh" >> $LOGFILE
  852.     echo "#!/bin/sh" > run_terrageargui.sh
  853.     echo "cd \$(dirname \$0)" >> run_terrageargui.sh
  854.     echo "cd install/terrageargui/bin" >> run_terrageargui.sh
  855.         echo "export LD_LIBRARY_PATH=$INSTALL_DIR_SIMGEAR/lib:$INSTALL_DIR_CGAL/lib" >> run_terrageargui.sh
  856.     echo "./TerraGUI \$@" >> run_terrageargui.sh
  857. fi
  858.  
  859.  
  860. echo "download_and_compile.sh has finished to work"
  861.  
  862. cd "$CBD"
Add Comment
Please, Sign In to add comment