SUMMARY="A programming language focused on simplicity and productivity"
DESCRIPTION="Ruby is a dynamic, reflective, object-oriented, general-purpose \
programming language. It was designed and developed in the mid-1990s \
by Yukihiro 'Matz' Matsumoto in Japan.

Ruby embodies syntax inspired by Perl with Smalltalk-like features and \
was also influenced by Eiffel and Lisp.  It supports multiple \
programming paradigms, including functional, object oriented, and \
imperative. It also has a dynamic type system and automatic memory \
management. Therefore, it is similar in varying degrees to, Smalltalk, \
Python, Perl, Lisp, Dylan, and CLU."
HOMEPAGE="http://www.ruby-lang.org"
SOURCE_URI="http://cache.ruby-lang.org/pub/ruby/2.2/ruby-$portVersion.tar.gz"
CHECKSUM_SHA256="5ffc0f317e429e6b29d4a98ac521c3ce65481bfd22a8cf845fa02a7b113d9b44"
LICENSE="Ruby
	BSD (3-clause)"
COPYRIGHT="1993-2015 Yukihiro Matsumoto"
PATCHES="ruby-$portVersion.patchset"

REVISION="1"

ARCHITECTURES="?x86 !x86_64"
if [ $effectiveTargetArchitecture != x86_gcc2 ]; then
	# x86_gcc2 is fine as primary target architecture as long as we're building
	# for a different secondary architecture.
	ARCHITECTURES="$ARCHITECTURES x86_gcc2"
fi
SECONDARY_ARCHITECTURES="x86"

PROVIDES="
	ruby$secondaryArchSuffix = $portVersion compat >= 2.2
	cmd:ruby = $portVersion compat >= 2.2
	cmd:erb = $portVersion compat >= 2.2
	cmd:gem = $portVersion compat >= 2.2
	cmd:irb = $portVersion compat >= 2.2
	cmd:rake = $portVersion compat >= 2.2
	cmd:rdoc = $portVersion compat >= 2.2
	cmd:ri = $portVersion compat >= 2.2
	cmd:testrb = $portVersion compat >= 2.2
	lib:libruby$secondaryArchSuffix = $portVersion compat >= 2.2
	"
REQUIRES="
	haiku$secondaryArchSuffix
	lib:libedit$secondaryArchSuffix
	lib:libz$secondaryArchSuffix
	lib:libcrypto$secondaryArchSuffix
	lib:libssl$secondaryArchSuffix
	lib:libiconv$secondaryArchSuffix
	lib:libncursesw$secondaryArchSuffix
	"
BUILD_REQUIRES="
	haiku${secondaryArchSuffix}_devel
	devel:libedit$secondaryArchSuffix
	devel:libz$secondaryArchSuffix
	devel:libcrypto$secondaryArchSuffix
	devel:libssl$secondaryArchSuffix
	devel:libiconv$secondaryArchSuffix
	devel:libncursesw$secondaryArchSuffix
	devel:libffi$secondaryArchSuffix
	"
BUILD_PREREQUIRES="
	cmd:gcc$secondaryArchSuffix
	cmd:g++$secondaryArchSuffix
	cmd:autoconf
	cmd:bison
	cmd:git
	cmd:libtoolize
	cmd:make
	cmd:pkg_config$secondaryArchSuffix
	"

PROVIDES_devel="
	ruby${secondaryArchSuffix}_devel = $portVersion
	devel:libruby_static$secondaryArchSuffix = $portVersion compat >= 2.2
	lib:libruby_static$secondaryArchSuffix = $portVersion compat >= 2.2
	devel:libruby$secondaryArchSuffix = $portVersion compat >= 2.2
	"
REQUIRES_devel="
	ruby$secondaryArchSuffix == $portVersion base
	"

BUILD()
{
	libtoolize --force --copy --install
	autoconf
	runConfigure --omit-dirs binDir ./configure --enable-shared \
		--disable-silent-rules \
		--bindir=$prefix/bin
	# The build process needs to run ruby, and without this it fails to find
	# libruby.so.
	export LIBRARY_PATH=$LIBRARY_PATH:%A
	make $jobArgs Q=''
}

INSTALL()
{
	export LIBRARY_PATH=$LIBRARY_PATH:%A
	make install
	prepareInstalledDevelLibs libruby-static libruby
	packageEntries devel $developDir
}

TEST()
{
	export LIBRARY_PATH=$LIBRARY_PATH:%A
	make check
}
