Repository files navigation

Copyright (c) 2006-2013 Sylvain Joyeux <sylvain.joyeux@m4x.org> and contributors
* http://rock-robotics.org
This work is licensed under the BSD license. See License.txt for details
== What's autobuild ?
Autobuild imports, configures, builds and installs various kinds of software packages.
It can be used in software development to make sure that nothing is broken in the build process of a set of packages, or can be used as an automated installation tool.
Autobuild config files are Ruby scripts which configure rake to
* imports the package from a SCM or (optionnaly) updates it
* configures it. This phase can handle code generation, configuration (for
instance for autotools-based packages), ...
* build
* install
It takes the dependencies between packages into account in its build process,
updates the needed environment variables (+PKG_CONFIG_PATH+, +PATH+,
+LD_LIBRARY_PATH+, ...)
== WARNING for 0.5 users
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)
== Available packages
=== Common usage
All package objects define the following attributes
*importer*:: the importer object (see "Available importers" below)
*srcdir*:: where the package sources are located. If it is a relative
path, it is relative to the value of Autobuild.srcdir. The default is to
use the package name. *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. Each package method (Autobuild.import, Autobuild.autotools, ...) takes either a package
name for first argument, or a <tt>name => dependency_array</tt> hash, and take a block which
can be used to configure the package. For instance
Autobuild.import :my_package do |pkg|
pkg.srcdir = 'my_package_dir'
end
Autobuild.import :my_package => [:depends, :depends_also] do |pkg|
end
=== Source only
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 +importer+ and +srcdir+. +prefix+ is ignored.
=== Autotools
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 <tt>automake-1.9</tt> 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:
* if a script named +autogen+ or +autogen.sh+ exists in the package source directory, it is run
and the other tools are not. The name of this kind of script can be set by calling Autotools#use
pkg.use :autogen => 'my_autogen_script'
* +autoheader+ is never used by default
* +autoconf+ is used if there is <tt>configure.ac</tt> or <tt>configure.in</tt> in the source dir
* +aclocal+ is used if +autoconf+ is enabled (either explicitely or by autodetection)
* +automake+ is used if there is a <tt>Makefile.am</tt> file in the source dir
* you can force to enable or disable any of these steps by calling Autotools#use. Set it to +true+
to force its usage, +false+ to disable it or to a string to force the usage of a particular program
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'
=== CMake
A cmake package is defined with
require 'autobuild/packages/cmake'
Autobuild.cmake :package_name do |pkg|
<package configuration> ...
end
The only configuration attribute available for CMake package is:
+builddir+ the directory in which to configure and build the package. It is relative to
the package sources. A global value can be defined through Autobuild::CMake.builddir
Additionally, the #define(name, value) method allows to define configuration variables.
== Available importers
You must set an importer object for each package. The package importer is the +importer+ attribute
and is set via <tt>package.importer = my_importer</tt>. 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 <tt>lib/autobuild/import/</tt>
=== Tar
package.importer = tar(uri[, options])
Downloads a tarfile at +uri+ and saves it into a local cache directory.
The cache directory can be set in the +options+ hash
package.importer = tar(uri, :cachedir = '/tmp')
It is "#{Autobuild.prefix}/cache" by default. The known URI schemes are file://
for local files and http:// or ftp:// for remote files. There is currently no
way to set passive mode on FTP, since the standard open-uri library does not
allow that.
=== CVS package.importer = cvs(cvsroot, module[, options])
Where +options+ is an option hash. See also Autobuild::CVSImporter and Autobuild.cvs
* the default CVS command is +cvs+. It can be changed by
Autobuild.programs['cvs'] = 'my_cvs_command'
* the default checkout option is <tt>-P</tt>. You can change that by giving a +cvsco+ option
cvs cvsroot, module, :cvsco => ['--my', '--cvs', '--options']
* the default update option is <tt>-dP</tt>. You can change that by giving a +cvsup+ option
cvs cvsroot, module, :cvsup => ['--my', '--cvs', '--options']
=== Subversion
package.importer = svn(url[, options])
Where +options+ is an option hash. See also Autobuild::SVNImporter and Autobuild.svn
* the default Subversion command is +svn+. It can be changed by
Autobuild.programs['svn'] = 'my_svn_command'
* by default, no options are given to checkout. You add some by giving a +svnco+ option
svn url, :svnco => ['--my', '--svn', '--options']
* by default, no options are given to update. You can add some by giving a +svnup+ option
svn url, :svnup => ['--my', '--svn', '--options']
=== Darcs
package.importer = darcs(url[, options])
Where +options+ is a hash. See also Autobuild::DarcsImporter and Autobuild.darcs
* the default Darcs command is +darcs+. It can be changed by
Autobuild.programs['darcs'] = 'my_svn_command'
* by default, no options are given to get. You add some by giving a +get+ option
darcs url, :get => ['--my', '--darcs', '--options']
* by default, no options are given to pull. You can add some by giving a +pull+ option
darcs url, :pull => ['--my', '--darcs', '--options']
=== Git
package.importer = git(url[, branch])
Imports the given branch (or master if none is given) of the repository at the
given URL. The branch is imported as the 'autobuild' remote and fetched into
the master local branch.
= Copyright and license
Author:: Sylvain Joyeux <sylvain.joyeux@m4x.org>
Copyright:: Copyright (c) 2005-2008 Sylvain Joyeux
License:: GPL

About

