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