Guest User

download_and_compile.sh

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