Ubuntu - FG Build Script

external: index
internal: preamble boost folders options help downloads end


2012-02-04: Version 1.3.8 - Add SG/FG/TG CMake options. Use --help to see list supported. Note, some options like JPEG_FACTORY must be enabled in both SG and FG, like SG_JPEG_FACTORY and FG_JPEG_FACTORY, and of course where necessary the relevant shared library must be installed, in this case libjpeg.so

2012-02-03: Version 1.3.7 - Fix for when PLIB built locally, and some tool/package changes for Ubuntu 11.10

2011-12-31: Still version 1.3.6 - Minor fix for the generation of TG tools. Common usage, in a NEW directory  -
$ makefg    # download/build PLIB/OSG/SG/FG/FGRUN/FGDATA, as required...
# and when this completes SUCCESSFULLY!
$ makefg TG    # build TG tools, installed in $HOME/bin
# Then additions like $ makefg ATLAS

2011-11-15: Added version 1.3.6 (again seems 1.3.5 got lost ;=)). This is an ALL cmake version! Of course OSG has always been via cmake, but now also for the SG/FG/TG builds.

2011-10-26: Added later versions v1.3.1, v1.3.2 and v1.3.3, (seems v1.3.4 got lost ;=)), and still working on v1.3.5, using CMake for SG and FG, and soon also for TG. But have run into a CMake problem for the moment, in both Ubuntu and XP, which I hope is solved soon...

2011-06-27: Update to latest version 1.3.0, dated 2011-05-04. I have ALSO updated my Ubuntu to 10.04, lucid. While there are no substantial differences between this and previous script versions, at this time I have dropped a separate 'maketg', as the making of the terragear tool set is now folded into this one script. After you have SUCCESSFULLY build 'fgfs', you can now just add '$ makefg TG' to build the TG suite. And there are lots of other minor improvements...

Further, more work has been put into supporting OSG, PLIB, and BOOST, either as fully installed prerequisites, or in other directories outside the current build. And while I do try to load the file /etc/lsb-release, to set DISTRIB_ID, _RELEASE, etc, and switch some prerequisite names per these values, the script can fail in the initial tool update. It may be necessary to remove or adjust some of the apt-get packages, or use the NO_TOOL_UPD command. Enjoy...

2011-01-09: Update to latest, version 1.2.4, dated 2010-12-17
2010-12-12: Update to the latest script, version 1.2.3, dated 24 Nov 2010.

Back in January, 2009, I started using a shell script to 'download' and build fgfs in Ubuntu 8.04 LTS. After recently updating this makefg script, 2010-08-21 (version 1.2++), to use the 'new' SG / FG / FG DATA gitorious repository, I decide to add this page...

