Scripted Compilation on Linux Debian/Ubuntu: Difference between revisions

Jump to navigation Jump to search
→‎Updating FlightGear: Update due to $WHATTOBUILDALL being bigger now; also mention the -I option
(→‎Building FlightGear: download_and_compile.sh now also processes CARES and PLIB when no explicit list of components is specified)
(→‎Updating FlightGear: Update due to $WHATTOBUILDALL being bigger now; also mention the -I option)
Line 200: Line 200:
| text = FGData
| text = FGData
}} and [[OpenSceneGraph|OSG]], simply execute this:
}} and [[OpenSceneGraph|OSG]], simply execute this:
  $ download_and_compile.sh -pn -j$(nproc) SIMGEAR FGFS DATA OSG
  $ download_and_compile.sh -I -pn -j$(nproc) SIMGEAR FGFS DATA OSG
The <code>-j$(nproc)</code> option is not necessary, but is likely to save you a lot of time; with it, all available CPU cores will be used when compiling—see [[#Multicore acceleration| Multicore acceleration]].
The <code>-I</code> option tells <tt>download_and_compile.sh</tt> to ignore inter-component dependencies (which are there mostly to help beginners). The <code>-j$(nproc)</code> option is not necessary, but is likely to save you a lot of time; with it, all available CPU cores will be used when compiling—see [[#Multicore acceleration| Multicore acceleration]].


We'll explain the <code>-pn</code> in a minute. <tt>SIMGEAR</tt>, <tt>FGFS</tt>, <tt>DATA</tt> and <tt>OSG</tt> are called ''components'' in <tt>download_and_compile.sh</tt> terminology. A component generally corresponds to a software repository, or something close. In fact, since <tt>SIMGEAR</tt>, <tt>FGFS</tt>, <tt>DATA</tt> and <tt>OSG</tt> are often precisely the components people wish to update, they form the default component set, so that the previous command is equivalent (as of Sept. 2024) to:
<tt>SIMGEAR</tt>, <tt>FGFS</tt>, <tt>DATA</tt> and <tt>OSG</tt> are called ''components'' in <tt>download_and_compile.sh</tt> terminology. A component generally corresponds to a software repository, or something close.
$ download_and_compile.sh -pn -j$(nproc)
 
Now about this <code>-pn</code>. It is equivalent to <code>-p n</code> and means “don't install packages from my (Linux) distribution” (<code>y</code> means ''yes, please install'', <code>n</code> means ''no, don't install''). In case you forgot that, simply run:
Now about the <code>-pn</code>. It is equivalent to <code>-p n</code> and means “don't try to install or update packages from my (Linux) distribution” (<code>y</code> means ''yes, please install or update'', <code>n</code> means ''no, please don't''). In case you forgot that, simply run:
  $ download_and_compile.sh --help
  $ download_and_compile.sh --help
What does it imply to pass <code>-pn</code>? This tells <tt>download_and_compile.sh</tt> to completely skip the step where it checks for needed packages from your distribution and installs them, by default using <tt>apt-get</tt>. It thus goes straight to the following steps:
What does it imply to pass <code>-pn</code>? This tells <tt>download_and_compile.sh</tt> to completely skip the step where it checks for needed packages from your distribution and installs/updates them, by default using <tt>apt-get</tt>. It thus goes straight to the following steps:
* update each repository corresponding to one of the selected components (<tt>SIMGEAR</tt>, <tt>FGFS</tt>, <tt>DATA</tt> and <tt>OSG</tt> in our example);
* update each repository corresponding to one of the selected components (<tt>SIMGEAR</tt>, <tt>FGFS</tt>, <tt>DATA</tt> and <tt>OSG</tt> in our example);
* compile each selected component that requires compilation;
* compile each selected component that requires compilation;
Line 217: Line 217:
Routine update:
Routine update:
  $ download_and_compile.sh -pn -j$(nproc) ''COMPONENT...''
  $ download_and_compile.sh -pn -j$(nproc) ''COMPONENT...''
In case this fails, first update <tt>download_and_compile.sh</tt> (see [[#getting-download-and-compile-sh-using-an-fgmeta-clone|above]]), then run
(add <code>-I</code> if you don't want inter-component dependencies to pull other components). In case this fails, first update <tt>download_and_compile.sh</tt> (see [[#getting-download-and-compile-sh-using-an-fgmeta-clone|above]]), then run
  $ download_and_compile.sh --cleanup
  $ download_and_compile.sh --cleanup
  $ download_and_compile.sh -j$(nproc) ''COMPONENT...''
  $ download_and_compile.sh -j$(nproc) ''COMPONENT...''
where ''COMPONENT...'' stands for the space-separated list of selected components, and defaults to <tt>SIMGEAR FGFS DATA OSG</tt> if you don't specify any.
where ''COMPONENT...'' stands for the space-separated list of components you want <tt>download_and_compile.sh</tt> to process.


=== <span id="examining-download-and-compile-sh-history"></span> Examining the history of <tt>download_and_compile.sh</tt> ===
=== <span id="examining-download-and-compile-sh-history"></span> Examining the history of <tt>download_and_compile.sh</tt> ===
417

edits

Navigation menu