Advertisement
Guest User

Untitled

a guest
Feb 16th, 2013
328
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.83 KB | None | 0 0
  1. #!/bin/bash
  2. #* Written by Francesco Angelo Brisa, started January 2008.
  3. #
  4. # Copyright (C) 2008 Francesco Angelo Brisa
  5.  
  6. VERSION="1.9-4"
  7.  
  8. LOGFILE=compilation_log.txt
  9. LOGSEP="***********************************"
  10. WHATTOBUILD=
  11. UPDATE=
  12. STABLE=
  13. APT_GET_UPDATE="y"
  14. DOWNLOAD_PACKAGES="y"
  15. COMPILE="y"
  16. RECONFIGURE="y"
  17. DOWNLOAD="y"
  18. JOPTION=""
  19. OOPTION=""
  20. DEBUG=""
  21. WITH_EVENT_INPUT=""
  22. WITH_OPENRTI=""
  23.  
  24.  
  25. # FGCOM
  26. FGCOM_UNSTABLE_GIT_BRANCH="master"
  27. FGCOMGUI_STABLE_REVISION="46"
  28.  
  29. # Current developer revision: latest FlightGear GIT (2.5.0) with OSG 3.0.1
  30. OSG_UNSTABLE_REVISION="http://www.openscenegraph.org/svn/osg/OpenSceneGraph/tags/OpenSceneGraph-3.0.1"
  31.  
  32. #######################################################
  33. # set script to stop if an error occours
  34. set -e
  35.  
  36.  
  37. if [ "$DOWNLOAD_PACKAGES" = "y" ]
  38. then
  39.  
  40. echo -n "PACKAGE INSTALLATION ... " >> $LOGFILE
  41.  
  42. LIBOPENALPACKAGE=$(apt-cache search libopenal | grep "libopenal. " | sed s/\ .*//)
  43. DISTRO_PACKAGES=$DISTRO_PACKAGES" "$LIBOPENALPACKAGE
  44.  
  45. # checking linux distro and version to differ needed packages
  46. echo "not gonna perform an apt-get update"
  47. echo "not gonna perform an apt-get install ... "
  48. echo " OK" >> $LOGFILE
  49. fi
  50.  
  51. COMPILE_BASE_DIR=.
  52. #cd into compile base directory
  53. cd "$COMPILE_BASE_DIR"
  54.  
  55. #get absolute path
  56. CBD=$(pwd)
  57.  
  58. LOGFILE=$CBD/$LOGFILE
  59.  
  60. echo "DIRECTORY= $CBD" >> $LOGFILE
  61. echo "$LOGSEP" >> $LOGFILE
  62.  
  63. if [ ! -d install ]
  64. then
  65. mkdir install
  66. fi
  67.  
  68. SUB_INSTALL_DIR=install
  69. INSTALL_DIR=$CBD/$SUB_INSTALL_DIR
  70.  
  71. cd "$CBD"
  72. mkdir -p build
  73. #######################################################
  74. # FGCOM
  75. #######################################################
  76. FGCOM_INSTALL_DIR=fgcom
  77. INSTALL_DIR_FGCOM=$INSTALL_DIR/$FGCOM_INSTALL_DIR
  78. cd "$CBD"
  79.  
  80. if [ 1 ]
  81. then
  82. echo "****************************************" | tee -a $LOGFILE
  83. echo "**************** FGCOM *****************" | tee -a $LOGFILE
  84. echo "****************************************" | tee -a $LOGFILE
  85.  
  86. #svn checkout svn://svn.dfn.de:/fgcom/trunk fgcom
  87. if [ "$DOWNLOAD" = "y" ]
  88. then
  89.  
  90. FGCOM_STABLE_REVISION_=""
  91. if [ "$STABLE" = "STABLE" ]
  92. then
  93. FGCOM_STABLE_REVISION_=" -r $FGCOM_STABLE_REVISION"
  94. fi
  95.  
  96. echo -n "git://gitorious.org/fg/fgcom.git ... " >> $LOGFILE
  97.  
  98. if [ -d "fgcom" ]
  99. then
  100. echo "fgcom exists already."
  101. git clone git://gitorious.org/fg/fgcom.git
  102. else
  103. git clone git://gitorious.org/fg/fgcom.git
  104. fi
  105.  
  106. cd fgcom
  107. git fetch origin
  108. if [ "$STABLE" = "STABLE" ]
  109. then
  110. # switch to stable branch
  111. # create local stable branch, ignore errors if it exists
  112. git branch -f $FGCOM_STABLE_FGOM_BRANCH origin/$FGCOM_STABLE_FGCOM_BRANCH 2> /dev/null || true
  113. # switch to stable branch. No error is reported if we're already on the branch.
  114. git checkout -f $FGCOM_STABLE_FGCOM_BRANCH
  115. # get indicated stable version
  116. git reset --hard $FGCOM_STABLE_REVISION
  117. else
  118. # switch to unstable branch
  119. # create local unstable branch, ignore errors if it exists
  120. git branch -f $FGCOM_UNSTABLE_GIT_BRANCH origin/$FGCOM_UNSTABLE_GIT_BRANCH 2> /dev/null || true
  121. # switch to unstable branch. No error is reported if we're already on the branch.
  122. git checkout -f $FGCOM_UNSTABLE_GIT_BRANCH
  123. # pull latest version from the unstable branch
  124. git pull
  125. fi
  126.  
  127. echo " OK" >> $LOGFILE
  128. cd ..
  129.  
  130. #patch for new netdb.h version.
  131. # cat fgcom/iaxclient/lib/libiax2/src/iax.c | sed s/hp-\>h_addr,/hp-\>h_addr_list[0],/g > fgcom/iaxclient/lib/libiax2/src/iax_ok.c
  132. # mv fgcom/iaxclient/lib/libiax2/src/iax_ok.c fgcom/iaxclient/lib/libiax2/src/iax.c
  133. fi
  134.  
  135.  
  136. if [ "$RECONFIGURE" = "y" ]
  137. then
  138. cd "$CBD"
  139. mkdir -p build/fgcom
  140.  
  141. cd "$CBD"/build/fgcom
  142. echo -n "RECONFIGURE FGCOM ... " >> $LOGFILE
  143. rm -f CMakeCache.txt
  144. cmake -D CMAKE_BUILD_TYPE="Release" -D "CMAKE_PREFIX_PATH=$INSTALL_DIR_PLIB;$INSTALL_DIR_SIMGEAR" -D "CMAKE_INSTALL_PREFIX:PATH=$INSTALL_DIR_FGCOM" "$CBD"/fgcom 2>&1 | tee -a $LOGFILE
  145.  
  146. echo " OK" >> $LOGFILE
  147.  
  148. cd "$CBD"/fgcom/src/
  149.  
  150. cp Makefile Makefile.original
  151. cat Makefile | sed s/\\//MY_SLASH_HERE/g > Makefile_NOSLASHES
  152.  
  153. # 1
  154. INSTALL_DIR_PLIB_NO_SLASHES=$(echo "$INSTALL_DIR_PLIB" | sed -e 's/\//MY_SLASH_HERE/g')
  155. cat Makefile_NOSLASHES | sed s/PLIB_PREFIX\ *:=\ *MY_SLASH_HEREusrMY_SLASH_HERElocalMY_SLASH_HEREsrcMY_SLASH_HEREfgfs-builderMY_SLASH_HEREinstall/PLIB_PREFIX\ :=\ $INSTALL_DIR_PLIB_NO_SLASHES/g > Makefile_temp
  156. mv -f Makefile_temp Makefile_NOSLASHES
  157.  
  158. #2
  159. CXXFLAGS=$(cat Makefile_NOSLASHES | grep ^CXXFLAGS | head -n 1)
  160. CXXFLAGS2=$CXXFLAGS" -I $INSTALL_DIR_SIMGEAR/include -I $INSTALL_DIR_OSG/include"
  161. CXXFLAGS3=$(echo $CXXFLAGS2 | sed s/\\//MY_SLASH_HERE/g)
  162.  
  163. cat Makefile_NOSLASHES | sed s/^CXXFLAGS\ *:=.*/"$CXXFLAGS3"/g > Makefile_temp
  164. mv -f Makefile_temp Makefile_NOSLASHES
  165.  
  166. #3
  167. LDFLAGS=$(cat Makefile_NOSLASHES | grep ^LDFLAGS | head -n 1)
  168. LDFLAGS2=$LDFLAGS" -L $INSTALL_DIR_SIMGEAR/lib"
  169. LDFLAGS3=$(echo $LDFLAGS2 | sed s/\\//MY_SLASH_HERE/g)
  170.  
  171. cat Makefile_NOSLASHES | sed s/^LDFLAGS.*/"$LDFLAGS3"/g > Makefile_temp
  172. mv -f Makefile_temp Makefile_NOSLASHES
  173.  
  174. #4
  175. INSTALL_DIR_FGCOM_NO_SLASHS=$(echo "$INSTALL_DIR_FGCOM" | sed -e 's/\//MY_SLASH_HERE/g')
  176. INSTALL_BIN_FGCOM_NO_SLASHS="$INSTALL_DIR_FGCOM_NO_SLASHS""MY_SLASH_HEREbin"
  177.  
  178. cat Makefile_NOSLASHES | sed s/INSTALL_BIN\ *:=\ *MY_SLASH_HEREusrMY_SLASH_HERElocalMY_SLASH_HEREbin/INSTALL_BIN\ :=\ $INSTALL_BIN_FGCOM_NO_SLASHS/g > Makefile_temp
  179. mv -f Makefile_temp Makefile_NOSLASHES
  180.  
  181. cat Makefile_NOSLASHES | sed s/INSTALL_DIR\ *:=\ *MY_SLASH_HEREusrMY_SLASH_HERElocal/INSTALL_DIR\ :=\ $INSTALL_DIR_FGCOM_NO_SLASHS/g > Makefile_temp
  182. mv -f Makefile_temp Makefile_NOSLASHES
  183.  
  184.  
  185. #last
  186. cat Makefile_NOSLASHES | sed s/MY_SLASH_HERE/\\//g > Makefile
  187.  
  188. fi
  189.  
  190. cd "$CBD"/build/fgcom
  191.  
  192. mkdir -p "$INSTALL_DIR_FGCOM"/bin
  193.  
  194. if [ "$COMPILE" = "y" ]
  195. then
  196. echo "MAKE FGCOM" >> $LOGFILE
  197. echo "cmake --build . --config Release" >> $LOGFILE
  198. cmake --build . --config Release 2>&1 | tee -a $LOGFILE
  199.  
  200. echo "INSTALL FGCOM" >> $LOGFILE
  201. cmake -DBUILD_TYPE=Release -P cmake_install.cmake 2>&1 | tee -a $LOGFILE
  202. fi
  203. cd "$CBD"
  204.  
  205. echo "#!/bin/sh" > run_fgcom.sh
  206. echo "cd \$(dirname \$0)" >> run_fgcom.sh
  207. echo "cd $SUB_INSTALL_DIR/$FGCOM_INSTALL_DIR/bin" >> run_fgcom.sh
  208. echo "export LD_LIBRARY_PATH=../../$PLIB_INSTALL_DIR/lib:../../$OSG_INSTALL_DIR/lib:../../$SIMGEAR_INSTALL_DIR/lib" >> run_fgcom.sh
  209. echo "./fgcom -Sfgcom.flightgear.org.uk \$@" >> run_fgcom.sh
  210. chmod 755 run_fgcom.sh
  211.  
  212. fi
  213.  
  214. echo "To start fgcom, run the run_fgcom.sh file"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement