Update and expand description of various make(1) implementations.

Revised version of patch supplied.

Submitted by:	Alexey Dokuchaev <danfe@FreeBSD.org>
This commit is contained in:
Warren Block 2014-02-16 03:09:35 +00:00
parent a7527eca9c
commit 65dfef17ab
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=43955

View file

@ -313,39 +313,34 @@ IGNORE= may not be redistributed because of licensing reasons. Please visit <rep
</sect2>
<sect2 xml:id="using-make">
<title><command>make</command>, <command>gmake</command>, and
<command>imake</command></title>
<title><command>make</command>, <command>gmake</command>,
<command>fmake</command>, and <command>imake</command></title>
<para>If your port uses <application>GNU make</application>,
set <literal>USES= gmake</literal>.</para>
<para>Several differing <literal>make</literal>
implementations exist. Ported software often requires a
particular implementation, like <acronym>GNU</acronym>
<command>make</command>, known in &os; as
<command>gmake</command>, or <command>fmake</command>, the
legacy &os; <command>make</command>.</para>
<table frame="none">
<title>Variables for Ports Related to
<application>gmake</application></title>
<para>If the port uses <application>GNU make</application>,
add <literal>gmake</literal> to <literal>USES</literal>. If
the legacy &os; <command>make</command> is needed, add
<literal>fmake</literal> there.</para>
<tgroup cols="2">
<thead>
<row>
<entry>Variable</entry>
<entry>Means</entry>
</row>
</thead>
<tbody>
<row>
<entry><varname>USES= gmake</varname></entry>
<entry>The port requires <command>gmake</command> to
build.</entry>
</row>
<row>
<entry><varname>GMAKE</varname></entry>
<entry>The full path for <command>gmake</command> if
it is not in the <envar>PATH</envar>.</entry>
</row>
</tbody>
</tgroup>
</table>
<para><varname>MAKE_CMD</varname> can be used to reference the
specific command configured by the <literal>USES</literal>
setting in the port's <filename>Makefile</filename>. In
rare cases when more than one <literal>make</literal>
implementation is listed in <literal>USES</literal>, the
variables <varname>GMAKE</varname> (for the
<acronym>GNU</acronym> version) or <varname>FMAKE</varname>
(for the legacy &os; version) are available. Most ports
should only use <varname>MAKE_CMD</varname> within the
application <filename>Makefile</filename>s in
<varname>WRKSRC</varname> to call the
<command>make</command> implementation expected by the
ported software.</para>
<para>If your port is an X application that creates
<filename>Makefile</filename> files from