mirror of
https://gitlab.com/mbunkus/mkvtoolnix.git
synced 2025-01-05 17:55:49 +00:00
267 lines
7.9 KiB
Plaintext
267 lines
7.9 KiB
Plaintext
= DRAKE -- Distributed Rake
|
|
|
|
A branch of Rake supporting automatic parallelizing of tasks.
|
|
|
|
== Synopsis
|
|
|
|
Run up to three tasks in parallel:
|
|
|
|
% drake -j3
|
|
|
|
Run as many tasks in parallel as the dependencies allow:
|
|
|
|
% drake -j
|
|
|
|
== Installation
|
|
|
|
% gem install drake
|
|
|
|
== Notes
|
|
|
|
Drake is fully compatible with Rake. The code base is identical to
|
|
that of Rake except for the addition of the -j option.
|
|
|
|
For the purposes of this documentation, the 'rake' and 'drake'
|
|
commands are interchangeable. The drake gem will install the drake
|
|
executable. On your system you may alias or link drake to rake if
|
|
desired.
|
|
|
|
For more on parallelization with -j, see
|
|
parallel.rdoc[http://quix.github.com/rake/files/doc/parallel_rdoc.html].
|
|
|
|
== Links
|
|
|
|
* Home: http://quix.github.com/rake
|
|
* Feature Requests, Bug Reports: http://github.com/quix/rake/issues
|
|
* Repository: http://github.com/quix/rake
|
|
|
|
== Author
|
|
|
|
* James M. Lawrence <quixoticsycophant@gmail.com>
|
|
|
|
== License
|
|
|
|
Copyright (c) 2003-2010 Jim Weirich
|
|
|
|
Copyright (c) 2008-2011 James M. Lawrence
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining
|
|
a copy of this software and associated documentation files (the
|
|
"Software"), to deal in the Software without restriction, including
|
|
without limitation the rights to use, copy, modify, merge, publish,
|
|
distribute, sublicense, and/or sell copies of the Software, and to
|
|
permit persons to whom the Software is furnished to do so, subject to
|
|
the following conditions:
|
|
|
|
The above copyright notice and this permission notice shall be
|
|
included in all copies or substantial portions of the Software.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
|
= RAKE -- Ruby Make -- <em>mainline branch</em>
|
|
|
|
Supporting Rake version: 0.8.7.
|
|
|
|
This package contains Rake, a simple ruby build program with
|
|
capabilities similar to make.
|
|
|
|
Rake has the following features:
|
|
|
|
* Rakefiles (rake's version of Makefiles) are completely defined in
|
|
standard Ruby syntax. No XML files to edit. No quirky Makefile
|
|
syntax to worry about (is that a tab or a space?)
|
|
|
|
* Users can specify tasks with prerequisites.
|
|
|
|
* Rake supports rule patterns to synthesize implicit tasks.
|
|
|
|
* Flexible FileLists that act like arrays but know about manipulating
|
|
file names and paths.
|
|
|
|
* A library of prepackaged tasks to make building rakefiles easier. For example,
|
|
tasks for building tarballs, gems and RDoc output are provided.
|
|
|
|
* Supports parallel execution of tasks.
|
|
|
|
|
|
== Installation
|
|
|
|
=== Gem Installation
|
|
|
|
Download and install rake with the following.
|
|
|
|
gem install rake
|
|
|
|
=== Normal Installation
|
|
|
|
You can download the source tarball of the latest version of Rake from
|
|
|
|
* http://rubyforge.org/project/showfiles.php?group_id=50
|
|
|
|
Extract the tarball and run
|
|
|
|
% ruby install.rb
|
|
|
|
from its distribution directory.
|
|
|
|
== Usage
|
|
|
|
=== Simple Example
|
|
|
|
First, you must write a "Rakefile" file which contains the build rules. Here's
|
|
a simple example:
|
|
|
|
task :default => [:test]
|
|
|
|
task :test do
|
|
ruby "test/unittest.rb"
|
|
end
|
|
|
|
This Rakefile has two tasks:
|
|
|
|
* A task named "test", which - upon invocation - will run a unit test file in
|
|
Ruby.
|
|
* A task named "default". This task does nothing by itself, but it has exactly
|
|
one dependency, namely the "test" task. Invoking the "default" task will
|
|
cause Rake to invoke the "test" task as well.
|
|
|
|
Running the "rake" command without any options will cause it to run the
|
|
"default" task in the Rakefile:
|
|
|
|
% ls
|
|
Rakefile test/
|
|
% rake
|
|
(in /home/some_user/Projects/rake)
|
|
ruby test/unittest.rb
|
|
....unit test output here...
|
|
|
|
Type "rake --help" for all available options.
|
|
|
|
|
|
=== More Information
|
|
|
|
* For details on Rake's command-line invocation, read
|
|
doc/command_line_usage.rdoc[http://rake.rubyforge.org/files/doc/command_line_usage_rdoc.html]
|
|
* For details on writing Rakefiles, see
|
|
doc/rakefile.rdoc[http://rake.rubyforge.org/files/doc/rakefile_rdoc.html].
|
|
* For the original announcement of Rake, see
|
|
doc/rational.rdoc[http://rake.rubyforge.org/files/doc/rational_rdoc.html].
|
|
* For a glossary of terms, see
|
|
doc/glossary.rdoc[http://rake.rubyforge.org/files/doc/glossary_rdoc.html].
|
|
|
|
== Development
|
|
|
|
=== Source Repository
|
|
|
|
Rake is currently hosted at github. The github web page is
|
|
http://github.com/jimweirich/rake. The public git clone URL is
|
|
|
|
* git://github.com/jimweirich/rake.git
|
|
|
|
=== Running the Rake Test Suite
|
|
|
|
If you wish to run the unit and functional tests that come with Rake:
|
|
|
|
* Install the 'flexmock' gem
|
|
* Install the 'session' gem in order to run the functional tests.
|
|
* CD into the top project directory of rake.
|
|
* Type one of the following:
|
|
|
|
rake # If you have a version of rake installed
|
|
ruby -Ilib bin/rake # If you do not have a version of rake installed.
|
|
|
|
=== Issues and Bug Reports
|
|
|
|
Feature requests and bug reports can be made here
|
|
|
|
* http://onestepback.org/cgi-bin/bugs.cgi?project=rake
|
|
|
|
No account is needed for posting requests. Or you can send me an
|
|
email (at jim dot weirich at gmail dot com)
|
|
|
|
Issues and bug reports can be tracked here:
|
|
|
|
* http://www.pivotaltracker.com/projects/28469
|
|
|
|
== Online Resources
|
|
|
|
=== Rake References
|
|
|
|
* Rake Documentation Home: http://docs.rubyrake.org
|
|
* Rake Project Page: http://rubyforge.org/projects/rake
|
|
* Rake API Documents: http://rake.rubyforge.org
|
|
* Rake Source Code Repo: http://github.com/jimweirich/rake
|
|
* Rake Git Repo Clone URL: git://github.com/jimweirich/rake.git
|
|
* Rake Issue Tracking: http://www.pivotaltracker.com/projects/28469
|
|
* Rake Bug Reports: http://onestepback.org/cgi-bin/bugs.cgi?project=rake
|
|
|
|
=== Presentations and Articles about Rake
|
|
|
|
* Jim Weirich's 2003 RubyConf presentation: http://onestepback.org/articles/buildingwithrake/
|
|
* Martin Fowler's article on Rake: http://martinfowler.com/articles/rake.html
|
|
|
|
== Other Make Reinvisionings ...
|
|
|
|
Rake is a late entry in the make replacement field. Here are links to
|
|
other projects with similar (and not so similar) goals.
|
|
|
|
* http://directory.fsf.org/bras.html -- Bras, one of earliest
|
|
implementations of "make in a scripting language".
|
|
* http://www.a-a-p.org -- Make in Python
|
|
* http://www.aromatic.com/tools/jam.txt -- JAM, Java Automated Make
|
|
* http://ant.apache.org -- The Ant project
|
|
* http://ppt.perl.org/commands/make/index.html -- Make from the Perl
|
|
Power Tools implementation.
|
|
* http://search.cpan.org/search?query=PerlBuildSystem -- The Perl Build System
|
|
* http://make.rubyforge.org -- Rant, another Ruby make tool.
|
|
|
|
== Credits
|
|
|
|
[<b>Ryan Dlugosz</b>] For the initial conversation that sparked Rake.
|
|
|
|
[<b>nobu.nokada@softhome.net</b>] For the initial patch for rule support.
|
|
|
|
[<b>Tilman Sauerbeck <tilman@code-monkey.de></b>] For the recursive rule patch.
|
|
|
|
== License
|
|
|
|
Rake is available under an MIT-style license.
|
|
|
|
:include: MIT-LICENSE
|
|
|
|
== Support
|
|
|
|
The Rake homepage is http://rake.rubyforge.org. You can find the Rake
|
|
RubyForge page at http://rubyforge.org/projects/rake.
|
|
|
|
Feel free to submit commits or feature requests. If you send a patch,
|
|
remember to update the corresponding unit tests. In fact, I prefer
|
|
new feature to be submitted in the form of new unit tests.
|
|
|
|
For other information, feel free to ask on the ruby-talk mailing list
|
|
(which is mirrored to comp.lang.ruby) or contact
|
|
jim dot weirich at gmail.com.
|
|
|
|
---
|
|
|
|
= Other stuff
|
|
|
|
Author:: Jim Weirich <jim.weirich@gmail.com>
|
|
Requires:: Ruby 1.8.0 or later
|
|
License:: Copyright 2003-2008 by Jim Weirich.
|
|
Released under an MIT-style license. See the LICENSE file
|
|
included in the distribution.
|
|
|
|
== Warranty
|
|
|
|
This software is provided "as is" and without any express or
|
|
implied warranties, including, without limitation, the implied
|
|
warranties of merchantibility and fitness for a particular
|
|
purpose.
|