Several of the FreeBSD port maintainance tools, such as
portupgrade(1),
rely on a database called /usr/ports/INDEX which keeps track of
such items as port dependencies. INDEX is created by the
top-level ports/Makefile via make
index, which descends into each port subdirectory and executes make describe there. Thus, if make describe
fails in any port, no one can generate INDEX, and many people
will quickly become unhappy.
Note: It is important to be able to generate this file no matter what options
are present in make.conf, so please avoid doing things such as
using .error statements when (for instance) a dependency is
not satisfied.
Example 14-1.
Assume that someone has the line
USE_POINTYHAT=yes
in make.conf. The first of the next two Makefile snippets will cause make index to
fail, while the second one will not:
.if USE_POINTYHAT
.error "POINTYHAT is not supported"
.endif
.if USE_POINTYHAT
IGNORE=POINTYHAT is not supported
.endif
If make describe produces a string rather than an error
message, you are probably safe. See bsd.port.mk for the meaning
of the string produced.
Also note that running a recent version of portlint (as
specified in the next section) will cause make describe to be
run automatically.