---
title: Quick start
sort_info: 25
---
Bootstrapping
-------------
"Bootstrapping" means getting autoproj itself before it can work its magic ...
The canonical way is the following:
* install Ruby by yourself. On Debian or Ubuntu, this is done with
done with
sudo apt-get install wget ruby
{: .cmdline}
* then, [download this script](autoproj_bootstrap) *in the directory where
you want to create an autoproj installation*, and run it. This can be done with
wget http://doudou.github.com/autoproj/autoproj\_bootstrap
ruby autoproj\_bootstrap
{: .cmdline}
* follow the instructions printed by the scriptmanifest.
Additionally, if you are given a reference to a source code repository in which
an autoproj configuration is stored (i.e. a directory in which a manifest is
present), you can bootstrap this configuration directly:
wget http://doudou.github.com/autoproj/autoproj\_bootstrap
ruby autoproj\_bootstrap VCS
{: .cmdline}
For instance, to build all packages made available by the RubyInMotion project,
do
wget http://doudou.github.com/autoproj/autoproj\_bootstrap
ruby autoproj\_bootstrap git git://github.com/doudou/rubim.all.git
{: .cmdline}
Additional options can be given for the version control system. For instance,
wget http://doudou.github.com/autoproj/autoproj\_bootstrap
ruby autoproj\_bootstrap git git://github.com/doudou/rubim.all.git branch=stable
{: .cmdline}
Switching configuration after bootstrapping
-------------------------------------------
Let's assume that you want to switch what configuration autoproj is tracking,
but without having to redo a complete bootstrap -- i.e. avoiding to rebuild
stuff that is common between the configurations.
autoproj provides the switch-config command for that. This command takes the
same arguments than the bootstrap script, that is:
autoproj switch-config \[vcs_type] \[vcs_url] \[vcs_options]
{: .cmdline}
As a shortcut, one can omit vcs_type and vcs_url if they don't change.
This is especially useful when switching between branches:
autoproj switch-config branch=experimental
{: .cmdline}
Management
----------
To build the packages, simply do:
autoproj build
{: .commandline}
It will ask the value of newly defined configuration options, import code hosted
remotely that is not yet present, install OS packages (e.g. Ubuntu packages on
an Ubunut installation) and build everything.
autoproj will *not* ask you again about the configuration questions you already
answered, so if you want to change them, do:
autoproj build --reconfigure
{: .commandline}
Alternatively, you can edit the autoproj/config.yml file directly.
By default, autoproj does not automatically update the package sources. To do
that, you have to explicitely call
autoproj update
{: .commandline}
Finally, if you want to make sure that your build is fresh, then do
autoproj rebuild
{: .commandline}
A less intrusive version of it only forces all tools to reconsider building. It
is mainly useful for CMake when the build environment changed -- cmake caches a
lot of values. To trigger this, do
autoproj force-build
{: .commandline}
To add a new set, one edits the autoproj/manifest file and adds it
there. Then, simply starting the build will update everything and rebuild what
is needed.
Documentation is generated only when asked explicitely:
autoproj doc
{: .commandline}
It generates documentation of packages that have some, and copies that
documentation into build/doc/, following the same layout than the source
directory.
All these commands (i.e. build, doc, and update) accept a package name as
argument, thus triggering build only for this package and its dependencies. For
instance:
autoproj build orocos/rtt
{: .commandline}
**Exception**: to avoid long builds, the rebuild and force-build commands apply only
to the packages given on the command line. E.g., autoproj rebuild orocos/rtt
will only rebuild the orocos/rtt packages. If you want to rebuild both the
packages and its dependencies, use the --with-depends options.
{: .warning}