#!/bin/bash
#* Written by Francesco Angelo Brisa, started January 2008.
#
# Copyright (C) 2008 Francesco Angelo Brisa - http://brisa.homelinux.net
# email: francesco@brisa.homelinux.net - 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="0.4"
#COMPILE CVS FGFS
LOGFILE=compilation_log.txt
LOGSEP="***********************************"
WHATTOBUILD=
UPDATE=
APT_GET_UPDATE="y"
DOWNLOAD_PACKAGES="y"
COMPILE="y"
RECONFIGURE="y"
DOWNLOAD="y"
JOPTION=""
while getopts "uhc:p:a:d:r:j:" OPTION
do
case $OPTION in
u)
UPDATE="UPDATE"
;;
h)
WHATTOBUILD="--help"
;;
a)
APT_GET_UPDATE=$OPTARG
;;
c)
COMPILE=$OPTARG
;;
p)
DOWNLOAD_PACKAGES=$OPTARG
;;
d)
DOWNLOAD=$OPTARG
;;
r)
RECONFIGURE=$OPTARG
;;
j)
JOPTION=" -j"$OPTARG" "
;;
?)
echo "errore"
WHATTOBUILD="--help"
#exit
;;
esac
done
shift $(($OPTIND - 1))
#printf "Remaining arguments are: %s\n" "$*"
#printf "Num: %d\n" "$#"
if [ ! "$#" = "0" ]
then
if [ "$WHATTOBUILD" = "" ]
then
WHATTOBUILD="$1"
fi
if [ ! "$#" = "1" ]
then
UPDATE="$2"
fi
fi
#######################################################
# set script to stop if an error occours
set -e
if [ "$WHATTOBUILD" = "--help" ]
then
echo "$0 Version $VERSION"
echo "Usage:"
echo "./$0 [-u] [-h] [-a y|n] [-c y|n] [-p y|n] [-d y|n] [-r y|n] [ALL|PLIB|OSG|SIMGEAR|FGFS|FGRUN|FGCOM|ATLAS] [UPDATE]"
echo "* without options it recompiles: PLIB,OSG,SIMGEAR,FGFS,FGRUN"
echo "* Using ALL compiles everything"
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 "* -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 compiolation default=None"
echo "* -r y|n y=reconfigure programs before compiling them n=do not reconfigure 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 3 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)
# Uncomment following line to confirm backports.org is in sources.list:
#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 "$LOGSEP" >> $LOGFILE
# discovering linux
if [ -e /etc/lsb-release ]
then
. /etc/lsb-release
fi
# default is hardy
DISTRO_PACKAGES="libglut3-dev libopenal-dev libalut-dev libalut0 libfltk1.1-dev libfltk1.1 cvs subversion cmake make build-essential automake zlib1g-dev zlib1g libwxgtk2.8-0 libwxgtk2.8-dev fluid gawk gettext libjpeg62-dev libjpeg62 libxi-dev libxi6 libxmu-dev libxmu6 libboost-dev libasound2-dev libasound2 libpng12-dev libpng12-0 libjasper1 libjasper-dev libopenexr-dev libtiff4-dev libboost-serialization-dev"
# checking linux distro and version to differ needed packages
if [ "$DISTRIB_ID" = "Ubuntu" ]
then
echo "$DISTRIB_ID $DISTRIB_RELEASE" >> $LOGFILE
else
echo "DEBIAN I SUPPOUSE" >> $LOGFILE
fi
echo "$LOGSEP" >> $LOGFILE
if [ "$DOWNLOAD_PACKAGES" = "y" ]
then
echo -n "PACKAGE INSTALLATION ... " >> $LOGFILE
# checking linux distro and version to differ needed packages
if [ "$DISTRIB_ID" = "Ubuntu" ]
then
if [ "$DISTRIB_RELEASE" = "8.04" ]
then
DISTRO_PACKAGES=$DISTRO_PACKAGES" "libopenal0a
fi
if [ "$DISTRIB_RELEASE" = "8.10" -o "$DISTRIB_RELEASE" = "9.04" ]
then
DISTRO_PACKAGES=$DISTRO_PACKAGES" "libopenal1
fi
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
# WE ARE USING DEBIAN
LIBOPENALPACKAGE=$(apt-cache search libopenal | grep "libopenal. " | sed s/\ .*//)
DISTRO_PACKAGES=$DISTRO_PACKAGES" "$LIBOPENALPACKAGE
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
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
#######################################################
# PLIB
#######################################################
PLIB_INSTALL_DIR=plib
INSTALL_DIR_PLIB=$INSTALL_DIR/$PLIB_INSTALL_DIR
cd "$CBD"
#svn co http://plib.svn.sourceforge.net/svnroot/plib/trunk plib
#cd plib
if [ "$WHATTOBUILD" = "" -o "$WHATTOBUILD" = "PLIB" -o "$WHATTOBUILD" = "ALL" ]
then
if [ ! "$UPDATE" = "UPDATE" ]
then
echo "****************************************" | tee -a $LOGFILE
echo "**************** PLIB ******************" | tee -a $LOGFILE
echo "****************************************" | tee -a $LOGFILE
echo "COMPILING PLIB" >> $LOGFILE
echo "INSTALL_DIR_PLIB=$INSTALL_DIR_PLIB" >> $LOGFILE
#we rebuild plib only if not in update
if [ "$DOWNLOAD" = "y" ]
then
echo -n "DOWNLOADING FROM http://plib.sourceforge.net/dist/plib-1.8.5.tar.gz ... " >> $LOGFILE
wget -c http://plib.sourceforge.net/dist/plib-1.8.5.tar.gz
echo " OK" >> $LOGFILE
echo -n "UNPACKING plib-1.8.5.tar.gz ... " >> $LOGFILE
tar zxvf plib-1.8.5.tar.gz
echo " OK" >> $LOGFILE
fi
cd plib-1.8.5
if [ "$RECONFIGURE" = "y" ]
then
echo "AUTOGEN plib" >> $LOGFILE
./autogen.sh | tee -a $LOGFILE
echo "CONFIGURING plib" >> $LOGFILE
./configure --prefix="$INSTALL_DIR_PLIB" --exec-prefix="$INSTALL_DIR_PLIB" | tee -a $LOGFILE
else
echo "NO RECONFIGURE FOR plib" >> $LOGFILE
fi
if [ "$COMPILE" = "y" ]
then
echo "MAKE plib" >> $LOGFILE
echo "make $JOPTION" >> $LOGFILE
make $JOPTION | tee -a $LOGFILE
if [ ! -d $INSTALL_DIR_PLIB ]
then
mkdir -p "$INSTALL_DIR_PLIB"
fi
echo "INSTALL plib" >> $LOGFILE
echo "make install" >> $LOGFILE
make install | tee -a $LOGFILE
fi
cd -
fi
fi
#######################################################
# OpenSceneGraph
#######################################################
OSG_INSTALL_DIR=OpenSceneGraph
INSTALL_DIR_OSG=$INSTALL_DIR/$OSG_INSTALL_DIR
cd "$CBD"
if [ "$WHATTOBUILD" = "" -o "$WHATTOBUILD" = "OSG" -o "$WHATTOBUILD" = "ALL" ]
then
echo "****************************************" | tee -a $LOGFILE
echo "**************** OSG *******************" | tee -a $LOGFILE
echo "****************************************" | tee -a $LOGFILE
if [ "$DOWNLOAD" = "y" ]
then
echo -n "SVN FROM http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk ... " >> $LOGFILE
svn co http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk OpenSceneGraph
echo " OK" >> $LOGFILE
fi
cd OpenSceneGraph
if [ ! "$UPDATE" = "UPDATE" ]
then
if [ "$RECONFIGURE" = "y" ]
then
echo -n "RECONFIGURE OSG ... " >> $LOGFILE
rm -f CMakeCache.txt
cmake .
echo " OK" >> $LOGFILE
cmake -D CMAKE_BUILD_TYPE="Release" -D CMAKE_CXX_FLAGS="-O3" -D CMAKE_C_FLAGS="-O3" -D CMAKE_INSTALL_PREFIX:PATH="$INSTALL_DIR_OSG" . | tee -a $LOGFILE
echo "RECONFIGURE OSG DONE." >> $LOGFILE
fi
fi
if [ "$COMPILE" = "y" ]
then
echo "COMPILING OSG" >> $LOGFILE
make | tee -a $LOGFILE
if [ ! -d $INSTALL_DIR_OSG ]
then
mkdir -p "$INSTALL_DIR_OSG"
fi
echo "INSTALLING OSG" >> $LOGFILE
make install | tee -a $LOGFILE
fi
#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
cd -
fi
#######################################################
# SIMGEAR
#######################################################
SIMGEAR_INSTALL_DIR=simgear
INSTALL_DIR_SIMGEAR=$INSTALL_DIR/$SIMGEAR_INSTALL_DIR
cd "$CBD"
if [ ! -d "simgear" ]
then
mkdir "simgear"
fi
if [ "$WHATTOBUILD" = "" -o "$WHATTOBUILD" = "SIMGEAR" -o "$WHATTOBUILD" = "ALL" ]
then
echo "****************************************" | tee -a $LOGFILE
echo "**************** SIMGEAR ***************" | tee -a $LOGFILE
echo "****************************************" | tee -a $LOGFILE
if [ "$DOWNLOAD" = "y" ]
then
cd simgear
echo -n "CVS FROM cvs.simgear.org:/var/cvs/SimGear-0.3 ... " >> $LOGFILE
cvs -z5 -d :pserver:cvsguest:guest@cvs.simgear.org:/var/cvs/SimGear-0.3 login
cvs -z5 -d :pserver:cvsguest@cvs.simgear.org:/var/cvs/SimGear-0.3 co source
echo " OK" >> $LOGFILE
cd -
fi
cd "simgear/source"
if [ ! "$UPDATE" = "UPDATE" ]
then
if [ "$RECONFIGURE" = "y" ]
then
echo "AUTOGEN SIMGEAR" >> $LOGFILE
./autogen.sh | tee -a $LOGFILE
echo "CONFIGURE SIMGEAR" >> $LOGFILE
./configure --prefix="$INSTALL_DIR_SIMGEAR" --exec-prefix="$INSTALL_DIR_SIMGEAR" --with-osg="$INSTALL_DIR_OSG" --with-plib="$INSTALL_DIR_PLIB" --with-jpeg-factory | tee -a $LOGFILE
fi
fi
if [ "$COMPILE" = "y" ]
then
echo "MAKE SIMGEAR" >> $LOGFILE
echo "make $JOPTION" >> $LOGFILE
make $JOPTION | tee -a $LOGFILE
echo "INSTALL SIMGEAR" >> $LOGFILE
make install | tee -a $LOGFILE
fi
cd -
fi
#######################################################
# FGFS
#######################################################
FGFS_INSTALL_DIR=fgfs
INSTALL_DIR_FGFS=$INSTALL_DIR/$FGFS_INSTALL_DIR
cd "$CBD"
if [ ! -d "fgfs" ]
then
mkdir "fgfs"
fi
if [ "$WHATTOBUILD" = "" -o "$WHATTOBUILD" = "FGFS" -o "$WHATTOBUILD" = "DATA" -o "$WHATTOBUILD" = "ALL" ]
then
echo "****************************************" | tee -a $LOGFILE
echo "**************** FGFS ******************" | tee -a $LOGFILE
echo "****************************************" | tee -a $LOGFILE
cd fgfs
if [ "$WHATTOBUILD" = "" -o "$WHATTOBUILD" = "FGFS" -o "$WHATTOBUILD" = "ALL" ]
then
if [ "$DOWNLOAD" = "y" ]
then
echo -n "CVS FROM cvs.flightgear.org:/var/cvs/FlightGear-0.9 ... " >> $LOGFILE
cvs -z5 -d :pserver:cvsguest:guest@cvs.flightgear.org:/var/cvs/FlightGear-0.9 login
cvs -z5 -d :pserver:cvsguest@cvs.flightgear.org:/var/cvs/FlightGear-0.9 co source
echo " OK" >> $LOGFILE
fi
cd source
if [ ! "$UPDATE" = "UPDATE" ]
then
if [ "$RECONFIGURE" = "y" ]
then
echo "AUTOGEN FGFS" >> $LOGFILE
./autogen.sh | tee -a $LOGFILE
echo "CONFIGURE FGFS" >> $LOGFILE
./configure --prefix=$INSTALL_DIR_FGFS --exec-prefix=$INSTALL_DIR_FGFS --with-osg="$INSTALL_DIR_OSG" --with-simgear="$INSTALL_DIR_SIMGEAR" --with-plib="$INSTALL_DIR_PLIB" | tee -a $LOGFILE
fi
fi
if [ "$COMPILE" = "y" ]
then
echo "MAKE FGFS" >> $LOGFILE
echo "make $JOPTION" >> $LOGFILE
make $JOPTION | tee -a $LOGFILE
echo "INSTALL FGFS" >> $LOGFILE
make install | tee -a $LOGFILE
fi
cd ..
fi
cd ..
if [ "$WHATTOBUILD" = "" -o "$WHATTOBUILD" = "DATA" -o "$WHATTOBUILD" = "ALL" ]
then
if [ ! "$UPDATE" = "UPDATE" ]
then
if [ "$DOWNLOAD" = "y" ]
then
cd $INSTALL_DIR_FGFS
echo -n "CVS DATA FROM cvs.flightgear.org:/var/cvs/FlightGear-0.9 ... " >> $LOGFILE
cvs -z5 -d :pserver:cvsguest:guest@cvs.flightgear.org:/var/cvs/FlightGear-0.9 login
cvs -z5 -d :pserver:cvsguest@cvs.flightgear.org:/var/cvs/FlightGear-0.9 co data
echo " OK" >> $LOGFILE
cd -
fi
fi
fi
echo "#!/bin/sh" > run_fgfs.sh
echo "cd \$(dirname \$0)" >> run_fgfs.sh
echo "cd $SUB_INSTALL_DIR/$FGFS_INSTALL_DIR/bin" >> run_fgfs.sh
echo "export LD_LIBRARY_PATH=../../$PLIB_INSTALL_DIR/lib:../../$OSG_INSTALL_DIR/lib:../../$SIMGEAR_INSTALL_DIR/lib" >> run_fgfs.sh
echo "./fgfs --fg-root=\$PWD/../data/ \$@" >> run_fgfs.sh
chmod 755 run_fgfs.sh
SCRIPT=run_terrasync.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" >> $SCRIPT
echo "./terrasync \$@" >> $SCRIPT
chmod 755 $SCRIPT
fi
#######################################################
# FGRUN
#######################################################
FGRUN_INSTALL_DIR=fgrun
INSTALL_DIR_FGRUN=$INSTALL_DIR/$FGRUN_INSTALL_DIR
cd "$CBD"
if [ "$WHATTOBUILD" = "" -o "$WHATTOBUILD" = "FGRUN" -o "$WHATTOBUILD" = "ALL" ]
then
echo "****************************************" | tee -a $LOGFILE
echo "**************** FGRUN *****************" | tee -a $LOGFILE
echo "****************************************" | tee -a $LOGFILE
if [ "$DOWNLOAD" = "y" ]
then
echo -n "SVN FROM http://fgrun.svn.sourceforge.net/svnroot/fgrun ... " >> $LOGFILE
svn co http://fgrun.svn.sourceforge.net/svnroot/fgrun fgrun
echo " OK" >> $LOGFILE
fi
cd fgrun/trunk/fgrun/
if [ ! "$UPDATE" = "UPDATE" ]
then
if [ "$RECONFIGURE" = "y" ]
then
echo "AUTOGEN FGRUN" >> $LOGFILE
./autogen.sh | tee -a $LOGFILE
echo "CONFIGURE FGRUN" >> $LOGFILE
./configure --prefix=$INSTALL_DIR_FGRUN --exec-prefix=$INSTALL_DIR_FGRUN --with-osg="$INSTALL_DIR_OSG" --with-simgear="$INSTALL_DIR_SIMGEAR" --with-plib="$INSTALL_DIR_PLIB" --with-plib-includes=$INSTALL_DIR_PLIB/include --with-plib-libraries=$INSTALL_DIR_PLIB/lib | tee -a $LOGFILE
fi
fi
if [ "$COMPILE" = "y" ]
then
echo "MAKE FGRUN" >> $LOGFILE
echo "make $JOPTION" >> $LOGFILE
make $JOPTION | tee -a $LOGFILE
echo "INSTALL FGRUN" >> $LOGFILE
make install | tee -a $LOGFILE
fi
cd -
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/data \$@" >> $SCRIPT
chmod 755 $SCRIPT
fi
#######################################################
# FGCOM
#######################################################
FGCOM_INSTALL_DIR=fgcom
INSTALL_DIR_FGCOM=$INSTALL_DIR/$FGCOM_INSTALL_DIR
cd "$CBD"
if [ "$WHATTOBUILD" = "ALL" -o "$WHATTOBUILD" = "FGCOM" ]
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
echo -n "SVN FROM https://appfgcom.svn.sourceforge.net/svnroot/fgcom/trunk ... " >> $LOGFILE
svn co https://appfgcom.svn.sourceforge.net/svnroot/fgcom/trunk fgcom
echo " OK" >> $LOGFILE
#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
cd fgcom/src/
if [ "$RECONFIGURE" = "y" ]
then
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
mkdir -p "$INSTALL_DIR_FGCOM"/bin
if [ "$COMPILE" = "y" ]
then
echo "MAKE FGCOM" >> $LOGFILE
echo "make $JOPTION" >> $LOGFILE
make $JOPTION | tee -a $LOGFILE
echo "INSTALL FGCOM" >> $LOGFILE
make install | tee -a $LOGFILE
fi
cd -
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
#######################################################
# ATLAS
#######################################################
ATLAS_INSTALL_DIR=atlas
INSTALL_DIR_ATLAS=$INSTALL_DIR/$ATLAS_INSTALL_DIR
cd "$CBD"
if [ "$WHATTOBUILD" = "ALL" -o "$WHATTOBUILD" = "ATLAS" ]
then
echo "****************************************" | tee -a $LOGFILE
echo "**************** ATLAS *****************" | tee -a $LOGFILE
echo "****************************************" | tee -a $LOGFILE
if [ "$DOWNLOAD" = "y" ]
then
echo -n "CSV FROM atlas.cvs.sourceforge.net:/cvsroot/atlas ... " >> $LOGFILE
cvs -z3 -d:pserver:anonymous@atlas.cvs.sourceforge.net:/cvsroot/atlas co Atlas
echo " OK" >> $LOGFILE
echo -n "CSV PATCH FROM http://janodesbois.free.fr ... " >> $LOGFILE
cd Atlas
wget http://janodesbois.free.fr/doc/atlas-CVS.diff
patch -p0 < atlas-CVS.diff
cd ..
echo " OK" >> $LOGFILE
fi
cd Atlas
if [ ! "$UPDATE" = "UPDATE" ]
then
if [ "$RECONFIGURE" = "y" ]
then
echo "AUTOGEN ATLAS" >> $LOGFILE
./autogen.sh | tee -a $LOGFILE
echo "CONFIGURE ATLAS" >> $LOGFILE
./configure --prefix=$INSTALL_DIR_ATLAS --exec-prefix=$INSTALL_DIR_ATLAS --with-plib=$INSTALL_DIR_PLIB --with-simgear="$INSTALL_DIR_SIMGEAR" --with-fgbase="$INSTALL_DIR_FGFS/data" CXXFLAGS="$CXXFLAGS -I$CBD/OpenSceneGraph/include" | tee -a $LOGFILE
make clean
fi
fi
if [ "$COMPILE" = "y" ]
then
echo "MAKE ATLAS" >> $LOGFILE
echo "make $JOPTION" >> $LOGFILE
make $JOPTION | tee -a $LOGFILE
echo "INSTALL ATLAS" >> $LOGFILE
make install | tee -a $LOGFILE
fi
cd -
echo "#!/bin/sh" > run_atlas.sh
echo "cd \$(dirname \$0)" >> run_atlas.sh
echo "cd $SUB_INSTALL_DIR/$ATLAS_INSTALL_DIR/bin" >> run_atlas.sh
echo "export LD_LIBRARY_PATH=../../$PLIB_INSTALL_DIR/lib:../../$OSG_INSTALL_DIR/lib:../../$SIMGEAR_INSTALL_DIR/lib" >> run_atlas.sh
echo "./Atlas --fg-root=\$PWD/../../$FGFS_INSTALL_DIR/data \$@" >> run_atlas.sh
chmod 755 run_atlas.sh
fi
echo "To start fgfs, run the run_fgfs.sh file"
echo "To start terrasync, run the run_terrasync.sh file"
echo "To start fgrun, run the run_fgrun.sh file"
echo "To start fgcom, run the run_fgcom.sh file"
echo "To start atlas, run the run_atlas.sh file"
if [ "$WHATTOBUILD" = "--help" ]
then
echo ""
else
echo "Usage: $0 -h"
echo "for help"
fi