Autobuild

From Second Life Wiki
Jump to navigation Jump to search


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.

KBcaution.png 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.

KBnote.png 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
KBtip2.png 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 pip install autobuild command will install autobuild under $VENV instead of into system directories. (Note that this pip install command will work either way. If you have an active virtualenv, it will install into the virtualenv; if not it will attempt to install into system directories.)

Running Autobuild

Usage:

autobuild options sub-command

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 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.