Changeset View
Changeset View
Standalone View
Standalone View
lang/rubinius/Makefile
# Created by: stas | # Created by: stas | ||||
# $FreeBSD$ | # $FreeBSD$ | ||||
PORTNAME= rubinius | PORTNAME= rubinius | ||||
PORTVERSION= 3.86 | PORTVERSION= 3.107 | ||||
PORTREVISION= 1 | |||||
CATEGORIES= lang | CATEGORIES= lang | ||||
MASTER_SITES= http://releases.rubini.us/:source | MASTER_SITES= http://releases.rubini.us/:source | ||||
DISTFILES= ${DISTNAME}${EXTRACT_SUFX}:source | DISTFILES= ${DISTNAME}${EXTRACT_SUFX}:source | ||||
EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} | EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} | ||||
MAINTAINER= ashish@FreeBSD.org | MAINTAINER= ashish@FreeBSD.org | ||||
COMMENT= LLVM based ruby language implementation | COMMENT= LLVM based ruby language implementation | ||||
LICENSE= MPL20 | LICENSE= MPL20 | ||||
LICENSE_FILE= ${WRKSRC}/LICENSE | LICENSE_FILE= ${WRKSRC}/LICENSE | ||||
ONLY_FOR_ARCHS= amd64 | ONLY_FOR_ARCHS= amd64 | ||||
BUILD_DEPENDS= ${LOCALBASE}/bin/bundle:sysutils/rubygem-bundler \ | BUILD_DEPENDS= ${LOCALBASE}/bin/bundle:sysutils/rubygem-bundler \ | ||||
${LOCALBASE}/bin/bison:devel/bison \ | ${LOCALBASE}/bin/bison:devel/bison \ | ||||
${LLVM_CONFIG_PATH}:devel/llvm${LLVM_DEFAULT} | ${LLVM_CONFIG_PATH}:devel/llvm${LLVM_DEFAULT} \ | ||||
rake:devel/rubygem-rake \ | |||||
bash:shells/bash | |||||
LIB_DEPENDS= libyaml.so:textproc/libyaml | LIB_DEPENDS= libyaml.so:textproc/libyaml | ||||
HAS_CONFIGURE= yes | #HAS_CONFIGURE= yes | ||||
CONFIGURE_ARGS= -P "${PREFIX}" \ | CONFIGURE_ARGS= -P "${PREFIX}" \ | ||||
-I "${PREFIX}/include/rubinius" \ | -I "${PREFIX}/include/rubinius" \ | ||||
-L "${PREFIX}/lib/ruby/rubinius" \ | -L "${PREFIX}/lib/ruby/rubinius" \ | ||||
-G "${PREFIX}/lib/ruby/gems/rubinius" \ | |||||
-B "${PREFIX}/bin" \ | -B "${PREFIX}/bin" \ | ||||
-M "${PREFIX}/man" \ | -M "${PREFIX}/man" \ | ||||
--cc ${LLVM_CC_PATH} \ | --cc ${LLVM_CC_PATH} \ | ||||
--cxx ${LLVM_CXX_PATH} \ | --cxx ${LLVM_CXX_PATH} \ | ||||
--llvm-config ${LLVM_CONFIG_PATH} \ | --llvm-config ${LLVM_CONFIG_PATH} \ | ||||
--no-bin-links \ | --no-bin-links \ | ||||
--without-dtrace --release-build \ | --without-dtrace --release-build \ | ||||
--sitedir "${PREFIX}/lib/ruby/site_ruby/rubinius" \ | --sitedir "${PREFIX}/lib/ruby/site_ruby/rubinius" \ | ||||
--vendordir "${PREFIX}/lib/ruby/vendor_ruby/rubinius" \ | --vendordir "${PREFIX}/lib/ruby/vendor_ruby/rubinius" \ | ||||
--stagingdir "${STAGEDIR}${PREFIX}" --with-execinfo \ | --stagingdir "${STAGEDIR}${PREFIX}" --with-execinfo \ | ||||
--system-name ${OPSYS} | --system-name ${OPSYS} | ||||
USES= gmake perl5 readline tar:bzip2 libedit ssl | USES= gmake perl5 readline tar:bzip2 libedit ssl | ||||
USE_LOCALE= en_US.UTF-8 | USE_LOCALE= en_US.UTF-8 | ||||
USE_RUBY= yes | USE_RUBY= yes | ||||
RUBY_NO_RUN_DEPENDS= yes | RUBY_NO_RUN_DEPENDS= yes | ||||
USE_PERL5= build | USE_PERL5= build | ||||
NO_INSTALL= yes | NO_INSTALL= yes | ||||
PLIST_SUB+= FREEBSD_DIR=${FREEBSD_DIR} | PLIST_SUB+= FREEBSD_DIR=${FREEBSD_DIR} | ||||
GEM_PATH= ${WRKSRC}/gems/ruby/${RUBY_VER} | GEM_PATH= ${WRKSRC}/gems/ruby/${RUBY_VER} | ||||
RAKE_BIN= ${GEM_PATH}/bin/rake | RAKE_BIN= ${GEM_PATH}/bin/rake | ||||
# https://github.com/rubinius/rubinius/issues/3716 | |||||
CFLAGS+= -Qunused-arguments | |||||
CPPFLAGS+= -Qunused-arguments | |||||
CXXFLAGS+= -Qunused-arguments | |||||
# Hack to prevent rbx from creating $HOME/.rbx during compilation of gems | # Hack to prevent rbx from creating $HOME/.rbx during compilation of gems | ||||
MAKE_ENV+= HOME=${WRKSRC} | MAKE_ENV+= HOME=${WRKSRC} | ||||
# Hack to switch to a local gem path so locally activated rake can be used | # Hack to switch to a local gem path so locally activated rake can be used | ||||
MAKE_ENV+= GEM_PATH=${GEM_PATH} | MAKE_ENV+= GEM_PATH=${GEM_PATH} | ||||
F_OS= ${OPSYS:tl} | F_OS= ${OPSYS:tl} | ||||
F_MAJOR= ${OSREL:C/\..*$//} | F_MAJOR= ${OSREL:C/\..*$//} | ||||
FREEBSD_DIR= ${F_ARCH}-${F_OS}-${F_MAJOR} | FREEBSD_DIR= ${F_ARCH}-${F_OS}-${F_MAJOR} | ||||
LLVM_CC_PATH= ${LOCALBASE}/bin/clang${LLVM_DEFAULT} | LLVM_CC_PATH= ${LOCALBASE}/bin/clang${LLVM_DEFAULT} | ||||
LLVM_CXX_PATH= ${LOCALBASE}/bin/clang++${LLVM_DEFAULT} | LLVM_CXX_PATH= ${LOCALBASE}/bin/clang++${LLVM_DEFAULT} | ||||
LLVM_CONFIG_PATH= ${LOCALBASE}/bin/llvm-config${LLVM_DEFAULT} | LLVM_CONFIG_PATH= ${LOCALBASE}/bin/llvm-config${LLVM_DEFAULT} | ||||
.include <bsd.port.pre.mk> | .include <bsd.port.pre.mk> | ||||
.if ${SSL_DEFAULT} == base | #.if ${SSL_DEFAULT} == base | ||||
BROKEN_FreeBSD_12= checking for OpenSSL_add_all_digests() in -lcrypto... no | #BROKEN_FreeBSD_12= checking for OpenSSL_add_all_digests() in -lcrypto... no | ||||
BROKEN_FreeBSD_13= checking for OpenSSL_add_all_digests() in -lcrypto... no | #BROKEN_FreeBSD_13= checking for OpenSSL_add_all_digests() in -lcrypto... no | ||||
.endif | #.endif | ||||
.if ${ARCH} == "amd64" | .if ${ARCH} == "amd64" | ||||
F_ARCH= x86_64 | F_ARCH= x86_64 | ||||
.elif ${ARCH} == "i386" | .elif ${ARCH} == "i386" | ||||
F_ARCH= x86 | F_ARCH= x86 | ||||
.endif | .endif | ||||
post-extract: | #post-extract: | ||||
.for DF in ${DISTFILES:N*\:source} | #.for DF in ${DISTFILES:N*\:source} | ||||
@${LN} -s ${DISTDIR}/${DF:C/:gems//g} ${WRKSRC}/vendor/cache/ | # @${LN} -s ${DISTDIR}/${DF:C/:gems//g} ${WRKSRC}/vendor/cache/ | ||||
.endfor | #.endfor | ||||
@${CP} ${FILESDIR}/build-tool.c ${WRKDIR} | # @${CP} ${FILESDIR}/build-tool.c ${WRKDIR} | ||||
post-patch: | post-patch: | ||||
@${GREP} -Rl '#!.*ruby$$' ${WRKSRC} |${XARGS} ${REINPLACE_CMD} -e '/^#!.*ruby$$/s/ruby$$/${RUBY_NAME}/g' | @${GREP} -Rl '#!.*ruby$$' ${WRKSRC} |${XARGS} ${REINPLACE_CMD} -e '/^#!.*ruby$$/s/ruby$$/${RUBY_NAME}/g' | ||||
@${REINPLACE_CMD} -e "s,%%CC%%,${LLVM_CC_PATH}," ${WRKSRC}/configure ${WRKDIR}/build-tool.c | @${REINPLACE_CMD} -e "s,%%CC%%,${LLVM_CC_PATH}," ${WRKSRC}/configure | ||||
@${REINPLACE_CMD} -e "s,%%CXX%%,${LLVM_CXX_PATH}," ${WRKSRC}/configure ${WRKDIR}/build-tool.c | @${REINPLACE_CMD} -e "s,%%CXX%%,${LLVM_CXX_PATH}," ${WRKSRC}/configure | ||||
pre-configure: | #pre-configure: | ||||
@cd ${WRKSRC} && ${MKDIR} gems && ${LOCALBASE}/bin/bundle install --local --path=${WRKSRC}/gems | # @cd ${WRKSRC} && ${MKDIR} gems && ${LOCALBASE}/bin/bundle install --local --path=${WRKSRC}/gems | ||||
post-configure: | post-configure: | ||||
# Setup paths to compilers | # Setup paths to compilers | ||||
@${CC} -o ${WRKSRC}/build/bin/build-tool ${WRKDIR}/build-tool.c | #@${CC} -o ${WRKSRC}/build/bin/build-tool ${WRKDIR}/build-tool.c | ||||
@${LN} -sf ${WRKSRC}/build/bin/build-tool ${WRKSRC}/build/bin/cc | @${LN} -sf ${WRKSRC}/build/bin/build-tool ${WRKSRC}/build/bin/cc | ||||
@${LN} -sf ${WRKSRC}/build/bin/build-tool ${WRKSRC}/build/bin/c++ | @${LN} -sf ${WRKSRC}/build/bin/build-tool ${WRKSRC}/build/bin/c++ | ||||
#do-build: | |||||
# ${LOCALBASE}/bin/rake | |||||
do-build: | do-build: | ||||
# "build" target here installs into ${STAGEDIR}${PREFIX} | cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${LOCALBASE}/bin/bash ./build.sh ${CONFIGURE_ARGS} | ||||
@(cd ${WRKSRC}/; ${SETENV} ${MAKE_ENV} ${RAKE_BIN} -j ${MAKE_JOBS_NUMBER} build) | |||||
@${MKDIR} ${STAGEDIR}${PREFIX}/lib/ruby/site_ruby/rubinius | |||||
@${MKDIR} ${STAGEDIR}${PREFIX}/lib/ruby/vendor_ruby/rubinius | |||||
@${TOUCH} ${STAGEDIR}${PREFIX}/lib/ruby/site_ruby/rubinius/.keep_me | |||||
@${TOUCH} ${STAGEDIR}${PREFIX}/lib/ruby/vendor_ruby/rubinius/.keep_me | |||||
@${MV} ${STAGEDIR}${PREFIX}/bin/testrb ${STAGEDIR}${PREFIX}/bin/testrbx | |||||
@${FIND} ${STAGEDIR} -type f -name '*.so' |${XARGS} ${STRIP_CMD} | |||||
@${FIND} ${STAGEDIR} -type f -name 'gem_make.out' -delete | |||||
@${FIND} ${STAGEDIR} -type f -name 'mkmf.log' -delete | |||||
@${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/rbx | |||||
.include <bsd.port.post.mk> | .include <bsd.port.post.mk> |