Path: | README |
Last Update: | Fri Aug 18 14:42:05 CEST 2006 |
Old configuration files used with autobuild 0.5 aren’t accepted by Autobuild 0.6. Since 0.6, Autobuild uses Ruby for configuration (just like rake does)
Autobuild is a builder for a set of software packages. It takes as input a yaml config file as input and
packages), …
It takes the dependencies between packages into account in its build process.
All package objects define the following attributes
srcdir: | where the package sources are located |
importer: | the importer object (see "Available importers" below) |
prefix: | the directory where the package should be installed. If it is a relative path, it is relative to the value of Autobuild.prefix. The default is to use the package name. |
All package methods (Autobuild.import, Autobuild.autotools) has either a package name for first argument, or a name => [dependencies] hash, and take a block which can be used to configure the package. For instance
Autobuild.import :my_package do |pkg| end Autobuild.import :my_package => [:depends, :depends_also] do |pkg| end
package = Autobuild.import(dependencies) do |pkg| <package configuration> end
Use import if you need the package sources but don’t need to build it. You just need to set up the importer and srcdir. prefix is ignored.
package = Autobuild.autotools(name, dependencies) do |pkg| <package configuration> end
Use this to build GNU autotools-based packages. This handles autoconf-only packages as well as those using automake
Options to give the configure script are given in the configureflags array
pkg.configureflags = ['--with-blah', 'FOO=bar' ]
If you want the files produced during the build to be separated from the source files, set the builddir attribute. For now, it has to be a relative path, relative to the source directory.
pkg.builddir = 'build'
The generation of the configure script uses four programs: autoheader, autoconf, aclocal, automake. The default program path can be overriden in the Autotools.programs hash. For instance, to be sure that automake-1.9 is used <bb>for all packages</bb>, you set
Autotools.programs['automake'] = 'automake-1.9'
Autobuild tries to detect what tools it should run, but you can override. Autodetection works as follows:
pkg.use :autogen => 'my_autogen_script'
pkg.use :autogen => false pkg.use :automake => false pkg.use :autoheader => true pkg.use :autoconf => 'my_autoconf_program'
The ‘autogen’ option cannot be set to true.
The only program used during the build and install phases is make. Its path can be overriden in the Autobuild.programs hash
Autobuild.programs['make'] = 'gnumake'
You must set an importer object for each package. The package importer is the importer attribute and is set via package.importer = my_importer. An importer foo is defined by the class Autobuild::FooImporter and defines a Autobuild.foo method which creates a new importer object. Importer classes files are in lib/autobuild/import/
package.importer = cvs(cvsroot, module[, options])
Where options is an option hash. See also Autobuild::CVSImporter and Autobuild.cvs
Autobuild.programs['cvs'] = 'my_cvs_command'
cvs cvsroot, module, :cvsco => ['--my', '--cvs', '--options']
cvs cvsroot, module, :cvsup => ['--my', '--cvs', '--options']
package.importer = svn(url[, options])
Where options is an option hash. See also Autobuild::SVNImporter and Autobuild.svn
Autobuild.programs['svn'] = 'my_svn_command'
svn url, :svnco => ['--my', '--svn', '--options']
svn url, :svnup => ['--my', '--svn', '--options']
package.importer = darcs(url[, options])
Where options is a hash. See also Autobuild::DarcsImporter and Autobuild.darcs
Autobuild.programs['darcs'] = 'my_svn_command'
darcs url, :get => ['--my', '--darcs', '--options']
darcs url, :pull => ['--my', '--darcs', '--options']
Author: | Sylvain Joyeux <sylvain.joyeux@m4x.org> |
Copyright: | Copyright © 2005-2006 Sylvain Joyeux |
License: | GPL |