Difference between revisions of "Autobuild"

From Second Life Wiki
Jump to navigation Jump to search
m
m
Line 6: Line 6:
{{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.}}


: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.
{{KBnote|This page and the rest of the autobuild documentation is in the process of being updated for the changes between autobuild 0.8 and autobuild 1.0 - if you are having difficulties, ask for help on the [[OpenSource-Dev]] mailing list.}}


== Getting Autobuild ==
== Getting Autobuild ==


Autobuild is under active development, so it's recommended that you get the latest version and keep it up to date.
Autobuild is under active development, so it's recommended that you get the latest version and keep it up to date.
:''For the latest developments, see [[User:Oz Linden/Autobuild Improvements]]''


Inside a DOS command window:
You should use Python 2.7 for autobuild 1.0 (python version 2.6.6 may work for most subcommands, but will complain).
* CD to where you want to install autobuild. Do not have any spaces in the path to this directory.
 
* Do:
To install with the appropriate python package dependencies, use:
  hg clone <nowiki>http://hg.secondlife.com/autobuild</nowiki>
  pip install 'hg+https://bitbucket.org/lindenlab/autobuild-1.0#egg=autobuild'
* Modify your path statement to include the autobuild <code>\bin</code> directory
depending on how your permissions are defined and whether or not you
are working within a [http://docs.python-guide.org/en/latest/dev/virtualenvs/ python
virtualenv], you may need to run that under the <tt>sudo</tt> command.
 
{{KBcaution|Projects that have not yet upgraded to autobuild 1.0 will
need the version of autobuild from
<tt>https://bitbucket.org/lindenlab/autobuild</tt> - that version is deprecated; users are strongly urged to move to
version 1.0 (or later, if there is one).}}


== Running Autobuild ==  
== Running Autobuild ==  
Line 23: Line 29:
=== Building the Viewer ===
=== Building the Viewer ===


Windows users see: [[Viewer_2_Microsoft_Windows_Builds]]
See [[Building the Viewer with Autobuild]]
 
Everyone else see: [[Building the Viewer with Autobuild]] (these instructions may still be in a rough form)


=== Changing or Adding Build Configuration Details ===
=== Changing or Adding Build Configuration Details ===

Revision as of 07:59, 19 March 2015


Overview

Autobuild is a framework for building packages and for managing the dependencies of a package on other packages. It provides a common interface to configuring and building any package, 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.
KBnote.png Note: This page and the rest of the autobuild documentation is in the process of being updated for the changes between autobuild 0.8 and autobuild 1.0 - if you are having difficulties, ask for help on the OpenSource-Dev mailing list.

Getting Autobuild

Autobuild is under active development, so it's recommended that you get the latest version and keep it up to date.

You should use Python 2.7 for autobuild 1.0 (python version 2.6.6 may work for most subcommands, but will complain).

To install with the appropriate python package dependencies, use:

pip install 'hg+https://bitbucket.org/lindenlab/autobuild-1.0#egg=autobuild'

depending on how your permissions are defined and whether or not you are working within a [http://docs.python-guide.org/en/latest/dev/virtualenvs/ python virtualenv], you may need to run that under the sudo command.

KBcaution.png Important: Projects that have not yet upgraded to autobuild 1.0 will

need the version of autobuild from https://bitbucket.org/lindenlab/autobuild - that version is deprecated; users are strongly urged to move to

version 1.0 (or later, if there is one).

Running Autobuild

Building the Viewer

See Building the Viewer with Autobuild

Changing or Adding Build Configuration Details

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.