aboutsummaryrefslogtreecommitdiff
path: root/ports-mgmt
diff options
context:
space:
mode:
authorMark Linimon <linimon@FreeBSD.org>2006-01-22 03:09:01 +0000
committerMark Linimon <linimon@FreeBSD.org>2006-01-22 03:09:01 +0000
commitd27380ce77b312d1d83717118a6df65ff8f61a87 (patch)
treea7d719c23e2cf6c2e1f94708867654bcc5c0e106 /ports-mgmt
parent508b8d82f4fdfc6889fe17931ef30f047501dfd6 (diff)
downloadports-d27380ce77b312d1d83717118a6df65ff8f61a87.tar.gz
ports-d27380ce77b312d1d83717118a6df65ff8f61a87.zip
Notes
Diffstat (limited to 'ports-mgmt')
-rw-r--r--ports-mgmt/portmk/Mk/bsd.port.mk63
-rw-r--r--ports-mgmt/portmk/Mk/bsd.port.subdir.mk448
2 files changed, 476 insertions, 35 deletions
diff --git a/ports-mgmt/portmk/Mk/bsd.port.mk b/ports-mgmt/portmk/Mk/bsd.port.mk
index edcf013da9f8..0878463fdf24 100644
--- a/ports-mgmt/portmk/Mk/bsd.port.mk
+++ b/ports-mgmt/portmk/Mk/bsd.port.mk
@@ -348,6 +348,9 @@ FreeBSD_MAINTAINER= portmgr@FreeBSD.org
# Some installations may wish to override the default
# to specify a version without X11 and/or localized
# versions for their nationality.
+# WITH_GHOSTSCRIPT_GPL
+# - If set, this port uses the GPL version of the ghostscript
+# software instead of the GNU version, which is used otherwise.
# WITH_GHOSTSCRIPT_AFPL
# - If set, this port uses the AFPL version of the ghostscript
# software instead of the GNU version, which is used otherwise.
@@ -364,7 +367,6 @@ FreeBSD_MAINTAINER= portmgr@FreeBSD.org
# USE_FREETYPE - If set, this port uses the freetype print libraries.
# USE_GL - If set, this port uses libGL (not needed with XFree86 4.x
# which already includes this functionality).
-# USE_MESA - If set, this port uses libGL/libglut (deprecated).
# USE_MOTIF - If set, this port uses a Motif toolkit. Implies USE_XPM.
# NO_OPENMOTIF - If set, this port uses a custom Motif toolkit
# instead of Openmotif.
@@ -992,14 +994,8 @@ NOPRECIOUSSOFTMAKEVARS= yes
AWK?= /usr/bin/awk
BASENAME?= /usr/bin/basename
BRANDELF?= /usr/bin/brandelf
-.if exists(/usr/bin/bzip2)
BZCAT?= /usr/bin/bzcat
BZIP2_CMD?= /usr/bin/bzip2
-.else
-BZCAT?= ${LOCALBASE}/bin/bzcat
-BZIP2_CMD?= ${LOCALBASE}/bin/bzip2
-BZIP2DEPENDS= yes
-.endif
CAT?= /bin/cat
CHGRP?= /usr/bin/chgrp
CHMOD?= /bin/chmod
@@ -1225,6 +1221,7 @@ X11BASE?= ${DESTDIR}/usr/X11R6
LINUXBASE?= ${DESTDIR}/compat/linux
DISTDIR?= ${PORTSDIR}/distfiles
_DISTDIR?= ${DISTDIR}/${DIST_SUBDIR}
+INDEXDIR?= ${PORTSDIR}
.if ${OSVERSION} >= 500036
INDEXFILE?= INDEX-${OSVERSION:C/([0-9]).*/\1/}
.else
@@ -1359,7 +1356,7 @@ PERL= ${LOCALBASE}/bin/perl
.endif
.endif
-.if defined(EMACS_PORT_NAME)
+.if defined(USE_EMACS) || defined(EMACS_PORT_NAME)
.if exists(${DEVELPORTSDIR}/Mk/bsd.emacs.mk)
.include "${DEVELPORTSDIR}/Mk/bsd.emacs.mk"
.else
@@ -1548,17 +1545,11 @@ MANCOMPRESSED?= no
.endif
.if defined(PATCHFILES)
-.if ${PATCHFILES:M*.bz2}x != x && defined(BZIP2DEPENDS)
-PATCH_DEPENDS+= bzip2:${PORTSDIR}/archivers/bzip2
-.endif
.if ${PATCHFILES:M*.zip}x != x
PATCH_DEPENDS+= unzip:${PORTSDIR}/archivers/unzip
.endif
.endif
-.if defined(USE_BZIP2) && defined(BZIP2DEPENDS)
-EXTRACT_DEPENDS+= bzip2:${PORTSDIR}/archivers/bzip2
-.endif
.if defined(USE_ZIP)
EXTRACT_DEPENDS+= unzip:${PORTSDIR}/archivers/unzip
.endif
@@ -1807,10 +1798,6 @@ PKG_IGNORE_DEPENDS?= 'this_port_does_not_exist'
PLIST_SUB+= XAWVER=${XAWVER}
-.if defined(USE_MESA)
-LIB_DEPENDS+= glut.3:${PORTSDIR}/graphics/libglut
-.endif
-
.if defined(USE_BISON)
BUILD_DEPENDS+= bison:${PORTSDIR}/devel/bison
.endif
@@ -1960,21 +1947,17 @@ CONFIGURE_ARGS+=--x-libraries=${X11BASE}/lib --x-includes=${X11BASE}/include
# compatible functionality.
.if !defined(WITHOUT_X11)
.if defined(WITH_GHOSTSCRIPT_AFPL)
-.if ${WITH_GHOSTSCRIPT_AFPL} == yes
GHOSTSCRIPT_PORT?= print/ghostscript-afpl
-.else
-GHOSTSCRIPT_PORT?= print/ghostscript-gnu
-.endif
+.elif defined(WITH_GHOSTSCRIPT_GPL)
+GHOSTSCRIPT_PORT?= print/ghostscript-gpl
.else
GHOSTSCRIPT_PORT?= print/ghostscript-gnu
.endif
.else
.if defined(WITH_GHOSTSCRIPT_AFPL)
-.if ${WITH_GHOSTSCRIPT_AFPL} == yes
GHOSTSCRIPT_PORT?= print/ghostscript-afpl-nox11
-.else
-GHOSTSCRIPT_PORT?= print/ghostscript-gnu-nox11
-.endif
+.elif defined(WITH_GHOSTSCRIPT_GPL)
+GHOSTSCRIPT_PORT?= print/ghostscript-gpl-nox11
.else
GHOSTSCRIPT_PORT?= print/ghostscript-gnu-nox11
.endif
@@ -2109,7 +2092,11 @@ EXTRACT_BEFORE_ARGS?= -qo
EXTRACT_AFTER_ARGS?= -d ${WRKDIR}
.else
EXTRACT_BEFORE_ARGS?= -dc
+.if defined(EXTRACT_PRESERVE_OWNERSHIP)
+EXTRACT_AFTER_ARGS?= | ${TAR} -xf - --no-same-owner
+.else
EXTRACT_AFTER_ARGS?= | ${TAR} -xf -
+.endif
.if defined(USE_BZIP2)
EXTRACT_CMD?= ${BZIP2_CMD}
.else
@@ -2190,7 +2177,11 @@ _PORTDIRNAME= ${.CURDIR:T}
PORTDIRNAME?= ${_PORTDIRNAME}
PKGORIGIN?= ${PKGCATEGORY}/${PORTDIRNAME}
-.if exists(${LOCALBASE}/sbin/pkg_info)
+
+.if (${OSVERSION} < 491101 && ${PKGORIGIN} != "sysutils/pkg_install") || exists(${LOCALBASE}/sbin/pkg_info)
+.if ${OSVERSION} < 491101 && ${PKGORIGIN} != "sysutils/pkg_install"
+EXTRACT_DEPENDS+= ${LOCALBASE}/sbin/pkg_info:${PORTSDIR}/sysutils/pkg_install
+.endif
PKG_CMD?= ${LOCALBASE}/sbin/pkg_create
PKG_ADD?= ${LOCALBASE}/sbin/pkg_add
PKG_DELETE?= ${LOCALBASE}/sbin/pkg_delete
@@ -2686,7 +2677,7 @@ VALID_CATEGORIES+= accessibility afterstep arabic archivers astro audio \
deskutils devel dns editors elisp emulators finance french ftp \
games geography german gnome graphics hamradio haskell hebrew hungarian \
ipv6 irc japanese java kde korean lang linux lisp \
- mail math mbone misc multimedia net net-im net-mgmt news \
+ mail math mbone misc multimedia net net-im net-mgmt net-p2p news \
palm parallel pear perl5 picobsd plan9 polish portuguese print \
python ruby rubygems russian \
scheme science security shells spanish sysutils \
@@ -2968,7 +2959,7 @@ clean:
.if defined(IGNORE_SILENT)
IGNORECMD= ${DO_NADA}
.else
-IGNORECMD= ${ECHO_MSG} "===> ${PKGNAME} "${IGNORE:Q}.
+IGNORECMD= ${ECHO_MSG} "===> ${PKGNAME} "${IGNORE:Q}.;exit 1
.endif
.for target in check-sanity fetch checksum extract patch configure all build install reinstall package
@@ -3494,10 +3485,12 @@ check-conflicts:
@found=`${PKG_INFO} -I ${CONFLICTS:C/.+/'&'/} 2>/dev/null | ${AWK} '{print $$1}'`; \
conflicts_with=; \
for entry in $${found}; do \
- prfx=`${PKG_INFO} -q -p "$${entry}" 2> /dev/null | ${SED} -ne '1s/^@cwd //p'`; \
- orgn=`${PKG_INFO} -q -o "$${entry}" 2> /dev/null`; \
- if [ "/${PREFIX}" = "/$${prfx}" -a "/${PKGORIGIN}" != "/$${orgn}" ]; then \
- conflicts_with="$${conflicts_with} $${entry}"; \
+ if ${PKG_INFO} -e $${entry} ; then \
+ prfx=`${PKG_INFO} -q -p "$${entry}" 2> /dev/null | ${SED} -ne '1s/^@cwd //p'`; \
+ orgn=`${PKG_INFO} -q -o "$${entry}" 2> /dev/null`; \
+ if [ "/${PREFIX}" = "/$${prfx}" -a "/${PKGORIGIN}" != "/$${orgn}" ]; then \
+ conflicts_with="$${conflicts_with} $${entry}"; \
+ fi; \
fi; \
done; \
if [ -n "$${conflicts_with}" ]; then \
@@ -5025,11 +5018,11 @@ ${.CURDIR}/README.html:
# The following two targets require an up-to-date INDEX in ${PORTSDIR}
_PRETTY_PRINT_DEPENDS_LIST=\
- if [ ! -r ${PORTSDIR}/${INDEXFILE} ] ; then \
+ if [ ! -r ${INDEXDIR}/${INDEXFILE} ] ; then \
${ECHO_CMD} "${.TARGET} requires an INDEX file (${INDEXFILE}). Please run make index or make fetchindex."; \
else \
${ECHO_CMD} -n 'This port requires package(s) "' ; \
- ${ECHO_CMD} -n `${AWK} -F\| '$$1 ~ /^${PKGNAME}/ {print $$8;}' ${PORTSDIR}/${INDEXFILE}` ; \
+ ${ECHO_CMD} -n `${AWK} -F\| '$$1 ~ /^${PKGNAME}/ {print $$8;}' ${INDEXDIR}/${INDEXFILE}` ; \
${ECHO_CMD} '" to ${.TARGET:C/pretty-print-(.*)-depends-list/\1/}.'; \
fi;
diff --git a/ports-mgmt/portmk/Mk/bsd.port.subdir.mk b/ports-mgmt/portmk/Mk/bsd.port.subdir.mk
new file mode 100644
index 000000000000..914263340ff2
--- /dev/null
+++ b/ports-mgmt/portmk/Mk/bsd.port.subdir.mk
@@ -0,0 +1,448 @@
+# from: @(#)bsd.subdir.mk 5.9 (Berkeley) 2/1/91
+# $FreeBSD$
+#
+# The include file <bsd.port.subdir.mk> contains the default targets
+# for building ports subdirectories.
+#
+#
+# +++ variables +++
+#
+# STRIP The flag passed to the install program to cause the binary
+# to be stripped. This is to be used when building your
+# own install script so that the entire system can be made
+# stripped/not-stripped using a single knob. [-s]
+#
+# ECHO_MSG Used to print all the '===>' style prompts - override this
+# to turn them off [echo].
+#
+# OPSYS Get the operating system type [`uname -s`]
+#
+# SUBDIR A list of subdirectories that should be built as well.
+# Each of the targets will execute the same target in the
+# subdirectories.
+#
+#
+# +++ targets +++
+#
+# README.html:
+# Creating README.html for package.
+#
+# afterinstall, all, beforeinstall, build, checksum, clean,
+# clean-for-cdrom, clean-restricted,
+# clean-for-cdrom-list, clean-restricted-list,
+# configure, deinstall,
+# depend, depends, describe, extract, fetch, fetch-list, ignorelist,
+# install, maintainer, makesum, package, readmes, realinstall, reinstall,
+# tags
+#
+# search:
+# Search for ports using either 'make search key=<keyword>'
+# or 'make search name=<keyword>'.
+
+
+.MAIN: all
+
+.if !defined(DEBUG_FLAGS)
+STRIP?= -s
+.endif
+
+.if !defined(NOPRECIOUSMAKEVARS)
+.if !defined(ARCH)
+ARCH!= /usr/bin/uname -p
+.endif
+.if !defined(OSREL)
+OSREL!= /usr/bin/uname -r | sed -e 's/[-(].*//'
+.endif
+.if !defined(OSVERSION)
+.if exists(/sbin/sysctl)
+OSVERSION!= /sbin/sysctl -n kern.osreldate
+.else
+OSVERSION!= /usr/sbin/sysctl -n kern.osreldate
+.endif
+.endif
+.if !defined(PORTOBJFORMAT)
+PORTOBJFORMAT!= test -x /usr/bin/objformat && /usr/bin/objformat || echo aout
+.endif
+.endif
+
+ID?= /usr/bin/id
+UID!= ${ID} -u
+LOCALBASE?= ${DESTDIR}/usr/local
+.if exists(${LOCALBASE}/sbin/pkg_info)
+PKG_INFO?= ${LOCALBASE}/sbin/pkg_info
+.else
+PKG_INFO?= /usr/sbin/pkg_info
+.endif
+SED?= /usr/bin/sed
+PKGINSTALLVER!= ${PKG_INFO} -P 2>/dev/null | ${SED} -e 's/.*: //'
+
+.if !defined(OPSYS)
+OPSYS!= /usr/bin/uname -s
+.endif
+
+ECHO_MSG?= echo
+
+# local customization of the ports tree
+.if exists(${.CURDIR}/Makefile.local)
+.include "${.CURDIR}/Makefile.local"
+.endif
+
+TARGETS+= all
+TARGETS+= build
+TARGETS+= checksum
+TARGETS+= clean
+TARGETS+= clean-for-cdrom
+TARGETS+= clean-for-cdrom-list
+TARGETS+= clean-restricted
+TARGETS+= clean-restricted-list
+TARGETS+= configure
+TARGETS+= deinstall
+TARGETS+= depend
+TARGETS+= depends
+TARGETS+= distclean
+TARGETS+= extract
+TARGETS+= fetch
+TARGETS+= fetch-list
+TARGETS+= ignorelist
+TARGETS+= makesum
+TARGETS+= maintainer
+TARGETS+= package
+TARGETS+= package-recursive
+TARGETS+= realinstall
+TARGETS+= reinstall
+TARGETS+= tags
+
+.for __target in ${TARGETS}
+.if !target(${__target})
+.if defined(SUBDIR) && !empty(SUBDIR)
+${__target}: ${SUBDIR:S/^/_/:S/$/.${__target}/}
+.else
+${__target}:
+.endif
+.endif
+.endfor
+
+.if defined(SUBDIR) && !empty(SUBDIR)
+
+.for __target in ${TARGETS} checksubdirs describe readmes
+${SUBDIR:S/^/_/:S/$/.${__target}/}: _SUBDIRUSE
+.endfor
+
+_SUBDIRUSE: .USE
+ @OK=""; sub=${.TARGET:S/^_//:R}; \
+ for dud in $$DUDS; do \
+ if [ $${dud} = $$sub ]; then \
+ OK="false"; \
+ ${ECHO_MSG} "===> ${DIRPRFX}$$sub skipped"; \
+ fi; \
+ done; \
+ if test -d ${.CURDIR}/$${sub}.${MACHINE_ARCH}; then \
+ edir=$${sub}.${MACHINE_ARCH}; \
+ elif test -d ${.CURDIR}/$${sub}; then \
+ edir=$${sub}; \
+ else \
+ OK="false"; \
+ ${ECHO_MSG} "===> ${DIRPRFX}$${sub} non-existent"; \
+ fi; \
+ if [ "$$OK" = "" ]; then \
+ ${ECHO_MSG} "===> ${DIRPRFX}$${edir}"; \
+ cd ${.CURDIR}/$${edir}; \
+ ${MAKE} -B ${.TARGET:E:realinstall=install} \
+ DIRPRFX=${DIRPRFX}$$edir/; \
+ fi
+
+.for _subdir in ${SUBDIR:S/^/_/}
+${_subdir}:: ${_subdir:S/$/.all/}
+.endfor
+
+.endif
+
+.if !target(install)
+.if !target(beforeinstall)
+beforeinstall:
+.endif
+.if !target(afterinstall)
+afterinstall:
+.endif
+install: afterinstall
+afterinstall: realinstall
+realinstall: beforeinstall ${SUBDIR:S/^/_/:S/$/.realinstall/}
+.endif
+
+IGNOREDIR= CVS Mk Templates Tools distfiles packages pkg
+
+.if !target(checksubdirs)
+.if defined(PORTSTOP)
+checksubdirs: checksubdir ${SUBDIR:S/^/_/:S/$/.checksubdirs/}
+.else
+checksubdirs: checksubdir
+.endif
+.endif
+
+.if !target(checksubdir)
+checksubdir:
+ @for d in *; do \
+ if [ -d "$$d" ]; then \
+ found=0; \
+ for s in ${SUBDIR} ${IGNOREDIR}; do \
+ if [ "x$$s" = "x$$d" ]; then \
+ found=1; \
+ break; \
+ fi; \
+ done; \
+ if [ $$found = 0 ]; then \
+ ${ECHO} "Warning: directory $$d not in SUBDIR"; \
+ fi; \
+ fi; \
+ done
+ @for s in ${SUBDIR}; do \
+ if ! [ -d ${.CURDIR}/$$s ]; then \
+ ${ECHO} "Warning: directory $$s in SUBDIR does not exist"; \
+ fi \
+ done
+.endif
+
+.if !target(describe)
+.if defined(PORTSTOP)
+# This is a bit convoluted to deal with the fact that make will overlap I/O from child make processes
+# if they write more than 2k: this will corrupt the INDEX file. make -P does not do this, but it adds
+# extraneous output and redirects stderr, so we lose error reporting from child makes. Instead we have
+# to roll our own implementation of make -P and make sure that each child make writes to their own file,
+# which we will combine at the end. This gives substantial performance benefits over doing a make -j1
+
+.if defined(BUILDING_INDEX)
+describe: ${SUBDIR:S/^/describe./}
+
+.for i in ${SUBDIR}
+describe.$i:
+ @cd ${.CURDIR}; ${MAKE} -B ${i:S/^/_/:S/$/.describe/} > ${INDEX_TMPDIR}/${INDEXFILE}.desc.${i}
+.endfor
+.else
+describe: ${SUBDIR:S/^/_/:S/$/.describe/}
+.endif
+.else
+describe:
+ @for sub in ${SUBDIR}; do \
+ if test -d ${.CURDIR}/$${sub}; then \
+ ${ECHO_MSG} "===> ${DIRPRFX}$${sub}"; \
+ cd ${.CURDIR}/$${sub}; \
+ ${MAKE} -B describe || \
+ (echo "===> ${DIRPRFX}$${sub} failed" >&2; \
+ exit 1) ;\
+ else \
+ ${ECHO_MSG} "===> ${DIRPRFX}$${sub} non-existent"; \
+ fi; \
+ done
+.endif
+.endif
+
+.if !target(readmes)
+.if defined(PORTSTOP)
+readmes: readme ${SUBDIR:S/^/_/:S/$/.readmes/}
+ @${ECHO_MSG} "===> Creating README.html for all ports"
+ @perl ${PORTSDIR}/Tools/make_readmes < ${INDEXDIR}/${INDEXFILE}
+.else
+readmes: readme
+.endif
+.endif
+
+.if !target(readme)
+readme:
+ @rm -f README.html
+ @make README.html
+.endif
+
+.if (${OPSYS} == "NetBSD")
+PORTSDIR ?= /usr/opt
+.else
+PORTSDIR ?= /usr/ports
+.endif
+TEMPLATES ?= ${PORTSDIR}/Templates
+.if defined(PORTSTOP)
+README= ${TEMPLATES}/README.top
+.else
+README= ${TEMPLATES}/README.category
+.endif
+COMMENTFILE?= ${.CURDIR}/pkg/COMMENT
+DESCR?= ${.CURDIR}/pkg/DESCR
+INDEXDIR?= ${PORTSDIR}
+.if ${OSVERSION} >= 500036
+INDEXFILE?= INDEX-${OSVERSION:C/([0-9]).*/\1/}
+.else
+INDEXFILE?= INDEX
+.endif
+
+HTMLIFY= sed -e 's/&/\&amp;/g' -e 's/>/\&gt;/g' -e 's/</\&lt;/g'
+
+package-name:
+ @echo ${.CURDIR} | sed -e 's^.*/^^'
+
+README.html:
+ @echo "===> Creating README.html"
+ @> $@.tmp
+.for entry in ${SUBDIR}
+.if exists(${entry})
+.if defined(PORTSTOP)
+ @echo -n '<a href="'${entry}/README.html'">'"`echo ${entry} | ${HTMLIFY}`"'</a>: ' >> $@.tmp
+.else
+ @echo -n '<a href="'${entry}/README.html'">'"`cd ${entry}; make package-name | ${HTMLIFY}`</a>: " >> $@.tmp
+.endif
+ @echo `cd ${entry}; make -V COMMENT` | ${HTMLIFY} >> $@.tmp
+.endif
+.endfor
+ @sort -t '>' +1 -2 $@.tmp > $@.tmp2
+.if exists(${DESCR})
+ @${HTMLIFY} ${DESCR} > $@.tmp3
+.else
+ @> $@.tmp3
+.endif
+.if defined(COMMENT)
+ @echo "${COMMENT}" | ${HTMLIFY} > $@.tmp4
+.else
+.if exists(${COMMENTFILE})
+ @${HTMLIFY} ${COMMENTFILE} > $@.tmp4
+.else
+ @> $@.tmp4
+.endif
+.endif
+ @cat ${README} | \
+ sed -e 's/%%CATEGORY%%/'"`basename ${.CURDIR}`"'/g' \
+ -e '/%%COMMENT%%/r$@.tmp4' \
+ -e '/%%COMMENT%%/d' \
+ -e '/%%DESCR%%/r$@.tmp3' \
+ -e '/%%DESCR%%/d' \
+ -e '/%%SUBDIR%%/r$@.tmp2' \
+ -e '/%%SUBDIR%%/d' \
+ > $@
+ @rm -f $@.tmp $@.tmp2 $@.tmp3 $@.tmp4
+
+.if !defined(NOPRECIOUSMAKEVARS)
+.MAKEFLAGS: \
+ ARCH="${ARCH:S/"/"'"'"/g:S/\$/\$\$/g:S/\\/\\\\/g}" \
+ OPSYS="${OPSYS:S/"/"'"'"/g:S/\$/\$\$/g:S/\\/\\\\/g}" \
+ OSREL="${OSREL:S/"/"'"'"/g:S/\$/\$\$/g:S/\\/\\\\/g}" \
+ OSVERSION="${OSVERSION:S/"/"'"'"/g:S/\$/\$\$/g:S/\\/\\\\/g}" \
+ PORTOBJFORMAT="${PORTOBJFORMAT:S/"/"'"'"/g:S/\$/\$\$/g:S/\\/\\\\/g}" \
+ UID="${UID:S/"/"'"'"/g:S/\$/\$\$/g:S/\\/\\\\/g}" \
+ PKGINSTALLVER="${PKGINSTALLVER:S/"/"'"'"/g:S/\$/\$\$/g:S/\\/\\\\/g}"
+.endif
+
+PORTSEARCH_DISPLAY_FIELDS?=name,path,info,maint,index,bdeps,rdeps,www
+PORTSEARCH_KEYLIM?=0
+PORTSEARCH_XKEYLIM?=0
+PORTSEARCH_IGNORECASE?=1
+
+_PORTSEARCH= \
+ here=${.CURDIR}; \
+ if [ ! -r ${INDEXDIR}/${INDEXFILE} ] ; then \
+ echo "The ${.TARGET} target requires ${INDEXFILE}. Please run make index or make fetchindex."; \
+ else \
+ cd ${PORTSDIR}; \
+ 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 "$$cat" -a -z "$$xcat" -a \
+ -z "$$bdeps" -a -z "$$xbdeps" -a \
+ -z "$$rdeps" -a -z "$$xrdeps" -a \
+ -z "$$www" -a -z "$$xwww" ]; \
+ then \
+ echo "The ${.TARGET} target requires a keyword parameter or name parameter,"; \
+ echo "e.g.: \"make ${.TARGET} key=somekeyword\""; \
+ echo "or \"make ${.TARGET} name=somekeyword\""; \
+ 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 www="$$www" -v xwww="$$xwww" \
+ -v icase="$${icase:-${PORTSEARCH_IGNORECASE}}" \
+ -v keylim="$${keylim:-${PORTSEARCH_KEYLIM}}" \
+ -v xkeylim="$${xkeylim:-${PORTSEARCH_XKEYLIM}}" \
+ -v display="$${display:-${PORTSEARCH_DISPLAY_FIELDS}}" \
+ -v xdisplay="$$xdisplay" \
+ 'BEGIN { \
+ gsub(/\+/,"\\+",name); \
+ if (substr(there, 1, length(top)) == top) \
+ there = "${PORTSDIR}" substr(there, 1 + length(top)); \
+ therelen = length(there); \
+ keylen = length(key); keylim = keylim && keylen; \
+ if (!keylim && keylen) \
+ parms[0] = (icase ? tolower(key) : key); \
+ xkeylen = length(xkey); xkeylim = xkeylim && xkeylen; \
+ if (!xkeylim && xkeylen) \
+ xparms[0] = (icase ? tolower(xkey) : xkey); \
+ if (icase) { \
+ if (length(name)) parms[1] = tolower(name); if (length(xname)) xparms[1] = tolower(xname); \
+ if (length(path)) parms[2] = tolower(path); if (length(xpath)) xparms[2] = tolower(xpath); \
+ if (length(info)) parms[4] = tolower(info); if (length(xinfo)) xparms[4] = tolower(xinfo); \
+ if (length(maint)) parms[6] = tolower(maint); if (length(xmaint)) xparms[6] = tolower(xmaint); \
+ if (length(cat)) parms[7] = tolower(cat); if (length(xcat)) xparms[7] = tolower(xcat); \
+ if (length(bdeps)) parms[8] = tolower(bdeps); if (length(xbdeps)) xparms[8] = tolower(xbdeps); \
+ if (length(rdeps)) parms[9] = tolower(rdeps); if (length(xrdeps)) xparms[9] = tolower(xrdeps); \
+ if (length(www)) parms[10] = tolower(www); if (length(xwww)) xparms[10] = tolower(xwww); \
+ } else { \
+ 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; \
+ if (length(www)) parms[10] = www; if (length(xwww)) xparms[10] = xwww; \
+ } \
+ 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"; \
+ fields["www"] = 10; names[10] = "WWW"; \
+ split(display, d, /,[ \t]*/); \
+ for (i in d) { \
+ disp[fields[d[i]]] = 1; \
+ } \
+ split(xdisplay, xd, /,[ \t]*/); \
+ for (i in xd) { \
+ delete disp[fields[xd[i]]]; \
+ } \
+ } \
+ { \
+ if (substr($$2, 1, therelen) != there) \
+ next; \
+ for (i in parms) \
+ if ((icase ? tolower($$i) : $$i) !~ parms[i]) \
+ next; \
+ for (i in xparms) \
+ if ((icase ? tolower($$i) : $$i) ~ xparms[i]) \
+ next; \
+ found = 0; \
+ for (i = 1; i < 11; i++) \
+ if (i in disp) { \
+ if (xkeylim && (icase ? tolower($$i) : $$i) ~ xkey) \
+ next; \
+ if (!found && keylim && (icase ? tolower($$i) : $$i) ~ key) \
+ found = 1; \
+ } \
+ if (keylim && !found) \
+ next; \
+ for (i = 1; i < 11; i++) \
+ if (i in disp) \
+ printf("%s:\t%s\n", names[i], $$i); \
+ print(""); \
+ }' ${INDEXDIR}/${INDEXFILE}
+
+search:
+ @${_PORTSEARCH}
+
+quicksearch:
+ @export display="name,path,info" ; \
+ ${_PORTSEARCH}