# Template build file for 'ruby'.
_ruby_abiver=2.4.0

pkgname=ruby
version=2.4.1
revision=2
build_style=gnu-configure
configure_args="--enable-shared --disable-rpath
 DOXYGEN=/usr/bin/doxygen DOT=/usr/bin/dot PKG_CONFIG=/usr/bin/pkg-config"
make_build_args="all capi"
short_desc="Ruby programming language"
homepage="http://www.ruby-lang.org/en/"
maintainer="Leah Neukirchen <leah@vuxu.org>"
license="BSD"
distfiles="ftp://ftp.ruby-lang.org/pub/ruby/${version%.*}/${pkgname}-${version}.tar.bz2"
checksum=ccfb2d0a61e2a9c374d51e099b0d833b09241ee78fc17e1fe38e3b282160237c

hostmakedepends="pkg-config bison groff doxygen graphviz"
makedepends="zlib-devel readline-devel libffi-devel libressl-devel
 gdbm-devel libyaml-devel pango-devel"

if [ "$CROSS_BUILD" ]; then
	hostmakedepends+=" ruby"
fi

pre_build() {
	# Force getaddrinfo detection.
	sed -e 's,\(checking_for("wide getaddrinfo") {try_\)run,\1link,' -i ext/socket/extconf.rb
	# Hack for cross-builds.
	touch ext/ripper/check
	if [ "$XBPS_GCC_VERSION_MAJOR" -ge 7 ]; then
		# Set -fno-stack-protector for i686* or otherwise linking fails with
		# ...: undefined reference to `__stack_chk_fail_local'
		case "$XBPS_TARGET_MACHINE" in
			i686*) sed -i Makefile \
					-e "s;-fstack-protector-strong;;" \
					-e "s;-fstack-protector;-fno-stack-protector;"
				;;
		esac
	fi
}
post_install() {
	# Remove references to the cross compiler
	if [ "$CROSS_BUILD" ]; then
		sed -e "s,${XBPS_CROSS_TRIPLET}-,,g" -i ${DESTDIR}/usr/lib/ruby/${_ruby_abiver}/*/rbconfig.rb
	fi
	# Replace reference to the install(1) wrapper
	sed -e "s,${XBPS_WRAPPERDIR},/usr/bin,g" -i \
		${DESTDIR}/usr/lib/ruby/${_ruby_abiver}/*/rbconfig.rb
	# Remove references to hardening -specs.
	sed -e "s|\(-specs=.*hardened-ld\)||g" -e "s|\(-specs=.*hardened-cc1\)||g" -i \
		${DESTDIR}/usr/lib/ruby/${_ruby_abiver}/*/rbconfig.rb
	vlicense COPYING
}
ruby-devel-doc_package() {
	short_desc+=" - HTML C API documentation files"
	noarch=yes
	pkg_install() {
		vmove usr/share/doc
	}
}
ruby-devel_package() {
	depends="ruby-${version}_${revision} gmp-devel"
	short_desc+=" - development files"
	pkg_install() {
		vmove usr/include
		vmove usr/lib/ruby/${_ruby_abiver}/mkmf.rb
		vmove usr/lib/pkgconfig
	}
}
ruby-ri_package() {
	depends="ruby-${version}_${revision}"
	short_desc="Ruby Interactive reference"
	noarch=yes
	pkg_install() {
		vmove usr/bin/ri
		vmove usr/share/ri
		vmove "usr/share/man/man1/ri*"
	}
}