Foundation to import and build software packages, basis for autoproj, Rock's (Robot Construction Kit) build system

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Copyright (c) 2006-2013 Sylvain Joyeux <sylvain.joyeux@m4x.org> and contributors
* http://rock-robotics.org
This work is licensed under the BSD license. See License.txt for details
== What's autobuild ?
Autobuild imports, configures, builds and installs various kinds of software packages.
It can be used in software development to make sure that nothing is broken in the build process of a set of packages, or can be used as an automated installation tool.
Autobuild config files are Ruby scripts which configure rake to
* imports the package from a SCM or (optionnaly) updates it
* configures it. This phase can handle code generation, configuration (for
instance for autotools-based packages), ...
* build
* install
It takes the dependencies between packages into account in its build process,
updates the needed environment variables (+PKG_CONFIG_PATH+, +PATH+,
+LD_LIBRARY_PATH+, ...)
== WARNING for 0.5 users
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)
== Available packages
=== Common usage
All package objects define the following attributes
*importer*:: the importer object (see "Available importers" below)
*srcdir*:: where the package sources are located. If it is a relative
path, it is relative to the value of Autobuild.srcdir. The default is to
use the package name. *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. Each package method (Autobuild.import, Autobuild.autotools, ...) takes either a package
name for first argument, or a <tt>name => dependency_array</tt> hash, and take a block which
can be used to configure the package. For instance
Autobuild.import :my_package do |pkg|
pkg.srcdir = 'my_package_dir'
end
Autobuild.import :my_package => [:depends, :depends_also] do |pkg|
end
=== Source only
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 +importer+ and +srcdir+. +prefix+ is ignored.
=== Autotools
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 <tt>automake-1.9</tt> 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:
* if a script named +autogen+ or +autogen.sh+ exists in the package source directory, it is run
and the other tools are not. The name of this kind of script can be set by calling Autotools#use
pkg.use :autogen => 'my_autogen_script'
* +autoheader+ is never used by default
* +autoconf+ is used if there is <tt>configure.ac</tt> or <tt>configure.in</tt> in the source dir
* +aclocal+ is used if +autoconf+ is enabled (either explicitely or by autodetection)
* +automake+ is used if there is a <tt>Makefile.am</tt> file in the source dir
* you can force to enable or disable any of these steps by calling Autotools#use. Set it to +true+
to force its usage, +false+ to disable it or to a string to force the usage of a particular program
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'
=== CMake
A cmake package is defined with
require 'autobuild/packages/cmake'
Autobuild.cmake :package_name do |pkg|
<package configuration> ...
end
The only configuration attribute available for CMake package is:
+builddir+ the directory in which to configure and build the package. It is relative to
the package sources. A global value can be defined through Autobuild::CMake.builddir
Additionally, the #define(name, value) method allows to define configuration variables.
== Available importers
You must set an importer object for each package. The package importer is the +importer+ attribute
and is set via <tt>package.importer = my_importer</tt>. 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 <tt>lib/autobuild/import/</tt>
=== Tar
package.importer = tar(uri[, options])
Downloads a tarfile at +uri+ and saves it into a local cache directory.
The cache directory can be set in the +options+ hash
package.importer = tar(uri, :cachedir = '/tmp')
It is "#{Autobuild.prefix}/cache" by default. The known URI schemes are file://
for local files and http:// or ftp:// for remote files. There is currently no
way to set passive mode on FTP, since the standard open-uri library does not
allow that.
=== CVS package.importer = cvs(cvsroot, module[, options])
Where +options+ is an option hash. See also Autobuild::CVSImporter and Autobuild.cvs
* the default CVS command is +cvs+. It can be changed by
Autobuild.programs['cvs'] = 'my_cvs_command'
* the default checkout option is <tt>-P</tt>. You can change that by giving a +cvsco+ option
cvs cvsroot, module, :cvsco => ['--my', '--cvs', '--options']
* the default update option is <tt>-dP</tt>. You can change that by giving a +cvsup+ option
cvs cvsroot, module, :cvsup => ['--my', '--cvs', '--options']
=== Subversion
package.importer = svn(url[, options])
Where +options+ is an option hash. See also Autobuild::SVNImporter and Autobuild.svn
* the default Subversion command is +svn+. It can be changed by
Autobuild.programs['svn'] = 'my_svn_command'
* by default, no options are given to checkout. You add some by giving a +svnco+ option
svn url, :svnco => ['--my', '--svn', '--options']
* by default, no options are given to update. You can add some by giving a +svnup+ option
svn url, :svnup => ['--my', '--svn', '--options']
=== Darcs
package.importer = darcs(url[, options])
Where +options+ is a hash. See also Autobuild::DarcsImporter and Autobuild.darcs
* the default Darcs command is +darcs+. It can be changed by
Autobuild.programs['darcs'] = 'my_svn_command'
* by default, no options are given to get. You add some by giving a +get+ option
darcs url, :get => ['--my', '--darcs', '--options']
* by default, no options are given to pull. You can add some by giving a +pull+ option
darcs url, :pull => ['--my', '--darcs', '--options']
=== Git
package.importer = git(url[, branch])
Imports the given branch (or master if none is given) of the repository at the
given URL. The branch is imported as the 'autobuild' remote and fetched into
the master local branch.
= Copyright and license
Author:: Sylvain Joyeux <sylvain.joyeux@m4x.org>
Copyright:: Copyright (c) 2005-2008 Sylvain Joyeux
License:: GPL

About

