aboutsummaryrefslogtreecommitdiff
path: root/devel/ruby-gems/Makefile
blob: 0d15841232f2aeef101a3031ae2a25c2a53a60b0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# Created by: Alexander Novitsky <alecn2002@yandex.ru>
# $FreeBSD$

PORTNAME=	gems
PORTVERSION=	1.8.30
CATEGORIES=	devel ruby
MASTER_SITES=	https://github.com/rubygems/rubygems/releases/download/v${PORTVERSION}/
PKGNAMEPREFIX=	${RUBY_PKGNAMEPREFIX}
DISTNAME=	ruby${PORTNAME}-${PORTVERSION}
DIST_SUBDIR=	ruby

MAINTAINER=	ruby@FreeBSD.org
COMMENT=	Package management framework for the Ruby language

LICENSE=	MIT RUBY
LICENSE_COMB=	dual

USE_RUBY=	yes
RUBY_SETUP=	setup.rb

NO_BUILD=	yes
USES=		tar:tgz

PLIST_SUB+=	DISTNAME="${DISTNAME}" \
		RUBY_VER_SHORT="${RUBY_VER_SHORT}"

GEMS_BASE_DIR=		lib/ruby/gems
GEMS_BASE_DIR_P=	${GEMS_BASE_DIR}
GEMS_VER_DIR=		${GEMS_BASE_DIR}/${RUBY_VER}
GEMS_VER_DIR_P=		${GEMS_BASE_DIR_P}/%%RUBY_VER%%
GEMS_DOC_BASE_DIR=	${GEMS_VER_DIR}/doc
GEMS_DOC_BASE_DIR_P=	${GEMS_VER_DIR_P}/doc
GEMS_DOC_DIR=		${GEMS_DOC_BASE_DIR}/${DISTNAME}
GEMS_DOC_DIR_P=		${GEMS_DOC_BASE_DIR_P}/%%DISTNAME%%
RUBY_VER_SHORT=		${RUBY_VER:S/.//}

OPTIONS_DEFINE=	DOCS

.include <bsd.port.options.mk>

.if ${PORT_OPTIONS:MDOCS}
RUBY_SETUP_OPTIONS=	--ri --rdoc --destdir=${STAGEDIR}
GEM_ENV+=		GEM_HOME=${STAGEDIR}${PREFIX}/${GEMS_VER_DIR}
.else
RUBY_SETUP_OPTIONS=	--no-ri --no-rdoc --destdir=${STAGEDIR}
.endif

do-install:
	@${MKDIR} ${STAGEDIR}${PREFIX}/${GEMS_DOC_BASE_DIR}/
	@${TOUCH} ${STAGEDIR}${PREFIX}/${GEMS_DOC_BASE_DIR}/.keep_this
	cd ${WRKSRC}; ${SETENV} ${GEM_ENV} ${RUBY} ${RUBY_SETUP} ${RUBY_SETUP_OPTIONS}

post-install:
	@${LN} -sf gem${RUBY_VER_SHORT} ${STAGEDIR}${PREFIX}/bin/gem

#
# Find all RDOC and RI files
#
.if ${PORT_OPTIONS:MDOCS}
	@${FIND} -ds ${STAGEDIR}${PREFIX}/${GEMS_DOC_DIR}/ ! -type d | \
	    ${SED} 's,^${STAGEDIR}${PREFIX}/,,' >> ${TMPPLIST}
	@${FIND} -ds ${STAGEDIR}${PREFIX}/${GEMS_DOC_DIR}/ -type d -mindepth 1 | \
	    ${SED} -E -e 's,^${STAGEDIR}${PREFIX}/,@dirrm ,' >> ${TMPPLIST}
	@${ECHO_CMD} "@dirrm ${GEMS_DOC_DIR}" >> ${TMPPLIST}
.endif

	@${ECHO_CMD} "@unexec rmdir %D/lib/ruby/gems/${RUBY_VER}/doc 2>/dev/null || true" >> ${TMPPLIST}
	@${ECHO_CMD} "@unexec rmdir %D/lib/ruby/gems/${RUBY_VER} 2>/dev/null || true" >> ${TMPPLIST}
	@${ECHO_CMD} "@unexec rmdir %D/lib/ruby/gems 2>/dev/null || true" >> ${TMPPLIST}
	@${ECHO_CMD} "@unexec rmdir %D/lib/ruby 2>/dev/null || true" >> ${TMPPLIST}

# This target is only meant to be used by the port maintainer.
x-generate-plist:
	${ECHO} bin/gem > pkg-plist.new
	${ECHO} bin/gem%%RUBY_VER_SHORT%% >> pkg-plist.new
	${ECHO} %%RUBY_SITELIBDIR%%/gauntlet_rubygems.rb >> pkg-plist.new
	${ECHO} %%RUBY_SITELIBDIR%%/rbconfig/datadir.rb >> pkg-plist.new
	${ECHO} %%RUBY_SITELIBDIR%%/rubygems.rb >> pkg-plist.new
	${FIND} ${STAGEDIR}${RUBY_SITELIBDIR}/rubygems -type f | ${SORT} | ${SED} -e 's,${STAGEDIR}${RUBY_SITELIBDIR},%%RUBY_SITELIBDIR%%,' >> pkg-plist.new
	${ECHO} %%RUBY_SITELIBDIR%%/ubygems.rb >> pkg-plist.new
	${FIND} ${STAGEDIR}${PREFIX}/${GEMS_DOC_DIR} -type f | ${SORT} | ${SED} -e 's,${STAGEDIR}${PREFIX}/${GEMS_DOC_DIR},%%PORTDOCS%%${GEMS_DOC_DIR_P},' >> pkg-plist.new

	${FIND} ${STAGEDIR}${RUBY_SITELIBDIR}/rubygems -type d | ${SORT} -r | ${SED} -e 's,${STAGEDIR}${RUBY_SITELIBDIR},@dirrm %%RUBY_SITELIBDIR%%,' >> pkg-plist.new
	${ECHO} @dirrm %%RUBY_SITELIBDIR%%/rbconfig >> pkg-plist.new
	${ECHO} @dirrmtry ${GEMS_VER_DIR_P}/specifications >> pkg-plist.new
	${ECHO} @dirrmtry ${GEMS_VER_DIR_P}/gems >> pkg-plist.new
	${ECHO} @dirrmtry ${GEMS_VER_DIR_P}/cache >> pkg-plist.new
	${FIND} ${STAGEDIR}${PREFIX}/${GEMS_DOC_DIR} -type d | ${SORT} -r | ${SED} -e 's,${STAGEDIR}${PREFIX}/${GEMS_DOC_DIR},%%PORTDOCS%%@dirrm ${GEMS_DOC_DIR_P},' >> pkg-plist.new
	${ECHO} ${GEMS_DOC_BASE_DIR_P}/.keep_this  >> pkg-plist.new
	${ECHO} @dirrmtry ${GEMS_DOC_BASE_DIR_P} >> pkg-plist.new
	${ECHO} @dirrmtry ${GEMS_VER_DIR_P} >> pkg-plist.new
	${ECHO} @dirrmtry ${GEMS_BASE_DIR_P} >> pkg-plist.new

.include <bsd.port.mk>