|
|
| Line 170: |
Line 170: |
| ===Preventing multiple downloads of fgdata, or other sources such as OSG=== | | ===Preventing multiple downloads of fgdata, or other sources such as OSG=== |
|
| |
|
| https://www.gitorious.org/fg/fg-download-and-compile-fgmeta select branch: feature/directories
| |
|
| |
|
| Currently the script uses a single way to structure directories for sources, data, building and installing. In order to prevent multiple downloading of sources and data, symbolic links can be pre-created in a build tree for previously downloaded sources and data completely outside the build tree.
| | This allows a number of complex build scenarios to be tried without placing an unnecessary burden on gitorious and other source archives, not to mention your own network bandwidth. |
|
| |
|
| This would allow a number of complex build scenarios to be tried without placing an unnecessary burden on gitorious and other source archives, not to mention your own network bandwidth.
| | Unless the user chooses to use the new method, everything just stays where it is in each build tree. |
|
| |
|
| All of this should be accomplished in a non-obtrusive way for current users of the script. Unless the user chooses to use the new method, everything just stays where it is in each build tree.
| | The method relies on the existance of named directories to trigger the new behavior. Currently no parameters control this, and there is no means of converting between an existing structure and the new one. |
|
| |
|
| The easiest thing to do is to keep the current directory structure but override the usage of source, build and install directories using hyperlinks when called for.
| | Previously, you could just download the script and in the same directory, just run it. To use the new scheme, you download the script as usual, and create several sub-directories |
| | to hold sources for OSG and plib, one or more version of fgdata, and builds for stable, next and specific versions |
|
| |
|
| * A new option drives the creation and re-creation of symlinks
| | FG-git |
| ** No option, build as usual, no symbolic links are created, <u>but symlinks will be used if already in place for the build in progress</u>
| | + download_and_compile.sh |
| ** -L 0 same as No Option
| | + othersrc |
| ** -L 1 Use hyperlinks for a single copy of sources. Checkouts will be used to set the sources to the correct version.
| | + fgdata-3.0.0 |
| ** -L 2 Use hyperlinks for multiple copies of sources, one per version.
| | + fgdata-2.12.1 |
| | + next |
| | + 2.12.1 or stable |
| | + 3.0.0 |
|
| |
|
| Use of the symlinks will require a small change in the procedures for building. Previously, you could just create a directory, cd to it and run the script from the directory to get a complete flightgear build. To use the symlinks, you'll need a parent build directory where the sources and data will go, and a subdirectory for the build. For example, to support builds of next, master and 2.12.1
| | You can populate the directories with previously downloaded svn and .git repositories, or rely on the script to populate them for you. |
|
| |
|
| | othersrc is for packages that are required for flightgear but are not part of flightgear per se. This includes OSG and plib, but not openrti, which is handled as if it were part of flightgear. |
| FG-git | | FG-git |
| + fgsrc
| |
| + othersrc | | + othersrc |
| + fgdata-git
| | +OpenSceneGraph-3.0.1 |
| + fgdata-2.99.9
| | +OpenSceneGraph-3.2.0 |
| + fgdata-2.12.1
| | +plib-1.8.5 |
| + download_and_compile.sh
| |
| + master
| |
| + next
| |
| + 2.12.1
| |
|
| |
|
| FG-git is my parent directory, master, next and 2.12.1 subdirectories each have their own build and install directories and the run_ scripts. They'll also have symlinks to the actual sources under fgsrc, othersrc and fgdata-git. The -L 1 option gives you the option of using a single copy of the sources and data. or you can have multiple copies, one for each version needed using -L 2. Which you choose depends on your situation. If you just need the results of each build, and aren't actually working on a version, -L1 will probably do. -L1 would also work on a build server. -L 2 allows you to build all the versions you want, and to actually work on changes in more than one version without disturbing your changes with builds for other versions.
| | +fgdata-3.0.0 |
| | +fgdata |
| | +fgdata-2.12.1 |
| | +fgdata |
| | +fgdata-3.1.0 |
| | +fgdata |
|
| |
|
| ===Special Handling for fgdata=== | | ===Special Handling for fgdata=== |