pkgsrc/misc/rubygems/rubygem.mk

91 lines
3 KiB
Makefile
Raw Normal View History

# $NetBSD: rubygem.mk,v 1.2 2008/03/11 22:11:32 jlam Exp $
#
# This Makefile fragment is intended to be included by packages that build
# and install Ruby gems.
#
# The following target is provided by this file:
#
# do-gem-install installed as a dependency of the do-install target
# it install the Ruby Gem ${GEMFILE}.
#
# do-build Mostly phony target, but necessary for various
# pkgsrc framework to work, in case the Gem to install
# contains sources to compile.
#
# The following variables may be set prior to including this file:
#
# GEM_NAME The name of the Gem to install, it defaults
# to ${DISTNAME}.
#
# GEMFILE The filename, in ${_DISTDIR}, of the Gem to install.
#
# If the Gem to install does not contain sources to compile NO_BUILD
# should be defined.
#
# The name, PKGNAME, of the package installing the Gem should probably
# use '${RUBYGEM_PKGPREFIX}-' as a prefix.
#
# Include this early in case some of its target are needed
.include "../../lang/ruby/modules.mk"
# Build and run-time dependency on rubygem
#
# We need rubygems>=1.0.1nb1 to actually build the package, but the
# resulting installed gem can run with older versions of rubygems.
#
BUILD_DEPENDS+= rubygems>=1.0.1nb1:../../misc/rubygems
DEPENDS+= rubygems>=0.8.7:../../misc/rubygems
# GEMFILE holds the filename of the Gem to install
.if defined(DISTFILES)
GEMFILE?= ${DISTFILES}
.else
GEMFILE?= ${DISTNAME}${EXTRACT_SUFX}
.endif
EXTRACT_SUFX?= .gem
EXTRACT_ONLY?= # empty
# Base directory for Gems
GEM_HOME= ${PREFIX}/lib/ruby/gems/${RUBY_VER_DIR}
# Directory for the Gem to install
GEM_NAME?= ${DISTNAME}
GEM_LIBDIR= ${GEM_HOME}/gems/${GEM_NAME}
GEM_DOCDIR= ${GEM_HOME}/doc/${GEM_NAME}
RUBYGEM_PKGPREFIX= ${RUBY_PKGPREFIX}-gem
# RUBYGEM holds the path to RubyGems' gem command
EVAL_PREFIX+= RUBYGEM_PREFIX=rubygems
RUBYGEM= ${RUBYGEM_PREFIX}/bin/gem
# PLIST support
PLIST_SUBST+= GEM_HOME=${GEM_HOME:S|^${PREFIX}/||}
PLIST_SUBST+= GEM_LIBDIR=${GEM_LIBDIR:S|^${PREFIX}/||}
PLIST_SUBST+= GEM_DOCDIR=${GEM_DOCDIR:S|^${PREFIX}/||}
# print-PLIST support
PRINT_PLIST_AWK+= /^(@dirrm )?${GEM_LIBDIR:S|${PREFIX}/||:S|/|\\/|g}/ \
{ gsub(/${GEM_LIBDIR:S|${PREFIX}/||:S|/|\\/|g}/, "$${GEM_LIBDIR}"); print; next; }
PRINT_PLIST_AWK+= /^(@dirrm )?${GEM_DOCDIR:S|${PREFIX}/||:S|/|\\/|g}/ \
{ gsub(/${GEM_DOCDIR:S|${PREFIX}/||:S|/|\\/|g}/, "$${GEM_DOCDIR}"); print; next; }
PRINT_PLIST_AWK+= /^@dirrm ${GEM_HOME:S|${PREFIX}/||:S|/|\\/|g}(\/(gems|cache|doc|specifications))?$$/ \
{ next; }
PRINT_PLIST_AWK+= /^(@dirrm )?${GEM_HOME:S|${PREFIX}/||:S|/|\\/|g}/ \
{ gsub(/${GEM_HOME:S|${PREFIX}/||:S|/|\\/|g}/, "$${GEM_HOME}"); print; next; }
# Define a build target so that tools, buildink, etc... frameworks are setup
# in case the Gem contains sources to build
.if !target(do-build)
do-build:
${RUN}mkdir ${WRKSRC}
.endif
# Installation target
do-gem-install:
${RUN}${SETENV} ${GEM_ENV} ${RUBYGEM} install --local --no-update-sources --no-ri --install-dir ${PREFIX}/${GEM_HOME} ${_DISTDIR}/${GEMFILE} -- --build-args ${CONFIGURE_ARGS}
do-install: do-gem-install