Foundation to import and build software packages, basis for autoproj, Rock's (Robot Construction Kit) build system

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Copyright (c) 2006-2013 Sylvain Joyeux <sylvain.joyeux@m4x.org> and contributors
* http://rock-robotics.org
This work is licensed under the BSD license. See License.txt for details
== What's autobuild ?
Autobuild imports, configures, builds and installs various kinds of software packages.
It can be used in software development to make sure that nothing is broken in the build process of a set of packages, or can be used as an automated installation tool.
Autobuild config files are Ruby scripts which configure rake to
* imports the package from a SCM or (optionnaly) updates it
* configures it. This phase can handle code generation, configuration (for
instance for autotools-based packages), ...
* build
* install
It takes the dependencies between packages into account in its build process,
updates the needed environment variables (+PKG_CONFIG_PATH+, +PATH+,
+LD_LIBRARY_PATH+, ...)
== WARNING for 0.5 users
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)
== Available packages
=== Common usage
All package objects define the following attributes
*importer*:: the importer object (see "Available importers" below)
*srcdir*:: where the package sources are located. If it is a relative
path, it is relative to the value of Autobuild.srcdir. The default is to
use the package name. *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. Each package method (Autobuild.import, Autobuild.autotools, ...) takes either a package
name for first argument, or a <tt>name => dependency_array</tt> hash, and take a block which
can be used to configure the package. For instance
Autobuild.import :my_package do |pkg|
pkg.srcdir = 'my_package_dir'
end
Autobuild.import :my_package => [:depends, :depends_also] do |pkg|
end
=== Source only
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 +importer+ and +srcdir+. +prefix+ is ignored.
=== Autotools
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 <tt>automake-1.9</tt> 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:
* if a script named +autogen+ or +autogen.sh+ exists in the package source directory, it is run
and the other tools are not. The name of this kind of script can be set by calling Autotools#use
pkg.use :autogen => 'my_autogen_script'
* +autoheader+ is never used by default
* +autoconf+ is used if there is <tt>configure.ac</tt> or <tt>configure.in</tt> in the source dir
* +aclocal+ is used if +autoconf+ is enabled (either explicitely or by autodetection)
* +automake+ is used if there is a <tt>Makefile.am</tt> file in the source dir
* you can force to enable or disable any of these steps by calling Autotools#use. Set it to +true+
to force its usage, +false+ to disable it or to a string to force the usage of a particular program
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'
=== CMake
A cmake package is defined with
require 'autobuild/packages/cmake'
Autobuild.cmake :package_name do |pkg|
<package configuration> ...
end
The only configuration attribute available for CMake package is:
+builddir+ the directory in which to configure and build the package. It is relative to
the package sources. A global value can be defined through Autobuild::CMake.builddir
Additionally, the #define(name, value) method allows to define configuration variables.
== Available importers
You must set an importer object for each package. The package importer is the +importer+ attribute
and is set via <tt>package.importer = my_importer</tt>. 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 <tt>lib/autobuild/import/</tt>
=== Tar
package.importer = tar(uri[, options])
Downloads a tarfile at +uri+ and saves it into a local cache directory.
The cache directory can be set in the +options+ hash
package.importer = tar(uri, :cachedir = '/tmp')
It is "#{Autobuild.prefix}/cache" by default. The known URI schemes are file://
for local files and http:// or ftp:// for remote files. There is currently no
way to set passive mode on FTP, since the standard open-uri library does not
allow that.
=== CVS package.importer = cvs(cvsroot, module[, options])
Where +options+ is an option hash. See also Autobuild::CVSImporter and Autobuild.cvs
* the default CVS command is +cvs+. It can be changed by
Autobuild.programs['cvs'] = 'my_cvs_command'
* the default checkout option is <tt>-P</tt>. You can change that by giving a +cvsco+ option
cvs cvsroot, module, :cvsco => ['--my', '--cvs', '--options']
* the default update option is <tt>-dP</tt>. You can change that by giving a +cvsup+ option
cvs cvsroot, module, :cvsup => ['--my', '--cvs', '--options']
=== Subversion
package.importer = svn(url[, options])
Where +options+ is an option hash. See also Autobuild::SVNImporter and Autobuild.svn
* the default Subversion command is +svn+. It can be changed by
Autobuild.programs['svn'] = 'my_svn_command'
* by default, no options are given to checkout. You add some by giving a +svnco+ option
svn url, :svnco => ['--my', '--svn', '--options']
* by default, no options are given to update. You can add some by giving a +svnup+ option
svn url, :svnup => ['--my', '--svn', '--options']
=== Darcs
package.importer = darcs(url[, options])
Where +options+ is a hash. See also Autobuild::DarcsImporter and Autobuild.darcs
* the default Darcs command is +darcs+. It can be changed by
Autobuild.programs['darcs'] = 'my_svn_command'
* by default, no options are given to get. You add some by giving a +get+ option
darcs url, :get => ['--my', '--darcs', '--options']
* by default, no options are given to pull. You can add some by giving a +pull+ option
darcs url, :pull => ['--my', '--darcs', '--options']
=== Git
package.importer = git(url[, branch])
Imports the given branch (or master if none is given) of the repository at the
given URL. The branch is imported as the 'autobuild' remote and fetched into
the master local branch.
= Copyright and license
Author:: Sylvain Joyeux <sylvain.joyeux@m4x.org>
Copyright:: Copyright (c) 2005-2008 Sylvain Joyeux
License:: GPL

About

