Add more information about running 'make describe' and portlint to
the Testing section. Reviewed by: marcus, eik, others Approved by: ceri (mentor)
This commit is contained in:
parent
652d8b96e1
commit
c8cb66cdbf
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=20988
1 changed files with 60 additions and 2 deletions
|
@ -4891,14 +4891,72 @@ PLIST_SUB= OCTAVE_VERSION=${OCTAVE_VERSION}</programlisting>
|
||||||
<chapter id="testing">
|
<chapter id="testing">
|
||||||
<title>Testing your port</title>
|
<title>Testing your port</title>
|
||||||
|
|
||||||
|
<sect1 id="make-describe">
|
||||||
|
<title>Running <command>make describe</command></title>
|
||||||
|
|
||||||
|
<para>Several of the &os; port maintainance tools, such as
|
||||||
|
&man.portupgrade.1;, rely on a database called
|
||||||
|
<filename>/usr/ports/INDEX</filename> which keeps track of such
|
||||||
|
items as port dependencies. <filename>INDEX</filename> is created
|
||||||
|
by the top-level <filename>ports/Makefile</filename> via
|
||||||
|
<command>make index</command>, which descends into each
|
||||||
|
port subdirectory and executes <command>make describe</command>
|
||||||
|
there. Thus, if <command>make describe</command> fails in any
|
||||||
|
port, no one can generate <filename>INDEX</filename>, and many
|
||||||
|
people will quickly become unhappy.</para>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<para>It is important to be able to generate this file no
|
||||||
|
matter what options are present in <filename>make.conf</filename>,
|
||||||
|
so please avoid doing things such as using <literal>.error</literal>
|
||||||
|
statements when (for instance) a dependency is not satisfied.</para>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<example id="dot-error-breaks-index"><title></title>
|
||||||
|
<para>Assume that someone has the line
|
||||||
|
<programlisting>USE_POINTYHAT=yes</programlisting>
|
||||||
|
in <filename>make.conf</filename>. The first of
|
||||||
|
the next two <filename>Makefile</filename> snippets will
|
||||||
|
cause <command>make index</command> to fail, while the
|
||||||
|
second one will not:
|
||||||
|
<programlisting>.if USE_POINTYHAT
|
||||||
|
.error "POINTYHAT is not supported"
|
||||||
|
.endif</programlisting>
|
||||||
|
<programlisting>.if USE_POINTYHAT
|
||||||
|
IGNORE=POINTYHAT is not supported
|
||||||
|
.endif</programlisting>
|
||||||
|
</para>
|
||||||
|
</example>
|
||||||
|
|
||||||
|
<para>If <command>make describe</command> produces a string
|
||||||
|
rather than an error message, you are probably safe. See
|
||||||
|
<filename>bsd.port.mk</filename> for the meaning of the
|
||||||
|
string produced.</para>
|
||||||
|
|
||||||
|
<para>Also note that running a recent version of
|
||||||
|
<command>portlint</command> (as specified in the next section)
|
||||||
|
will cause <command>make describe</command> to be run
|
||||||
|
automatically.</para>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="testing-portlint">
|
<sect1 id="testing-portlint">
|
||||||
<title>Portlint</title>
|
<title>Portlint</title>
|
||||||
|
|
||||||
<para>Do check your work with <link
|
<para>Do check your work with <link
|
||||||
linkend="porting-portlint"><command>portlint</command></link>
|
linkend="porting-portlint"><command>portlint</command></link>
|
||||||
before you submit or commit it.</para>
|
before you submit or commit it. <command>portlint</command>
|
||||||
</sect1>
|
warns you about many common errors, both functional and
|
||||||
|
stylistic. For a new (or repocopied) port,
|
||||||
|
<command>portlint -A</command> is the most thorough; for an
|
||||||
|
existing port, <command>portlint -C</command> is sufficient.</para>
|
||||||
|
|
||||||
|
<para>Since <command>portlint</command> uses heuristics to
|
||||||
|
try to figure out errors, it can produce false positive
|
||||||
|
warnings. In addition, occasionally something that is
|
||||||
|
flagged as a problem really cannot be done in any other
|
||||||
|
way due to limitations in the ports framework. When in
|
||||||
|
doubt, the best thing to do is ask on &a.ports;.</para>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="porting-prefix">
|
<sect1 id="porting-prefix">
|
||||||
<title><makevar>PREFIX</makevar></title>
|
<title><makevar>PREFIX</makevar></title>
|
||||||
|
|
Loading…
Reference in a new issue