# $OpenBSD: Makefile,v 1.36 2013/03/19 23:43:06 jeremy Exp $ SHARED_ONLY = Yes COMMENT = pure-Java implementation of the Ruby language V = 1.7.3 DISTNAME = jruby-src-${V} PKGNAME = jruby-${V} CATEGORIES = lang lang/ruby DISTFILES = ${DISTNAME}.tar.gz \ jnr-jffi-1.2.2-0-g4c196bb.tar.gz:0 HOMEPAGE = http://www.jruby.org/ MAINTAINER = Jeremy Evans # CPL/GPLv2/LGPLv2.1/GPLv3/LGPLv3 PERMIT_PACKAGE_CDROM = Yes MASTER_SITES = http://jruby.org.s3.amazonaws.com/downloads/${V}/ MASTER_SITES0 = http://www.distfiles.nl/ MODULES = java MODJAVA_VER = 1.7+ MODJAVA_JRERUN = Yes USE_GMAKE = Yes WANTLIB = c m pthread stdc++ BUILD_DEPENDS = devel/apache-ant \ shells/bash \ ${RUN_DEPENDS} RUN_DEPENDS = java/javaPathHelper MAKE_ENV = JAVA_HOME=${JAVA_HOME} MAKE=${MAKE_PROGRAM} JRUBY_HOME = ${PREFIX}/jruby WRKDIST = ${WRKDIR}/jruby-${V} ANT_CMD = ${SETENV} ${MAKE_ENV} PATH=${JAVA_HOME}/bin:${PATH} \ ${LOCALBASE}/bin/ant JFFI_HOME = ${WRKDIST}/jffi JFFI_ARCH = ${MACHINE_ARCH:S/amd64/x86_64/}-OpenBSD FFI_ARCH = ${JFFI_ARCH:L} RAKE_V = 10.0.3 JRUBY_LAUNCHER_V = 1.0.15 SUBST_VARS = JRUBY_HOME JFFI_ARCH FFI_ARCH RAKE_V JRUBY_LAUNCHER_V post-extract: mv ${WRKDIR}/jnr-jffi* ${JFFI_HOME} # Unpack the jruby-launcher gem, since it needs to be patched cp ${WRKSRC}/build_lib/jruby-launcher-${JRUBY_LAUNCHER_V}-java{,-orig}.gem cd ${WRKSRC} && mkdir jruby-launcher && tar xf \ build_lib/jruby-launcher-${JRUBY_LAUNCHER_V}-java.gem \ && cd jruby-launcher && tar zxf ../data.tar.gz pre-configure: ${SUBST_CMD} ${WRKSRC}/jruby-launcher/jrubyexe.cpp \ ${WRKSRC}/jruby-launcher/unixlauncher.cpp # Rebuild the jruby-launcher gem cd ${WRKSRC}/jruby-launcher && find . -type f \! -name '*.orig' -print | \ pax -wz -s '/^\.\///' -f ../data.tar.gz cd ${WRKSRC} && tar cf \ build_lib/jruby-launcher-${JRUBY_LAUNCHER_V}-java.gem \ data.tar.gz metadata.gz do-build: cd ${JFFI_HOME} && ${ANT_CMD} jar test && \ cp dist/jffi-*-OpenBSD.jar ${WRKDIST}/build_lib cd ${WRKSRC} && ${ANT_CMD} post-build: ${SUBST_CMD} ${WRKSRC}/bin/jruby cd ${WRKSRC}/lib/native && rm -r !(${JFFI_ARCH}*) cd ${WRKSRC}/lib/ruby/shared/ffi/platform && \ rm -r !(${FFI_ARCH}|*.ffi) do-install: ln -s ${TRUEPREFIX}/jruby/bin/jruby ${PREFIX}/bin/jruby ${INSTALL_DATA_DIR} ${JRUBY_HOME} ${INSTALL_DATA_DIR} ${JRUBY_HOME}/bin for file in ast gem jgem jirb jirb_swing jruby jrubyc rdoc ri testrb; \ do ${INSTALL_SCRIPT} ${WRKBUILD}/bin/$$file ${JRUBY_HOME}/bin/$$file; \ done ${INSTALL_DATA_DIR} ${JRUBY_HOME}/lib cd ${WRKBUILD}/lib && tar -cf - * | \ tar -C ${JRUBY_HOME}/lib -xf - mkdir -p ${JRUBY_HOME}/lib/ruby/site_ruby/{1.8/java,1.9} ${SET_ENV} ${MAKE_ENV} PATH=${JRUBY_HOME}/bin:$$PATH HOME=${WRKBUILD} \ make=${LOCALBASE}/bin/gmake ${PREFIX}/jruby/bin/jruby \ ${PREFIX}/jruby/bin/gem install --local --no-rdoc --no-ri \ ${WRKBUILD}/build_lib/rake-${RAKE_V}.gem \ ${WRKBUILD}/build_lib/jruby-launcher-${JRUBY_LAUNCHER_V}-java.gem find ${JRUBY_HOME}/lib -name '*.orig' -print0 | xargs -0r rm find ${JRUBY_HOME}/lib -name '*.beforesubst' -print0 | xargs -0r rm mv ${JRUBY_HOME}/lib/ruby/gems/{shared,1.8} ln -s 1.8 ${JRUBY_HOME}/lib/ruby/gems/shared chown -R ${SHAREOWN}:${SHAREGRP} ${JRUBY_HOME}/lib ANT_TEST_CMD = ${SETENV} ${MAKE_ENV} HOME=${WRKBUILD} \ PATH=${JAVA_HOME}/bin:${PATH} \ ANT_OPTS="-Xms512m -Xmx512m" \ ${LOCALBASE}/bin/ant # Expected test failures: # 4 Failures in JRubyTestSuite # 1 Failure in MainTestSuite # 1 Failure in MRITestSuite # spec task disabled by default as it needs network access to download # the latest specs. do-regress: -cd ${WRKSRC} && ${ANT_REGRESS_CMD} test #cd ${WRKSRC} && ${ANT_REGRESS_CMD} spec .include