Difference between revisions of "Autobuild"

From Second Life Wiki
Jump to navigation Jump to search
Line 1: Line 1:
{{RightToc}}
{{Autobuild Nav}}
Autobuild is an in-house 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 actually configure and build your library.  Autobuild will, however, allow you invoke these commands and package the product with a common interface. (''for Linden old hands: Autobuild is designed as a replacement for the old [https://svn.lindenlab.com/svn/lindenlib/trunk lindenlib] policies, doing the right thing so you don't have to.'')
 
== 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. For Linden old hands: Autobuild is designed as a replacement for the old [https://svn.lindenlab.com/svn/lindenlib/trunk lindenlib] policies, doing the right thing so you don't have to.


{{KBcaution|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.}}
{{KBcaution|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.}}
Line 18: Line 20:
== Running Autobuild ==  
== Running Autobuild ==  
Usage:
Usage:
      <nowiki>autobuild [-v] [--help [HELP]] [--dry-run] [--quiet] [--verbose]</nowiki>
{{Syntax|autobuild [-v] [--help [HELP]] [--dry-run] [--quiet] [--verbose] [--debug] ''sub-command''
                <nowiki>[--debug]</nowiki>
}}
               
                <nowiki>{installables,configure,package,edit,upload,manifest,build,install,print,source_environment,uninstall}</nowiki>
                <nowiki>...</nowiki>


Sub Commands:
Options:
{|border="1" class="lltable"


:;[[autobuild build]]
|--
::<nowiki>Builds platform targets.</nowiki>
! Option
:;[[autobuild configure]]
! Description
::<nowiki>Configures platform targets.</nowiki>
:;[[autobuild edit]]
::<nowiki>Manage build and package configuration.</nowiki>
:;[[autobuild install]]
::<nowiki>Fetch and install package archives.</nowiki>
:;[[autobuild installables]]
::<nowiki>Manipulate installable package entries in the autobuild configuration.</nowiki>
:;[[autobuild manifest]]
::<nowiki>Manipulate manifest entries to the autobuild configuration.</nowiki>
:;[[autobuild package]]
::<nowiki>Creates an archive of build output.</nowiki>
:;[[autobuild print]]
::<nowiki>Print configuration.</nowiki>
:;[[autobuild source_environment]]
::<nowiki>Prints out the shell environment Autobuild-based buildscripts to use (by calling 'eval').</nowiki>
:;[[autobuild uninstall]]
::<nowiki>Uninstall package archives.</nowiki>
:;[[autobuild upload]]
::<nowiki>upload tool for autobuild </nowiki>


Options:
|--
:{|border="0" cellpadding="5" style="border-collapse: collapse; border-style: none;"
| -v, --version
| Show version information


|- style="vertical-align: top;"
|--
|<nowiki>-v, --version</nowiki>
| --help&nbsp;[HELP]
| Find all valid Autobuild tools and show help


|- style="vertical-align: top;"
|--
|<nowiki>--help&nbsp;[HELP]</nowiki>
| --dry-run
|<nowiki>find all valid Autobuild Tools and show help</nowiki>
| Run tool in dry run mode if available


|- style="vertical-align: top;"
|--
|<nowiki>--dry-run</nowiki>
| --quiet
|<nowiki>run tool in dry run mode if available</nowiki>
| Display minimal output


|- style="vertical-align: top;"
|--
|<nowiki>--quiet</nowiki>
| --verbose
|<nowiki>minimal output</nowiki>
| Display verbose output


|- style="vertical-align: top;"
|--
|<nowiki>--verbose</nowiki>
| --debug
|<nowiki>verbose output</nowiki>
| Display debug information


|- style="vertical-align: top;"
|}
|<nowiki>--debug</nowiki>


'''Sub-commands'''
{| class=lltable border=1
|--
! Sub-command
! Description
|--
| [[autobuild build|build]]
| Builds platform targets.
|--
| [[autobuild configure|configure]]
| Configures 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]]
| Creates an archive of build output.
|--
| [[autobuild print|print]]
| Print configuration.
|--
| [[autobuild source_environment|source_environment]]
| Prints out the shell environment Autobuild-based buildscripts to use (by calling 'eval').
|--
| [[autobuild uninstall|uninstall]]
| Uninstall package archives.
|--
| [[autobuild upload|upload]]
| upload tool for autobuild
|}
|}



Revision as of 11:32, 8 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. 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.

KBcaution.png Important: Linden Lab Autobuild is not the same as or derived from GNU Autobuild, but they are similar enough to cause confusion.

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.

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

Running Autobuild

Usage:

autobuild [-v] [--help [HELP]] [--dry-run] [--quiet] [--verbose] [--debug] sub-command

Options:

Option Description
-v, --version Show version information
--help [HELP] Find all valid Autobuild tools and show help
--dry-run Run tool in dry run mode if available
--quiet Display minimal output
--verbose Display verbose output
--debug Display debug information

Sub-commands

Sub-command Description
build Builds platform targets.
configure Configures 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 Creates an archive of build output.
print Print configuration.
source_environment Prints out the shell environment Autobuild-based buildscripts 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.