This further simplifies ruby.port.mk: * Remove variables not used by any ports in the tree: * MODRUBY_LIBDIR * MODRUBY_RELDOCDIR * MODRUBY_DOCDIR * MODRUBY_EXAMPLEDIR * MODRUBY_ADJ_REPLACE * MODRUBY_TEST_DIR
* Prefix internal variables with an underscore. Any variable not currently used by any ports in the tree has been made internal. * Consolidate all SUBST_VARS and UPDATE_PLIST_ARGS setting to a single case. My full build of the ruby ports is mostly finished but has not completed yet. Assuming no problems, I'll probably commit this next week. Thanks, Jeremy Index: ruby.port.mk =================================================================== RCS file: /cvs/ports/lang/ruby/ruby.port.mk,v retrieving revision 1.114 diff -u -p -u -p -r1.114 ruby.port.mk --- ruby.port.mk 5 Sep 2023 12:33:32 -0000 1.114 +++ ruby.port.mk 6 Sep 2023 16:44:56 -0000 @@ -1,5 +1,9 @@ # ruby module +# Variables defined in this file that prefixed with _ are designed for +# internal use, not currently used in the ports tree outside this file, +# and are purposely not documented. + CATEGORIES+= lang/ruby # Whether the ruby module should automatically add FLAVORs. @@ -71,17 +75,18 @@ MODRUBY_ARCH= ${MACHINE_ARCH:S/amd64/x8 MODRUBY_BINREV = ${MODRUBY_LIBREV:S/.//} MODRUBY_BIN_RSPEC = ${LOCALBASE}/bin/rspec${MODRUBY_BINREV} MODRUBY_FLAVOR = ruby${MODRUBY_BINREV} -MODRUBY_LIBDIR= ${LOCALBASE}/lib/ruby MODRUBY_LIBREV = ${MODRUBY_REV} +MODRUBY_BUILD_DEPENDS= ${MODRUBY_RUN_DEPENDS} MODRUBY_LIB_DEPENDS= ${MODRUBY_RUN_DEPENDS} MODRUBY_RUN_DEPENDS= lang/ruby/${MODRUBY_REV} MODRUBY_SITEARCHDIR = ${MODRUBY_SITEDIR}/${MODRUBY_ARCH} MODRUBY_SITEDIR = lib/ruby/site_ruby/${MODRUBY_LIBREV} +MODRUBY_RELEXAMPLEDIR= share/examples/${MODRUBY_PKG_PREFIX} MODRUBY_WANTLIB= ruby${MODRUBY_BINREV} RAKE= ${LOCALBASE}/bin/rake${MODRUBY_BINREV} RUBY= ${LOCALBASE}/bin/ruby${MODRUBY_BINREV} -MODRUBY_RSPEC3_DEPENDS = devel/ruby-rspec/3/rspec,${MODRUBY_FLAVOR}>=3.0 +_MODRUBY_RSPEC3_DEPENDS = devel/ruby-rspec/3/rspec,${MODRUBY_FLAVOR}>=3.0 .if defined(MODRUBY_TEST) . if !${MODRUBY_TEST:L:Mrspec3} && !${MODRUBY_TEST:L:Mtestrb} && \ @@ -98,17 +103,6 @@ NO_TEST = Yes MODRUBY_TEST?= .endif -MODRUBY_BUILD_DEPENDS= ${MODRUBY_RUN_DEPENDS} - -# common directories for ruby extensions -# used to create docs and examples install path -MODRUBY_RELDOCDIR= share/doc/${MODRUBY_PKG_PREFIX} -MODRUBY_RELEXAMPLEDIR= share/examples/${MODRUBY_PKG_PREFIX} -MODRUBY_DOCDIR= ${PREFIX}/${MODRUBY_RELDOCDIR} -MODRUBY_EXAMPLEDIR= ${PREFIX}/${MODRUBY_RELEXAMPLEDIR} -SUBST_VARS += MODRUBY_RELDOCDIR MODRUBY_RELEXAMPLEDIR -UPDATE_PLIST_ARGS += -s MODRUBY_RELDOCDIR -s MODRUBY_RELEXAMPLEDIR - # Assume that we want to automatically add ruby to BUILD_DEPENDS # and RUN_DEPENDS unless the port specifically requests not to. MODRUBY_BUILDDEP?= Yes @@ -122,7 +116,7 @@ RUN_DEPENDS+= ${MODRUBY_RUN_DEPENDS} .endif .if ${MODRUBY_TEST:L:Mrspec3} -TEST_DEPENDS+= ${MODRUBY_RSPEC3_DEPENDS} +TEST_DEPENDS+= ${_MODRUBY_RSPEC3_DEPENDS} .endif MODRUBY_RUBY_ADJ = perl -pi \ @@ -131,11 +125,10 @@ MODRUBY_RUBY_ADJ = perl -pi \ -e 'close ARGV if eof;' MODRUBY_ADJ_FILES?= .if !empty(MODRUBY_ADJ_FILES) -MODRUBY_ADJ_REPLACE= for pat in ${MODRUBY_ADJ_FILES:QL}; do \ +MODRUBY_pre-configure +=for pat in ${MODRUBY_ADJ_FILES:QL}; do \ find ${WRKSRC} -type f -name "$$pat" \ -exec ${MODRUBY_RUBY_ADJ} {} + ; \ done -MODRUBY_pre-configure += ${MODRUBY_ADJ_REPLACE} .endif MODRUBY_WANTLIB+= c gmp m pthread @@ -168,7 +161,7 @@ COMPILER_LANGS ?= c # Add build complete file to package so rubygems doesn't complain # or build extensions at runtime GEM_EXTENSIONS_DIR ?= ${GEM_LIB}/extensions/${MODRUBY_ARCH:S/i386/x86/}/${MODRUBY_REV}/${DISTNAME} -GEM_EXTENSIONS_FILE ?= ${GEM_EXTENSIONS_DIR}/gem.build_complete +_GEM_EXTENSIONS_FILE ?= ${GEM_EXTENSIONS_DIR}/gem.build_complete SUBST_VARS+= GEM_EXTENSIONS_DIR PKG_ARGS+= -f ${PORTSDIR}/lang/ruby/rubygems-ext.PLIST . else @@ -176,17 +169,12 @@ PKG_ARGS+= -f ${PORTSDIR}/lang/ruby/ruby PKG_ARCH= * . endif -# PLIST magic. Set variables so that the same PLIST will work for -# all ruby versions and implementations. -SUBST_VARS+= GEM_LIB GEM_BIN DISTNAME -UPDATE_PLIST_ARGS += -s GEM_LIB -s GEM_BIN - GEM= ${LOCALBASE}/bin/gem${MODRUBY_BINREV} GEM_BIN = bin GEM_LIB = lib/ruby/gems/${MODRUBY_LIBREV} -GEM_BASE_LIB= ${GEM_BASE}/ruby/${MODRUBY_LIBREV} -GEM_BASE= ${WRKDIR}/gem-tmp/.gem -GEM_ABS_PATH= ${PREFIX}/${GEM_LIB} +GEM_BASE_LIB= ${_GEM_BASE}/ruby/${MODRUBY_LIBREV} +_GEM_BASE= ${WRKDIR}/gem-tmp/.gem +_GEM_ABS_PATH= ${PREFIX}/${GEM_LIB} GEM_BASE_BIN= ${GEM_BASE_LIB}/bin # We purposely do not install documentation for ruby gems, because @@ -211,7 +199,7 @@ EXTRACT_CASES += *.gem) \ # Rebuild the gem manually after possible patching, then install it to a # temporary directory (not the final directory under fake). -MODRUBY_BUILD_TARGET = \ +_MODRUBY_BUILD_TARGET = \ if [ -f ${WRKDIST}/.metadata ]; then \ cd ${WRKDIST} && gzip .metadata && \ mv -f .metadata.gz ${_GEM_CONTENT}/metadata.gz; \ @@ -219,8 +207,8 @@ MODRUBY_BUILD_TARGET = \ cd ${WRKDIST} && pax -wz -s '/.*${PATCHORIG:S@.@\.@g}$$//' \ -x ustar -o write_opt=nodir . >${_GEM_DATAFILE}; \ cd ${_GEM_CONTENT} && tar -cf ${WRKDIR}/${_GEM_PATCHED} *.gz; \ - mkdir -p ${GEM_BASE}; \ - env -i ${MAKE_ENV} HOME=`dirname ${GEM_BASE}` GEM_HOME=${GEM_BASE} \ + mkdir -p ${_GEM_BASE}; \ + env -i ${MAKE_ENV} HOME=`dirname ${_GEM_BASE}` GEM_HOME=${_GEM_BASE} \ make=${_GEM_MAKE} \ ${GEM} install ${GEM_FLAGS} ${WRKDIR}/${_GEM_PATCHED} \ -- ${CONFIGURE_ARGS} @@ -228,7 +216,7 @@ MODRUBY_BUILD_TARGET = \ # Take the temporary gem directory, install the binary stub files to # the appropriate directory, and move and fix ownership the gem library # files. -MODRUBY_INSTALL_TARGET = \ +_MODRUBY_INSTALL_TARGET = \ if [ -d ${GEM_BASE_BIN} ]; then \ ${INSTALL_DATA_DIR} ${PREFIX}/${GEM_BIN}; \ for f in ${GEM_BASE_BIN}/*; do \ @@ -236,28 +224,30 @@ MODRUBY_INSTALL_TARGET = \ done; \ rm -r ${GEM_BASE_BIN}; \ fi; \ - ${INSTALL_DATA_DIR} ${GEM_ABS_PATH}; \ - cd ${GEM_BASE_LIB} && mv * ${GEM_ABS_PATH}; \ - if [ 'X' != "X${GEM_EXTENSIONS_FILE}" ]; then \ + ${INSTALL_DATA_DIR} ${_GEM_ABS_PATH}; \ + cd ${GEM_BASE_LIB} && mv * ${_GEM_ABS_PATH}; \ + if [ 'X' != "X${_GEM_EXTENSIONS_FILE}" ]; then \ mkdir -p ${PREFIX}/${GEM_EXTENSIONS_DIR}; \ - touch ${PREFIX}/${GEM_EXTENSIONS_FILE}; \ + touch ${PREFIX}/${_GEM_EXTENSIONS_FILE}; \ fi - chown -R ${SHAREOWN}:${SHAREGRP} ${GEM_ABS_PATH} + chown -R ${SHAREOWN}:${SHAREGRP} ${_GEM_ABS_PATH} . if !target(do-build) do-build: - ${MODRUBY_BUILD_TARGET} + ${_MODRUBY_BUILD_TARGET} . endif . if !target(do-install) do-install: - ${MODRUBY_INSTALL_TARGET} + ${_MODRUBY_INSTALL_TARGET} . endif .endif -# These are mostly used by the non-gem ports. -SUBST_VARS+= MODRUBY_SITEARCHDIR MODRUBY_SITEDIR MODRUBY_LIBREV \ - MODRUBY_ARCH -UPDATE_PLIST_ARGS += -s MODRUBY_SITEARCHDIR -s MODRUBY_SITEDIR +# PLIST magic. Set variables so that the same PLIST will work for +# all ruby versions and implementations. +SUBST_VARS += MODRUBY_RELEXAMPLEDIR MODRUBY_SITEARCHDIR MODRUBY_SITEDIR \ + MODRUBY_LIBREV MODRUBY_ARCH GEM_LIB GEM_BIN DISTNAME +UPDATE_PLIST_ARGS += -s MODRUBY_RELEXAMPLEDIR -s MODRUBY_SITEARCHDIR \ + -s MODRUBY_SITEDIR -s GEM_LIB -s GEM_BIN # test stuff @@ -265,13 +255,13 @@ UPDATE_PLIST_ARGS += -s MODRUBY_SITEARCH . if !target(do-test) . if ${MODRUBY_TEST:L:Mrake} -MODRUBY_TEST_BIN ?= ${RAKE} +_MODRUBY_TEST_BIN ?= ${RAKE} . elif ${MODRUBY_TEST:L:Mrspec3} -MODRUBY_TEST_BIN ?= ${MODRUBY_BIN_RSPEC} +_MODRUBY_TEST_BIN ?= ${MODRUBY_BIN_RSPEC} . elif ${MODRUBY_TEST:L:Mtestrb} -MODRUBY_TEST_BIN ?= ${RUBY} ${PORTSDIR}/lang/ruby/files/testrb.rb +_MODRUBY_TEST_BIN ?= ${RUBY} ${PORTSDIR}/lang/ruby/files/testrb.rb . elif ${MODRUBY_TEST:L:Mruby} -MODRUBY_TEST_BIN ?= ${RUBY} +_MODRUBY_TEST_BIN ?= ${RUBY} . endif . if ${MODRUBY_TEST:L:Mrspec3} @@ -282,10 +272,9 @@ MODRUBY_TEST_TARGET ?= test MODRUBY_TEST_ENV ?= MODRUBY_TEST_ENV += RUBYLIB=.:"$$RUBYLIB" -MODRUBY_TEST_DIR ?= ${WRKSRC} do-test: - cd ${MODRUBY_TEST_DIR} && ${SETENV} ${MAKE_ENV} HOME=${WRKBUILD} \ - ${MODRUBY_TEST_ENV} ${MODRUBY_TEST_BIN} \ + cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} HOME=${WRKBUILD} \ + ${MODRUBY_TEST_ENV} ${_MODRUBY_TEST_BIN} \ ${MODRUBY_TEST_TARGET} . endif .endif