Autobuild
Overview
Autobuild is a framework for maintaining and building libraries. It acts as director providing a common interface to build and package libraries, 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.
Important: Linden Lab Autobuild is not the same as or derived from GNU Autobuild, but they are similar enough to cause confusion. |
For Linden old hands: Autobuild is designed as a replacement for the old lindenlib policies; doing the right thing so you don't have to.
Getting Autobuild
Autobuild is available as a PyPI package:
easy_install autobuild
or
pip install autobuild
of if you don't have pip or easy_install
hg clone http://hg.secondlife.com/autobuild cd autobuild python setup.py install
You may need administrative privilege on your system to install into system command directories.
Note: If you are using Cygwin on Windows, you must also add your Python scripts directory (for example C:/Program Files/python26/Scripts ) to your PATH. If you have further problems, please see Autobuild/Cygwin |
Tip: If you do not have administrative privilege on your system, or for any reason you wish to avoid adding autobuild into system-level Python or command directories, you can use virtualenv, e.g.:
mkdir ~/virtualenvs # or any directory for your Python-package environments VENV=~/virtualenvs/autobuild virtualenv "$VENV" . "$VENV/bin/activate" Then your |
Running Autobuild
Building the Viewer
See: Build_Viewer_With_Autobuild
Changing or Adding Build Configuration Details
Usage:
Supply zero or more options, and one sub-command.
Options:
Option | Description |
---|---|
--debug | Display debug information |
--dry-run | Run tool in dry run mode if available |
--help [command] | Find all valid Autobuild tools and show help |
--quiet | Display minimal output |
--verbose | Display verbose output |
-V, --version | Show version information |
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. |
upload | Upload tool for autobuild |
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.
- Suggested patches for issues from the jira are reviewed on our code review system (see the documentation on how to use it).
- Testing procedures for patch submissions are documented here: Autobuild/Integration