<!--

  The FreeBSD Documentation Project

  $FreeBSD$

  This file documents the values of the USES make variable.  The format is
  easy to grasp from the already-added entries below (or use this scheme
  below as a skeleton):

<row>
  <entry><literal>FEATURE</literal></entry>
  <entry>ARGUMENTS</entry>
  <entry>DESCRIPTION</entry>
</row>

-->

<row>
  <entry><literal>ada</literal></entry>
  <entry>(none)</entry>
  <entry>Depends on an <application>Ada</application>-capable compiler, and
    sets <makevar>CC</makevar> accordingly.</entry>
</row>

<row>
  <entry><literal>bison</literal></entry>
  <entry>(none), <literal>build</literal>, <literal>run</literal>,
    <literal>both</literal></entry>
  <entry>Implies that the port uses <filename
      role="package">devel/bison</filename> in one way or another.  By
    default, with no arguments or with the <literal>build</literal>
    argument, it implies <command>bison</command> as a build-time
    dependency, <literal>run</literal> implies a run-time dependency,
    and <literal>both</literal> implies both run-time and build-time
    dependencies.</entry>
</row>

<row>
  <entry><literal>charsetfix</literal></entry>
  <entry>(none)</entry>
  <entry>Prevents the port from installing <filename>charset.alias</filename>.
    This should be installed only by
    <filename role="package">converters/libiconv</filename>.
    <makevar>CHARSETFIX_MAKEFILEIN</makevar> can be set to a path relative
    to <makevar>WRKSRC</makevar> if <filename>charset.alias</filename> is
    not installed by
    <makevar>WRKSRC</makevar>/<filename>Makefile.in</filename>.</entry>
</row>

<row>
  <entry><literal>cmake</literal></entry>
  <entry>(none), <literal>outsource</literal></entry>

  <entry>The port will use <application>CMake</application> for
    configuring and building.  With the <literal>outsource</literal>
    argument, an out-of-source build will be performed.  For more
    information see <xref linkend="using-cmake"/>.</entry>
</row>

<row>
  <entry><literal>desktop-file-utils</literal></entry>
  <entry>(none)</entry>

  <entry>Implies that the port uses the
    <application>update-desktop-database</application> from
    <filename role="package">devel/desktop-file-utils</filename>.
    This uses will automatically add a post-install step in such a way
    that the port itself still can specify there own post-install step
    if needed.  It also insert lines into the plist for package
    install and removal to run
    <application>update-desktop-database</application>.</entry>
</row>

<row>
  <entry><literal>fuse</literal></entry>
  <entry>(none)</entry>

  <entry>Implies the port will depend on the FUSE library and handle
    the dependency on the kernel module depending on the version
    of &os;.</entry>
</row>

<row>
  <entry><literal>gettext</literal></entry>
  <entry>(none), <literal>lib</literal>, <literal>build</literal>,
    <literal>run</literal></entry>
  <entry>Implies that the port uses <filename
      role="package">devel/gettext</filename> in one way or another.  By
    default, with no arguments or with the <literal>lib</literal>
    argument, implies <command>gettext</command> with build-time and 
    run-time dependencies, <literal>build</literal> implies a build-time
    dependency, and <literal>run</literal> implies a run-time
    dependency.</entry>
</row>

<row>
  <entry><literal>iconv</literal></entry>
  <entry>(none)</entry>
  <entry>Implies that the port uses <filename
      role="package">converters/libiconv</filename> as build-time and
    run-time dependency.
  </entry>
</row>

<row>
  <entry><literal>ncurses</literal></entry>
  <entry>(none), <literal>base</literal>, <literal>port</literal></entry>
  <entry>Implies that the port uses <application>ncurses</application>, and
    causes some useful variables to be set.</entry>
</row>

<row>
  <entry><literal>pathfix</literal></entry>
  <entry>(none)</entry>
  <entry>Look for the <filename>Makefile.in</filename> and
    <filename>configure</filename> files in the port's associated
    sources and fix common paths to make sure they respect the &os;
    hierarchy.</entry>
</row>

<row>
  <entry><literal>pkgconfig</literal></entry>

  <entry>(none), <literal>build</literal>, <literal>run</literal>,
    <literal>both</literal></entry>

  <entry>Implies that the port uses <filename
      role="package">devel/pkgconf</filename> in one way or another.
    With no arguments or with the <literal>build</literal>
    argument, it implies <command>pkg-config</command> as a build-time
    dependency; <literal>run</literal> implies a run-time dependency;
    and <literal>both</literal> implies both run-time and build-time
    dependencies.</entry>
</row>

<row>
  <entry><literal>qmail</literal></entry>
  <entry>(none), <literal>build</literal>, <literal>run</literal>,
    <literal>both</literal>, <literal>vars</literal></entry>
  <entry>Implies that the port uses <filename
      role="package">mail/qmail</filename> in one way or another.
    With the <literal>build</literal> argument, it implies
    <command>qmail</command> as a build-time dependency.
    <literal>run</literal> implies a run-time dependency.  Using no
    argument or the <literal>both</literal> argument implies both
    run-time and build-time dependencies.  <literal>vars</literal>
    will only set QMAIL variables for the port to use.</entry>
</row>

<row>
  <entry><literal>readline</literal></entry>
  <entry>(none), port</entry>
  <entry>Implies that the port uses <application>readline</application> as
    library dependency, and sets <makevar>CPPFLAGS</makevar> and
    <makevar>LDFLAGS</makevar> as necessary.</entry>
</row>

<row>
  <entry><literal>shared-mime-info</literal></entry>
  <entry>(none)</entry>

  <entry>Implies that the port uses
    <application>update-mime-database</application> from
    <filename role="package">misc/shared-mime-info</filename>.  This
    uses will automatically add a post-install step in such a way that
    the port itself still can specify there own post-install step if
    needed.  It also insert lines into the plist for package install
    and removal to run
    <application>update-mime-data</application> with the correct
    arguments.</entry>
</row>

<row>
  <entry><literal>shebangfix</literal></entry>
  <entry>(none)</entry>
  <entry>A lot of software uses incorrect locations for script interpreters,
    most notably <filename>/usr/bin/perl</filename> and
    <filename>/bin/bash</filename>.  This fixes shebang lines in scripts
    listed in <makevar>SHEBANG_FILES</makevar>.  Currently
    <application>Perl</application>, <application>Python</application>,
    <application>Bash</application>, <application>Ruby</application>,
    and <application>PHP</application> are supported by default.
    To support another interpreter, set <makevar>SHEBANG_LANG</makevar>
    (for example <literal><makevar>SHEBANG_LANG</makevar>=lua</literal>), then
    <makevar>lua_OLD_CMD</makevar> and <makevar>lua_CMD</makevar>.</entry>
</row>

<row>
  <entry><literal>zenoss</literal></entry>
  <entry>(none)</entry>
  <entry>Implies the port uses <filename
      role="package">net-mgmt/zenoss</filename> in one way or another,
    but largely is used for building zenoss related zenpack
    ports.</entry>
</row>