A make-like build utility for Ruby.
Fetching latest commit…
Cannot retrieve the latest commit at this time
= RAKE -- Ruby Make Supporting Rake version: 0.7.x 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. == Download The latest version of rake can be found at * http://rubyforge.org/project/showfiles.php?group_id=50 == Installation === Normal Installation You can install rake with the following command. % ruby install.rb from its distribution directory. === GEM Installation Download and install rake with the following. gem install --remote rake === Running the Rake Test Suite If you wish to run the unit and functional tests that come with Rake: * 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. == 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 == 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 === Road Map * If you want to see how to invoke rake to build your projects, read on. * If you want to see the format of a Rakefile, see doc/rakefile.rdoc[http://rake.rubyforge.org/files/doc/rakefile_rdoc.html]. * If you want to see the original announcement of rake, see doc/rational.rdoc[http://rake.rubyforge.org/files/doc/rational_rdoc.html]. * If you want to see a glossary of terms, see doc/glossary.rdoc[http://rake.rubyforge.org/files/doc/glossary_rdoc.html]. == Simple Example Once installed, you can run rake as follows ... % rake [options ...] [VAR=VALUE ...] [tasks...] Type "rake --help" for an up-to-date option summary. Invoking <tt>rake</tt> without any options or targets causes rake to look for a rakefile and invoke the default task in that rakefile. For example, given a simple rakefile like this ... task :default => [:test] task :test do ruby "test/unittest.rb" end The command $ rake will invoke the +default+ task. As +default+ satisfies its prerequisites, the +test+ task will run the unit tests for the package. == 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>email@example.com</b>] For the initial patch for rule support. [<b>Tilman Sauerbeck <firstname.lastname@example.org></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. If 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 mailto:email@example.com. ---- = Usage Rake is invoked from the command line using: % rake [<em>options</em> ...] [<em>VAR</em>=<em>VALUE</em>] [<em>targets</em> ...] Options are: [<tt><em>name</em>=<em>value</em></tt>] Set the environment variable <em>name</em> to <em>value</em> during the execution of the <b>rake</b> command. You can access the value by using ENV['<em>name</em>']. [<tt>--classic-namespace</tt> (-n)] Import the Task, FileTask, and FileCreateTask into the top-level scope to be compatible with older versions of Rake. Alternatively you can include the line <code>require 'rake/classic_namespace'</code> in your Rakefile to get the classic behavior. [<tt>--dry-run</tt> (-n)] Do a dry run. Print the tasks invoked and executed, but do not actually execute any of the actions. [<tt>--help</tt> (-H)] Display some help text and exit. [<tt>--libdir</tt> _directory_ (-I)] Add _directory_ to the list of directories searched for require. [<tt>--nosearch</tt> (-N)] Do not search for a Rakefile in parent directories. [<tt>--prereqs</tt> (-P)] Display a list of all tasks and their immediate prerequisites. [<tt>--quiet</tt> (-q)] Do not echo commands from FileUtils. [<tt>--rakefile</tt> _filename_ (-f)] Use _filename_ as the name of the rakefile. The default rakefile names are +rakefile+ and +Rakefile+ (with +rakefile+ taking precedence). If the rakefile is not found in the current directory, +rake+ will search parent directories for a match. The directory where the Rakefile is found will become the current directory for the actions executed in the Rakefile. [<tt>--require</tt> _name_ (-r)] Require _name_ before executing the Rakefile. [<tt>--tasks</tt> (-T)] Display a list of the major tasks and their comments. Comments are defined using the "desc" command. [<tt>--trace</tt> (-t)] Turn on invoke/execute tracing. Also enable full backtrace on errors. [<tt>--usage</tt> (-h)] Display a usage message and exit. [<tt>--verbose</tt> (-v)] Echo the Sys commands to standard output. [<tt>--version</tt> (-V)] Display the program version and exit. In addition, any command line option of the form <em>VAR</em>=<em>VALUE</em> will be added to the environment hash <tt>ENV</tt> and may be tested in the Rakefile. --- = Rakefile Format See doc/rakefile.rdoc[http://rake.rubyforge.org/files/doc/rakefile_rdoc.html] for details on the Rakefile format. --- = Other stuff Author:: Jim Weirich <firstname.lastname@example.org> Requires:: Ruby 1.8.0 or later License:: Copyright 2003, 2004 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.