Foundation to import and build software packages, basis for autoproj, Rock's (Robot Construction Kit) build system

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Copyright (c) 2006-2013 Sylvain Joyeux <sylvain.joyeux@m4x.org> and contributors
* http://rock-robotics.org
This work is licensed under the BSD license. See License.txt for details
== What's autobuild ?
Autobuild imports, configures, builds and installs various kinds of software packages.
It can be used in software development to make sure that nothing is broken in the build process of a set of packages, or can be used as an automated installation tool.
Autobuild config files are Ruby scripts which configure rake to
* imports the package from a SCM or (optionnaly) updates it
* configures it. This phase can handle code generation, configuration (for
instance for autotools-based packages), ...
* build
* install
It takes the dependencies between packages into account in its build process,
updates the needed environment variables (+PKG_CONFIG_PATH+, +PATH+,
+LD_LIBRARY_PATH+, ...)
== WARNING for 0.5 users
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)
== Available packages
=== Common usage
All package objects define the following attributes
*importer*:: the importer object (see "Available importers" below)
*srcdir*:: where the package sources are located. If it is a relative
path, it is relative to the value of Autobuild.srcdir. The default is to
use the package name. *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. Each package method (Autobuild.import, Autobuild.autotools, ...) takes either a package
name for first argument, or a <tt>name => dependency_array</tt> hash, and take a block which
can be used to configure the package. For instance
Autobuild.import :my_package do |pkg|
pkg.srcdir = 'my_package_dir'
end
Autobuild.import :my_package => [:depends, :depends_also] do |pkg|
end
=== Source only
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 +importer+ and +srcdir+. +prefix+ is ignored.
=== Autotools
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 <tt>automake-1.9</tt> 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:
* if a script named +autogen+ or +autogen.sh+ exists in the package source directory, it is run
and the other tools are not. The name of this kind of script can be set by calling Autotools#use
pkg.use :autogen => 'my_autogen_script'
* +autoheader+ is never used by default
* +autoconf+ is used if there is <tt>configure.ac</tt> or <tt>configure.in</tt> in the source dir
* +aclocal+ is used if +autoconf+ is enabled (either explicitely or by autodetection)
* +automake+ is used if there is a <tt>Makefile.am</tt> file in the source dir
* you can force to enable or disable any of these steps by calling Autotools#use. Set it to +true+
to force its usage, +false+ to disable it or to a string to force the usage of a particular program
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'
=== CMake
A cmake package is defined with
require 'autobuild/packages/cmake'
Autobuild.cmake :package_name do |pkg|
<package configuration> ...
end
The only configuration attribute available for CMake package is:
+builddir+ the directory in which to configure and build the package. It is relative to
the package sources. A global value can be defined through Autobuild::CMake.builddir
Additionally, the #define(name, value) method allows to define configuration variables.
== Available importers
You must set an importer object for each package. The package importer is the +importer+ attribute
and is set via <tt>package.importer = my_importer</tt>. 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 <tt>lib/autobuild/import/</tt>
=== Tar
package.importer = tar(uri[, options])
Downloads a tarfile at +uri+ and saves it into a local cache directory.
The cache directory can be set in the +options+ hash
package.importer = tar(uri, :cachedir = '/tmp')
It is "#{Autobuild.prefix}/cache" by default. The known URI schemes are file://
for local files and http:// or ftp:// for remote files. There is currently no
way to set passive mode on FTP, since the standard open-uri library does not
allow that.
=== CVS package.importer = cvs(cvsroot, module[, options])
Where +options+ is an option hash. See also Autobuild::CVSImporter and Autobuild.cvs
* the default CVS command is +cvs+. It can be changed by
Autobuild.programs['cvs'] = 'my_cvs_command'
* the default checkout option is <tt>-P</tt>. You can change that by giving a +cvsco+ option
cvs cvsroot, module, :cvsco => ['--my', '--cvs', '--options']
* the default update option is <tt>-dP</tt>. You can change that by giving a +cvsup+ option
cvs cvsroot, module, :cvsup => ['--my', '--cvs', '--options']
=== Subversion
package.importer = svn(url[, options])
Where +options+ is an option hash. See also Autobuild::SVNImporter and Autobuild.svn
* the default Subversion command is +svn+. It can be changed by
Autobuild.programs['svn'] = 'my_svn_command'
* by default, no options are given to checkout. You add some by giving a +svnco+ option
svn url, :svnco => ['--my', '--svn', '--options']
* by default, no options are given to update. You can add some by giving a +svnup+ option
svn url, :svnup => ['--my', '--svn', '--options']
=== Darcs
package.importer = darcs(url[, options])
Where +options+ is a hash. See also Autobuild::DarcsImporter and Autobuild.darcs
* the default Darcs command is +darcs+. It can be changed by
Autobuild.programs['darcs'] = 'my_svn_command'
* by default, no options are given to get. You add some by giving a +get+ option
darcs url, :get => ['--my', '--darcs', '--options']
* by default, no options are given to pull. You can add some by giving a +pull+ option
darcs url, :pull => ['--my', '--darcs', '--options']
=== Git
package.importer = git(url[, branch])
Imports the given branch (or master if none is given) of the repository at the
given URL. The branch is imported as the 'autobuild' remote and fetched into
the master local branch.
= Copyright and license
Author:: Sylvain Joyeux <sylvain.joyeux@m4x.org>
Copyright:: Copyright (c) 2005-2008 Sylvain Joyeux
License:: GPL

About

