NAME
ruby-module
—
lang/ruby port module
DESCRIPTION
This manual page documents the behavior of setting
MODULE=lang/ruby
in the
ports(7) tree.
Sets MODRUBY_REV
,
RUBY
, RAKE
,
RSPEC
, MODRUBY_BIN_TESTRB
,
MODRUBY_BIN_RSPEC
,
MODRUBY_RUN_DEPENDS
,
MODRUBY_LIB_DEPENDS
,
MODRUBY_BUILD_DEPENDS
,
MODRUBY_ICONV_DEPENDS
,
MODRUBY_LIBDIR
,
MODRUBY_DOCDIR
,
MODRUBY_SITEARCHDIR
,
MODRUBY_SITEDIR
,
MODRUBY_ARCH
,
MODRUBY_EXAMPLEDIR
,
MODRUBY_RUBY_ADJ
,
MODRUBY_ADJ_FILES
,
GEM_BIN_SUFFIX
,
GEM_MAN_SUFFIX
,
MODRUBY_LIBREV
,
MODRUBY_BINREV
,
MODRUBY_PKGSPEC
,
MODRUBY_PKG_PREFIX
,
MODRUBY_RAKE_DEPENDS
,
MODRUBY_RSPEC_DEPENDS
,
MODRUBY_WANTLIB
,
MODRUBY_FLAVOR
,
MODRUBY_REGRESS
,
MODRUBY_REGRESS_TARGET
,
MODRUBY_REGRESS_DIR
,
MODRUBY_REGRESS_ENV
,
MODRUBY_BUILD_TARGET
,
MODRUBY_INSTALL_TARGET
,
MODRUBY_EXTRACT_TARGET
, GEM
,
GEM_BIN
, GEM_LIB
,
GEM_BASE_LIB
, GEM_ABS_PATH
,
GEM_BASE_BIN
, and
GEM_FLAGS
.
Appends to CATEGORIES
and
SUBST_VARS
. Appends to
BUILD_DEPENDS
unless
MODRUBY_BUILDDEP
is set to No or
NO_BUILD
is set to Yes. Appends to
RUN_DEPENDS
unless
MODRUBY_RUNDEP
is set to No.
RUBY
, RAKE
, and
MODRUBY_BIN_TESTRB
are the path to the ruby, rake,
and testrb binaries for the related ruby implementation.
RSPEC
and MODRUBY_BIN_RSPEC
are the path to the spec (rspec 1) and rspec (rspec 2) binaries for the
related ruby implementation.
MODRUBY_RUBY_ADJ
is a command that takes
filename arguments and replaces the /usr/bin/env ruby shebang lines with
RUBY
. MODRUBY_ADJ_FILES
is a
list of filename patterns that will automatically have
MODRUBY_RUBY_ADJ
called on them during
pre-configure.
Creates a do-regress target if
MODRUBY_REGRESS
is used and one is not already
defined. MODRUBY_REGRESS
can be set to ruby, rake,
rspec, rspec2, or testrb to choose the appropriate binary to run the regress
tests. MODRUBY_REGRESS_ENV
can be used to set
environment variables for the regress tests.
MODRUBY_REGRESS_DIR
can be used to set the directory
in which to execute the regress tests, it defaults to
WRKSRC
.
MODRUBY_REGRESS_TARGET
sets the argument to the
regress test program.
Supports additional CONFIGURE_STYLE
s, and
setting specific CONFIGURE_STYLE
s modifies some
additional parameters:
- The "ruby gem"
CONFIGURE_STYLE
should be used for pure ruby gems without C extensions. This addsPKG_ARCH
= * and adds ruby19, rbx, and jrubyFLAVOR
s to the port, so the same port can build packages for multiple versions of ruby. - The "ruby gem ext"
CONFIGURE_STYLE
should be used for ruby gems with C extensions. This addsSHARED_ONLY
=Yes and addsMODRUBY_LIB_DEPENDS
toLIB_DEPENDS
and c, m, andMODRUBY_WANTLIB
toWANTLIB
. It also adds ruby19, rbx, and jrubyFLAVOR
s to the port. - The "ruby extconf"
CONFIGURE_STYLE
is similar to the "ruby gem ext"CONFIGURE_STYLE
, except that it is used when the package is not distributed as a ruby gem.
In order for ruby 1.9, rubinius, and jruby packages to be built from the same port directory, any gem dependencies specified in the port should use this format:
category/ruby-foo,${MODRUBY_FLAVOR}
Use of a ruby19, rbx, or jruby FLAVOR
causes the FULLPKGNAME
to use the
FLAVOR
instead of ruby as the package prefix.
Specifying MODRUBY_FLAVOR
is necessary so that if
you are building a ruby 1.9 package for the current port, it depends on the
ruby 1.9 package of the dependencies.
For ruby gem ports that can work on both ruby 1.8 and ruby 1.9,
any binary file entries in the PLIST should be appended with
GEM_BIN_SUFFIX
. This is because the ruby 1.8 and
ruby 1.9 gem binaries are both installed to
${LOCALBASE}/bin, and ruby 1.9 installs the binaries
with a 19 suffix. Any man pages and other files that would be installed to
locations not specific to a ruby implementation (such as under
${LOCALBASE}/share), should use
GEM_MAN_SUFFIX
before the extension so the different
FLAVOR
s do not conflict. make update-plist currently
removes GEM_BIN_SUFFIX
and
GEM_MAN_SUFFIX
, so be careful when updating gem
ports with binaries or man pages.