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.
Autobuild is available as a PyPI package:
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
|Note: This (python setup.py install) does not work correctly on Windows. You will need to edit/rename some files to make it work!|
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
|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"
Building the Viewer
Changing or Adding Build Configuration Details
Supply zero or more options, and one sub-command.
|--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|
|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.|
|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.