Difference between revisions of "Autobuild"
m (→Installing Autobuild: don't want a newline after "Tip:") |
m (→Installing Autobuild: clickable link doesn't make much sense here, especially since the protocol is mistaken as http (should be hg+http)) |
||
Line 30: | Line 30: | ||
Then your <code>pip install</code> command will install autobuild under <code>$VENV</code> instead of into system directories. (Note that this <code>pip install</code> 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.) | Then your <code>pip install</code> command will install autobuild under <code>$VENV</code> instead of into system directories. (Note that this <code>pip install</code> 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.) | ||
pip install -e "hg+http://hg.secondlife.com/autobuild/#egg | pip install -e <nowiki>"hg+http://hg.secondlife.com/autobuild/#egg=autobuild"</nowiki> | ||
which autobuild | which autobuild | ||
}} <!-- end pip/virtualenv tip --> | }} <!-- end pip/virtualenv tip --> |
Revision as of 13:00, 18 March 2011
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 Mercurial repository:
https://bitbucket.org/lindenlab/autobuild
Installing Autobuild
You can either run the autobuild command directly from the "bin" directory in a working copy of that repository, or install it as a normal python package by running
python setup.py install
from the top level directory of the working copy. You may need administrative privilege on your system to install into system command directories.
Warning: Windows users with a "native" Python install, should add the Autobuild "bin" directory to their PATH and avoid the Cygwin shell like the plague ;-) |
Note: If you are using Cygwin on Windows, use python setup.py install rather than running Autobuild directly from the checkout. This ensures that Cygwin paths are translated to native Windows paths. You must also add your Python scripts directory (for example C:/Program Files/python26/Scripts ) to your PATH. |
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 alternatively use virtualenv and pip, e.g.:
mkdir ~/virtualenvs # or any directory for your Python-package environments VENV=~/virtualenvs/autobuild virtualenv "$VENV" . "$VENV/bin/activate" Then your pip install -e "hg+http://hg.secondlife.com/autobuild/#egg=autobuild" which autobuild |
Running Autobuild
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).