The initial makefg script was based on that of Francesco Angelo Brisa, circa 2008, see fg.wiki, (was http://brisa.homelinux.net/fgfa/), where I note there is a link to an updated script, here, which can be configured to use stable 'revisions' of PLIB 1.8.5 (2163), OSG 2.9.7 (11729), SG 2, FG 2, and FG DATA. So if you want to BUILD from the STABLE sources, then that is still the place to go ;=)).

Otherwise, my rather LARGE (130KB) script tries to deal with either the last release OR svn versions for the '3rd party' dependencies, PLIB, OSG, and BOOST, adds FGRUN, Atlas/Map, and uses the latest GIT versions of SG, FG, and FG DATA. SG and FG sources and base DATA are from the gitorious repository, 'next' branch, 'master' for fgdata.

A word has to be said about FG BASE DATA. It is humongous - even with the --depth 1 version I use, which does NOT included ALL the history, and has some restrictions. It is nearly 5GB alone, and can take anywhere from 3-4 at best ;=(), to 12-14 or more HOURS ;=(( to 'clone', depending on your internet connection speed, and how 'busy' gitorious is at the time.

There is the alternative to get the all or some from the mapserver repository, but this is NOT used by the makefg script... Also some older version of the script attempted to double as a TerraGear downloader, and builder, but this was later moved to a 'specialized' maketg script, but with this 1.3.++ version has been combined back into ONE. So, after a successful 'makefg', you can now add 'makefg TG' to build the TerraGear suite of tools, which will be installed in $HOME/bin,

The script has lots, LOTS of options, but it can be used as simple as, when placed in a folder in your PATH environment variable, and made 'executable' ($ chmod +x makefg) :-

  1. ~$ mkdir fgfs - creating a new, fresh directory,
  2. ~$ cd fgfs - changing into it,
  3. ~/fgfs$ makefg - run the script.

The script will keep you well informed on what it is doing, and will pause for confirmation to continue very frequently, unless you use the NOPAUSE parameter option. But even with this option, it may still wait for input under certain circumstances, error conditions... And of course, --help, -h, or -? options will output all the options available, with some explanation... 

The first run takes a long, LONG time, but there after it leverages what you already have, while offering options like SGUPD, and FGUPD to freshen the sources, and build... even a fresh clone in a new directory will use all the 3rd party stuff used the first time, unless instructed otherwise, through a 'conf' file it writes.

It also does an 'apt-get <packages>' to try to ensure ALL the tools you need are in your system, and updated. This stage will require you to give you password to do these updates, but this step can be avoided with the NO_TOOL_UPD option.


BOOST - a special case

NOTE: If you do NOT have a BOOST version equal to 1.37.9 or higher installed, then the script will attempt to download boost zip from my site, but will NOT build the libraries.


Folder Structure:

When run, makefg may generate the following folder structure in what ever 'root' you started. However the latest makefg versions, 1.3++, also fully supports pre-installed BOOST, PLIB, and OSG, in which case the download and build of these prerequisites is avoided.

Further the location of a single updated FGDATA directory can be configured, thus avoided the repeated download of this massive block! And Atlas and TG are not on by default.

Folder Description Size
/simgear git clone, and build of the SG source - SG 175MB
/flightgear git clone, and build of the FG source - FG 550MB
/fgrun svn source and build of fgrun... - FGRUN 24MB
/fgdata git clone of the FG base data. (depth 1) 9.3GB
Each of the above are DOWNLOADED source directories
The following are by adding 'options' to the script
/Atlas cvs checkout and build of Atlas/Map. ATLAS 24MB
/terragear-cs git clone and build of the TerraGear tools set. TG 34MB
The following are generated by the script
/install This is where all the pieces will be installed... 350MB
/tmp Where logs, and other information is stored. 5-10KB
Total (estimate, after build...) 10+GB

Optional folders. Only if BOOST, PLIB and/or OSG are NOT already 'installed' in your system. Not found by the script.

Folder Description Size
/boost_1_44_0 This is the boost headers folder, from the download of a tar.gz - boost 280MB
/plib The svn source, and build of PLIB - PLIB 59MB
/OSG301 Download, unzip and build of OSG development release 3.0.1 - OSG 218MB



The script has a myriad of options which can be seen by running the usual $ makefg --help.

Some of these downloads can be avoided, if you already have the particular item somewhere else in your system. The related options are :-

PLIBPATH=<dir> Point to another installed PLIB to be used
OSGPATH=<dir> Point to another installed OpenSceneGraph to be used
BOOSTPATH=<dir> Point to another downloaded, but not necessarily installed boost headers.

Naturally the directory given with these options must exist, and it will be checked a little to ensure it looks valid for the particular headers (and libraries)...


Help Output

~/FG20/$ makefg OSGTRUNK --help
Processing makefg, version 1.3.8, of 2012-02-04, on Sat Feb  4 13:37:59 CET 2012,
with command [OSGTRUNK --help], next log is [/home/geoff/bin/old-versions/tmp/templog1.txt]
Checking 2 arguments ... [OSGTRUNK --help]
# makefg - a script for downloading, making, and installing FlightGear - 2012-02-04 1.3.8
Help for running makefg script, version: 1.3.8 - geoff mclane - email: reports [at] geoffair [dot] info
The script pauses for input of a 'y' frequently. Any other input, or none, and it will exit.
If you want to proceed WITHOUT any pause, then use NOPAUSE in the command line.
Run without any command, or 'DOUPD' will do checkouts, (or updates) from the repositories.
The tools can be updated by 'TOOLUPD', or 'TOOLUPDONLY' to exit after this 'tool' update.
'DOUPD' will also update the tools, and update each of the other components, if the checkout already done.
But 'NO_TOOL_UPD' will ensure NO tool or package update done.
NOTE: The command ADDDEBUG before the help request would give MORE information.
Full set of valid commands is:
Simgear Options
SG_JPEG_FACTORY Enable JPEG-factory support (def=OFF)
SG_ENABLE_RTI   Enable RTI in simgear       (def=OFF)
FlightGear Options
FG_JPEG_FACTORY Enable JPEG-factory support (def=OFF)
FG_ENABLE_RTI   Enable RTI in flightgear    (def=OFF)
FG_SP_FDMS      Enable special-purpose FDMs (def=OFF)
FG_UIUC_MODEL   Enable UIUCModel FDM        (def=OFF)
FG_LARCSIM      Enable LaRCsim FDM          (def=OFF)
Terragear Options
TG_GDAL_OFF     Disable GDAL/OGR Build      (def=ON)
ATLAS and TG are OFF by default. Use ATLAS or ATLASADD to add Atlas.
OSG Version: Def=OSG301, OSG283, OSGUSEDEV=296 dev.rel., OSG299 dev.rel., or OSGTRUNK (trunk).
In all cases, the FG base data will be installed, since it is required for FG and TG!
    DOUPD       Force update of ALL tools, sources. Checkout always done if not existing.
    DOUPD2      Do update of sources after OSG.
    TOOLUPD     Force apt-get tool and package update
    TOOLUPDONLY Only update tools, and exit
    NO_TOOL_UPD Ensure NO tools or package update done
    ADDDEBUG    More output to the (incrementing) LOG file
    DELSCRIPTS  Delete, and re-write run scripts. This can happen automatically for certain version changes.
    NO_CONF     Assume NO CONF file available.
    NOPAUSE     Do not pause (frequently), and wait for input.
    HELP        Output help, and exit.
The main 'fgfs' application will be installed in /home/geoff/bin/old-versions/install/flightgear.
but run_fgfs.sh, and run_fgrun.sh are written to /home/geoff/bin/old-versions for a quick start.

It is difficult to describe the interaction of many parameters, but suffice it to say
run without parameters builds the default set PLIB, OSG, SG, FG and FGRUN, if 'boost' found, but
some parameters, like say 'FG' cause only that component to be addressed.
The file /home/geoff/bin/makefg-1.3.8.conf can contain parameters previously used,
and will become the 'default' on the next run. This is especially helpful for parameters like
BOOSTPATH, FGDATADIR, PLIBPATH, ... to use the previous >path< given, or used.

If it is a NEW installation

 *** THIS APPEARS TO BE A NEW INSTALLATION in [/home/geoff/bin/old-versions] ***

If it is an existing installation

makefg: Some _VERY_ important 'prefix' items for 'configure'.
makefg: *** CHECK THEM CAREFULLY! *** and the FG data path.
makefg: PLIB:   /usr - version [1.8.5] SKIP
makefg: OSG:    /media/Disk2/FG/fg20/install/OSGtrunk - Version [3.1.0] ...
makefg: BOOST:  /usr - version [1.40.00] OK
makefg: SG:     /media/Disk2/FG/fg20/install/simgear - version [2.7.0] ...
makefg: FG:     /media/Disk2/FG/fg20/install/flightgear - version ["2.7.0"] ...
makefg: FGRUN:  /media/Disk2/FG/fg20/install/fgrun - versions [1.6.1] ...
makefg: FGDATA: /media/Disk2/FG/fg20/fgdata - version [2.7.0] SKIP



NOTE WELL: If, and when there are LATER versions, then these will usually be available for direct download at http://geoffair.org/tmp/makefg, sometimes long before they get added to this formal page.

makefg-<version>.zip - contains the single makefg script, or sometimes makefg.<version>. It would be normal to place this script in a folder that is included in your PATH environment variable, so you can use it from anywhere.

It records some 'persistent' configuration information in the folder it is run from, and $HOME/bin, so it is better used from a 'persistent' PATH directory, rather than locally as './makefg'.

And, of course, you have to make it executable - $ chmod +x makefg

Date Link Size MD5
2012/02/04 makefg-1.3.8.zip 33,214 4e716e3c52e7d1131443e5d324872806
Older versions
2012/02/03 makefg-1.3.7.zip 32,915 df2ede0abea2048e500409a8a6882dd9
2011/12/31 makefg- 32,546 f6bfcd049f5e36db3141431ef1e7b4b6
2011/11/15 makefg-1.3.6.zip 32,510 dfbfb6b6b42859177ce0d3d751741709
2011/09/08 makefg-1.3.3.zip 29,857 1499ed440d199c6e320eb7a657b2f409
2011/09/07 makefg-1.3.2.zip 29,818 ce359a5134a79f1286a0c2a6ed4f52d6
2011/08/29 makefg-1.3.1.zip 29,782 9c51502456b6dfcf79648d524f03bc8e
2011/05/04 makefg-1.3.0.zip 29,978 f7a1f079956e32bdf979fbee07adb16b
2010/11/24 makefg-1.2.3.zip 26,533 3e2b48eb42beacc363a84359d831e5b7
2010/08/21 makefg.zip 25,022 dc3333eead5461e2ac84024856a348c8
2010/08/21 makefg.tar.gz 25,034 8640d959e0c7b4db59bda2a048dab6f6

In previous versions there was a separate 'maketg' script, but as of 1.3.++ there is now only one script for ALL. Of course if you have no interest in building your own personal part of flightgear scenery, then this extension will be of no interest to you.


Using an UNINSTALLED BOOST download - Special Case

2011-11-15: This only applied to early script versions, and only if the script was used to download BOOST

To allow the auto tools to find an 'uninstalled' boost headers, patches need to be done to simgear and flightgear configure.ac and acinclude.m4 files. These are NOT needed if a fully normally installed version of boost is used.

Until accepted, and updated in the FG and SG GIT repositories, acinclude.m4 and configure.ac _MUST_ be patched to use this 'uninstalled' set of boost headers. My modified files for both SG and FG are available in the downloads below.

BUT be warned, these MAY be out-of-date, especially the configure.ac files as the projects progress, and it may be necessary to 'merge' the changes. Usually both the acinclude.m4 files can be directly replaced.

configure.zip or configure.tar.gz - These contains simgear/source/configure.ac and acinclude.m4, plus fgfs/source/configure.ac and acinclude.m4. As stated above, these may be out-of-date, especially the configure.ac files, and may need to be merge with the current. Usually the acinclude.m4 can be a direct replacement.

Date Link Size MD5
2010/08/21 configure.zip 30,063 91113ec6cc3e2f57c1a572cb682e9fb4
2010/08/21 configure.tar.gz 28,063 43c8564d0768934fe7b675e42a004e02


Old Folder Structure

This was the older folder structure, prior about makefg version 1.3.++

Folder Description Size
/boost_1_43_0 This is the boost headers folder, from the download of a tar.gz - boost 280MB
/plib The svn source, and build of PLIB - PLIB 100MB
/OSG282 Download, unzip and build of OSG development release 2.8.2 - OSG 190MB
/simgear/source The git clone, and build of the SG source - FG 175MB
/fgfs/source The git clone, and build of the FG source - FG 550MB
/fgrun The svn source of fgrun... - FGRUN 37MB
/fgfs/data The git clone of the FG data, but ONLY at --depth 1, history excluded. 5GB
Each of the above are DOWNLOADED source directories
The following are generated by the script
/install This is where all the pieces will be installed... 350MB
/tmp Where logs, and other information is stored. This can be deleted anytime. 5-10KB
Total (estimate, after build...) 7-8GB



EOP - fgfs-052.htm

checked by tidy  Valid HTML 4.01 Transitional