Building FlightGear - Debian: Difference between revisions

cosmetics and typos
(-Lenny support; +fgrun1.7; +libfltk1.3 and some minor changes)
(cosmetics and typos)
Line 1: Line 1:
{{WIP|Revise due to update to FG 2.10}}
HowTo build [[FlightGear]] <u>[[Changelog_2.10.0|2.10.0]]</u> or bleeding edge development version, hereinafter simply called <u>[[GIT]]</u>, on GNU/Linux [http://www.debian.org/ Debian] Stable/<u>Squeeze</u>. Users of Oldstable, Testing/<u>Wheezy</u> or Unstable at least have to change package names (version numbering) accordingly.
 
HowTo build [[FlightGear]] <u>[[Changelog_2.10.0|2.10.0]]</u> or bleeding edge development version, hereinafter simply called <u>[[GIT]]</u>, on GNU/Linux [http://www.debian.org/ Debian] <u>Squeeze</u> and <u>Wheezy</u>.


The meaning of this article is to be a short, '''checklist''' like, overview of the specific steps to compile FlightGear and components on Debian. For more detailed information please refer to the main article [[Building_FlightGear_-_Linux | Building FlightGear on Linux]].
The meaning of this article is to be a short, '''checklist''' like, overview of the specific steps to compile FlightGear and components on Debian. For more detailed information please refer to the main article [[Building_FlightGear_-_Linux | Building FlightGear on Linux]].
Line 11: Line 9:


== Requirements and Preparations ==
== Requirements and Preparations ==
You need more than just an [[OpenGL]] capable graphics card including a proper installed driver supporting direct rendering.<br />
A bunch of packages (as well as some of their dependencies) are required to compile FlightGear:
Also a bunch of packages (as well as some of their dependencies) are required to compile FlightGear:


; Tools
; Tools
  su -c "apt-get install automake bzip2 cmake fluid g++ gcc git make \
  su -c "apt-get install automake cmake g++ gcc git make subversion unzip"
  subversion tar"
: Additionally install "fluid" if you intend to use [[FlightGear_Admin_Wizard|fgadmin]].
: fluid: required for [[FlightGear_Admin_Wizard|fgadmin]] only.
 


; Libs
; Dependencies
  su -c "apt-get install libalut-dev libboost1.42-dev libc6-dev \
Command for <u>Squeeze</u>, users of other releases are advised to check package versions:
  libcurl4-openssl-dev libgl1-mesa-dev freeglut3-dev \
  su -c "apt-get install \
   libgtkglext1-dev libopenal-dev libpng12-dev librsvg2-dev libsvn-dev \
  freeglut3-dev libboost-dev   libcurl4-openssl-dev libgtkglext1-dev \
   libtiff4-dev libxml2-dev"
   libjpeg8-dev   libopenal-dev librsvg2-dev         libsvn-dev \
: If you prefer you might replace libcurl4-openssl-dev by libcurl4-gnutls-dev.
   libxml2-dev   libxrandr-dev"
: Add libudev-dev if you need FG's feature <code>-D EVENT_INPUT=ON</code>.
: If you prefer you might replace "libcurl4-openssl-dev" by "libcurl4-gnutls-dev".
: [[File:Zeichen_144_icon.png|21px]] During installation development packages of libraries that are going to be compiled ''must not'' be installed. They can safely be re-installed after compilation. Namely here these might be libplib-dev, libfltk1.1-dev, libopenscenegraph-dev and simgear-dev.
: Add "libudev-dev" if you need FG's feature <code>-D EVENT_INPUT=ON</code>.
: [[File:Zeichen_144_icon.png|21px]] During installation development packages of libraries which are going to be compiled ''must not'' be installed. They can safely be re-installed after compilation. Namely here these might be "libplib-dev", "libfltk1.1-dev", "libopenscenegraph-dev" and "simgear-dev".
<!--
<!--
osg: libxml2-dev libcurl4-gnutls-dev/libcurl4-openssl-dev libgtkglext1-dev libopenal-dev libpng12-dev librsvg2-dev libtiff4-dev
osg: libxml2-dev libcurl4-openssl-dev libgtkglext1-dev libopenal-dev libpng12-dev librsvg2-dev libtiff4-dev
sg: libalut-dev libboost1.42-dev libsvn-dev
sg: libalut-dev libboost1.42-dev libsvn-dev
fg: freeglut3-dev (libfltk1.1-dev (für fgadmin) fluid) (libudev-dev)
fg: freeglut3-dev (libfltk1.1-dev (für fgadmin) fluid) (libudev-dev)
Line 40: Line 38:
  export srcdir=$HOME/src && mkdir $srcdir
  export srcdir=$HOME/src && mkdir $srcdir


Have in mind that the data is a relatively large download (GIT about 5 GB and 2.10.0 650 MB). So, to save some time, it is a good idea to [[#FlightGear data|fetch]] it while building the sources.
Have in mind that the data is a relatively large download (GIT about 5 GB and 2.10.0 650 MB). So, to save some time, it is a good idea to [[#FlightGear data|fetch]] it while building the sources. <br />
 
For some basic info on git commands for FlightGear users we have a [[Git#For dummies|git for dummies]] section. <br />
For some basic info on git commands for FlightGear users we have a [[Git#For dummies|git for dummies]] section.
 
To have a build with debugging symbols add <code>-D CMAKE_BUILD_TYPE="RelWithDebInfo"</code> to SimGear's and FlightGear's cmake options.
To have a build with debugging symbols add <code>-D CMAKE_BUILD_TYPE="RelWithDebInfo"</code> to SimGear's and FlightGear's cmake options.


Line 49: Line 45:
=== libfltk ===
=== libfltk ===
[http://www.fltk.org/ FLTK] only is required for [[fgadmin]], which is content with libfltk-1.1, and fgrun, which minimum is libfltk-1.3. <br />
[http://www.fltk.org/ FLTK] only is required for [[fgadmin]], which is content with libfltk-1.1, and fgrun, which minimum is libfltk-1.3. <br />
<u>Wheezy</u>: Just install package libfltk1.3-dev if you're planning to use either of them. <br />
<u>Wheezy</u>: Just install package "libfltk1.3-dev" if you're planning to use either of them. <br />
<u>Squeeze</u>: For fgadmin just install package libfltk1.1-dev. To compile fgrun, too, build and install FLTK-1.3 instead:
<u>Squeeze</u>: For fgadmin just install package "libfltk1.1-dev". To compile fgrun, too, build and install FLTK-1.3 instead:
  cd $srcdir
  cd $srcdir
  wget http://ftp.easysw.com/pub/fltk/1.3.2/fltk-1.3.2-source.tar.gz
  wget http://ftp.easysw.com/pub/fltk/1.3.2/fltk-1.3.2-source.tar.gz
  tar xzf fltk-1.3.2-source.tar.gz
  tar xzf fltk-1.3.2-source.tar.gz
  cd fltk-1.3.2
  cd fltk-1.3.2
  ./configure --enable-shared --prefix/$prefix
  ./configure --enable-shared --prefix=$prefix  
  make -j2 install
  make -j2 install


Line 72: Line 68:


=== [[OpenSceneGraph]] ===
=== [[OpenSceneGraph]] ===
For <u>2.10.0</u> on <u>Wheezy</u> skip that step and install package libopenscenegraph-dev instead. <br />
For <u>2.10.0</u> on <u>Wheezy</u> skip that step and install package "libopenscenegraph-dev" instead. <br />
<u>GIT</u> users, especially developers, most likely want to use the latest [http://www.openscenegraph.org/projects/osg/wiki/Downloads/DeveloperReleases DeveloperRelease] or even bleeding edge code here. <br />
<u>GIT</u> users, especially developers, most likely want to use the latest [http://www.openscenegraph.org/projects/osg/wiki/Downloads/DeveloperReleases DeveloperRelease] or even bleeding edge code here. <br />
<u>2.10.0</u> and <u>GIT</u>:
<u>2.10.0</u> and <u>GIT</u>:
  cd $srcdir
  cd $srcdir
  svn co http://www.openscenegraph.org/svn/osg/OpenSceneGraph/tags/OpenSceneGraph-3.1.1 OpenSceneGraph
  svn co http://www.openscenegraph.org/svn/osg/OpenSceneGraph/tags/OpenSceneGraph-3.1.1 OpenSceneGraph
  mkdir osg-build && cd osg-build
  mkdir build-osg; cd build-osg
  cmake -D CMAKE_BUILD_TYPE="Release" -DLIB_POSTFIX="" \
  cmake -D CMAKE_BUILD_TYPE="Release" -DLIB_POSTFIX="" \
       -D CMAKE_INSTALL_PREFIX:PATH="$prefix" $srcdir/OpenSceneGraph
       -D CMAKE_INSTALL_PREFIX:PATH="$prefix" $srcdir/OpenSceneGraph
Line 93: Line 89:


<u>2.10.0</u> and <u>GIT</u>:
<u>2.10.0</u> and <u>GIT</u>:
  mkdir $srcdir/sg-build && cd $srcdir/sg-build
  mkdir $srcdir/build-sg; cd $srcdir/build-sg
  cmake -D CMAKE_INSTALL_PREFIX:PATH="$prefix" $srcdir/simgear
  cmake -D CMAKE_INSTALL_PREFIX:PATH="$prefix" $srcdir/simgear
  make -j2 install
  make -j2 install
Line 108: Line 104:


<u>2.10.0</u> and <u>GIT</u>:
<u>2.10.0</u> and <u>GIT</u>:
  mkdir $srcdir/fg-build && cd $srcdir/fg-build
  mkdir $srcdir/build-fg; cd $srcdir/build-fg
  cmake -D CMAKE_INSTALL_PREFIX:PATH="$prefix" $srcdir/flightgear
  cmake -D CMAKE_INSTALL_PREFIX:PATH="$prefix" $srcdir/flightgear
  make -j2 install
  make -j2 install
Line 137: Line 133:
For the future, if you want to start FlightGear from command line have a look at [[fgfsrc]], if you prefer a graphical user interface continue with [[#fgrun|compiling fgrun]]<!--or check [[FGo!]]-->.  
For the future, if you want to start FlightGear from command line have a look at [[fgfsrc]], if you prefer a graphical user interface continue with [[#fgrun|compiling fgrun]]<!--or check [[FGo!]]-->.  


{{WIP|Revise due to update to FG 2.10}}


== Optional Software ==
== Optional Software ==
Line 144: Line 142:


=== [[Atlas]] ===
=== [[Atlas]] ===
One more Package has to be installed:
One more Package has to be installed: "libglew1.5-dev"
* libglew1.5-dev
  cd $srcdir
  cd $srcdir
  git clone http://mapserver.flightgear.org/git/atlas
  git clone http://mapserver.flightgear.org/git/atlas
Line 155: Line 152:
<!--If it does not compile, go back some commits. Before invoking the <code>autogen.sh</code> command do:
<!--If it does not compile, go back some commits. Before invoking the <code>autogen.sh</code> command do:
  git reset --hard 5a27c351a8c03c7fa47cba0b4af7f4e23e4c31b0-->
  git reset --hard 5a27c351a8c03c7fa47cba0b4af7f4e23e4c31b0-->
<!-- cvs -d:pserver:anonymous@atlas.cvs.sourceforge.net:/cvsroot/atlas login
#CVS passwd: [Enter]
cvs -z3 -d:pserver:anonymous@atlas.cvs.sourceforge.net:/cvsroot/atlas co Atlas
cd Atlas
cvs export -D 2012-08-01 -d Atlas-20120801 . && cd Atlas-20120801/Atlas-->


  $prefix/bin/Atlas
  $prefix/bin/Atlas
Line 165: Line 157:


=== fgcom ===
=== fgcom ===
For [[fgcom]] install package
For [[fgcom]] install package "libasound2-dev".
* libasound2-dev
  cd $srcdir
  cd $srcdir
<!--git clone http://mapserver.flightgear.org/git/fgcom -->
<!--git clone http://mapserver.flightgear.org/git/fgcom -->
Line 177: Line 168:


=== fgrun ===
=== fgrun ===
To build [[fgrun]] libfltk1.3-dev is required, see [[#libfltk|libfltk above]]. <br />
To build [[fgrun]] libfltk1.3 is required, see [[#libfltk|libfltk above]]. <br />
<u>2.10.0</u> and <u>GIT</u>:
<u>2.10.0</u> and <u>GIT</u>:
  cd $srcdir
  cd $srcdir
Line 187: Line 178:


<u>2.10.0</u> and <u>GIT</u>:
<u>2.10.0</u> and <u>GIT</u>:
  mkdir $srcdir/fgrun-build && cd $srcdir/fgrun-build
  mkdir $srcdir/fgrun-build; cd $srcdir/fgrun-build
  cmake -D CMAKE_INSTALL_PREFIX:PATH="$prefix" $srcdir/fgrun
  cmake -D CMAKE_INSTALL_PREFIX:PATH="$prefix" $srcdir/fgrun
  make -j2 install
  make -j2 install
Line 199: Line 190:
[[File:Zeichen_101_icon.png|21px]] Obsolete for airport creation, use [[WorldEditor]] instead. It is still useful for working on [[Interactive_traffic#Ground_networks|ground networks]]. <br />
[[File:Zeichen_101_icon.png|21px]] Obsolete for airport creation, use [[WorldEditor]] instead. It is still useful for working on [[Interactive_traffic#Ground_networks|ground networks]]. <br />
To compile [[Taxidraw|TaxiDraw]] we need to install some more packages:
To compile [[Taxidraw|TaxiDraw]] we need to install some more packages:
* either libcurl4-gnutls-dev or libcurl4-openssl-dev for curl.h
* either "libcurl4-gnutls-dev" or "libcurl4-openssl-dev" for curl.h
* wx2.8-headers (at least, maybe even more than just that one. Please [http://wiki.flightgear.org/index.php?title=Talk:Building_FlightGear_-_Debian&action=edit&redlink=1 report]!
* "wx2.8-headers" (at least, maybe even more than just that one. Please [http://wiki.flightgear.org/index.php?title=Talk:Building_FlightGear_-_Debian&action=edit&redlink=1 report]!
  su -c "aptitude install [libcurl4-gnutls-dev|libcurl4-openssl-dev]"
  su -c "aptitude install [libcurl4-gnutls-dev|libcurl4-openssl-dev]"
  cd $srcdir
  cd $srcdir
Line 210: Line 201:




=== TerraGear ===
=== [[TerraGear]] ===
==== Automatic Installation ====
==== Automatic Installation ====
If you are familiar with "download_and_compile.sh" script from Brisa you can donwload this script: http://clemaez.fr/flightgear/terragear_download_and_compile.sh
If you are familiar with "download_and_compile.sh" script from Brisa you can donwload this script: http://clemaez.fr/flightgear/terragear_download_and_compile.sh
Line 230: Line 221:
* libgdal1-dev, gdal-bin
* libgdal1-dev, gdal-bin
* libproj-dev, libogdi3.2-dev (probably even more, please [http://wiki.flightgear.org/index.php?title=Talk:Building_FlightGear_-_Debian&action=edit&redlink=1 report]!)
* libproj-dev, libogdi3.2-dev (probably even more, please [http://wiki.flightgear.org/index.php?title=Talk:Building_FlightGear_-_Debian&action=edit&redlink=1 report]!)
<u>Wheezy:</u> As of June 2nd there is a bug ([http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=617240 #617240]) in package libmysqlclient16 which causes compilation to fail. If it is not fixed by the time you're building TerraGear, upgrade to the version from Sid.
<u>Wheezy</u>: As of June 2nd there is a bug ([http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=617240 #617240]) in package libmysqlclient16 which causes compilation to fail. If it is not fixed by the time you're building TerraGear, upgrade to the version from Sid.


  cd $srcdir
  cd $srcdir
392

edits