Foundation to import and build software packages, basis for autoproj, Rock's (Robot Construction Kit) build system

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Copyright (c) 2006-2013 Sylvain Joyeux <sylvain.joyeux@m4x.org> and contributors
* http://rock-robotics.org
This work is licensed under the BSD license. See License.txt for details
== What's autobuild ?
Autobuild imports, configures, builds and installs various kinds of software packages.
It can be used in software development to make sure that nothing is broken in the build process of a set of packages, or can be used as an automated installation tool.
Autobuild config files are Ruby scripts which configure rake to
* imports the package from a SCM or (optionnaly) updates it
* configures it. This phase can handle code generation, configuration (for
instance for autotools-based packages), ...
* build
* install
It takes the dependencies between packages into account in its build process,
updates the needed environment variables (+PKG_CONFIG_PATH+, +PATH+,
+LD_LIBRARY_PATH+, ...)
== WARNING for 0.5 users
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)
== Available packages
=== Common usage
All package objects define the following attributes
*importer*:: the importer object (see "Available importers" below)
*srcdir*:: where the package sources are located. If it is a relative
path, it is relative to the value of Autobuild.srcdir. The default is to
use the package name. *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. Each package method (Autobuild.import, Autobuild.autotools, ...) takes either a package
name for first argument, or a <tt>name => dependency_array</tt> hash, and take a block which
can be used to configure the package. For instance
Autobuild.import :my_package do |pkg|
pkg.srcdir = 'my_package_dir'
end
Autobuild.import :my_package => [:depends, :depends_also] do |pkg|
end
=== Source only
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 +importer+ and +srcdir+. +prefix+ is ignored.
=== Autotools
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 <tt>automake-1.9</tt> 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:
* if a script named +autogen+ or +autogen.sh+ exists in the package source directory, it is run
and the other tools are not. The name of this kind of script can be set by calling Autotools#use
pkg.use :autogen => 'my_autogen_script'
* +autoheader+ is never used by default
* +autoconf+ is used if there is <tt>configure.ac</tt> or <tt>configure.in</tt> in the source dir
* +aclocal+ is used if +autoconf+ is enabled (either explicitely or by autodetection)
* +automake+ is used if there is a <tt>Makefile.am</tt> file in the source dir
* you can force to enable or disable any of these steps by calling Autotools#use. Set it to +true+
to force its usage, +false+ to disable it or to a string to force the usage of a particular program
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'
=== CMake
A cmake package is defined with
require 'autobuild/packages/cmake'
Autobuild.cmake :package_name do |pkg|
<package configuration> ...
end
The only configuration attribute available for CMake package is:
+builddir+ the directory in which to configure and build the package. It is relative to
the package sources. A global value can be defined through Autobuild::CMake.builddir
Additionally, the #define(name, value) method allows to define configuration variables.
== Available importers
You must set an importer object for each package. The package importer is the +importer+ attribute
and is set via <tt>package.importer = my_importer</tt>. 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 <tt>lib/autobuild/import/</tt>
=== Tar
package.importer = tar(uri[, options])
Downloads a tarfile at +uri+ and saves it into a local cache directory.
The cache directory can be set in the +options+ hash
package.importer = tar(uri, :cachedir = '/tmp')
It is "#{Autobuild.prefix}/cache" by default. The known URI schemes are file://
for local files and http:// or ftp:// for remote files. There is currently no
way to set passive mode on FTP, since the standard open-uri library does not
allow that.
=== CVS package.importer = cvs(cvsroot, module[, options])
Where +options+ is an option hash. See also Autobuild::CVSImporter and Autobuild.cvs
* the default CVS command is +cvs+. It can be changed by
Autobuild.programs['cvs'] = 'my_cvs_command'
* the default checkout option is <tt>-P</tt>. You can change that by giving a +cvsco+ option
cvs cvsroot, module, :cvsco => ['--my', '--cvs', '--options']
* the default update option is <tt>-dP</tt>. You can change that by giving a +cvsup+ option
cvs cvsroot, module, :cvsup => ['--my', '--cvs', '--options']
=== Subversion
package.importer = svn(url[, options])
Where +options+ is an option hash. See also Autobuild::SVNImporter and Autobuild.svn
* the default Subversion command is +svn+. It can be changed by
Autobuild.programs['svn'] = 'my_svn_command'
* by default, no options are given to checkout. You add some by giving a +svnco+ option
svn url, :svnco => ['--my', '--svn', '--options']
* by default, no options are given to update. You can add some by giving a +svnup+ option
svn url, :svnup => ['--my', '--svn', '--options']
=== Darcs
package.importer = darcs(url[, options])
Where +options+ is a hash. See also Autobuild::DarcsImporter and Autobuild.darcs
* the default Darcs command is +darcs+. It can be changed by
Autobuild.programs['darcs'] = 'my_svn_command'
* by default, no options are given to get. You add some by giving a +get+ option
darcs url, :get => ['--my', '--darcs', '--options']
* by default, no options are given to pull. You can add some by giving a +pull+ option
darcs url, :pull => ['--my', '--darcs', '--options']
=== Git
package.importer = git(url[, branch])
Imports the given branch (or master if none is given) of the repository at the
given URL. The branch is imported as the 'autobuild' remote and fetched into
the master local branch.
= Copyright and license
Author:: Sylvain Joyeux <sylvain.joyeux@m4x.org>
Copyright:: Copyright (c) 2005-2008 Sylvain Joyeux
License:: GPL

About

