Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #* Written by Francesco Angelo Brisa, started January 2008.
- #
- # Copyright (C) 2008 Francesco Angelo Brisa
- # email: [email protected] - [email protected]
- VERSION="1.9-4"
- LOGFILE=compilation_log.txt
- LOGSEP="***********************************"
- WHATTOBUILD=
- UPDATE=
- STABLE=
- APT_GET_UPDATE="y"
- DOWNLOAD_PACKAGES="y"
- COMPILE="y"
- RECONFIGURE="y"
- DOWNLOAD="y"
- JOPTION=""
- OOPTION=""
- DEBUG=""
- WITH_EVENT_INPUT=""
- WITH_OPENRTI=""
- # FGCOM
- FGCOM_UNSTABLE_GIT_BRANCH="master"
- FGCOMGUI_STABLE_REVISION="46"
- # Current developer revision: latest FlightGear GIT (2.5.0) with OSG 3.0.1
- OSG_UNSTABLE_REVISION="http://www.openscenegraph.org/svn/osg/OpenSceneGraph/tags/OpenSceneGraph-3.0.1"
- #######################################################
- # set script to stop if an error occours
- set -e
- 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
- echo "not gonna perform an apt-get update"
- echo "not gonna perform an apt-get install ... "
- echo " OK" >> $LOGFILE
- fi
- COMPILE_BASE_DIR=.
- #cd into compile base directory
- cd "$COMPILE_BASE_DIR"
- #get absolute path
- CBD=$(pwd)
- LOGFILE=$CBD/$LOGFILE
- echo "DIRECTORY= $CBD" >> $LOGFILE
- echo "$LOGSEP" >> $LOGFILE
- if [ ! -d install ]
- then
- mkdir install
- fi
- SUB_INSTALL_DIR=install
- INSTALL_DIR=$CBD/$SUB_INSTALL_DIR
- cd "$CBD"
- mkdir -p build
- #######################################################
- # FGCOM
- #######################################################
- FGCOM_INSTALL_DIR=fgcom
- INSTALL_DIR_FGCOM=$INSTALL_DIR/$FGCOM_INSTALL_DIR
- cd "$CBD"
- if [ 1 ]
- then
- echo "****************************************" | tee -a $LOGFILE
- echo "**************** FGCOM *****************" | tee -a $LOGFILE
- echo "****************************************" | tee -a $LOGFILE
- #svn checkout svn://svn.dfn.de:/fgcom/trunk fgcom
- if [ "$DOWNLOAD" = "y" ]
- then
- FGCOM_STABLE_REVISION_=""
- if [ "$STABLE" = "STABLE" ]
- then
- FGCOM_STABLE_REVISION_=" -r $FGCOM_STABLE_REVISION"
- fi
- echo -n "git://gitorious.org/fg/fgcom.git ... " >> $LOGFILE
- if [ -d "fgcom" ]
- then
- echo "fgcom exists already."
- git clone git://gitorious.org/fg/fgcom.git
- else
- git clone git://gitorious.org/fg/fgcom.git
- fi
- cd fgcom
- git fetch origin
- if [ "$STABLE" = "STABLE" ]
- then
- # switch to stable branch
- # create local stable branch, ignore errors if it exists
- git branch -f $FGCOM_STABLE_FGOM_BRANCH origin/$FGCOM_STABLE_FGCOM_BRANCH 2> /dev/null || true
- # switch to stable branch. No error is reported if we're already on the branch.
- git checkout -f $FGCOM_STABLE_FGCOM_BRANCH
- # get indicated stable version
- git reset --hard $FGCOM_STABLE_REVISION
- else
- # switch to unstable branch
- # create local unstable branch, ignore errors if it exists
- git branch -f $FGCOM_UNSTABLE_GIT_BRANCH origin/$FGCOM_UNSTABLE_GIT_BRANCH 2> /dev/null || true
- # switch to unstable branch. No error is reported if we're already on the branch.
- git checkout -f $FGCOM_UNSTABLE_GIT_BRANCH
- # pull latest version from the unstable branch
- git pull
- fi
- echo " OK" >> $LOGFILE
- cd ..
- #patch for new netdb.h version.
- # 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
- # mv fgcom/iaxclient/lib/libiax2/src/iax_ok.c fgcom/iaxclient/lib/libiax2/src/iax.c
- fi
- if [ "$RECONFIGURE" = "y" ]
- then
- cd "$CBD"
- mkdir -p build/fgcom
- cd "$CBD"/build/fgcom
- echo -n "RECONFIGURE FGCOM ... " >> $LOGFILE
- rm -f CMakeCache.txt
- 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
- echo " OK" >> $LOGFILE
- cd "$CBD"/fgcom/src/
- cp Makefile Makefile.original
- cat Makefile | sed s/\\//MY_SLASH_HERE/g > Makefile_NOSLASHES
- # 1
- INSTALL_DIR_PLIB_NO_SLASHES=$(echo "$INSTALL_DIR_PLIB" | sed -e 's/\//MY_SLASH_HERE/g')
- 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
- mv -f Makefile_temp Makefile_NOSLASHES
- #2
- CXXFLAGS=$(cat Makefile_NOSLASHES | grep ^CXXFLAGS | head -n 1)
- CXXFLAGS2=$CXXFLAGS" -I $INSTALL_DIR_SIMGEAR/include -I $INSTALL_DIR_OSG/include"
- CXXFLAGS3=$(echo $CXXFLAGS2 | sed s/\\//MY_SLASH_HERE/g)
- cat Makefile_NOSLASHES | sed s/^CXXFLAGS\ *:=.*/"$CXXFLAGS3"/g > Makefile_temp
- mv -f Makefile_temp Makefile_NOSLASHES
- #3
- LDFLAGS=$(cat Makefile_NOSLASHES | grep ^LDFLAGS | head -n 1)
- LDFLAGS2=$LDFLAGS" -L $INSTALL_DIR_SIMGEAR/lib"
- LDFLAGS3=$(echo $LDFLAGS2 | sed s/\\//MY_SLASH_HERE/g)
- cat Makefile_NOSLASHES | sed s/^LDFLAGS.*/"$LDFLAGS3"/g > Makefile_temp
- mv -f Makefile_temp Makefile_NOSLASHES
- #4
- INSTALL_DIR_FGCOM_NO_SLASHS=$(echo "$INSTALL_DIR_FGCOM" | sed -e 's/\//MY_SLASH_HERE/g')
- INSTALL_BIN_FGCOM_NO_SLASHS="$INSTALL_DIR_FGCOM_NO_SLASHS""MY_SLASH_HEREbin"
- cat Makefile_NOSLASHES | sed s/INSTALL_BIN\ *:=\ *MY_SLASH_HEREusrMY_SLASH_HERElocalMY_SLASH_HEREbin/INSTALL_BIN\ :=\ $INSTALL_BIN_FGCOM_NO_SLASHS/g > Makefile_temp
- mv -f Makefile_temp Makefile_NOSLASHES
- cat Makefile_NOSLASHES | sed s/INSTALL_DIR\ *:=\ *MY_SLASH_HEREusrMY_SLASH_HERElocal/INSTALL_DIR\ :=\ $INSTALL_DIR_FGCOM_NO_SLASHS/g > Makefile_temp
- mv -f Makefile_temp Makefile_NOSLASHES
- #last
- cat Makefile_NOSLASHES | sed s/MY_SLASH_HERE/\\//g > Makefile
- fi
- cd "$CBD"/build/fgcom
- mkdir -p "$INSTALL_DIR_FGCOM"/bin
- if [ "$COMPILE" = "y" ]
- then
- echo "MAKE FGCOM" >> $LOGFILE
- echo "cmake --build . --config Release" >> $LOGFILE
- cmake --build . --config Release 2>&1 | tee -a $LOGFILE
- echo "INSTALL FGCOM" >> $LOGFILE
- cmake -DBUILD_TYPE=Release -P cmake_install.cmake 2>&1 | tee -a $LOGFILE
- fi
- cd "$CBD"
- echo "#!/bin/sh" > run_fgcom.sh
- echo "cd \$(dirname \$0)" >> run_fgcom.sh
- echo "cd $SUB_INSTALL_DIR/$FGCOM_INSTALL_DIR/bin" >> run_fgcom.sh
- echo "export LD_LIBRARY_PATH=../../$PLIB_INSTALL_DIR/lib:../../$OSG_INSTALL_DIR/lib:../../$SIMGEAR_INSTALL_DIR/lib" >> run_fgcom.sh
- echo "./fgcom -Sfgcom.flightgear.org.uk \$@" >> run_fgcom.sh
- chmod 755 run_fgcom.sh
- fi
- echo "To start fgcom, run the run_fgcom.sh file"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement