pkgsrc-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[pkgsrc/trunk]: pkgsrc/misc/rubygems + Add a package-settable variable GEM_BU...
details: https://anonhg.NetBSD.org/pkgsrc/rev/80b2b0b04852
branches: trunk
changeset: 539778:80b2b0b04852
user: jlam <jlam%pkgsrc.org@localhost>
date: Thu Mar 13 14:38:46 2008 +0000
description:
+ Add a package-settable variable GEM_BUILD that sets the way that
the local gem that is installed is built from the extracted sources.
The possible values are "gemspec" and "rake", with "rake" being the
default.
+ Change the do-gem-extract target so that it also extracts the gemspec
file from the source gem. This gemspec file is used when the
"gemspec" GEM_BUILD method is chosen.
+ Add do-gem-${GEM_BUILD}-targets that build the local gem using the
corresponding ${GEM_BUILD} method.
diffstat:
misc/rubygems/rubygem.mk | 48 +++++++++++++++++++++++++++++++++++-------------
1 files changed, 35 insertions(+), 13 deletions(-)
diffs (106 lines):
diff -r 6c2af8bbb0f6 -r 80b2b0b04852 misc/rubygems/rubygem.mk
--- a/misc/rubygems/rubygem.mk Thu Mar 13 14:21:13 2008 +0000
+++ b/misc/rubygems/rubygem.mk Thu Mar 13 14:38:46 2008 +0000
@@ -1,10 +1,16 @@
-# $NetBSD: rubygem.mk,v 1.9 2008/03/12 22:04:40 jlam Exp $
+# $NetBSD: rubygem.mk,v 1.10 2008/03/13 14:38:46 jlam Exp $
#
# This Makefile fragment is intended to be included by packages that build
# and install Ruby gems.
#
# Package-settable variables:
#
+# GEM_BUILD
+# The method used to build the local gem.
+#
+# Possible: gemspec, rake
+# Default: rake
+#
# GEM_NAME
# The name of the gem to install. The default value is ${DISTNAME}.
#
@@ -41,14 +47,22 @@
# Include this early in case some of its target are needed
.include "../../lang/ruby/modules.mk"
+# Default to using rake to build the local gem from the unpacked files.
+GEM_BUILD?= rake
+
# Build and run-time dependencies.
#
# 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+= rake-[0-9]*:../../devel/rake
+# If we're using rake to build the local gem, then include it as a
+# build tool.
+#
BUILD_DEPENDS+= rubygems>=1.0.1nb1:../../misc/rubygems
DEPENDS+= rubygems>=0.8.7:../../misc/rubygems
+.if ${GEM_BUILD} == "rake"
+BUILD_DEPENDS+= rake-[0-9]*:../../devel/rake
+.endif
# GEMFILE holds the filename of the Gem to install
.if defined(DISTFILES)
@@ -75,9 +89,11 @@
# RUBYGEM holds the path to RubyGems' gem command
EVAL_PREFIX+= RUBYGEM_PREFIX=rubygems
+RUBYGEM= ${RUBYGEM_PREFIX}/bin/gem
+
+# RAKE holds the path to the rake build tool.
EVAL_PREFIX+= RAKE_PREFIX=rake
RAKE= ${RAKE_PREFIX}/bin/rake
-RUBYGEM= ${RUBYGEM_PREFIX}/bin/gem
# PLIST support
PLIST_SUBST+= GEM_HOME=${GEM_HOME:S|^${PREFIX}/||}
@@ -109,23 +125,29 @@
.PHONY: do-gem-extract
do-extract: do-gem-extract
do-gem-extract:
- ${RUN} cd ${WRKDIR} && \
- ${EXTRACTOR} -f tar ${_DISTDIR:Q}/${GEMFILE:Q} data.tar.gz
+ ${RUN} cd ${WRKDIR} && ${EXTRACTOR} -f tar ${_DISTDIR:Q}/${GEMFILE:Q}
${RUN} mkdir ${WRKSRC}
- ${RUN} cd ${WRKSRC} && \
- ${EXTRACTOR} -f tar ${WRKDIR:Q}/data.tar.gz
- ${RUN} rm -f ${WRKDIR:Q}/data.tar.gz
+ ${RUN} cd ${WRKSRC} && ${EXTRACTOR} -f tar ${WRKDIR:Q}/data.tar.gz
+ ${RUN} cd ${WRKSRC} && ${EXTRACTOR} ${WRKDIR:Q}/metadata.gz
+ ${RUN} rm -f ${WRKDIR:Q}/data.tar.gz ${WRKDIR:Q}/metadata.gz
###
### do-gem-build
###
### The do-gem-build target builds a new local gem from the extracted
-### gem's contents. The new gem as created as ${WRKSRC}/pkg/${GEMFILE}.
+### gem's contents. The new gem as created as ${WRKSRC}/${GEMFILE}.
###
-.PHONY: do-gem-build
+.PHONY: do-gem-build do-gem-gemspec-build do-gem-rake-build
do-build: do-gem-build
-do-gem-build:
- ${RUN} cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${RAKE} gem
+
+do-gem-build: do-gem-${GEM_BUILD}-build
+
+do-gem-gemspec-build:
+ ${RUN} cd ${WRKSRC} && ${RUBYGEM} build metadata
+
+do-gem-rake-build:
+ ${RUN} cd ${WRKSRC} && ${RAKE} gem
+ ${RUN} cd ${WRKSRC} && ln -fs pkg/${GEMFILE} .
###
### do-gem-install
@@ -139,7 +161,7 @@
_RUBYGEM_OPTIONS= --no-update-sources # don't cache the gem index
_RUBYGEM_OPTIONS+= --install-dir ${GEM_HOME}
_RUBYGEM_OPTIONS+= --build-root ${_RUBYGEM_BUILDROOT}
-_RUBYGEM_OPTIONS+= --local ${WRKSRC}/pkg/${GEMFILE}
+_RUBYGEM_OPTIONS+= --local ${WRKSRC}/${GEMFILE}
_RUBYGEM_OPTIONS+= -- --build-args ${CONFIGURE_ARGS}
GENERATE_PLIST+= ${RUBYGEM_GENERATE_PLIST}
Home |
Main Index |
Thread Index |
Old Index