Foundation to import and build software packages, basis for autoproj, Rock's (Robot Construction Kit) build system

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Copyright (c) 2006-2013 Sylvain Joyeux <sylvain.joyeux@m4x.org> and contributors
* http://rock-robotics.org
This work is licensed under the BSD license. See License.txt for details
== What's autobuild ?
Autobuild imports, configures, builds and installs various kinds of software packages.
It can be used in software development to make sure that nothing is broken in the build process of a set of packages, or can be used as an automated installation tool.
Autobuild config files are Ruby scripts which configure rake to
* imports the package from a SCM or (optionnaly) updates it
* configures it. This phase can handle code generation, configuration (for
instance for autotools-based packages), ...
* build
* install
It takes the dependencies between packages into account in its build process,
updates the needed environment variables (+PKG_CONFIG_PATH+, +PATH+,
+LD_LIBRARY_PATH+, ...)
== WARNING for 0.5 users
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)
== Available packages
=== Common usage
All package objects define the following attributes
*importer*:: the importer object (see "Available importers" below)
*srcdir*:: where the package sources are located. If it is a relative
path, it is relative to the value of Autobuild.srcdir. The default is to
use the package name. *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. Each package method (Autobuild.import, Autobuild.autotools, ...) takes either a package
name for first argument, or a <tt>name => dependency_array</tt> hash, and take a block which
can be used to configure the package. For instance
Autobuild.import :my_package do |pkg|
pkg.srcdir = 'my_package_dir'
end
Autobuild.import :my_package => [:depends, :depends_also] do |pkg|
end
=== Source only
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 +importer+ and +srcdir+. +prefix+ is ignored.
=== Autotools
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 <tt>automake-1.9</tt> 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:
* if a script named +autogen+ or +autogen.sh+ exists in the package source directory, it is run
and the other tools are not. The name of this kind of script can be set by calling Autotools#use
pkg.use :autogen => 'my_autogen_script'
* +autoheader+ is never used by default
* +autoconf+ is used if there is <tt>configure.ac</tt> or <tt>configure.in</tt> in the source dir
* +aclocal+ is used if +autoconf+ is enabled (either explicitely or by autodetection)
* +automake+ is used if there is a <tt>Makefile.am</tt> file in the source dir
* you can force to enable or disable any of these steps by calling Autotools#use. Set it to +true+
to force its usage, +false+ to disable it or to a string to force the usage of a particular program
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'
=== CMake
A cmake package is defined with
require 'autobuild/packages/cmake'
Autobuild.cmake :package_name do |pkg|
<package configuration> ...
end
The only configuration attribute available for CMake package is:
+builddir+ the directory in which to configure and build the package. It is relative to
the package sources. A global value can be defined through Autobuild::CMake.builddir
Additionally, the #define(name, value) method allows to define configuration variables.
== Available importers
You must set an importer object for each package. The package importer is the +importer+ attribute
and is set via <tt>package.importer = my_importer</tt>. 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 <tt>lib/autobuild/import/</tt>
=== Tar
package.importer = tar(uri[, options])
Downloads a tarfile at +uri+ and saves it into a local cache directory.
The cache directory can be set in the +options+ hash
package.importer = tar(uri, :cachedir = '/tmp')
It is "#{Autobuild.prefix}/cache" by default. The known URI schemes are file://
for local files and http:// or ftp:// for remote files. There is currently no
way to set passive mode on FTP, since the standard open-uri library does not
allow that.
=== CVS package.importer = cvs(cvsroot, module[, options])
Where +options+ is an option hash. See also Autobuild::CVSImporter and Autobuild.cvs
* the default CVS command is +cvs+. It can be changed by
Autobuild.programs['cvs'] = 'my_cvs_command'
* the default checkout option is <tt>-P</tt>. You can change that by giving a +cvsco+ option
cvs cvsroot, module, :cvsco => ['--my', '--cvs', '--options']
* the default update option is <tt>-dP</tt>. You can change that by giving a +cvsup+ option
cvs cvsroot, module, :cvsup => ['--my', '--cvs', '--options']
=== Subversion
package.importer = svn(url[, options])
Where +options+ is an option hash. See also Autobuild::SVNImporter and Autobuild.svn
* the default Subversion command is +svn+. It can be changed by
Autobuild.programs['svn'] = 'my_svn_command'
* by default, no options are given to checkout. You add some by giving a +svnco+ option
svn url, :svnco => ['--my', '--svn', '--options']
* by default, no options are given to update. You can add some by giving a +svnup+ option
svn url, :svnup => ['--my', '--svn', '--options']
=== Darcs
package.importer = darcs(url[, options])
Where +options+ is a hash. See also Autobuild::DarcsImporter and Autobuild.darcs
* the default Darcs command is +darcs+. It can be changed by
Autobuild.programs['darcs'] = 'my_svn_command'
* by default, no options are given to get. You add some by giving a +get+ option
darcs url, :get => ['--my', '--darcs', '--options']
* by default, no options are given to pull. You can add some by giving a +pull+ option
darcs url, :pull => ['--my', '--darcs', '--options']
=== Git
package.importer = git(url[, branch])
Imports the given branch (or master if none is given) of the repository at the
given URL. The branch is imported as the 'autobuild' remote and fetched into
the master local branch.
= Copyright and license
Author:: Sylvain Joyeux <sylvain.joyeux@m4x.org>
Copyright:: Copyright (c) 2005-2008 Sylvain Joyeux
License:: GPL

About

