mirror of
https://git.FreeBSD.org/ports.git
synced 2025-01-21 08:42:23 +00:00
422bce3414
my ports in the past 3 weeks while ports were broken on any 10.x machines, which means I'm unable to maintain them. So let people know that there's no available support for them until things are back to normal (which also means that anyone with spare time will be able to fix them without getting approval).
313 lines
9.5 KiB
Makefile
313 lines
9.5 KiB
Makefile
# New ports collection makefile for: ruby18
|
|
# Date created: 6 May 2001
|
|
# Whom: Akinori MUSHA aka knu <knu@idaemons.org>
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
|
|
PORTNAME= ruby
|
|
PORTVERSION= ${RUBY_PORTVERSION}
|
|
PORTREVISION= ${RUBY_PORTREVISION}
|
|
PORTEPOCH= ${RUBY_PORTEPOCH}
|
|
CATEGORIES= lang ruby ipv6
|
|
MASTER_SITES= ${MASTER_SITE_RUBY}
|
|
MASTER_SITE_SUBDIR= ${MASTER_SITE_SUBDIR_RUBY}
|
|
DISTNAME= ${RUBY_DISTNAME}
|
|
DIST_SUBDIR= ruby
|
|
|
|
MAINTAINER= ports@FreeBSD.org
|
|
COMMENT?= An object-oriented interpreted scripting language
|
|
|
|
LIB_DEPENDS= ffi.5:${PORTSDIR}/devel/libffi \
|
|
yaml-0.2:${PORTSDIR}/textproc/libyaml
|
|
|
|
GNU_CONFIGURE= yes
|
|
WRKSRC= ${RUBY_WRKSRC}
|
|
CONFIGURE_ARGS= ${RUBY_CONFIGURE_ARGS} \
|
|
--enable-shared \
|
|
--enable-pthread \
|
|
--with-ruby-version=minor \
|
|
--with-sitedir="${PREFIX}/lib/ruby/site_ruby" \
|
|
--with-vendordir="${PREFIX}/lib/ruby/vendor_ruby"
|
|
USE_OPENSSL= yes
|
|
USE_LDCONFIG= yes
|
|
USE_AUTOTOOLS= autoconf
|
|
|
|
WRKSRC= ${WRKDIR}/${PORTNAME}-${RUBY_DISTVERSION}
|
|
|
|
RUBY_VER= 1.9
|
|
USE_BZIP2= yes
|
|
USE_RUBY= yes
|
|
RUBY_NO_BUILD_DEPENDS= yes
|
|
RUBY_NO_RUN_DEPENDS= yes
|
|
_RUBY_SYSLIBDIR= ${PREFIX}/lib
|
|
_RUBY_EXTDIR= ${PREFIX}/lib/ruby19
|
|
|
|
MAKE_JOBS_UNSAFE= yes
|
|
|
|
NO_LATEST_LINK= yes
|
|
|
|
OPTIONS= RDOC "Build and install Rdoc indexes" off \
|
|
DEBUG "Compile-in debug info" off
|
|
|
|
.include <bsd.port.pre.mk>
|
|
|
|
# PORTEPOCH/PORTREVISION hack
|
|
|
|
.if ${PORTEPOCH} != 0
|
|
_SUF2= ,${PORTEPOCH}
|
|
.endif
|
|
|
|
.if ${PORTREVISION} != 0
|
|
_SUF1= _${PORTREVISION}
|
|
.endif
|
|
|
|
PKGNAMESUFFIX= #empty
|
|
CFLAGS+= ${PTHREAD_CFLAGS} # Keep this, else ruby will fail to load
|
|
LDFLAGS+= ${PTHREAD_LIBS} # libraries dependent op libpthread.
|
|
|
|
#
|
|
# Disable doc generation if requested or docs disabled at all
|
|
#
|
|
.if defined(WITH_RDOC) && !defined(NOPORTDOCS)
|
|
CONFIGURE_ARGS+= --enable-install-doc
|
|
.else
|
|
CONFIGURE_ARGS+= --disable-install-doc
|
|
.endif
|
|
|
|
CONFIGURE_ENV= CFLAGS="-I${LOCALBASE}/include ${CFLAGS}" \
|
|
LIBS="-L${LOCALBASE}/lib ${LDFLAGS}" \
|
|
debugflags=
|
|
|
|
.if ${RUBY_VER} == ${RUBY_DEFAULT_VER}
|
|
MLINKS= ${RUBY_NAME}.1 ruby.1
|
|
PLIST_SUB+= IF_DEFAULT=""
|
|
.else
|
|
PLIST_SUB+= IF_DEFAULT="@comment "
|
|
.endif
|
|
|
|
INSTALLED_SCRIPTS= irb erb rdoc ri ruby testrb
|
|
|
|
EXTSAMPLES= bigdecimal/sample/*.rb \
|
|
curses/hello.rb \
|
|
curses/rain.rb \
|
|
curses/view.rb \
|
|
curses/view2.rb
|
|
|
|
EXTDOCS= bigdecimal/bigdecimal_*.html \
|
|
readline/README* \
|
|
ripper/README \
|
|
stringio/README \
|
|
syslog/syslog.txt
|
|
|
|
MAN1= ${RUBY_NAME}.1 erb${RUBY_SUFFIX}.1 irb${RUBY_SUFFIX}.1 \
|
|
ri${RUBY_SUFFIX}.1
|
|
|
|
# Macros to change variables in rbconfig.rb
|
|
RB_SET_CONF_VAR=${SH} -c '${REINPLACE_CMD} -E -e "s,(CONFIG\[\"$$0\"\][[:space:]]*=[[:space:]]*)(\(?)(.*)(\)?),\1\2$$1\4," ${WRKSRC}/rbconfig.rb' --
|
|
|
|
post-patch:
|
|
@${REINPLACE_CMD} -E \
|
|
-e 's,-l$$pthread_lib,${PTHREAD_LIBS},g' \
|
|
-e '/^RUBY_LIB_PATH/s,\.\$$\{TEENY\},,' \
|
|
-e '/^RUBY_SITE_LIB_PATH2/s,\.\$$\{TEENY\},,' \
|
|
-e '/^RUBY_VENDOR_LIB_PATH2/s,\.\$$\{TEENY\},,' \
|
|
${WRKSRC}/configure
|
|
|
|
#
|
|
# Eliminate all leftovers
|
|
#
|
|
@${FIND} ${WRKSRC}/ -name "*.orig" -delete
|
|
|
|
#
|
|
# Remove modules we don't want
|
|
#
|
|
.for d in win32ole
|
|
${RM} -rf ${BUILD_WRKSRC}/ext/${d}
|
|
.endfor
|
|
# We get rake from ports.
|
|
.for d in bin/rake doc/rake lib/rake test/rake man/rake.1 lib/rake.rb
|
|
${RM} -rf ${BUILD_WRKSRC}/${d}
|
|
.endfor
|
|
# We get the gem executable from ports.
|
|
${RM} ${BUILD_WRKSRC}/bin/gem
|
|
|
|
#
|
|
# Prepare modules we are wanting to build via external ports
|
|
#
|
|
.for d in gdbm iconv tk
|
|
${MV} ${BUILD_WRKSRC}/ext/${d} ${WRKDIR}/
|
|
.endfor
|
|
|
|
post-build:
|
|
#
|
|
# Hack to allow modules to be installed into separate PREFIX and/or under user
|
|
# privilegies
|
|
#
|
|
@${RB_SET_CONF_VAR} "prefix" "ENV['PREFIX'] || \3"
|
|
@${RB_SET_CONF_VAR} "INSTALL" "ENV['RB_USER_INSTALL'] ? '/usr/bin/install -c' : '/usr/bin/install -c ${_BINOWNGRP}'"
|
|
@${RB_SET_CONF_VAR} "INSTALL_PROGRAM" "ENV['RB_USER_INSTALL'] ? '${INSTALL} ${COPY} ${STRIP} -m ${BINMODE}' : '${INSTALL_PROGRAM}'"
|
|
@${RB_SET_CONF_VAR} "INSTALL_SCRIPT" "ENV['RB_USER_INSTALL'] ? '${INSTALL} ${COPY} -m ${BINMODE}' : '${INSTALL_SCRIPT}'"
|
|
@${RB_SET_CONF_VAR} "INSTALL_DATA" "ENV['RB_USER_INSTALL'] ? '${INSTALL} ${COPY} -m ${SHAREMODE}' : '${INSTALL_DATA}'"
|
|
|
|
pre-su-install:
|
|
${MKDIR} ${RUBY_DOCDIR} \
|
|
${RUBY_EXAMPLESDIR} \
|
|
${RUBY_RIDIR} \
|
|
${RUBY_SITERIDIR} \
|
|
${RUBY_SITEARCHLIBDIR} \
|
|
${RUBY_VENDORARCHLIBDIR}
|
|
|
|
${SETENV} LC_TIME=C /bin/date > ${RUBY_RIDIR}/created.rid
|
|
${SETENV} LC_TIME=C /bin/date > ${RUBY_SITERIDIR}/created.rid
|
|
${TOUCH} ${RUBY_EXAMPLESDIR}/.keep_me
|
|
${TOUCH} ${RUBY_DOCDIR}/.keep_me
|
|
${TOUCH} ${RUBY_SITEARCHLIBDIR}/.keep_me
|
|
${TOUCH} ${RUBY_VENDORARCHLIBDIR}/.keep_me
|
|
|
|
post-install:
|
|
#
|
|
# XXX: hack to strip ruby binary. Ruby uses its own install script that seems
|
|
# bogus to hack.
|
|
#
|
|
.if defined(STRIP) && ${STRIP} == -s
|
|
${STRIP_CMD} ${PREFIX}/bin/${RUBY_NAME}
|
|
.endif
|
|
|
|
#
|
|
# Link just installed "ruby" to "ruby18", etc.
|
|
#
|
|
.if ${RUBY_VER} == ${RUBY_DEFAULT_VER}
|
|
. for FILE in ${INSTALLED_SCRIPTS}
|
|
${LN} -f ${PREFIX}/bin/${FILE}${RUBY_SUFFIX} ${PREFIX}/bin/${FILE}
|
|
. endfor
|
|
.endif
|
|
|
|
.if !defined(NOPORTDOCS)
|
|
# Create all dirs required (":u" isn't avaiable in STABLE yet :-()
|
|
${MKDIR} ${EXTSAMPLES:C,^([^/]+)/.*,\1,:S,^,${RUBY_EXAMPLESDIR}/,}
|
|
${MKDIR} ${EXTDOCS:C,^([^/]+)/.*,\1,:S,^,${RUBY_DOCDIR}/,}
|
|
.for FILE in ${EXTSAMPLES}
|
|
${INSTALL_DATA} ${WRKSRC}/ext/${FILE} \
|
|
${RUBY_EXAMPLESDIR}/${FILE:C,^([^/]+)/.*,\1,}/
|
|
.endfor
|
|
.for FILE in ${EXTDOCS}
|
|
${INSTALL_DATA} ${WRKSRC}/ext/${FILE} \
|
|
${RUBY_DOCDIR}/${FILE:C,^([^/]+)/.*,\1,}/
|
|
.endfor
|
|
@(cd ${WRKSRC}/sample/ && ${COPYTREE_SHARE} \* ${RUBY_EXAMPLESDIR}/)
|
|
@(cd ${WRKSRC}/doc/ && ${COPYTREE_SHARE} \* ${RUBY_DOCDIR}/)
|
|
${INSTALL_DATA} ${WRKSRC}/COPYING* \
|
|
${WRKSRC}/ChangeLog \
|
|
${WRKSRC}/LEGAL \
|
|
${WRKSRC}/README* \
|
|
${RUBY_DOCDIR}/
|
|
.endif
|
|
|
|
#
|
|
# Add generated RI files to pkg-plist
|
|
#
|
|
@${FIND} -ds ${RUBY_RIDIR}/ ! -type d ! -name created.rid | \
|
|
${SED} 's,^${PREFIX}/,,' >> ${TMPPLIST}
|
|
@${FIND} -ds ${RUBY_RIDIR}/ -type d -mindepth 1 | \
|
|
${SED} -E -e 's,^${PREFIX}/,@dirrm ,' >> ${TMPPLIST}
|
|
|
|
#
|
|
# Add generated doxygen files to pkg-plist
|
|
#
|
|
@${ECHO_CMD} "@unexec rmdir %D/${RUBY_SITERIDIR:S,^${PREFIX}/,,} 2>/dev/null || true" >> ${TMPPLIST}
|
|
@${ECHO_CMD} "@unexec rmdir %D/${RUBY_RIDIR:S,^${PREFIX}/,,} 2>/dev/null || true" >> ${TMPPLIST}
|
|
@${ECHO_CMD} "@unexec rmdir %D/share/ri/${RUBY_VER} 2>/dev/null || true" >> ${TMPPLIST}
|
|
@${ECHO_CMD} "@unexec rmdir %D/share/ri 2>/dev/null || true" >> ${TMPPLIST}
|
|
@${ECHO_CMD} "@unexec rmdir %D/${RUBY_DOCDIR:S,^${PREFIX}/,,} 2>/dev/null || true" >> ${TMPPLIST}
|
|
|
|
@${CAT} ${PKGMESSAGE}
|
|
|
|
plist::
|
|
truncate -s0 pkg-plist
|
|
.for FILE in ${INSTALLED_SCRIPTS}
|
|
@${ECHO_CMD} "bin/${FILE}%%RUBY_SUFFIX%%" >> pkg-plist
|
|
@${ECHO_CMD} "%%IF_DEFAULT%%bin/${FILE}" >> pkg-plist
|
|
.endfor
|
|
@${ECHO_CMD} "lib/lib%%RUBY_NAME%%-static.a" >> pkg-plist
|
|
@${ECHO_CMD} "lib/lib%%RUBY_NAME%%.so" >> pkg-plist
|
|
@${ECHO_CMD} "lib/lib%%RUBY_NAME%%.so.%%RUBY_SHLIBVER%%" >> pkg-plist
|
|
|
|
#
|
|
# Includes
|
|
#
|
|
@${FIND} -ds ${PREFIX}/include/ruby-${RUBY_VER} ! -type d | \
|
|
${SED} 's,^${PREFIX}/*,,' >> pkg-plist
|
|
@${FIND} -ds ${PREFIX}/include/ruby-${RUBY_VER} -type d | \
|
|
${SED} 's,^${PREFIX}/*,@dirrm ,' >> pkg-plist
|
|
|
|
#
|
|
# Vendor and site libs
|
|
#
|
|
@${FIND} -Eds ${RUBY_DOCDIR}/ ! -type d ! -name .keep_me | \
|
|
${SED} 's,^${RUBY_DOCDIR},%%PORTDOCS%%%%RUBY_DOCDIR%%,' \
|
|
>> pkg-plist
|
|
@${FIND} -Eds ${RUBY_DOCDIR}/ -type d -mindepth 1 | ${SORT} -r | \
|
|
${SED} -E -e \
|
|
's,^${RUBY_DOCDIR}(.*),%%PORTDOCS%%@dirrm %%RUBY_DOCDIR%%\1,' \
|
|
>> pkg-plist
|
|
|
|
@${FIND} -ds ${RUBY_EXAMPLESDIR}/ ! -type d ! -name .keep_me | \
|
|
${SED} 's,^${RUBY_EXAMPLESDIR},%%PORTDOCS%%%%RUBY_EXAMPLESDIR%%,' \
|
|
>> pkg-plist
|
|
@${FIND} -ds ${RUBY_EXAMPLESDIR}/ -type d -mindepth 1 | ${SORT} -r | \
|
|
${SED} -E -e \
|
|
's,^${RUBY_EXAMPLESDIR}(.*),%%PORTDOCS%%@dirrm %%RUBY_EXAMPLESDIR%%\1,' \
|
|
>> pkg-plist
|
|
|
|
@${ECHO_CMD} "%%RUBY_DOCDIR%%/.keep_me" >> pkg-plist
|
|
# @${ECHO_CMD} "@dirrmtry %%RUBY_DOCDIR%%" >> pkg-plist
|
|
|
|
@${ECHO_CMD} "%%RUBY_EXAMPLESDIR%%/.keep_me" >> pkg-plist
|
|
@${ECHO_CMD} "@dirrmtry %%RUBY_EXAMPLESDIR%%" >> pkg-plist
|
|
|
|
@${ECHO_CMD} "@exec /bin/mkdir -p %D/%%RUBY_RIDIR%%" >> pkg-plist
|
|
@${ECHO_CMD} "@exec env LC_TIME=C /bin/date > %D/%%RUBY_RIDIR%%/created.rid" >> pkg-plist
|
|
@${ECHO_CMD} "@unexec /bin/rm -f %D/%%RUBY_RIDIR%%/created.rid" \
|
|
>> pkg-plist
|
|
|
|
@${ECHO_CMD} "@exec /bin/mkdir -p %D/%%RUBY_SITERIDIR%%" >> pkg-plist
|
|
@${ECHO_CMD} "@exec env LC_TIME=C /bin/date > %D/%%RUBY_SITERIDIR%%/created.rid" >> pkg-plist
|
|
@${ECHO_CMD} "@unexec /bin/rm -f %D/%%RUBY_SITERIDIR%%/created.rid" \
|
|
>> pkg-plist
|
|
|
|
@${FIND} -ds ${RUBY_LIBDIR}/ ! -type d | \
|
|
${SED} 's,^${RUBY_LIBDIR},%%RUBY_LIBDIR%%,' >> pkg-plist
|
|
@${FIND} -ds ${RUBY_LIBDIR}/ -type d | ${SORT} -r | \
|
|
${SED} -E -e 's,^${RUBY_LIBDIR}(.*),@dirrm %%RUBY_LIBDIR%%\1,' >> pkg-plist
|
|
|
|
#
|
|
# Find all gem files/folders
|
|
#
|
|
@${ECHO_CMD} "%%RUBY_SITEARCHLIBDIR%%/.keep_me" >> pkg-plist
|
|
@${ECHO_CMD} "@dirrmtry %%RUBY_SITEARCHLIBDIR%%" >> pkg-plist
|
|
@${ECHO_CMD} "@dirrmtry %%RUBY_SITELIBDIR%%" >> pkg-plist
|
|
@${ECHO_CMD} "@dirrmtry lib/ruby/site_ruby" >> pkg-plist
|
|
|
|
@${ECHO_CMD} "%%RUBY_VENDORARCHLIBDIR%%/.keep_me" >> pkg-plist
|
|
@${ECHO_CMD} "@dirrmtry %%RUBY_VENDORARCHLIBDIR%%" >> pkg-plist
|
|
@${ECHO_CMD} "@dirrmtry %%RUBY_VENDORLIBDIR%%" >> pkg-plist
|
|
@${ECHO_CMD} "@dirrmtry lib/ruby/vendor_ruby" >> pkg-plist
|
|
@${ECHO_CMD} "@dirrmtry lib/ruby/gems" >> pkg-plist
|
|
|
|
@${ECHO_CMD} "@dirrmtry lib/ruby" >> pkg-plist
|
|
|
|
@${SED} -i "" -E -e "s,${RUBY_ARCH},%%RUBY_ARCH%%,g" pkg-plist
|
|
|
|
test:
|
|
@(cd ${WRKSRC}; ${MAKE} test)
|
|
|
|
validate::
|
|
@${MKDIR} ${WRKSRC}/rubyspec
|
|
rm -rf ${WRKSRC}/rubyspec/*
|
|
(cd ${WRKSRC}/rubyspec && git clone git://github.com/rubyspec/rubyspec.git)
|
|
(cd ${WRKSRC}/rubyspec && git clone git://github.com/rubyspec/mspec.git)
|
|
(cd ${WRKSRC}/rubyspec/rubyspec && env PATH=${WRKSRC}/rubyspec/mspec/bin:${PATH} mspec -t ${PREFIX}/bin/ruby${RUBY_SUFFIX})
|
|
|
|
.include <bsd.port.post.mk>
|