Building FlightGear - Linux: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
No edit summary
 
(108 intermediate revisions by 39 users not shown)
Line 1: Line 1:
__TOC__
{{Main article|Building Flightgear}}


This section describes how to build FlightGear on Linux system.
This section describes how to build [[FlightGear]] on Linux system.


Compiling FlightGear is not a task for novice users. Thus, if you're a beginner (we all were once) on a platform which binaries are available for, we recommend postponing this task and just starting with the binary distribution to get you flying.
Compiling FlightGear is not a task for novice users. Thus, if you're a beginner (we all were once) on a platform which binaries are available for, we recommend postponing this task and just starting with the binary distribution to get you flying.


'''October 29th 2006, Flightgear CVS MAIN Branch switched to OSG support.'''
openSUSE also provides binary packages of the latest development version, which are continuously updated.
Plib support remains available in CVS using PRE_OSG_PLIB_20061029 Branch.
Follow [http://software.opensuse.org/download.html?lang=en&project=games:FlightGear:Unstable&package=fgrun this link] to select your openSUSE version and install, or manually add ''games:FlightGear:Unstable'' to your ''YaST Software Repositories''.
(cvs up -rPRE_OSG_PLIB_20061029)


== Requirements ==
For Ubuntu, there is a PPA that provides the latest development version of FlightGear and SimGear and a recent version of FlightGear data. See [https://launchpad.net/~saiarcot895/+archive/flightgear-edge this page] for more info. To add the PPA, run <tt>sudo apt-add-repository ppa:saiarcot895/flightgear-edge</tt>.
Before you can compile FlightGear, you need to have the followings installed on your computer:
 
Or if you develop on Ubuntu or Debian, consider trying the script described in [[Scripted Compilation on Linux Debian/Ubuntu]].
 
= Distro-specific instructions =
== Debian/Ubuntu ==
* You can use the [[Scripted Compilation on Linux Debian/Ubuntu]] script to have FlightGear compiled in one shot under both Ubuntu and Debian systems.
* Debian users who prefer to build it without script may look at [[Building Flightgear - Debian]].
* Ubuntu users can follow these instructions to build FlightGear on [[Building Flightgear - Ubuntu | Ubuntu]].
* Raspbian users can follow these instructions to build FlightGear on [[Building Flightgear - Raspbian | Raspbian Buster]].
* Hints for [[Ubuntu]] users.
 
== Gentoo ==
* Gentoo users can also use overlays to build FlightGear without much hassle: [[Building Flightgear - Gentoo]].
 
== CentOS ==
CentOS users can follow these instructions to build FlightGear on [[Building Flightgear - CentOS | CentOS 8]].
 
= Requirements =
{{Note|as of 12/2017, people may have to build using at least OSG 3.4 due to some compilation issues -for details, refer to [[Howto:Building FlightGear without HiDPI support]]}}
 
Before you can compile FlightGear, you need to have the following installed on your computer:


'''C++ compiler'''
'''C++ compiler'''


These are: c++, cpp, gcc, g++ found under the /usr/bin directory.  You will also need to have the tools '''autoconf''' and '''automake1.9''' installed.
These are: c++, g++ found under the <code>/usr/bin</code> directory.  You will also need to have the tools '''CMake''' installed.


'''CVS'''
'''GIT'''


Yes, the program is called 'CVS'.  This is used for downloading the latest set of source code.
See [[FlightGear and Git]].


'''OpenGL support'''
'''[[OpenGL]] support'''


More specifically, your system needs the support for hardware accelerated graphics.  You can check for this by running:
More specifically, your system needs the support for hardware accelerated graphics.  You can check for this by running the following in a [[command line]]:


glxinfo | grep direct
<syntaxhighlight lang="bash">
$ glxinfo | grep direct
</syntaxhighlight>


Note: To run the above command, you need to have the tool '''mesa-utils''' installed.
Note: To run the above command, you need to have the tool '''mesa-utils''' installed.
Line 38: Line 59:
  direct rendering: No
  direct rendering: No


Don't panic yet.  This may just mean some required libraries for hardware accelerated graphic are missing.  Go ahead and try installing plib1.8.4 and its dependencies first.  If you still get the above message, then you will need to do some googling and troubleshoot yourself.
Don't panic yet.  This may just mean some required libraries for hardware accelerated graphic are missing.  Go ahead and try installing '''plib 1.8.5''' and its dependencies first.  If you still get the above message, then you will need to do some googling and troubleshoot yourself.
 
= Dependencies =


== Dependencies ==
FlightGear is dependent on quite a few number of libraries.  You do not need to compile all of them yourself, but you will at least need to have their development version installed.  For example, the development version for package <tt>plib1.8.5</tt> is <tt>plib1.8.5</tt>'''-dev'''.
FlightGear is dependent on quite a few number of libraries.  You do not need to compile all of them yourself, but you will at least need to have their development version installed.  For example, the development version for package plib1.8.4 is plib1.8.4'''-dev'''.


The dependency is summarized in the following tree.  Please note that each library has its own dependencies, and most of these are not shown here.
The dependency is summarized in the following tree.  Please note that each library has its own dependencies, and most of these are not shown here.


* FlightGear
* <tt>FlightGear</tt>
** [http://openal.org OpenAL and ALUT]
** [https://openal.org<tt>OpenAL</tt>]
** SimGear
** <tt>SimGear</tt>
*** [http://plib.sourceforge.net/ PLIB] (until version 0.9.10 release sources, PRE_OSG_PLIB_20061029 CVS branch)
*** [http://plib.sourceforge.net/ <tt>PLIB</tt>]. Since March 2008, you will need version 1.8.5 - your distro probably supplies 1.8.4 still.
**** (Free)GLUT or SDL (We recommend the use of SDL)
**** For versions pre March 2008: (Free)<tt>GLUT</tt> or <tt>SDL</tt> (We recommend the use of <tt>SDL</tt> over <tt>Free/GLUT</tt>, [http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg16153.html however since March 2008, <tt>FreeGLUT</tt> as well as <tt>SDL</tt> are both considered deprecated], please only use <code>--enable-osgviewer</code> during configuration instead)  
*** [[ OpenSceneGraph ]] (cvs HEAD branch)
*** <tt>[[OpenSceneGraph]]</tt>  (check link for compatible versions)
**** OpenThreads
*** You also need the development files for several basic libraries to build the software, among them the following (the package names are for Debian and derivatives(?)):
**** Producer
**** <tt>libfreetype6-dev</tt>
**** libfreetype6-dev
**** <tt>libjpeg62-dev</tt>
**** libjpeg62-dev
**** <tt>libungif4-dev</tt>
**** libungif4-dev
**** <tt>libtiff4-dev</tt>
**** libtiff4-dev
**** <tt>libpng12-dev</tt>
**** libpng12-dev
**** <tt>libxmu-dev</tt>
**** libxmu-dev
**** <tt>libxi-dev</tt>
**** libxi-dev
**** <tt>zlib1g-dev</tt>
**** <tt>libglut3-dev</tt>


If you attack the above dependencies in the order listed below, you should be good:
If you attack the above dependencies in the order listed below, you should be good:


1. Glut. Most distributions include glut packages, although you may have to hunt for them. Make sure you install both the glut and glut-devel packages, otherwise FlightGear may be able to compile but won't run correctly.
# <tt>glut</tt> Most distributions include glut packages, although you may have to hunt for them. Make sure you install both the <tt>glut</tt> and <tt>glut-devel</tt> packages, otherwise FlightGear may be able to compile but won't run correctly.
# <tt>zlib</tt> Most distributions install the basic <tt>zlib</tt> libraries by default, but not the development portions. If you don't have <tt>zlib.h</tt>, you probably need to install the <tt>zlib-devel</tt> package for your distribution.
# <tt>plib</tt> Portability libraries and scene graph.
# <tt>[[OpenSceneGraph]]</tt>
# <tt>simgear</tt> Simulation support libraries. If you are building FlightGear from Git, you need the Git version of SimGear. If you have strange build errors, one of the first things to check is that you have an up-to-date version of SimGear built and installed.


2. Zlib. Most distributions install the basic zlib libraries by default, but not the development portions. If you don't have zlib.h, you probably need to install the zlib-devel package for your distribution.
= Compiling =


3. Plib - portability libraries and scene graph.  
== Definitions ==
The following environment variables must be set because they will be used in shell commands:
* <code>NR_JOBS</code>: Number of jobs for parallel compilation. For example: <code>NR_JOBS=$(/usr/bin/nproc)</code>.
* <code>FGFS_PREFIX</code>: Prefix of the FlightGear installation. For example: <code>FGFS_PREFIX=${HOME}/FlightGear</code>. All the source code must be located under the directory <code>${FGFS_PREFIX}/src</code> and the installation will be done under the directory <code>${FGFS_PREFIX}</code> as <code>${FGFS_PREFIX}/bin</code>, <code>${FGFS_PREFIX}/include</code>, <code>${FGFS_PREFIX}/lib</code>,...
* <code>cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo</code> can be replaced by <code>cmake -DCMAKE_BUILD_TYPE=Release</code> for better performances.
* <code>FGFS_PREFIX_LIB</code>: The default <code>lib</code> directory is different between RedHat and Debian based distributions. Usually on Debian based distributions
FGFS_PREFIX_LIB=${FGFS_PREFIX}/lib
Usually on RedHat based distributions
FGFS_PREFIX_LIB=${FGFS_PREFIX}/lib64


4. [[ OpenSceneGraph ]]
== SimGear ==
The source code of SimGear can be provided:
* as an official release that can be downloaded from [https://sourceforge.net/projects/flightgear/files/ here]. The environment variable <code>SIMGEAR_VERSION</code> must be set to the relevant version of SimGear, for example <code>SIMGEAR_VERSION=2019.1.1</code> and then using the following commands to extract the source code:


5. SimGear - Simulation support libraries. If you are building FlightGear from CVS, you need the CVS version of SimGear. If you have strange build errors, one of the first things to check is that you have an up-to-date version of SimGear built and installed.
cd -- "${FGFS_PREFIX}/src/"
SIMGEAR_SRC=${FGFS_PREFIX}/src/simgear-${SIMGEAR_VERSION}
rm -Rf -- "${SIMGEAR_SRC}/"
tar axvf "${FGFS_PREFIX}/src/simgear-${SIMGEAR_VERSION}.tar.bz2"


== Compiling ==
* as a clone of the SimGear Git repo by using the following commands:
Assuming you are root, do:
cd /usr/local/src


=== Getting and compiling SimGear ===
cd -- "${FGFS_PREFIX}/src/"
git clone https://git.code.sf.net/p/flightgear/simgear flightgear-simgear
SIMGEAR_SRC=${FGFS_PREFIX}/src/flightgear-simgear


'''Step 1:'''
* if you have already a clone of the SimGear Git repo, the local copy can be updated using the following commands:


Login to the cvs server and checkout the latest version of SimGear's source code with:
  cd -- "${FGFS_PREFIX}/src/"
  cvs -d :pserver:cvsguest@cvs.simgear.org:/var/cvs/SimGear-0.3 login
SIMGEAR_SRC=${FGFS_PREFIX}/src/flightgear-simgear
  CVS passwd: guest
  pushd -- "${SIMGEAR_SRC}/"
   
  git pull
  cvs -d :pserver:cvsguest@cvs.simgear.org:/var/cvs/SimGear-0.3 co source
  popd


'''Step 2:'''
Now that the source code of SimGear is available under the directory <code>${SIMGEAR_SRC}</code>, the build can be started using the following commands:


Since all the source code will be downloaded into a directory called '''source''', you will need to rename the directory into something more meaningful.
cd -- "${FGFS_PREFIX}/src/"
rm -Rf -- "${FGFS_PREFIX}/src/sg_build/"
mkdir -- "${FGFS_PREFIX}/src/sg_build/"
pushd -- "${FGFS_PREFIX}/src/sg_build/"
cmake "${SIMGEAR_SRC}" \
      -DCMAKE_BUILD_TYPE=RelWithDebInfo \
      -DCMAKE_INSTALL_PREFIX="${FGFS_PREFIX}" \
      -DCMAKE_VERBOSE_MAKEFILE=TRUE
make --jobs=${NR_JOBS}
make -- test
make -- install
popd
rm -Rf -- "${FGFS_PREFIX}/src/sg_build/"


Rename the above directory by doing:
== FlightGear ==
  mv source simgear
The data for FlightGear can be provided:
* as an official release that can be downloaded from [https://sourceforge.net/projects/flightgear/files/ here].
rm -f -- "${FGFS_PREFIX_LIB}/FlightGear"
rm -Rf -- "${FGFS_PREFIX_LIB}/FlightGear-${FLIGHTGEAR_VERSION}/"
mkdir --parents -- "${FGFS_PREFIX_LIB}/FlightGear-${FLIGHTGEAR_VERSION}/"
pushd -- "${FGFS_PREFIX_LIB}/FlightGear-${FLIGHTGEAR_VERSION}/"
tar axvf "${FGFS_PREFIX}/src/FlightGear-${FLIGHTGEAR_VERSION}-data.tar.bz2"
popd
pushd -- "${FGFS_PREFIX_LIB}/"
ln --symbolic -- "FlightGear-${FLIGHTGEAR_VERSION}/fgdata/" FlightGear
  popd


Next, go into the directory and make preparations for the compilation:
* as a clone of the FlightGear Git repo by using the following commands:
cd simgear
./autogen.sh
./configure


'''Step 3:'''
pushd -- "${FGFS_PREFIX_LIB}/"
git clone --depth 1 https://git.code.sf.net/p/flightgear/fgdata flightgear-fgdata
ln --symbolic -- "flightgear-fgdata/" FlightGear
popd


Compile and install SimGear by doing:
* if you have already a clone of the FlightGear Git repo, the local copy can be updated using the following commands:
make; make install


=== Getting and compiling FlightGear ===
pushd -- "${FGFS_PREFIX_LIB}/flightgear-fgdata/"
git pull
popd


'''Step 1:'''
The source code of FlightGear can be provided:
* as an official release that can be downloaded from [https://sourceforge.net/projects/flightgear/files/ here]. The version of SimGear and FlightGear must match. The environment variable <code>FLIGHTGEAR_VERSION</code> must be set to the relevant version of FlightGear, for example <code>FLIGHTGEAR_VERSION=2019.1.1</code> and then using the following commands to extract the source code:


To login to the cvs version and checkout the latest version of Flightgear's source code, use:
  cd -- "${FGFS_PREFIX}/src/"
  cvs -d :pserver:cvsguest@cvs.flightgear.org:/var/cvs/FlightGear-0.9 login
FLIGHTGEAR_SRC=${FGFS_PREFIX}/src/flightgear-${FLIGHTGEAR_VERSION}
CVS passwd: guest
  rm -Rf -- "${FLIGHTGEAR_SRC}/"
   
  tar axvf "${FGFS_PREFIX}/src/flightgear-${FLIGHTGEAR_VERSION}.tar.bz2"
  cvs -d :pserver:cvsguest@cvs.flightgear.org:/var/cvs/FlightGear-0.9 co source


A directory with the name '''source''' will then be created with all of Flightgearear's source code downloaded into it.
* as a clone of the FlightGear Git repo by using the following commands:


'''Step 2:'''
cd -- "${FGFS_PREFIX}/src/"
git clone https://git.code.sf.net/p/flightgear/flightgear flightgear-flightgear
FLIGHTGEAR_SRC=${FGFS_PREFIX}/src/flightgear-flightgear


To rename the above directory, use the following command:
* if you have already a clone of the FlightGear Git repo, the local copy can be updated using the following commands:
mv source flightgear


Next, go into the folder and make preparations for the compilation:
cd -- "${FGFS_PREFIX}/src/"
  cd flightgear
  FLIGHTGEAR_SRC=${FGFS_PREFIX}/src/flightgear-flightgear
  ./autogen.sh
  pushd -- "${FLIGHTGEAR_SRC}/"
  ./configure
  git pull
popd


'''Step 3:'''
Now that the source code of FlightGear is available under the directory <code>${FLIGHTGEAR_SRC}</code>, the build can be started using the following commands:


Now you can compile and install Flightgear by:
cd -- "${FGFS_PREFIX}/src/"
  make; make install
rm -Rf -- "${FGFS_PREFIX}/src/fg_build/"
mkdir -- "${FGFS_PREFIX}/src/fg_build/"
pushd -- "${FGFS_PREFIX}/src/fg_build/"
cmake "${FLIGHTGEAR_SRC}" \
      -DCMAKE_BUILD_TYPE=RelWithDebInfo \
      -DCMAKE_INSTALL_PREFIX="${FGFS_PREFIX}" \
      -DCMAKE_VERBOSE_MAKEFILE=TRUE \
      -DENABLE_FGQCANVAS=ON
make --jobs=${NR_JOBS}
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${FGFS_PREFIX_LIB}/
FG_ROOT=${FGFS_PREFIX_LIB}/FlightGear make --jobs=${NR_JOBS} -- test_suite
  FG_ROOT=${FGFS_PREFIX_LIB}/FlightGear make -- test
make -- install
popd
rm -Rf -- "${FGFS_PREFIX}/src/fg_build/"


== External links ==
= External links =
=== Instructions ===
== Instructions ==
* [[ MSYS ]]
* [[MSYS]]  
* [[ MinGW/cross-compiler ]]
* [[MinGW/cross-compiler]]  
* [[ CodeBlocks IDE ]]
* [[CodeBlocks IDE]]  
* [[ OpenSUSE 10.1 10.2 ]]
* [[OpenSUSE 10.1 10.2]]  
* [http://www.geoffmclane.com/fg/fgmsvc7.htm MSVC7 *.Net]
* [http://www.geoffmclane.com/fg/fgmsvc7.htm MSVC7 *.Net]
* [http://www.oflebbe.de/oflebbe/FlightGear/index.html MSVC8 aka Visual 2005]
* [http://www.oflebbe.de/oflebbe/FlightGear/index.html MSVC8 aka Visual 2005]
* [http://macflightgear.sourceforge.net/home/documents/ Mac OS X (0.9.10 and CVS)]
* [http://macflightgear.sourceforge.net/home/documents/ Mac OS X]
= Important note for GIT users =
As of latest development in GIT, only cmake is now required for building both SimGear and FlightGear. So if you build GIT (for what any reason) please don't try to use autogen.sh as it is removed from repository.
 
For detailed instructions, see page [[Building_using_CMake|Building using cmake]].


=== Tools ===
{{Building}}
==== Free/Open Source ====
* [http://www.gnu.org/software/gcc/onlinedocs/ gcc  - the GNU compiler (collection)]
* [http://www.gnu.org/software/make/manual/make.html make - GNU make]
* [http://sources.redhat.com/autobook/ autools - autoconf, automake, libtool & co]
* [http://distcc.samba.org distcc - distributed (fast!) compilations for any network]
* [http://www.gnu.org/software/binutils/manual/gprof-2.9.1/gprof.html gprof - the GNU profiler]
* [http://ccache.samba.org ccache - compiler cache, pre-compiled objects for gcc]
* [http://www.stack.nl/~dimitri/doxygen/ doxygen - source code documenting]
* [http://www.gnu.org/software/gdb/documentation/ gdb - the GNU project debugger]
* [http://www.gnu.org/manual/ddd/ddd.html DDD - Data Display Debugger]
* CVS - Concurrent Versioning System
** http://cvsbook.red-bean.com/cvsbook.html
** http://www.cs.utah.edu/dept/old/texinfo/cvs/cvs_toc.html
** http://www.wincvs.org/
* SVN
**http://www.subversion.org


==== Free/Proprietary ====
[[fr:Compiler FlightGear sous GNU/Linux]]
* [http://www.intel.com/vtune/ Intel VTune] [http://www.intel.com/cd/software/products/asmo-na/eng/download/download/index.htm (free Win32/Linux versions available for non-commercial use:requires an INTEL CPU!)]
* [http://developer.amd.com/downloads.aspx AMD's Developer Tools] (CodeAnalyst, available for free for [http://developer.amd.com/cawin.aspx Win32]/[http://developer.amd.com/calinux.aspx Linux] )

Latest revision as of 22:18, 29 January 2021

1rightarrow.png See Building Flightgear for the main article about this subject.

This section describes how to build FlightGear on Linux system.

Compiling FlightGear is not a task for novice users. Thus, if you're a beginner (we all were once) on a platform which binaries are available for, we recommend postponing this task and just starting with the binary distribution to get you flying.

openSUSE also provides binary packages of the latest development version, which are continuously updated. Follow this link to select your openSUSE version and install, or manually add games:FlightGear:Unstable to your YaST Software Repositories.

For Ubuntu, there is a PPA that provides the latest development version of FlightGear and SimGear and a recent version of FlightGear data. See this page for more info. To add the PPA, run sudo apt-add-repository ppa:saiarcot895/flightgear-edge.

Or if you develop on Ubuntu or Debian, consider trying the script described in Scripted Compilation on Linux Debian/Ubuntu.

Distro-specific instructions

Debian/Ubuntu

Gentoo

CentOS

CentOS users can follow these instructions to build FlightGear on CentOS 8.

Requirements

Note  as of 12/2017, people may have to build using at least OSG 3.4 due to some compilation issues -for details, refer to Howto:Building FlightGear without HiDPI support

Before you can compile FlightGear, you need to have the following installed on your computer:

C++ compiler

These are: c++, g++ found under the /usr/bin directory. You will also need to have the tools CMake installed.

GIT

See FlightGear and Git.

OpenGL support

More specifically, your system needs the support for hardware accelerated graphics. You can check for this by running the following in a command line:

$ glxinfo | grep direct

Note: To run the above command, you need to have the tool mesa-utils installed.

You should then see:

direct rendering: Yes

This means you are good to go as far as OpenGL support is concerned.

If you see:

direct rendering: No

Don't panic yet. This may just mean some required libraries for hardware accelerated graphic are missing. Go ahead and try installing plib 1.8.5 and its dependencies first. If you still get the above message, then you will need to do some googling and troubleshoot yourself.

Dependencies

FlightGear is dependent on quite a few number of libraries. You do not need to compile all of them yourself, but you will at least need to have their development version installed. For example, the development version for package plib1.8.5 is plib1.8.5-dev.

The dependency is summarized in the following tree. Please note that each library has its own dependencies, and most of these are not shown here.

  • FlightGear
    • OpenAL
    • SimGear
      • PLIB. Since March 2008, you will need version 1.8.5 - your distro probably supplies 1.8.4 still.
      • OpenSceneGraph (check link for compatible versions)
      • You also need the development files for several basic libraries to build the software, among them the following (the package names are for Debian and derivatives(?)):
        • libfreetype6-dev
        • libjpeg62-dev
        • libungif4-dev
        • libtiff4-dev
        • libpng12-dev
        • libxmu-dev
        • libxi-dev
        • zlib1g-dev
        • libglut3-dev

If you attack the above dependencies in the order listed below, you should be good:

  1. glut Most distributions include glut packages, although you may have to hunt for them. Make sure you install both the glut and glut-devel packages, otherwise FlightGear may be able to compile but won't run correctly.
  2. zlib Most distributions install the basic zlib libraries by default, but not the development portions. If you don't have zlib.h, you probably need to install the zlib-devel package for your distribution.
  3. plib Portability libraries and scene graph.
  4. OpenSceneGraph
  5. simgear Simulation support libraries. If you are building FlightGear from Git, you need the Git version of SimGear. If you have strange build errors, one of the first things to check is that you have an up-to-date version of SimGear built and installed.

Compiling

Definitions

The following environment variables must be set because they will be used in shell commands:

  • NR_JOBS: Number of jobs for parallel compilation. For example: NR_JOBS=$(/usr/bin/nproc).
  • FGFS_PREFIX: Prefix of the FlightGear installation. For example: FGFS_PREFIX=${HOME}/FlightGear. All the source code must be located under the directory ${FGFS_PREFIX}/src and the installation will be done under the directory ${FGFS_PREFIX} as ${FGFS_PREFIX}/bin, ${FGFS_PREFIX}/include, ${FGFS_PREFIX}/lib,...
  • cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo can be replaced by cmake -DCMAKE_BUILD_TYPE=Release for better performances.
  • FGFS_PREFIX_LIB: The default lib directory is different between RedHat and Debian based distributions. Usually on Debian based distributions
FGFS_PREFIX_LIB=${FGFS_PREFIX}/lib

Usually on RedHat based distributions

FGFS_PREFIX_LIB=${FGFS_PREFIX}/lib64

SimGear

The source code of SimGear can be provided:

  • as an official release that can be downloaded from here. The environment variable SIMGEAR_VERSION must be set to the relevant version of SimGear, for example SIMGEAR_VERSION=2019.1.1 and then using the following commands to extract the source code:
cd -- "${FGFS_PREFIX}/src/"
SIMGEAR_SRC=${FGFS_PREFIX}/src/simgear-${SIMGEAR_VERSION}
rm -Rf -- "${SIMGEAR_SRC}/"
tar axvf "${FGFS_PREFIX}/src/simgear-${SIMGEAR_VERSION}.tar.bz2"
  • as a clone of the SimGear Git repo by using the following commands:
cd -- "${FGFS_PREFIX}/src/"
git clone https://git.code.sf.net/p/flightgear/simgear flightgear-simgear
SIMGEAR_SRC=${FGFS_PREFIX}/src/flightgear-simgear
  • if you have already a clone of the SimGear Git repo, the local copy can be updated using the following commands:
cd -- "${FGFS_PREFIX}/src/"
SIMGEAR_SRC=${FGFS_PREFIX}/src/flightgear-simgear
pushd -- "${SIMGEAR_SRC}/"
git pull
popd

Now that the source code of SimGear is available under the directory ${SIMGEAR_SRC}, the build can be started using the following commands:

cd -- "${FGFS_PREFIX}/src/"
rm -Rf -- "${FGFS_PREFIX}/src/sg_build/"
mkdir -- "${FGFS_PREFIX}/src/sg_build/"
pushd -- "${FGFS_PREFIX}/src/sg_build/"
cmake "${SIMGEAR_SRC}" \
      -DCMAKE_BUILD_TYPE=RelWithDebInfo \
      -DCMAKE_INSTALL_PREFIX="${FGFS_PREFIX}" \
      -DCMAKE_VERBOSE_MAKEFILE=TRUE
make --jobs=${NR_JOBS}
make -- test
make -- install
popd
rm -Rf -- "${FGFS_PREFIX}/src/sg_build/"

FlightGear

The data for FlightGear can be provided:

  • as an official release that can be downloaded from here.
rm -f -- "${FGFS_PREFIX_LIB}/FlightGear"
rm -Rf -- "${FGFS_PREFIX_LIB}/FlightGear-${FLIGHTGEAR_VERSION}/"
mkdir --parents -- "${FGFS_PREFIX_LIB}/FlightGear-${FLIGHTGEAR_VERSION}/"
pushd -- "${FGFS_PREFIX_LIB}/FlightGear-${FLIGHTGEAR_VERSION}/"
tar axvf "${FGFS_PREFIX}/src/FlightGear-${FLIGHTGEAR_VERSION}-data.tar.bz2"
popd
pushd -- "${FGFS_PREFIX_LIB}/"
ln --symbolic -- "FlightGear-${FLIGHTGEAR_VERSION}/fgdata/" FlightGear
popd
  • as a clone of the FlightGear Git repo by using the following commands:
pushd -- "${FGFS_PREFIX_LIB}/"
git clone --depth 1 https://git.code.sf.net/p/flightgear/fgdata flightgear-fgdata
ln --symbolic -- "flightgear-fgdata/" FlightGear
popd
  • if you have already a clone of the FlightGear Git repo, the local copy can be updated using the following commands:
pushd -- "${FGFS_PREFIX_LIB}/flightgear-fgdata/"
git pull
popd

The source code of FlightGear can be provided:

  • as an official release that can be downloaded from here. The version of SimGear and FlightGear must match. The environment variable FLIGHTGEAR_VERSION must be set to the relevant version of FlightGear, for example FLIGHTGEAR_VERSION=2019.1.1 and then using the following commands to extract the source code:
cd -- "${FGFS_PREFIX}/src/"
FLIGHTGEAR_SRC=${FGFS_PREFIX}/src/flightgear-${FLIGHTGEAR_VERSION}
rm -Rf -- "${FLIGHTGEAR_SRC}/"
tar axvf "${FGFS_PREFIX}/src/flightgear-${FLIGHTGEAR_VERSION}.tar.bz2"
  • as a clone of the FlightGear Git repo by using the following commands:
cd -- "${FGFS_PREFIX}/src/"
git clone https://git.code.sf.net/p/flightgear/flightgear flightgear-flightgear
FLIGHTGEAR_SRC=${FGFS_PREFIX}/src/flightgear-flightgear
  • if you have already a clone of the FlightGear Git repo, the local copy can be updated using the following commands:
cd -- "${FGFS_PREFIX}/src/"
FLIGHTGEAR_SRC=${FGFS_PREFIX}/src/flightgear-flightgear
pushd -- "${FLIGHTGEAR_SRC}/"
git pull
popd

Now that the source code of FlightGear is available under the directory ${FLIGHTGEAR_SRC}, the build can be started using the following commands:

cd -- "${FGFS_PREFIX}/src/"
rm -Rf -- "${FGFS_PREFIX}/src/fg_build/"
mkdir -- "${FGFS_PREFIX}/src/fg_build/"
pushd -- "${FGFS_PREFIX}/src/fg_build/"
cmake "${FLIGHTGEAR_SRC}" \
      -DCMAKE_BUILD_TYPE=RelWithDebInfo \
      -DCMAKE_INSTALL_PREFIX="${FGFS_PREFIX}" \
      -DCMAKE_VERBOSE_MAKEFILE=TRUE \
      -DENABLE_FGQCANVAS=ON
make --jobs=${NR_JOBS}
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${FGFS_PREFIX_LIB}/
FG_ROOT=${FGFS_PREFIX_LIB}/FlightGear make --jobs=${NR_JOBS} -- test_suite
FG_ROOT=${FGFS_PREFIX_LIB}/FlightGear make -- test
make -- install
popd
rm -Rf -- "${FGFS_PREFIX}/src/fg_build/"

External links

Instructions

Important note for GIT users

As of latest development in GIT, only cmake is now required for building both SimGear and FlightGear. So if you build GIT (for what any reason) please don't try to use autogen.sh as it is removed from repository.

For detailed instructions, see page Building using cmake.