Difference between revisions of "Autobuild"
Brad Linden (talk | contribs) |
m (No longer suggest people install autobuild with sudo) |
||
(44 intermediate revisions by 10 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{Autobuild Nav}} | ||
__NOTOC__ | |||
Autobuild is a framework for building packages and for managing the dependencies of a package on other packages. It provides a common interface to configuring and building any package, but it is not a build system like make or cmake. You will still need platform-specific make, cmake, or project files to configure and build your library. Autobuild will, however, allow you invoke these commands and package the product with a common interface. | |||
__TOC__ | |||
'''Linden Lab Autobuild is not the same as or derived from [http://josefsson.org/autobuild/ GNU Autobuild], but they are similar enough to cause confusion. We regret this error.''' | |||
== Getting Autobuild == | == Getting Autobuild == | ||
Autobuild is | Autobuild is under active development, so it's recommended that you get the latest version and keep it up to date. | ||
You should use Python 3.7+ for autobuild 3.x. | |||
To install with the appropriate python package dependencies, use a tool such as pip or [https://pypa.github.io/pipx/ pipx]: | |||
pip install autobuild | |||
depending on how your permissions are defined and whether or not you | |||
are working within a [http://docs.python-guide.org/en/latest/dev/virtualenvs/ python virtualenv], | |||
you may need to adjust your system <tt>PATH</tt>. | |||
== Running Autobuild == | == Running Autobuild == | ||
=== Building the Viewer === | |||
See [[Building the Viewer with Autobuild]] | |||
=== Changing or Adding Build Configuration Details === | |||
Usage: | Usage: | ||
{{Syntax|autobuild ''options'' ''sub-command'' | |||
}} | |||
Supply zero or more options, and one sub-command. | |||
'''Options''': | |||
{|border="1" class="lltable" | |||
|-- | |||
! Option | |||
! Description | |||
|-- | |||
| --verbose | |||
| Display verbose output. Useful in diagnosing errors in your configuration. | |||
|- | |-- | ||
| | | --dry-run | ||
| Run tool in dry run mode. ''This mode will print information about what would have been done. It is supported for most subcommands.'' | |||
|- | |-- | ||
| | | --help [''command''] | ||
| | | Find all valid Autobuild tools and show help | ||
|- | |-- | ||
| | | --quiet | ||
| | | Display minimal output | ||
|- | |-- | ||
| | | -V, --version | ||
| | | Show version information for autobuild | ||
|- | |-- | ||
| | | --debug | ||
| | | Display debug information; very very verbose, probably of interest only if you are modifying autobuild itself | ||
| | |} | ||
'''Sub-commands''' | |||
{| class=lltable border=1 | |||
|-- | |||
! Sub-command | |||
! Description | |||
|-- | |||
| [[autobuild build|build]] | |||
| Build platform targets. | |||
|-- | |||
| [[autobuild configure|configure]] | |||
| Configure platform targets. | |||
|-- | |||
| [[autobuild edit|edit]] | |||
| Manage build and package configuration. | |||
|-- | |||
| [[autobuild install|install]] | |||
| Fetch and install package archives. | |||
|-- | |||
| [[autobuild installables|installables]] | |||
| Manipulate installable package entries in the autobuild configuration. | |||
|-- | |||
| [[autobuild manifest|manifest]] | |||
| Manipulate manifest entries to the autobuild configuration. | |||
|-- | |||
| [[autobuild package|package]] | |||
| Create an archive of build output. | |||
|-- | |||
| [[autobuild print|print]] | |||
| Print configuration. | |||
|-- | |||
| [[autobuild source_environment|source_environment]] | |||
| Print the shell environment Autobuild-based build scripts to use (by calling 'eval'). | |||
|-- | |||
| [[autobuild uninstall|uninstall]] | |||
| Uninstall package archives. | |||
|} | |} | ||
Line 92: | Line 121: | ||
; [[Build Script Anatomy]] | ; [[Build Script Anatomy]] | ||
: An annotated build script typical of those used to build third party libraries. | : An annotated build script typical of those used to build third party libraries. | ||
; [[Autobuild Shell Functions]] | |||
: A description of all shell functions provided by Autobuild for use in build scripts. | |||
== Contributing to Autobuild == | == Contributing to Autobuild == | ||
Line 99: | Line 130: | ||
* Discussion of and help with Autobuild are available on the [https://lists.secondlife.com/cgi-bin/mailman/listinfo/opensource-dev opensource-dev mailing list] and the [irc://irc.freenode.org/%23opensl #opensl channel on the freenode.org IRC network]. | * Discussion of and help with Autobuild are available on the [https://lists.secondlife.com/cgi-bin/mailman/listinfo/opensource-dev opensource-dev mailing list] and the [irc://irc.freenode.org/%23opensl #opensl channel on the freenode.org IRC network]. | ||
* Bug reports and feature suggestions are tracked in the [https://jira.secondlife.com/browse/OPEN Open Development project on jira.secondlife.com]. | * Bug reports and feature suggestions are tracked in the [https://jira.secondlife.com/browse/OPEN Open Development project on jira.secondlife.com]. | ||
** | ** Testing procedures for patch submissions are documented here: [[Autobuild/Integration]] | ||
[[Category:Autobuild]] [[Category:Open Source Portal]] | [[Category:Autobuild]] [[Category:Open Source Portal]] |
Latest revision as of 10:21, 29 September 2022
Autobuild is a framework for building packages and for managing the dependencies of a package on other packages. It provides a common interface to configuring and building any package, but it is not a build system like make or cmake. You will still need platform-specific make, cmake, or project files to configure and build your library. Autobuild will, however, allow you invoke these commands and package the product with a common interface.
Linden Lab Autobuild is not the same as or derived from GNU Autobuild, but they are similar enough to cause confusion. We regret this error.
Getting Autobuild
Autobuild is under active development, so it's recommended that you get the latest version and keep it up to date.
You should use Python 3.7+ for autobuild 3.x.
To install with the appropriate python package dependencies, use a tool such as pip or pipx:
pip install autobuild
depending on how your permissions are defined and whether or not you are working within a python virtualenv, you may need to adjust your system PATH.
Running Autobuild
Building the Viewer
See Building the Viewer with Autobuild
Changing or Adding Build Configuration Details
Usage:
Supply zero or more options, and one sub-command.
Options:
Option | Description |
---|---|
--verbose | Display verbose output. Useful in diagnosing errors in your configuration. |
--dry-run | Run tool in dry run mode. This mode will print information about what would have been done. It is supported for most subcommands. |
--help [command] | Find all valid Autobuild tools and show help |
--quiet | Display minimal output |
-V, --version | Show version information for autobuild |
--debug | Display debug information; very very verbose, probably of interest only if you are modifying autobuild itself |
Sub-commands
Sub-command | Description |
---|---|
build | Build platform targets. |
configure | Configure platform targets. |
edit | Manage build and package configuration. |
install | Fetch and install package archives. |
installables | Manipulate installable package entries in the autobuild configuration. |
manifest | Manipulate manifest entries to the autobuild configuration. |
package | Create an archive of build output. |
Print configuration. | |
source_environment | Print the shell environment Autobuild-based build scripts to use (by calling 'eval'). |
uninstall | Uninstall package archives. |
Background and Tutorials
- Autobuild How To
- A tutorial introduction to using autobuild
- Autobuild Lexicon
- A list of terms and how they are used in the context of autobuild
- Autobuild Package Layout
- Describes the standard directory tree for packages managed with autobuild
- Autobuild Quick Start
- A basic walkthrough of how to add autobuild management to an existing software project
- Autobuild Class Model
- Describes the fundamental objects in the autobuild design and the relationships between them.
- Autobuild Examples
- Links to packages built with autobuild.
- Build Script Anatomy
- An annotated build script typical of those used to build third party libraries.
- Autobuild Shell Functions
- A description of all shell functions provided by Autobuild for use in build scripts.
Contributing to Autobuild
Autobuild is open source. Improvements are most welcome.
- Discussion of and help with Autobuild are available on the opensource-dev mailing list and the #opensl channel on the freenode.org IRC network.
- Bug reports and feature suggestions are tracked in the Open Development project on jira.secondlife.com.
- Testing procedures for patch submissions are documented here: Autobuild/Integration