Foundation to import and build software packages, basis for autoproj, Rock's (Robot Construction Kit) build system

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Copyright (c) 2006-2013 Sylvain Joyeux <sylvain.joyeux@m4x.org> and contributors
* http://rock-robotics.org
This work is licensed under the BSD license. See License.txt for details
== What's autobuild ?
Autobuild imports, configures, builds and installs various kinds of software packages.
It can be used in software development to make sure that nothing is broken in the build process of a set of packages, or can be used as an automated installation tool.
Autobuild config files are Ruby scripts which configure rake to
* imports the package from a SCM or (optionnaly) updates it
* configures it. This phase can handle code generation, configuration (for
instance for autotools-based packages), ...
* build
* install
It takes the dependencies between packages into account in its build process,
updates the needed environment variables (+PKG_CONFIG_PATH+, +PATH+,
+LD_LIBRARY_PATH+, ...)
== WARNING for 0.5 users
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)
== Available packages
=== Common usage
All package objects define the following attributes
*importer*:: the importer object (see "Available importers" below)
*srcdir*:: where the package sources are located. If it is a relative
path, it is relative to the value of Autobuild.srcdir. The default is to
use the package name. *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. Each package method (Autobuild.import, Autobuild.autotools, ...) takes either a package
name for first argument, or a <tt>name => dependency_array</tt> hash, and take a block which
can be used to configure the package. For instance
Autobuild.import :my_package do |pkg|
pkg.srcdir = 'my_package_dir'
end
Autobuild.import :my_package => [:depends, :depends_also] do |pkg|
end
=== Source only
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 +importer+ and +srcdir+. +prefix+ is ignored.
=== Autotools
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 <tt>automake-1.9</tt> 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:
* if a script named +autogen+ or +autogen.sh+ exists in the package source directory, it is run
and the other tools are not. The name of this kind of script can be set by calling Autotools#use
pkg.use :autogen => 'my_autogen_script'
* +autoheader+ is never used by default
* +autoconf+ is used if there is <tt>configure.ac</tt> or <tt>configure.in</tt> in the source dir
* +aclocal+ is used if +autoconf+ is enabled (either explicitely or by autodetection)
* +automake+ is used if there is a <tt>Makefile.am</tt> file in the source dir
* you can force to enable or disable any of these steps by calling Autotools#use. Set it to +true+
to force its usage, +false+ to disable it or to a string to force the usage of a particular program
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'
=== CMake
A cmake package is defined with
require 'autobuild/packages/cmake'
Autobuild.cmake :package_name do |pkg|
<package configuration> ...
end
The only configuration attribute available for CMake package is:
+builddir+ the directory in which to configure and build the package. It is relative to
the package sources. A global value can be defined through Autobuild::CMake.builddir
Additionally, the #define(name, value) method allows to define configuration variables.
== Available importers
You must set an importer object for each package. The package importer is the +importer+ attribute
and is set via <tt>package.importer = my_importer</tt>. 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 <tt>lib/autobuild/import/</tt>
=== Tar
package.importer = tar(uri[, options])
Downloads a tarfile at +uri+ and saves it into a local cache directory.
The cache directory can be set in the +options+ hash
package.importer = tar(uri, :cachedir = '/tmp')
It is "#{Autobuild.prefix}/cache" by default. The known URI schemes are file://
for local files and http:// or ftp:// for remote files. There is currently no
way to set passive mode on FTP, since the standard open-uri library does not
allow that.
=== CVS package.importer = cvs(cvsroot, module[, options])
Where +options+ is an option hash. See also Autobuild::CVSImporter and Autobuild.cvs
* the default CVS command is +cvs+. It can be changed by
Autobuild.programs['cvs'] = 'my_cvs_command'
* the default checkout option is <tt>-P</tt>. You can change that by giving a +cvsco+ option
cvs cvsroot, module, :cvsco => ['--my', '--cvs', '--options']
* the default update option is <tt>-dP</tt>. You can change that by giving a +cvsup+ option
cvs cvsroot, module, :cvsup => ['--my', '--cvs', '--options']
=== Subversion
package.importer = svn(url[, options])
Where +options+ is an option hash. See also Autobuild::SVNImporter and Autobuild.svn
* the default Subversion command is +svn+. It can be changed by
Autobuild.programs['svn'] = 'my_svn_command'
* by default, no options are given to checkout. You add some by giving a +svnco+ option
svn url, :svnco => ['--my', '--svn', '--options']
* by default, no options are given to update. You can add some by giving a +svnup+ option
svn url, :svnup => ['--my', '--svn', '--options']
=== Darcs
package.importer = darcs(url[, options])
Where +options+ is a hash. See also Autobuild::DarcsImporter and Autobuild.darcs
* the default Darcs command is +darcs+. It can be changed by
Autobuild.programs['darcs'] = 'my_svn_command'
* by default, no options are given to get. You add some by giving a +get+ option
darcs url, :get => ['--my', '--darcs', '--options']
* by default, no options are given to pull. You can add some by giving a +pull+ option
darcs url, :pull => ['--my', '--darcs', '--options']
=== Git
package.importer = git(url[, branch])
Imports the given branch (or master if none is given) of the repository at the
given URL. The branch is imported as the 'autobuild' remote and fetched into
the master local branch.
= Copyright and license
Author:: Sylvain Joyeux <sylvain.joyeux@m4x.org>
Copyright:: Copyright (c) 2005-2008 Sylvain Joyeux
License:: GPL

About

