= Buildr  {<img src="https://travis-ci.org/apache/buildr.svg?branch=master" alt="Build status">}[https://travis-ci.org/apache/buildr] {<img src="http://ruby-gem-downloads-badge.herokuapp.com/buildr?type=total" alt="Buildr total downloads">}[https://rubygems.org/gems/buildr] {<img src="http://ruby-gem-downloads-badge.herokuapp.com/buildr" alt="Latest version downloads">}[https://rubygems.org/gems/buildr]

This is Buildr, the build system that lets you build like you code.

http://buildr.apache.org/

== Get Started

=== Install Buildr

Buildr needs Ruby 1.8 or later and RubyGems 0.9 or later.

Windows users can get the one-click Ruby installer, which includes the latest
version of Ruby and RubyGems:

http://rubyinstaller.org

Make sure to set JAVA_HOME environment variable first, then:

  gem install buildr

(Use sudo for Linux and OS X)

More installation and setup instructions available online
http://buildr.apache.org/


=== RTFM

* Buildr documentation: http://buildr.apache.org
* More about Rake: http://docs.rubyrake.org
* Antwrap documentation: http://antwrap.rubyforge.org


=== Mailing list

Users: users-subscribe@buildr.apache.org http://buildr.markmail.org/search/list:users

Developers: dev-subscribe@buildr.apache.org http://buildr.markmail.org/search/list:dev

Create your own Buildfile and start living the life!


== Where's My Ruby?

Buildr needs Ruby 1.8 or later and RubyGems 0.9 or later. All other
dependencies are installed when you run:

  gem install buildr

=== Windows

Windows users can get the one-click Ruby installer, which includes the latest
version of Ruby and RubyGems:

http://rubyinstaller.org

Before installing Buildr, please set the JAVA_HOME environment variable to
point to your JDK distribution.  Next, use Ruby Gem to install Buildr:

  > gem install buildr

When prompted for a platform, select mswin32.

=== Linux, BSD, Cygwin

On Linux/BSD/Cygwin, use your default package manager, for example, for Ubuntu:

$ sudo apt-get install ruby
$ sudo apt-get install ruby1.8-dev
$ sudo apt-get install build-essential
$ sudo apt-get install libopenssl-ruby

Before installing Buildr, please set the JAVA_HOME environment variable to
point to your JDK distribution.  Next, use Ruby Gem to install Buildr:

  $ sudo env JAVA_HOME=$JAVA_HOME gem install buildr

When prompted for a platform, select ruby.

=== OS X

Leopard includes the latest version of Ruby, if you are using Tiger or an older
release, we recommend re-installing the latest:

http://hivelogic.com/narrative/articles/ruby-rails-mongrel-mysql-osx

To install Buildr:

  $ sudo gem install buildr

When prompted for a platform, select ruby.


== Living On the Edge

You can check the latest sources from GIT:

  git clone http://git.apache.org/buildr.git

If you prefer GitHub, a mirror is available from http://github.com/apache/buildr:

  git clone git://github.com/apache/buildr.git

To install Buildr locally from source:

  cd buildr
  export JRUBY_OPTS="-J-XX:MaxPermSize=312m -J-Xmx1024M"
  export JAVA_OPTS="-Xmx1024m -XX:MaxPermSize=312m"
  rake install

If the cutting edge doesn't work, make sure to check the CHANGELOG, to see
which changes might have broken your build.  To run all the test cases:

  rake spec

== License

Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with this
work for additional information regarding copyright ownership.  The ASF
licenses this file to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance with the License.
You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
License for the specific language governing permissions and limitations under
the License.
