Update databases/percona57-server to version 5.7.21.20
[dports.git] / lang / ruby24 / Makefile
1 # Created by: Akinori MUSHA aka knu <knu@idaemons.org>
2 # $FreeBSD$
3
4 PORTNAME=       ruby
5 PORTVERSION=    ${RUBY_PORTVERSION}
6 PORTREVISION=   ${RUBY_PORTREVISION}
7 PORTEPOCH=      ${RUBY_PORTEPOCH}
8 CATEGORIES=     lang ruby ipv6
9 MASTER_SITES=   RUBY/${MASTER_SITE_SUBDIR_RUBY}
10 DISTNAME=       ${RUBY_DISTNAME}
11 DIST_SUBDIR=    ruby
12
13 MAINTAINER=     ruby@FreeBSD.org
14 COMMENT=        Object-oriented interpreted scripting language
15
16 LICENSE=        BSD2CLAUSE RUBY
17 LICENSE_COMB=   dual
18 LICENSE_FILE_BSD2CLAUSE=${WRKSRC}/BSDL
19 LICENSE_FILE_RUBY=      ${WRKSRC}/COPYING
20
21 # Using LIB_DEPENDS finds the libffi from gcc which causes problems
22 BUILD_DEPENDS=  libffi>=0:devel/libffi
23 LIB_DEPENDS=    libyaml.so:textproc/libyaml
24 RUN_DEPENDS=    libffi>=0:devel/libffi
25
26 CONFIGURE_ARGS= ${RUBY_CONFIGURE_ARGS} \
27                 --disable-rpath \
28                 --enable-pthread \
29                 --enable-shared \
30                 --enable-install-static-library \
31                 --with-ruby-version=minor \
32                 --with-sitedir="${PREFIX}/lib/ruby/site_ruby" \
33                 --with-vendordir="${PREFIX}/lib/ruby/vendor_ruby"
34 CONFIGURE_ENV=  debugflags=
35 CPPFLAGS+=      -I${LOCALBASE}/include
36 GNU_CONFIGURE=  yes
37 # Keep this, else ruby will fail to load libraries dependent of libpthread.
38 LIBS+=          -lpthread -L${LOCALBASE}/lib
39 USE_LDCONFIG=   yes
40 USES=           autoreconf cpe ssl tar:xz
41 WRKSRC=         ${RUBY_WRKSRC}
42
43 RUBY_VER=               2.4
44 USE_RUBY=               yes
45 RUBY_NO_BUILD_DEPENDS=  yes
46 RUBY_NO_RUN_DEPENDS=    yes
47
48 OPTIONS_DEFINE=         CAPIDOCS DEBUG DOCS EXAMPLES GMP RDOC
49 OPTIONS_DEFAULT=        RDOC LIBEDIT
50 OPTIONS_SINGLE=         EDIT
51 OPTIONS_SINGLE_EDIT=    LIBEDIT READLINE
52 OPTIONS_SUB=            yes
53 CAPIDOCS_DESC=          Build and install C API documents
54 GMP_DESC=               Use GMP to accelerate Bignum operations
55 RDOC_DESC=              Build and install Rdoc indexes
56 EDIT_DESC=              Which line editing lib to use
57 LIBEDIT_DESC=           Use libedit
58 READLINE_DESC=          Use libreadline
59 CAPIDOCS_BUILD_DEPENDS= doxygen>=1.8.13,2:devel/doxygen \
60                         dot:graphics/graphviz
61 CAPIDOCS_CONFIGURE_ENABLE=      install-capi
62 GMP_CONFIGURE_WITH=     gmp
63 GMP_LIB_DEPENDS=        libgmp.so:math/gmp
64 LIBEDIT_CONFIGURE_ON=   --enable-libedit --with-libedit-dir=${LOCALBASE}
65 LIBEDIT_USES=           libedit
66 RDOC_CONFIGURE_ENABLE=  install-rdoc
67 READLINE_CONFIGURE_ON=  --disable-libedit --with-readline-dir=${LOCALBASE}
68 READLINE_USES=          readline:port
69
70 CPE_VENDOR=     ruby-lang
71 CPE_VERSION=    ${RUBY_RELVERSION}
72 CPE_UPDATE=     p${RUBY_PATCHLEVEL}
73
74 .include <bsd.port.pre.mk>
75
76 # PORTREVISION/PORTEPOCH hack
77
78 .if ${PORTREVISION} != 0
79 _SUF1=  _${PORTREVISION}
80 .endif
81
82 .if ${PORTEPOCH} != 0
83 _SUF2=  ,${PORTEPOCH}
84 .endif
85
86 .if ${OPSYS} == "FreeBSD"
87 .if exists(/usr/sbin/dtrace) && (${OSVERSION} > 1100032) && (${ARCH} == x86_64 || ${ARCH} == i386)
88 CONFIGURE_ARGS+=--enable-dtrace
89 .else
90 CONFIGURE_ARGS+=--disable-dtrace
91 .endif
92 .endif
93
94 .if (${ARCH} == powerpc || ${ARCH} == powerpc64)
95 USE_GCC=        yes
96 .endif
97
98 .if ${ARCH} == armv6 || ${ARCH} == armv7
99 CONFIGURE_ARGS+=--with-setjmp-type=_setjmp
100 CONFIGURE_ENV+= ac_cv_func__setjmp=yes
101 .endif
102
103 .if ${PORT_OPTIONS:MCAPIDOCS}
104 MAKE_JOBS_UNSAFE=       yes
105 .endif
106
107 .if ${RUBY_VER} == ${RUBY_DEFAULT_VER}
108 MLINKS=         ${RUBY_NAME}.1 ruby.1
109 PLIST_SUB+=     IF_DEFAULT=""
110 .else
111 PKGNAMESUFFIX=  ${RUBY_VER:C/\.//}
112 PLIST_SUB+=     IF_DEFAULT="@comment "
113 .endif
114
115 INSTALLED_SCRIPTS=      irb erb rdoc ri ruby
116
117 EXTSAMPLES=     bigdecimal/sample/*.rb
118
119 EXTDOCS=        readline/README                 \
120                 ripper/README                   \
121                 stringio/README.md              \
122                 syslog/syslog.txt
123
124 # Macros to change variables in rbconfig.rb
125 RB_SET_CONF_VAR=${SH} -c '${REINPLACE_CMD} -E -e "s,(CONFIG\[\"$$0\"\][[:space:]]*=[[:space:]]*)(\(?)(.*)(\)?),\1\2$$1\4," ${WRKSRC}/rbconfig.rb' --
126
127 post-patch:
128         @${FIND} ${WRKSRC}/ -name "*.orig" -delete
129 # We get these from other ports
130 .for d in bin/rake doc/rake lib/rake test/rake man/rake.1 lib/rake.rb ext/win32ole bin/gem
131         @${RM} -r ${BUILD_WRKSRC}/${d}
132 .endfor
133 # Used by databases/ruby-gdbm port
134         @${MV} ${BUILD_WRKSRC}/ext/gdbm ${WRKDIR}/
135
136 post-build:
137 #
138 # Hack to allow modules to be installed into separate PREFIX and/or under user
139 # privileges
140 #
141         @${RB_SET_CONF_VAR} "prefix" "ENV['PREFIX'] || \3"
142         @${RB_SET_CONF_VAR} "INSTALL" "'/usr/bin/install -c'"
143         @${RB_SET_CONF_VAR} "INSTALL_PROGRAM" "ENV['RB_USER_INSTALL'] ? '${INSTALL} ${COPY} ${STRIP} -m ${BINMODE}' : '${INSTALL_PROGRAM}'"
144         @${RB_SET_CONF_VAR} "INSTALL_SCRIPT" "ENV['RB_USER_INSTALL'] ? '${INSTALL} ${COPY} -m ${BINMODE}' : '${INSTALL_SCRIPT}'"
145         @${RB_SET_CONF_VAR} "INSTALL_DATA" "ENV['RB_USER_INSTALL'] ? '${INSTALL} ${COPY} -m ${SHAREMODE}' : '${INSTALL_DATA}'"
146
147 post-build-CAPIDOCS-on:
148         @${FIND} ${WRKSRC}/doc -type d -empty -delete
149
150 pre-install:
151         ${MKDIR} ${STAGEDIR}${RUBY_SITEARCHLIBDIR}
152         ${MKDIR} ${STAGEDIR}${RUBY_VENDORARCHLIBDIR}
153
154 pre-install-DOCS-on:
155         ${MKDIR} ${STAGEDIR}${RUBY_DOCDIR}
156
157 pre-install-EXAMPLES-on:
158         ${MKDIR} ${STAGEDIR}${RUBY_EXAMPLESDIR}
159
160 pre-install-RDOC-on:
161         ${MKDIR} ${STAGEDIR}${RUBY_RIDIR}
162         ${MKDIR} ${STAGEDIR}${RUBY_SITERIDIR}
163
164 post-install:
165 #
166 # Link just installed "ruby" to "ruby24", etc.
167 #
168 .if ${RUBY_VER} == ${RUBY_DEFAULT_VER}
169 . for FILE in ${INSTALLED_SCRIPTS}
170         ${LN} -fs ${FILE}${RUBY_SUFFIX} ${STAGEDIR}${PREFIX}/bin/${FILE}
171 . endfor
172 .endif
173
174 post-install-DEBUG-off:
175 #
176 # XXX: hack to strip ruby binary. Ruby uses its own install script that seems
177 # bogus to hack.
178 #
179 .if defined(STRIP) && ${STRIP} == -s
180         ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/${RUBY_NAME}
181         ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libruby${RUBY_SHLIBVER}.so.${RUBY_SHLIBVER}
182         ${FIND} ${STAGEDIR}${RUBY_ARCHLIBDIR} -type f -name '*\.so' -exec ${STRIP_CMD} {} \;
183 .endif
184
185 post-install-DOCS-on:
186         # Create all dirs required (":u" isn't avaiable in STABLE yet :-()
187         ${MKDIR} ${EXTDOCS:C|^([^/]+)/.*|\1|:S|^|${STAGEDIR}${RUBY_DOCDIR}/|}
188 .for FILE in ${EXTDOCS}
189         ${INSTALL_DATA} ${WRKSRC}/ext/${FILE} \
190                 ${STAGEDIR}${RUBY_DOCDIR}/${FILE:C|^([^/]+)/.*|\1|}/
191 .endfor
192         @(cd ${WRKSRC}/doc/ && ${COPYTREE_SHARE} \* ${STAGEDIR}${RUBY_DOCDIR}/)
193         ${INSTALL_DATA} ${WRKSRC}/COPYING*      \
194                         ${WRKSRC}/ChangeLog     \
195                         ${WRKSRC}/LEGAL         \
196                         ${WRKSRC}/README*       \
197                         ${STAGEDIR}${RUBY_DOCDIR}/
198
199 post-install-EXAMPLES-on:
200         # Create all dirs required (":u" isn't avaiable in STABLE yet :-()
201         ${MKDIR} ${EXTSAMPLES:C|^([^/]+)/.*|\1|:S|^|${STAGEDIR}${RUBY_EXAMPLESDIR}/|}
202 .for FILE in ${EXTSAMPLES}
203         ${INSTALL_DATA} ${WRKSRC}/ext/${FILE} \
204                 ${STAGEDIR}${RUBY_EXAMPLESDIR}/${FILE:C|^([^/]+)/.*|\1|}/
205 .endfor
206         (cd ${WRKSRC}/sample/ && ${COPYTREE_SHARE} . ${STAGEDIR}${RUBY_EXAMPLESDIR}/)
207
208 do-test:
209         cd ${WRKSRC} && ${MAKE_CMD} test
210
211 .include <bsd.port.post.mk>