Date: Tue, 28 Feb 2006 16:24:30 GMT From: Renato Botelho <garga@FreeBSD.org> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/93947: bsd.port.mk: Implement PORTEXAMPLES facility just like PORTDOCS Message-ID: <200602281624.k1SGOUG0070920@freefall.freebsd.org> Resent-Message-ID: <200602281630.k1SGU7lD071121@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 93947 >Category: ports >Synopsis: bsd.port.mk: Implement PORTEXAMPLES facility just like PORTDOCS >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Tue Feb 28 16:30:06 GMT 2006 >Closed-Date: >Last-Modified: >Originator: Renato Botelho >Release: FreeBSD 6.0-STABLE i386 >Organization: >Environment: System: FreeBSD freefall.freebsd.org 6.0-STABLE FreeBSD 6.0-STABLE #0: Sat Dec 10 03:18:20 UTC 2005 kensmith@freefall.freebsd.org:/usr/obj/usr/src/sys/FREEFALL i386 >Description: Today some ports maintainers install example files always, some others doesn't install if NOPORTDOCS is set. Since PORTDOCS facilities make docs install a lot easier, i decided, after discuss with linion@ to copy this facility and implement the same to EXAMPLES. >How-To-Repeat: >Fix: --- bsd.port.mk.diff begins here --- Index: bsd.port.mk =================================================================== RCS file: /home/pcvs/ports/Mk/bsd.port.mk,v retrieving revision 1.529 diff -u -r1.529 bsd.port.mk --- bsd.port.mk 23 Feb 2006 15:37:20 -0000 1.529 +++ bsd.port.mk 28 Feb 2006 11:10:53 -0000 @@ -575,6 +575,16 @@ # Default: "share/info" if ${PREFIX} is equal to /usr # and "info" otherwise). # +# Set the following to specify all example files your port installs into +# ${EXAMPLESDIR} +# +# PORTEXAMPLES - A list of files and directories relative to EXAMPLESDIR. +# Shell glob patterns can be used, directories include +# the entire subtree of contained files and directories. +# Should not be set when no example files are installed +# (for example because NOPORTEXAMPLES is defined). +# Useful for dynamically generated example files. +# # Set the following to specify all documentation your port installs into # ${DOCSDIR} # @@ -1450,6 +1460,12 @@ .endif .endif +.if defined(NOPORTEXAMPLES) +PLIST_SUB+= PORTEXAMPLES="@comment " +.else +PLIST_SUB+= PORTEXAMPLES="" +.endif + .if defined(NOPORTDOCS) PLIST_SUB+= PORTDOCS="@comment " .else @@ -3779,8 +3795,9 @@ _INSTALL_SUSEQ= check-umask install-mtree pre-su-install \ pre-su-install-script do-install install-desktop-entries \ post-install post-install-script add-plist-info \ - add-plist-docs add-plist-post install-rc-script compress-man \ - run-ldconfig fake-pkg security-check + add-plist-examples add-plist-docs add-plist-post \ + install-rc-script compress-man run-ldconfig fake-pkg \ + security-check _PACKAGE_DEP= install _PACKAGE_SEQ= package-message pre-package pre-package-script \ do-package post-package-script @@ -4998,6 +5015,30 @@ ${TMPPLIST}: @cd ${.CURDIR} && ${MAKE} ${__softMAKEFLAGS} generate-plist +.if !target(add-plist-examples) +add-plist-examples: +.if defined(PORTEXAMPLES) && !defined(NOPORTEXAMPLES) + @if ${EGREP} -qe '^@cw?d' ${TMPPLIST} && \ + [ "`${SED} -En -e '/^@cw?d[ ]*/s,,,p' ${TMPPLIST} | ${TAIL} -n 1`" != "${PREFIX}" ]; then \ + ${ECHO_CMD} "@cwd ${PREFIX}" >> ${TMPPLIST}; \ + fi +.for x in ${PORTEXAMPLES} + @if ${ECHO_CMD} "${x}"| ${AWK} '$$1 ~ /(\*|\||\[|\]|\?|\{|\}|\$$)/ { exit 1};'; then \ + if [ ! -e ${EXAMPLESDIR}/${x} ]; then \ + ${ECHO_CMD} ${EXAMPLESDIR}/${x} | \ + ${SED} -e 's,^${PREFIX}/,,' >> ${TMPPLIST}; \ + fi;fi +.endfor + @${FIND} -P ${PORTEXAMPLES:S/^/${EXAMPLESDIR}\//} ! -type d 2>/dev/null | \ + ${SED} -ne 's,^${PREFIX}/,,p' >> ${TMPPLIST} + @${FIND} -P -d ${PORTEXAMPLES:S/^/${EXAMPLESDIR}\//} -type d 2>/dev/null | \ + ${SED} -ne 's,^${PREFIX}/,@dirrm ,p' >> ${TMPPLIST} + @${ECHO_CMD} "@dirrm ${EXAMPLESDIR:S,^${PREFIX}/,,}" >> ${TMPPLIST} +.else + @${DO_NADA} +.endif +.endif + .if !target(add-plist-docs) add-plist-docs: .if defined(PORTDOCS) && !defined(NOPORTDOCS) --- bsd.port.mk.diff ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200602281624.k1SGOUG0070920>