Foundation to import and build software packages, basis for autoproj, Rock's (Robot Construction Kit) build system

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Copyright (c) 2006-2013 Sylvain Joyeux <sylvain.joyeux@m4x.org> and contributors
* http://rock-robotics.org
This work is licensed under the BSD license. See License.txt for details
== What's autobuild ?
Autobuild imports, configures, builds and installs various kinds of software packages.
It can be used in software development to make sure that nothing is broken in the build process of a set of packages, or can be used as an automated installation tool.
Autobuild config files are Ruby scripts which configure rake to
* imports the package from a SCM or (optionnaly) updates it
* configures it. This phase can handle code generation, configuration (for
instance for autotools-based packages), ...
* build
* install
It takes the dependencies between packages into account in its build process,
updates the needed environment variables (+PKG_CONFIG_PATH+, +PATH+,
+LD_LIBRARY_PATH+, ...)
== WARNING for 0.5 users
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)
== Available packages
=== Common usage
All package objects define the following attributes
*importer*:: the importer object (see "Available importers" below)
*srcdir*:: where the package sources are located. If it is a relative
path, it is relative to the value of Autobuild.srcdir. The default is to
use the package name. *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. Each package method (Autobuild.import, Autobuild.autotools, ...) takes either a package
name for first argument, or a <tt>name => dependency_array</tt> hash, and take a block which
can be used to configure the package. For instance
Autobuild.import :my_package do |pkg|
pkg.srcdir = 'my_package_dir'
end
Autobuild.import :my_package => [:depends, :depends_also] do |pkg|
end
=== Source only
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 +importer+ and +srcdir+. +prefix+ is ignored.
=== Autotools
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 <tt>automake-1.9</tt> 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:
* if a script named +autogen+ or +autogen.sh+ exists in the package source directory, it is run
and the other tools are not. The name of this kind of script can be set by calling Autotools#use
pkg.use :autogen => 'my_autogen_script'
* +autoheader+ is never used by default
* +autoconf+ is used if there is <tt>configure.ac</tt> or <tt>configure.in</tt> in the source dir
* +aclocal+ is used if +autoconf+ is enabled (either explicitely or by autodetection)
* +automake+ is used if there is a <tt>Makefile.am</tt> file in the source dir
* you can force to enable or disable any of these steps by calling Autotools#use. Set it to +true+
to force its usage, +false+ to disable it or to a string to force the usage of a particular program
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'
=== CMake
A cmake package is defined with
require 'autobuild/packages/cmake'
Autobuild.cmake :package_name do |pkg|
<package configuration> ...
end
The only configuration attribute available for CMake package is:
+builddir+ the directory in which to configure and build the package. It is relative to
the package sources. A global value can be defined through Autobuild::CMake.builddir
Additionally, the #define(name, value) method allows to define configuration variables.
== Available importers
You must set an importer object for each package. The package importer is the +importer+ attribute
and is set via <tt>package.importer = my_importer</tt>. 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 <tt>lib/autobuild/import/</tt>
=== Tar
package.importer = tar(uri[, options])
Downloads a tarfile at +uri+ and saves it into a local cache directory.
The cache directory can be set in the +options+ hash
package.importer = tar(uri, :cachedir = '/tmp')
It is "#{Autobuild.prefix}/cache" by default. The known URI schemes are file://
for local files and http:// or ftp:// for remote files. There is currently no
way to set passive mode on FTP, since the standard open-uri library does not
allow that.
=== CVS package.importer = cvs(cvsroot, module[, options])
Where +options+ is an option hash. See also Autobuild::CVSImporter and Autobuild.cvs
* the default CVS command is +cvs+. It can be changed by
Autobuild.programs['cvs'] = 'my_cvs_command'
* the default checkout option is <tt>-P</tt>. You can change that by giving a +cvsco+ option
cvs cvsroot, module, :cvsco => ['--my', '--cvs', '--options']
* the default update option is <tt>-dP</tt>. You can change that by giving a +cvsup+ option
cvs cvsroot, module, :cvsup => ['--my', '--cvs', '--options']
=== Subversion
package.importer = svn(url[, options])
Where +options+ is an option hash. See also Autobuild::SVNImporter and Autobuild.svn
* the default Subversion command is +svn+. It can be changed by
Autobuild.programs['svn'] = 'my_svn_command'
* by default, no options are given to checkout. You add some by giving a +svnco+ option
svn url, :svnco => ['--my', '--svn', '--options']
* by default, no options are given to update. You can add some by giving a +svnup+ option
svn url, :svnup => ['--my', '--svn', '--options']
=== Darcs
package.importer = darcs(url[, options])
Where +options+ is a hash. See also Autobuild::DarcsImporter and Autobuild.darcs
* the default Darcs command is +darcs+. It can be changed by
Autobuild.programs['darcs'] = 'my_svn_command'
* by default, no options are given to get. You add some by giving a +get+ option
darcs url, :get => ['--my', '--darcs', '--options']
* by default, no options are given to pull. You can add some by giving a +pull+ option
darcs url, :pull => ['--my', '--darcs', '--options']
=== Git
package.importer = git(url[, branch])
Imports the given branch (or master if none is given) of the repository at the
given URL. The branch is imported as the 'autobuild' remote and fetched into
the master local branch.
= Copyright and license
Author:: Sylvain Joyeux <sylvain.joyeux@m4x.org>
Copyright:: Copyright (c) 2005-2008 Sylvain Joyeux
License:: GPL

About

Foundation to import and build software packages, basis for autoproj, Rock's (Robot Construction Kit) build system

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages