# Created by: Akinori MUSHA aka knu <knu@idaemons.org> # $FreeBSD$ PORTNAME= jruby PORTVERSION= 1.7.22 CATEGORIES= lang ruby java MASTER_SITES= http://jruby.org.s3.amazonaws.com/downloads/${PORTVERSION}/ DISTNAME= ${PORTNAME}-bin-${PORTVERSION} MAINTAINER= ruby@FreeBSD.org COMMENT= Implementation of Ruby Interpreter in Pure Java LICENSE= EPL GPLv2 LGPL21 LICENSE_COMB= dual RUN_DEPENDS= bash:shells/bash USES= cpe NO_BUILD= yes USE_JAVA= yes JAVA_VERSION= 1.6+ JRUBY_HOME?= ${PREFIX}/share/${PORTNAME} WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION} REPLACE_FILES= bin/jruby REPLACE_LIST= JAVA_HOME=${JAVA_HOME} REPLACE_LIST_TEMP= ${REPLACE_LIST:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} SHEBANG_FILES= rake spec spec_translator Rakefile '*.rb' PLIST_SUB+= PORTNAME=${PORTNAME} PORTVERSION=${PORTVERSION} JRUBY_HOME=${JRUBY_HOME:S,${PREFIX}/,,} OPTIONS_DEFINE= DOCS EXAMPLES .include <bsd.port.pre.mk> pre-patch: @${ECHO_MSG} "Installation settings:" @${ECHO_MSG} " JRUBY_HOME: ${JRUBY_HOME}" @${ECHO_MSG} " JAVA_HOME: ${JAVA_HOME}" post-patch: @${ECHO_MSG} -n ">> Adjusting shebangs to use /usr/bin/env ..." @${FIND} ${WRKSRC}/bin -type f -exec ${GREP} -q '^#!/bin/bash' {} \; -exec ${REINPLACE_CMD} -e 's|^#!/bin/bash|#!/usr/bin/env bash|' {} \; @${FIND} ${WRKSRC} -type f -name '*.rb' -exec ${GREP} -q '^#!/usr/local/bin/ruby' {} \; -exec ${REINPLACE_CMD} -e 's|^#!/usr/local/bin/ruby|#!/usr/bin/env jruby|' {} \; .for target in ${SHEBANG_FILES} @${FIND} ${WRKSRC} -type f -name ${target} -exec ${GREP} -q '^#!/usr/bin/env ruby' {} \; -exec ${REINPLACE_CMD} -e 's|^#!/usr/bin/env ruby|#!/usr/bin/env jruby|' {} \; .endfor @${ECHO_MSG} " [ DONE ]" @${ECHO_MSG} -n ">> Removing unneeded files..." @${RM} -f `${FIND} ${WRKSRC} -name '*.bat'` `${FIND} ${WRKSRC} -name '*.orig'` `${FIND} ${WRKSRC} -name '*.exe'` `${FIND} ${WRKSRC} -name '*.bak'` @${ECHO_MSG} " [ DONE ]" .for target in ${REPLACE_FILES} @${ECHO_MSG} -n ">> Customizing `basename ${target}`..." @${REINPLACE_CMD} -i "" ${REPLACE_LIST_TEMP} ${WRKSRC}/${target} @${ECHO_MSG} " [ DONE ]" .endfor do-install: @${ECHO_MSG} -n ">> Installing JRuby files..." @cd ${WRKSRC}/bin \ && ${FIND} . -type d -exec ${MKDIR} ${STAGEDIR}${JRUBY_HOME}/bin/{} \; \ && ${FIND} . -type f -exec ${INSTALL_SCRIPT} {} ${STAGEDIR}${JRUBY_HOME}/bin/{} \; @cd ${WRKSRC}/lib \ && ${FIND} . -type d -exec ${MKDIR} ${STAGEDIR}${JRUBY_HOME}/lib/{} \; \ && ${FIND} . -type f -exec ${INSTALL_DATA} {} ${STAGEDIR}${JRUBY_HOME}/lib/{} \; @${ECHO_MSG} " [ DONE ]" @${ECHO_MSG} -n ">> Installing symlinks in ${STAGEDIR}${PREFIX}/bin..." @${LN} -sf ${JRUBY_HOME}/bin/jruby ${STAGEDIR}${PREFIX}/bin/jruby @${LN} -sf ${JRUBY_HOME}/bin/jirb ${STAGEDIR}${PREFIX}/bin/jirb @${ECHO_MSG} " [ DONE ]" @${ECHO_MSG} -n ">> Stripping shared libraries for jnr-ffi" @${FIND} ${STAGEDIR}${JRUBY_HOME}/lib/jni/x86_64-FreeBSD -type f -name '*\.so' -exec ${STRIP_CMD} {} \; @${ECHO_MSG} " [ DONE ]" .if ${PORT_OPTIONS:MDOCS} @${ECHO_MSG} -n ">> Installing Documents files..." @${MKDIR} ${STAGEDIR}${DOCSDIR} @(cd ${WRKSRC}/ \ && ${COPYTREE_SHARE} [A-Z]\* ${STAGEDIR}${DOCSDIR}) @(cd ${WRKSRC}/docs \ && ${COPYTREE_SHARE} \* ${STAGEDIR}${DOCSDIR}) .endif .if ${PORT_OPTIONS:MEXAMPLES} @${MKDIR} ${STAGEDIR}${EXAMPLESDIR} @(cd ${WRKSRC}/samples \ && ${COPYTREE_SHARE} \* ${STAGEDIR}${EXAMPLESDIR}) @${ECHO_MSG} " [ DONE ]" .endif .include <bsd.port.post.mk>