From 22cbe54b9abcdbf749c3480a40f5a21daa03a05d Mon Sep 17 00:00:00 2001 From: Kris Kennaway Date: Thu, 10 Jun 2004 07:30:19 +0000 Subject: * Support verbose index builds with INDEX_VERBOSE [1] * Don't assume root is using /bin/sh when switching credentials to configure OPTIONS. [2] * Support glob expressions in USE_GETTEXT to allow more flexibility in the face of future gratuitous library version bumps by the gettext developers [3]: USE_GETTEXT=yEs # Works as before (case-insensitive) USE_GETTEXT=[5-7] # Accepts any of those libintl.so.x versions # in the LIB_DEPENDS * Correctly register dependencies when a non-system perl port is used on 4.x [4] * Extend 'make search' support to allow much more flexible searching. Syntax will be documented in CHANGES for brevity. [5] * Reorder the post-install-script target to before add-plist-info for consistency [6] * Various fixes to support port operations when a port directory exists under /usr/obj [7] * Extend USE_PERL5_BUILD and USE_PERL5 to add EXTRACT and PATCH dependencies since many ports require perl in those stages [8] * Move info file deregistration later in the deinstallation process so it works properly. [9] * Improve wording in EXPIRATION_DATE message. [10] * Fix dependencies for XFREE86_VERSION==3 (obtain imake from x11/XFree86 now that the former port is gone) [11] * While building index, treat non-existent dependencies as fatal. Previously the error was being hidden by the stderr redirection. [12] * Don't always retry BROKEN ports when package building (it is taking too much time to continually rebuild ports that are usually going to really be broken). Set TRYBROKEN if you want to attempt a build of a BROKEN port. [12] * Revert incorrect change from 1.487 relating to ALL-DEPENDS-LIST [13] PR: 24214 [1], 67529 [2], 63937 [3], 65554 [4], 40699 [5], 59162 [6], 63372 66567 [7], 63394 [8], 65304 [9], 65931 [10], 66565 [11], 66743 [13] Submitted by: roam [1], will [1], hrs [2], mi [3], ade [4], Roman Neuhauser [5], Sergey Matveychuk [6], gad [7], adamw [8], kris [8][12], dinoex [9], Alexey Dokuchaev [10], eik [11][13] --- Mk/bsd.port.subdir.mk | 97 +++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 83 insertions(+), 14 deletions(-) (limited to 'Mk/bsd.port.subdir.mk') diff --git a/Mk/bsd.port.subdir.mk b/Mk/bsd.port.subdir.mk index dd04f94d5ff9..8c7969948d9e 100644 --- a/Mk/bsd.port.subdir.mk +++ b/Mk/bsd.port.subdir.mk @@ -209,7 +209,7 @@ describe: ${SUBDIR:S/^/describe./} .for i in ${SUBDIR} describe.$i: - @${MAKE} -B ${i:S/^/_/:S/$/.describe/} > ${INDEX_TMPDIR}/${INDEXFILE}.desc.${i} + @cd ${.CURDIR}; ${MAKE} -B ${i:S/^/_/:S/$/.describe/} > ${INDEX_TMPDIR}/${INDEXFILE}.desc.${i} .endfor .else describe: ${SUBDIR:S/^/_/:S/$/.describe/} @@ -220,9 +220,8 @@ describe: if test -d ${.CURDIR}/$${sub}; then \ ${ECHO_MSG} "===> ${DIRPRFX}$${sub}"; \ cd ${.CURDIR}/$${sub}; \ - ${MAKE} -B describe 2> /dev/null || \ - (echo "===> ${DIRPRFX}$${sub} failed:" >&2 ; \ - cd ${.CURDIR}/$${sub}; ${MAKE} -B describe >&2; \ + ${MAKE} -B describe || \ + (echo "===> ${DIRPRFX}$${sub} failed" >&2; \ exit 1) ;\ else \ ${ECHO_MSG} "===> ${DIRPRFX}$${sub} non-existent"; \ @@ -315,19 +314,89 @@ README.html: PKGINSTALLVER="${PKGINSTALLVER:S/"/"'"'"/g:S/\$/\$\$/g:S/\\/\\\\/g}" .endif - +PORTSEARCH_DISPLAY_FIELDS?=name,path,info,maint,index,bdeps,rdeps +PORTSEARCH_KEYLIM?=0 +PORTSEARCH_XKEYLIM?=0 +PORTSEARCH_IGNORECASE?=1 search: ${PORTSDIR}/${INDEXFILE} - @here=`pwd`; \ + @here=${.CURDIR}; \ cd ${PORTSDIR}; \ - top=`pwd -P`; \ - there=`echo "$$here/" | sed s%$$top%${PORTSDIR}%`; \ - if [ -n "$$key" ]; then \ - grep $$there ${PORTSDIR}/${INDEXFILE} | grep -i "${key}" | awk -F\| '{ printf("Port:\t%s\nPath:\t%s\nInfo:\t%s\nMaint:\t%s\nIndex:\t%s\nB-deps:\t%s\nR-deps:\t%s\n\n", $$1, $$2, $$4, $$6, $$7, $$8, $$9); }'; \ - elif [ $$name ]; then \ - grep $$there ${PORTSDIR}/${INDEXFILE} | grep -i "^[^|]*${name}[^|]*|" | awk -F\| '{ printf("Port:\t%s\nPath:\t%s\nInfo:\t%s\nMaint:\t%s\nIndex:\t%s\nB-deps:\t%s\nR-deps:\t%s\n\n", $$1, $$2, $$4, $$6, $$7, $$8, $$9); }'; \ - else \ + if [ -z "$$key" -a -z "$$xkey" -a \ + -z "$$name" -a -z "$$xname" -a \ + -z "$$path" -a -z "$$xpath" -a \ + -z "$$info" -a -z "$$xinfo" -a \ + -z "$$maint" -a -z "$$xmaint" -a \ + -z "$$bdeps" -a -z "$$xbdeps" -a \ + -z "$$rdeps" -a -z "$$xrdeps" ]; \ + then \ echo "The search target requires a keyword parameter or name parameter,"; \ echo "e.g.: \"make search key=somekeyword\""; \ echo "or \"make search name=somekeyword\""; \ - fi; + exit; \ + fi; \ + awk -F\| -v there="$$here/" -v top="$$(pwd -P)" \ + -v key="$$key" -v xkey="$$xkey" \ + -v name="$$name" -v xname="$$xname" \ + -v path="$$path" -v xpath="$$xpath" \ + -v info="$$info" -v xinfo="$$xinfo" \ + -v maint="$$maint" -v xmaint="$$xmaint" \ + -v cat="$$cat" -v xcat="$$xcat" \ + -v bdeps="$$bdeps" -v xbdeps="$$xbdeps" \ + -v rdeps="$$rdeps" -v xrdeps="$$xrdeps" \ + -v icase="$${icase:-${PORTSEARCH_IGNORECASE}}" \ + -v keylim="$${keylim:-${PORTSEARCH_KEYLIM}}" \ + -v xkeylim="$${xkeylim:-${PORTSEARCH_XKEYLIM}}"\ + -v display="$${display:-${PORTSEARCH_DISPLAY_FIELDS}}" \ + 'BEGIN { \ + sub(top, "${PORTSDIR}", there); \ + IGNORECASE=icase; \ + keylen = length(key); keylim = keylim && keylen; \ + if (!keylim && keylen) \ + parms[0] = key; \ + xkeylen = length(xkey); xkeylim = xkeylim && xkeylen; \ + if (!xkeylim && xkeylen) \ + xparms[0] = xkey; \ + if (length(name)) parms[1] = name; if (length(xname)) xparms[1] = xname; \ + if (length(path)) parms[2] = path; if (length(xpath)) xparms[2] = xpath; \ + if (length(info)) parms[4] = info; if (length(xinfo)) xparms[4] = xinfo; \ + if (length(maint)) parms[6] = maint; if (length(xmaint)) xparms[6] = xmaint; \ + if (length(cat)) parms[7] = cat; if (length(xcat)) xparms[7] = xcat; \ + if (length(bdeps)) parms[8] = bdeps; if (length(xbdeps)) xparms[8] = xbdeps; \ + if (length(rdeps)) parms[9] = rdeps; if (length(xrdeps)) xparms[9] = xrdeps; \ + fields["name"] = 1; names[1] = "Port"; \ + fields["path"] = 2; names[2] = "Path"; \ + fields["info"] = 4; names[4] = "Info"; \ + fields["maint"] = 6; names[6] = "Maint"; \ + fields["cat"] = 7; names[7] = "Index"; \ + fields["bdeps"] = 8; names[8] = "B-deps"; \ + fields["rdeps"] = 9; names[9] = "R-deps"; \ + split(display, d, /,[ \t]*/); \ + for (i in d) { \ + disp[fields[d[i]]] = 1; \ + } \ + } \ + { \ + if ($$2 !~ there) \ + next; \ + for (i in parms) \ + if ($$i !~ parms[i]) \ + next; \ + for (i in xparms) \ + if ($$i ~ xparms[i]) \ + next; \ + found = 0; \ + for (i = 1; i < 10; i++) \ + if (i in disp) { \ + if (xkeylim && $$i ~ xkey) \ + next; \ + if (!found && keylim && $$i ~ key) \ + found = 1; \ + } \ + if (keylim && !found) \ + next; \ + for (i = 1; i < 10; i++) \ + if (i in disp) \ + printf("%s:\t%s\n", names[i], $$i); \ + print(""); \ + }' ${PORTSDIR}/${INDEXFILE} -- cgit v1.2.3