Changes

Jump to: navigation, search

Building Flightgear - CentOS

4,266 bytes added, 17 January
Initial version
= Preparation =
A "Minimal Install" of CentOS 8 (64 bits) is needed.

= Requirements =
All the commands are run in <code>bash</code> as normal user (not <code>root</code>). The user need <code>sudo</code> access to install packages and add some repos.

The following repos need to be added and enabled:

sudo dnf config-manager --set-enabled PowerTools
sudo dnf install epel-release

The following packages need to be install on the the system before starting the build of FlightGear. The packages can be install using the <code>dnf</code> command:

sudo dnf install freeglut-devel.x86_64 openal-soft.x86_64 freetype-devel.x86_64 libjpeg-turbo-devel.x86_64 jasper-libs.x86_64 libxml2-devel.x86_64 libcurl-devel.x86_64 \
cairo-devel.x86_64 poppler-glib.x86_64 librsvg2-devel.x86_64 gtk2-devel.x86_64 lua-libs.x86_64 lua.x86_64 fltk.x86_64 libpng-devel.x86_64 libtiff-devel.x86_64 \
libXrandr-devel.x86_64 libXinerama-devel.x86_64 zlib-devel.x86_64 expat-devel.x86_64 boost.x86_64 openal-soft-devel.x86_64 cmake.x86_64 \
mesa-libEGL-devel.x86_64 jasper-devel.x86_64 gstreamer1-devel.x86_64 SDL2-devel.x86_64 poppler-glib-devel.x86_64 lua-devel.x86_64 fltk-devel.x86_64 boost-devel.x86_64 \
dbus-devel.x86_64 libevent-devel.x86_64 glew-devel.x86_64

The <code>plib</code> package is not available for CentOS 8. The package from CentOS 7 can be used instead. After downloading the following packages:
* [https://centos.pkgs.org/7/epel-x86_64/plib-1.8.5-15.el7.x86_64.rpm.html plib-1.8.5-15.el7.x86_64.rpm]
* [https://centos.pkgs.org/7/epel-x86_64/plib-devel-1.8.5-15.el7.x86_64.rpm.html plib-devel-1.8.5-15.el7.x86_64.rpm]

The 2 packages can be installed manually using the following command:

sudo rpm --install plib-1.8.5-15.el7.x86_64.rpm
sudo rpm --install plib-devel-1.8.5-15.el7.x86_64.rpm

= 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>
* <code>OPENSCENEGRAPH_VERSION</code>: Version of OpenSceneGraph. For example: <code>OPENSCENEGRAPH_VERSION=3.6.4</code>

= OpenSceneGraph =
OpenSceneGraph is not available as a RPM for CentOS 8 and, for this reason, needs to build from sources. The latest stable version of OpenSceneGraph can be downloaded from [http://www.openscenegraph.org/index.php/download-section/stable-releases here].

The following commands can be used to build OpenSceneGraph:
cd -- "${FGFS_PREFIX}/src/"
rm -Rf -- "${FGFS_PREFIX}/src/OpenSceneGraph_build/"
mkdir -- "${FGFS_PREFIX}/src/OpenSceneGraph_build/"
OPENSCENEGRAPH_SRC=${FGFS_PREFIX}/src/OpenSceneGraph-OpenSceneGraph-${OPENSCENEGRAPH_VERSION}
rm -Rf -- "${OPENSCENEGRAPH_SRC}/"
tar axvf "${FGFS_PREFIX}/src/OpenSceneGraph-OpenSceneGraph-${OPENSCENEGRAPH_VERSION}.tar.gz"
pushd -- "${FGFS_PREFIX}/src/OpenSceneGraph_build/"
cmake "${OPENSCENEGRAPH_SRC}" \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_OSG_EXAMPLES:BOOL=ON \
-DOSG_USE_LOCAL_LUA_SOURCE:BOOL=OFF \
-DCMAKE_INSTALL_PREFIX="${FGFS_PREFIX}" \
-DCMAKE_VERBOSE_MAKEFILE=TRUE
make --jobs=${NR_JOBS}
make -- install
popd
rm -Rf -- "${OPENSCENEGRAPH_SRC}/"
rm -Rf -- "${FGFS_PREFIX}/src/OpenSceneGraph_build/"

= Simgear =

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 =

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
make --jobs=${NR_JOBS}
make -- test
make -- install
popd
rm -Rf -- "${FGFS_PREFIX}/src/fg_build/"
85
edits

Navigation menu