README in autobuild-0.3 vs README in autobuild-0.4
- old
+ new
@@ -11,23 +11,24 @@
== Example config explained
1. This section is not used at all by autobuild. It is only here to define references
used in the reste of the config file
- variables:
- - &openrobots ':ext:sjoyeux@cvs.laas.fr/cvs/openrobots'
- - &openprs_cvs ':ext:sjoyeux@cvs.laas.fr:/usr/local/openprs/CVS-Repository'
- - &compilers [ "CC=gcc-3.3", "CXX=g++-3.3" ]
- - &global_prefix /home/doudou/laas/openrobots
+ defines:
+ openrobots: ':ext:sjoyeux@cvs.laas.fr/cvs/openrobots'
+ openprs_cvs: ':ext:sjoyeux@cvs.laas.fr:/usr/local/openprs/CVS-Repository'
+ global_prefix: /home/doudou/laas/openrobots
+ srcdir: ${global_prefix}/tools
+ prefix: ${global_prefix}/build/tools
-2. <tt>autobuild-config</tt> holds the configuration of the build tool itself. See the
+2. <tt>autobuild</tt> holds the configuration of the build tool itself. See the
<b>Autobuild configuration</b> section for the available configuration options.
- autobuild-config:
- srcdir: &srcdir /home/doudou/laas/openrobots/tools
- prefix: &prefix /home/doudou/laas/openrobots/build/tools
- clean-log: true
+ autobuild:
+ srcdir: $srcdir
+ prefix: $prefix
+ clean_log: true
mail:
to: sjoyeux@laas.fr
environment:
@@ -45,15 +46,14 @@
4. the +packages+ sections is where packages are defined
packages:
-5. options in <tt>common-config</tt> are merged in each package configuration. See
+5. options in <tt>common</tt> are merged in each package configuration. See
<b>Configuring packages</b> for the detailed merging rules.
- common-config:
- configureflags: *compilers
+ config:
prefix: ""
6. Tell autobuild to build the pocolibs package. Two common options here:
*type*:: the builder to use. Available package types are currently +autotools+,
+import+ and +genom+ (a tool used at my lab;)). See the <b>Available
@@ -62,20 +62,20 @@
the +source+ option.
pocolibs:
type: autotools
import: cvs
- source: [ *openrobots, pocolibs ]
+ source: [ $openrobots, pocolibs ]
7. Autobuild takes the dependencies between packages into account. Just list in +depends+
the packages which should be installed before this one is built.
genom:
type: autotools
import: cvs
- source: [ *openrobots, genom ]
+ source: [ $openrobots, genom ]
depends: pocolibs
@@ -90,49 +90,49 @@
option2: value
section2:
In the documentation, I'll sometime use paths to reference the config options. For instance,
+option1+ is <tt>section1/option1</tt>. The +to+ option in the configuration example
-is <tt>autobuild-config/mail/to</tt>
+is <tt>autobuild/mail/to</tt>
Autobuild uses three sections:
-<b>autobuild-config</b>:: main autobuild configuration. See <b>Autobuild configuration</b> below
+<b>autobuild</b>:: main autobuild configuration. See <b>Autobuild configuration</b> below
*programs*:: the programs used by importers and builders. See each tool
documentation for the list of used options
*packages*:: the list of packages to build. See <b>Package configuration</b> below
*defines*:: this is used for variable interpolation. Any key/value pair defined in
this section can be used later in other parts of the config files using
the $key or ${key} notation
-== Autobuild configuration (<tt>autobuild-config</tt>)
+== Autobuild configuration (<tt>autobuild</tt>)
=== Misc options
*update*:: if false, do not update the packages that are already imported (default: true). You
can also use the <tt>--no-update</tt> on the command line
-=== Directories (<tt>autobuild-config/srcdir</tt>, <tt>autobuild-config/prefix</tt> and <tt>autobuild-config/logdir</tt>)
+=== Directories (<tt>autobuild/srcdir</tt>, <tt>autobuild/prefix</tt> and <tt>autobuild/logdir</tt>)
*srcdir*:: the path where programs are to be imported. See <b>Packages configuration</b> for
more information on how this option is used.
*prefix*:: the path where programs are to be installed. See <b>Packages configuration</b> for more
information on how this option is used.
*logdir*:: by default, autobuild does not displays the output of each subcommand it launches.
Insteads, it saves this output in log files. These log files are saved in +logdir+.
The default value is <tt>prefix/autobuild</tt>
-<b>clean-log</b>:: if we must remove all logfiles before each autobuild run or if we should append to them. The
+<b>clean_log</b>:: if we must remove all logfiles before each autobuild run or if we should append to them. The
default is +true+, that is log files are removed. Note that if mailing is active, all log
files are attached to notification mail.
*nice*:: The priority at which autobuild should launch subprocesses
-=== Environment (<tt>autobuild-config/environment</tt>)
-The <tt>autobuild-config/environment</tt> section lists the initial values for
+=== Environment (<tt>autobuild/environment</tt>)
+The <tt>autobuild/environment</tt> section lists the initial values for
the environment variables. While packages builders shall update the environment
variables as needed, you can have to set up a proper initial environment. Arrays
are converted into strings by joining elements by ':'
For instance
- autobuild-config:
+ autobuild:
environment:
PATH: [ "/bin", "/usr/bin" ]
LD_LIBRARY_PATH:
PKG_CONFIG_PATH:
@@ -141,15 +141,15 @@
PATH="/bin:/usr/bin"
LD_LIBRARY_PATH=""
PKG_CONFIG_PATH=""
-=== Mail (<tt>autobuild-config/mail</tt>)
+=== Mail (<tt>autobuild/mail</tt>)
If you want to receive a mail when the build has finished (on success and failures), set
at least the +to+ option, like this:
- autobuild-config:
+ autobuild:
mail:
from: autobuild@mymachine.rubyrules.org
to: myself+autobuild@rubyrules.org
smtp: localhost
@@ -160,32 +160,32 @@
All log files relative to the current build are attached to the mail.
== Configuring packages (<tt>packages/*</tt>)
-=== The <tt>packages/common-config</tt> section
+=== The <tt>packages/config</tt> section
If you want to add common options in each package, just set it them here. Note that the options
are /merged/ in the package config. It neither replaces the values in the package nor be replaced
-by them. The merging strategy depends on the way the <tt>common-config</tt> is specified:
+by them. The merging strategy depends on the way the <tt>common</tt> is specified:
* if it is an array, the package option is converted to an array and the common option is appended
* if it is a string, the package option is converted to a string and the common option is appended
with a space inserted between the two
* if it is a boolean value, it is <em>overriden</em> by the package value
* any other values are forbidden
To ease the config file writing, all options that accept arrays also accept a string when there
-is only one element. <b>Do not</b> do that in the <tt>common-config</tt> option.
+is only one element. <b>Do not</b> do that in the <tt>common</tt> option.
=== Package definition
-All subsections of the <tt>packages/</tt> section but <tt>common-config</tt> are package definitions
+All subsections of the <tt>packages/</tt> section but <tt>common</tt> are package definitions
The section name is used as the package name. The package definition sets up the importer to get the
source and the builder to build and install it.
*type*:: the package type. See the <b>Available package types</b> sections
*srcdir*:: where sources are to be imported. If this is a relative path, it is relative to the global
- <tt>/autobuild-config/srcdir</tt> option. Otherwise, the absolute path is used. If no +srcdir+
+ <tt>/autobuild/srcdir</tt> option. Otherwise, the absolute path is used. If no +srcdir+
is given, the package name is used, so that the default import dir is
<em>global srcdir</em>/<em>package_name</em>.
*Note* because of most SCM operations, it is forbidden that two packages have the same srcdir.
Empty srcdir are forbidden for the same reason.
@@ -197,21 +197,20 @@
*patch*:: the list of patch we should apply. Patches are applied in order, with -p0. Autobuild
remembers the list of already applied patches, and will handle the changes to this list gracefully.
Since relative paths for patch files are relative to the autobuild working directory, I recommend
you put absolute paths here.
-*source*</b>::
- where the importer should get the sources. The format of this options depends on
+*source*:: where the importer should get the sources. The format of this options depends on
the importer used. See Available importers.
*prefix*:: where the program is to be installed. If this is a relative path, it is relative to the global
- <tt>/autobuild-config/prefix</tt> option. Otherwise, the absolute path is used. If no prefix
+ <tt>/autobuild/prefix</tt> option. Otherwise, the absolute path is used. If no prefix
is given, the package name is used, so that the default install dir is
<em>global prefix</em>/<em>package name</em>
*depends*:: the array of packages that should be built and installed before this one is built. <tt>depends: [ foo ]</tt>
- is equivalent to <tt>depends: foo</tt>. To make the use of +depends+ in the <tt>common-config</tt>
+ is equivalent to <tt>depends: foo</tt>. To make the use of +depends+ in the <tt>common</tt>
section possible, this package name is automatically removed from the package +depends+ array.
*provides*:: defines aliases for this package. As for +depends+, an array with only element can be replaced
by the simple value.
== Available importers
@@ -225,11 +224,11 @@
which is then converted into a path by joining the elements with '/'. For instance:
packages:
foo:
import: svn
- source: [ *my_home_repository, /trunk/foo ]
+ source: [ $my_home_repository, /trunk/foo ]
*svnup*:: options to add to svn up. Defaults to ''
*svnco*:: options to add to svn co. Defaults to ''
== Available package types (<tt>packages/</tt><em>name</em><tt>/type</tt>)
@@ -239,11 +238,11 @@
packages:
bar:
type: import
import: cvs
- source: [ *my_repository, "bar" ]
+ source: [ $my_repository, "bar" ]
srcdir: bar
=== Autotools (<tt>type: autotools</tt>)
Use this to build GNU autotools-based packages. This handles autoconf-only packages as
well as automake-based packages.
@@ -284,13 +283,38 @@
= Running autobuild in daemon mode
The <tt>--daemon</tt> command line options makes autobuild go into daemon mode.
= Changes
+== 0.3 to 0.4
+* added support to split import and build. For instance
+
+ whole_tree:
+ type: import
+ import: cvs
+ source: [ a, repository ]
+
+ package1:
+ type: autotools
+ srcdir: whole_tree/package1
+ depends: whole_tree
+
+ package2:
+ type: autotools
+ srcdir: whole_tree/package2
+ depends: whole_tree
+
+ Now works well
+
+* the <tt>autotools</tt> package has now an <tt>autogen</tt> options, which gives a name for the script
+ to run to create the autoconf environment
+* renamed 'genomflags' -> 'genflags'
+* variable interpolation checks for environment variables
+* bugfixes
== 0.2 to 0.3
* added support for patching source code. Add patch: [ patches ] to the package configuration
* renamed autobuild-config, common-config and clean-log to autobuild, common and clean_log. Autobuild
- warns if it finds one the previous spelling
+ warns if it finds one the previous spelling but ignores it anyway
= Copyright and license
Author:: Sylvain Joyeux <sylvain.joyeux@m4x.org>
Copyright:: Copyright (c) 2005 Sylvain Joyeux
License:: GPL