doc/en_US.ISO8859-1/books/porters-handbook/uses/chapter.xml
2017-02-14 21:40:12 +00:00

2643 lines
83 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!--
The FreeBSD Documentation Project
$FreeBSD$
-->
<!--
Document up-to date with r416240 revision of the ports tree.
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):
<sect1 xml:id="uses-FEATURE">
<title><literal>FEATURE</literal></title>
<para>Possible arguments: ARGUMENTS</para>
<para>DESCRIPTION</para>
</sect1>
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink=
"http://www.w3.org/1999/xlink" version="5.0" xml:id="uses">
<title xml:id="uses-values">Using <varname>USES</varname>
Macros</title>
<sect1 xml:id="uses-intro">
<title>An Introduction to <varname>USES</varname></title>
<para><varname>USES</varname> macros make it easy to declare
requirements and settings for a port. They can add
dependencies, change building behavior, add metadata to
packages, and so on, all by selecting simple, preset
values..</para>
<para>Each section in this chapter describes a possible value for
<varname>USES</varname>, along with its possible arguments.
Arguments are appeneded to the value after a colon
(<literal>:</literal>). Multiple arguments are separated by
commas (<literal>,</literal>).</para>
<example>
<title>Using Multiple Values</title>
<programlisting>USES= bison perl</programlisting>
</example>
<example>
<title>Adding an Argument</title>
<programlisting>USES= gmake:lite</programlisting>
</example>
<example>
<title>Adding Multiple Arguments</title>
<programlisting>USES= drupal:7,theme</programlisting>
</example>
<example>
<title>Mixing it All Together</title>
<programlisting>USES= pgsql:9.3+ cpe python:2.7,build</programlisting>
</example>
</sect1>
<sect1 xml:id="uses-7z">
<title><literal>7z</literal></title>
<para>Possible arguments: (none), <literal>p7zip</literal>,
<literal>partial</literal></para>
<para>Extract using &man.7z.1; instead of &man.bsdtar.1; and sets
<literal>EXTRACT_SUFX=.7z</literal>. The
<literal>p7zip</literal> option forces a dependency on the
<command>7z</command> from <package
role="port">archivers/p7zip</package> if the one from the base
system is not able to extract the files.
<varname>EXTRACT_SUFX</varname> is not changed if the
<literal>partial</literal> option is used, this can be used if
the main distribution file does not have a
<filename>.7z</filename> extension.</para>
</sect1>
<sect1 xml:id="uses-ada">
<title><literal>ada</literal></title>
<para>Possible arguments: (none),
<literal>5</literal>,
<literal>6</literal></para>
<para>Depends on an <application>Ada</application>-capable
compiler, and sets <varname>CC</varname> accordingly. Defaults
to use <application>gcc</application> 5 from ports. Use the
<literal>:<replaceable>X</replaceable></literal> version option
to force building with a different version.</para>
</sect1>
<sect1 xml:id="uses-autoreconf">
<title><literal>autoreconf</literal></title>
<para>Possible arguments: (none), <literal>build</literal></para>
<para>Runs <command>autoreconf</command>. It encapsulates the
<command>aclocal</command>, <command>autoconf</command>,
<command>autoheader</command>, <command>automake</command>,
<command>autopoint</command>, and <command>libtoolize</command>
commands. Each command applies to
<filename>${AUTORECONF_WRKSRC}/configure.ac</filename> or its
old name,
<filename>${AUTORECONF_WRKSRC}/configure.in</filename>. If
<filename>configure.ac</filename> defines subdirectories with
their own <filename>configure.ac</filename> using
<literal>AC_CONFIG_SUBDIRS</literal>,
<command>autoreconf</command> will recursively update those as
well. The <literal>:build</literal> argument only adds build
time dependencies on those tools but does not run
<command>autoreconf</command>. A port can set
<varname>AUTORECONF_WRKSRC</varname> if
<varname>WRKSRC</varname> does not contain the path to
<filename>configure.ac</filename>.</para>
</sect1>
<sect1 xml:id="uses-blaslapack">
<title><literal>blaslapack</literal></title>
<para>Possible arguments: (none), <literal>atlas</literal>,
<literal>netlib</literal> (default),
<literal>gotoblas</literal>, <literal>openblas</literal></para>
<para>Adds dependencies on Blas / Lapack libraries.</para>
</sect1>
<sect1 xml:id="uses-bdb">
<title><literal>bdb</literal></title>
<para>Possible arguments: (none), <literal>48</literal>,
<literal>5</literal> (default), <literal>6</literal></para>
<para>Add dependency on the <application>Berkeley DB</application>
library. Default to <package
role="port">databases/db5</package>. It can also depend on
<package role="port">databases/db48</package> when using the
<literal>:48</literal> argument or <package
role="port">databases/db6</package> with
<literal>:6</literal>. It is possible to declare a range of
acceptable values, <literal>:48+</literal> finds the highest
installed version, and falls back to 4.8 if nothing else is
installed. <varname>INVALID_BDB_VER</varname> can be used to
specify versions which do not work with this port. The
framework exposes the following variables to the port:</para>
<variablelist>
<varlistentry>
<term><varname>BDB_LIB_NAME</varname></term>
<listitem>
<para>The name of the <application>Berkeley DB</application>
library. For example, when using <package
role="port">databases/db5</package>, it contains
<literal>db-5.3</literal>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>BDB_LIB_CXX_NAME</varname></term>
<listitem>
<para>The name of the <application>Berkeley DB</application>
<application>C++</application> library. For example, when
using <package role="port">databases/db5</package>, it
contains <literal>db_cxx-5.3</literal>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>BDB_INCLUDE_DIR</varname></term>
<listitem>
<para>The location of the <application>Berkeley
DB</application> include directory. For example, when
using <package role="port">databases/db5</package>, it
will contain
<literal>${LOCALBASE}/include/db5</literal>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>BDB_LIB_DIR</varname></term>
<listitem>
<para>The location of the <application>Berkeley
DB</application> library directory. For example, when
using <package role="port">databases/db5</package>, it
contains <literal>${LOCALBASE}/lib</literal>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>BDB_VER</varname></term>
<listitem>
<para>The detected <application>Berkeley DB</application>
version. For example, if using
<literal>USES=bdb:48+</literal> and <application>Berkeley
DB</application> 5 is installed, it contains
<literal>5</literal>.</para>
</listitem>
</varlistentry>
</variablelist>
<important>
<para><package role="port">databases/db48</package> is
deprecated and unsupported. It must not be used by any
port.</para>
</important>
</sect1>
<sect1 xml:id="uses-bison">
<title><literal>bison</literal></title>
<para>Possible arguments: (none), <literal>build</literal>,
<literal>run</literal>, <literal>both</literal></para>
<para>Uses <package role="port">devel/bison</package> By default,
with no arguments or with the <literal>build</literal> argument,
it implies <command>bison</command> is a build-time dependency,
<literal>run</literal> implies a run-time dependency, and
<literal>both</literal> implies both run-time and build-time
dependencies.</para>
</sect1>
<sect1 xml:id="uses-charsetfix">
<title><literal>charsetfix</literal></title>
<para>Possible arguments: (none)</para>
<para>Prevents the port from installing
<filename>charset.alias</filename>. This must be installed only
by <package role="port">converters/libiconv</package>.
<varname>CHARSETFIX_MAKEFILEIN</varname> can be set to a path
relative to <varname>WRKSRC</varname> if
<filename>charset.alias</filename> is not installed by
<filename>${WRKSRC}/Makefile.in</filename>.</para>
</sect1>
<sect1 xml:id="uses-cmake">
<title><literal>cmake</literal></title>
<para>Possible arguments: (none), <literal>outsource</literal>,
<literal>run</literal></para>
<para>Uses <application>CMake</application> for configuring and
building. With the <literal>outsource</literal> argument, an
out-of-source build will be performed. With the
<literal>run</literal> argument, a run-time dependency is
registered. For more information see <xref
linkend="using-cmake"/>.</para>
</sect1>
<sect1 xml:id="uses-compiler">
<title><literal>compiler</literal></title>
<para>Possible arguments: (none), <literal>c++14-lang</literal>,
<literal>c++11-lang</literal>, <literal>gcc-c++11-lib</literal>,
<literal>c++11-lib</literal>, <literal>c++0x</literal>,
<literal>c11</literal>, <literal>openmp</literal>,
<literal>nestedfct</literal>, <literal>features</literal></para>
<para>Determines which compiler to use based on any given wishes.
Use <literal>c++14-lang</literal> if the port needs a
C++14-capable compiler, <literal>gcc-c++11-lib</literal> if the
port needs the <command>g++</command> compiler with a C++11
library, or <literal>c++11-lib</literal> if the port needs
a C++11-ready standard library. If the port needs a compiler
understanding C++11, C++0X, C11, OpenMP, or nested functions,
the corresponding parameters can be used. Use
<literal>features</literal> to request a list of features
supported by the default compiler. After including
<filename>bsd.port.pre.mk</filename> the port can inspect the
results using these variables:</para>
<itemizedlist>
<listitem>
<para><varname>COMPILER_TYPE</varname>: the default compiler
on the system, either gcc or clang</para>
</listitem>
<listitem>
<para><varname>ALT_COMPILER_TYPE</varname>: the alternative
compiler on the system, either gcc or clang. Only set if
two compilers are present in the base system.</para>
</listitem>
<listitem>
<para><varname>COMPILER_VERSION</varname>: the first two
digits of the version of the default compiler.</para>
</listitem>
<listitem>
<para><varname>ALT_COMPILER_VERSION</varname>: the first two
digits of the version of the alternative compiler, if
present.</para>
</listitem>
<listitem>
<para><varname>CHOSEN_COMPILER_TYPE</varname>: the chosen
compiler, either gcc or clang</para>
</listitem>
<listitem>
<para><varname>COMPILER_FEATURES</varname>: the features
supported by the default compiler. It currently lists the
C++ library.</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="uses-cpe">
<title><literal>cpe</literal></title>
<para>Possible arguments: (none)</para>
<para>Include Common Platform Enumeration
(<acronym>CPE</acronym>) information in package manifest as a
<acronym>CPE</acronym> 2.3 formatted string. See the <link
xlink:href="http://scap.nist.gov/specifications/cpe/"><acronym>CPE</acronym>
specification</link> for details. To add
<acronym>CPE</acronym> information to a port, follow these
steps:</para>
<procedure>
<step>
<para>Search for the official CPE para for the software
product either by using the NVD's <link
xlink:href="http://web.nvd.nist.gov/view/cpe/search"><acronym>CPE</acronym>
search engine</link> or in the <link
xlink:href="http://static.nvd.nist.gov/feeds/xml/cpe/dictionary/official-cpe-dictionary_v2.3.xml">official
<acronym>CPE</acronym> dictionary</link> (warning, very
large <acronym>XML</acronym> file). <emphasis>Do not ever
make up <acronym>CPE</acronym> data.</emphasis></para>
</step>
<step>
<para>Add <literal>cpe</literal> to <varname>USES</varname>
and compare the result of <command>make -V CPE_STR</command>
to the <acronym>CPE</acronym> dictionary para. Continue one
step at a time until <command>make -V CPE_STR</command> is
correct.</para>
</step>
<step>
<para>If the product name (second field, defaults to
<varname>PORTNAME</varname>) is incorrect, define
<varname>CPE_PRODUCT</varname>.</para>
</step>
<step>
<para>If the vendor name (first field, defaults to
<varname>CPE_PRODUCT</varname>) is incorrect, define
<varname>CPE_VENDOR</varname>.</para>
</step>
<step>
<para>If the version field (third field, defaults to
<varname>PORTVERSION</varname>) is incorrect, define
<varname>CPE_VERSION</varname>.</para>
</step>
<step>
<para>If the update field (fourth field, defaults to empty) is
incorrect, define <varname>CPE_UPDATE</varname>.</para>
</step>
<step>
<para>If it is still not correct, check
<filename>Mk/Uses/cpe.mk</filename> for additional details,
or contact the &a.ports-secteam;.</para>
</step>
<step>
<para>Derive as much as possible of the <acronym>CPE</acronym>
name from existing variables such as
<varname>PORTNAME</varname> and
<varname>PORTVERSION</varname>. Use variable modifiers to
extract the relevant portions from these variables rather
than hardcoding the name.</para>
</step>
<step>
<para><emphasis>Always</emphasis> run <command>make -V
CPE_STR</command> and check the output before committing
anything that changes <varname>PORTNAME</varname> or
<varname>PORTVERSION</varname> or any other variable which
is used to derive <varname>CPE_STR</varname>.</para>
</step>
</procedure>
</sect1>
<sect1 xml:id="uses-cran">
<title><literal>cran</literal></title>
<para>Possible arguments: (none),
<literal>auto-plist</literal></para>
<para>Uses the Comprehensive R Archive Network. Specify
<varname>auto-plist</varname> to automatically generate
<filename>pkg-plist</filename>.</para>
</sect1>
<sect1 xml:id="uses-desktop-file-utils">
<title><literal>desktop-file-utils</literal></title>
<para>Possible arguments: (none)</para>
<para>Uses <application>update-desktop-database</application> from
<package role="port">devel/desktop-file-utils</package>. An
extra post-install step will be run without interfering with any
post-install steps already in the port
<filename>Makefile</filename>. A line with <link
linkend="plist-keywords-desktop-file-utils"><literal>@desktop-file-utils</literal></link>
will be added to the plist.</para>
</sect1>
<sect1 xml:id="uses-desthack">
<title><literal>desthack</literal></title>
<para>Possible arguments: (none)</para>
<para>Changes the behavior of GNU configure to properly support
<varname>DESTDIR</varname> in case the original software does
not.</para>
</sect1>
<sect1 xml:id="uses-display">
<title><literal>display</literal></title>
<para>Possible arguments: (none),
<replaceable>ARGS</replaceable></para>
<para>Set up a virtual display environment. If the environment
variable <varname>DISPLAY</varname> is not set, then
<application>Xvfb</application> is added as a build dependency,
and <varname>CONFIGURE_ENV</varname> is extended with the port
number of the currently running instance of
<application>Xvfb</application>. The
<replaceable>ARGS</replaceable>
parameter defaults to <literal>install</literal> and controls
the phase around which to start and stop the virtual
display.</para>
</sect1>
<sect1 xml:id="uses-dos2unix">
<title><literal>dos2unix</literal></title>
<para>Possible arguments: (none)</para>
<para>The port has files with line endings in
<acronym>DOS</acronym> format which need to be converted.
Several variables can be set to control which files will be
converted. The default is to convert <emphasis>all</emphasis>
files, including binaries. See <xref
linkend="slow-patch-automatic-replacements"/> for
examples.</para>
<itemizedlist>
<listitem>
<para><varname>DOS2UNIX_REGEX</varname>: match file names
based on a regular expression.</para>
</listitem>
<listitem>
<para><varname>DOS2UNIX_FILES</varname>: match literal file
names.</para>
</listitem>
<listitem>
<para><varname>DOS2UNIX_GLOB</varname>: match file names based
on a glob pattern.</para>
</listitem>
<listitem>
<para><varname>DOS2UNIX_WRKSRC</varname>: the directory from
which to start the conversions. Defaults to
<literal>${WRKSRC}</literal>.</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="uses-drupal">
<title><literal>drupal</literal></title>
<para>Possible arguments: <literal>6</literal>,
<literal>7</literal>, <literal>module</literal>,
<literal>theme</literal></para>
<para>Automate installation of a port that is a
<application>Drupal</application> theme or module. Use with the
version of Drupal that the port is expecting. For example,
<literal>USES=drupal:6,module</literal> says that this port
creates a Drupal 6 module. A Drupal 7 theme can be specified
with <literal>USES=drupal:7,theme</literal>.</para>
</sect1>
<sect1 xml:id="uses-execinfo">
<title><literal>execinfo</literal></title>
<para>Possible arguments: (none)</para>
<para>Add a library dependency on <package
role="port">devel/libexecinfo</package> if
<filename>libexecinfo.so</filename> is not present in the base
system.</para>
</sect1>
<sect1 xml:id="uses-fakeroot">
<title><literal>fakeroot</literal></title>
<para>Possible arguments: (none)</para>
<para>Changes some default behavior of build systems to allow
installing as a user. See <link
xlink:href="http://fakeroot.alioth.debian.org/"/>for more
information on <command>fakeroot</command>.</para>
</sect1>
<sect1 xml:id="uses-fam">
<title><literal>fam</literal></title>
<para>Possible arguments: (none), <literal>fam</literal>,
<literal>gamin</literal></para>
<para>Uses a File Alteration Monitor as a library dependency,
either <package role="port">devel/fam</package> or <package
role="port">devel/gamin</package>. End users can set
WITH_FAM_SYSTEM to specify their preference.</para>
</sect1>
<sect1 xml:id="uses-firebird">
<title><literal>firebird</literal></title>
<para>Possible arguments: (none), <literal>25</literal></para>
<para>Add a dependency to the client library of the Firebird
database.</para>
</sect1>
<sect1 xml:id="uses-fmake">
<title><literal>fmake</literal></title>
<para>Possible arguments: (none)</para>
<para>Uses <package role="port">devel/fmake</package> as a
build-time dependency.</para>
</sect1>
<sect1 xml:id="uses-fonts">
<title><literal>fonts</literal></title>
<para>Possible arguments: (none), <literal>fc</literal>,
<literal>fcfontsdir</literal> (default),
<literal>fontsdir</literal>, <literal>none</literal></para>
<para>Adds a runtime dependency on tools needed to register fonts.
Depending on the argument, add a <literal><link
linkend="plist-keywords-fc">@fc</link> ${FONTSDIR}</literal>
line, <literal><link
linkend="plist-keywords-fcfontsdir">@fcfontsdir</link>
${FONTSDIR}</literal> line, <literal><link
linkend="plist-keywords-fontsdir">@fontsdir</link>
${FONTSDIR}</literal> line, or no line if the argument is
<literal>none</literal>, to the plist.
<varname>FONTSDIR</varname> defaults to
<filename>${PREFIX}/share/fonts/${FONTNAME}</filename> and
<varname>FONTNAME</varname> to <literal>${PORTNAME}</literal>.
Add <literal>FONTSDIR</literal> to <varname>PLIST_SUB</varname>
and <varname>SUB_LIST</varname></para>
</sect1>
<sect1 xml:id="uses-fortran">
<title><literal>fortran</literal></title>
<para>Possible arguments: <literal>gcc</literal> (default)</para>
<para>Uses the GNU Fortran compiler.</para>
</sect1>
<sect1 xml:id="uses-fuse">
<title><literal>fuse</literal></title>
<para>Possible arguments: (none)</para>
<para>The port will depend on the FUSE library and handle the
dependency on the kernel module depending on the version of
&os;.</para>
</sect1>
<sect1 xml:id="uses-gecko">
<title><literal>gecko</literal></title>
<para>Possible arguments: <literal>libxul</literal> (default),
<literal>firefox</literal>, <literal>seamonkey</literal>,
<literal>thunderbird</literal>, <literal>build</literal>,
<literal><replaceable>XY</replaceable></literal>,
<literal><replaceable>XY</replaceable>+</literal></para>
<para>Add a dependency on different
<application>gecko</application> based applications. If
<literal>libxul</literal> is used, it is the only argument
allowed. When the argument is not <literal>libxul</literal>,
the <literal>firefox</literal>, <literal>seamonkey</literal>, or
<literal>thunderbird</literal> arguments can be used, along with
optional <literal>build</literal> and
<literal><replaceable>XY</replaceable></literal>/<literal><replaceable>XY</replaceable>+</literal>
version arguments.</para>
</sect1>
<sect1 xml:id="uses-gem">
<title><literal>gem</literal></title>
<para>Possible arguments: (none),
<literal>noautoplist</literal></para>
<para>Handle building with <application>RubyGems</application>.
If <literal>noautoplist</literal> is used, the packing list is
not generated automatically.</para>
</sect1>
<sect1 xml:id="uses-gettext">
<title><literal>gettext</literal></title>
<para>Possible arguments: (none)</para>
<para>Deprecated. Will include both <link
linkend="uses-gettext-runtime"><literal>gettext-runtime</literal></link>
and <link
linkend="uses-gettext-tools"><literal>gettext-tools</literal></link>.</para>
</sect1>
<sect1 xml:id="uses-gettext-runtime">
<title><literal>gettext-runtime</literal></title>
<para>Possible arguments: (none), <literal>lib</literal>
(default), <literal>build</literal>,
<literal>run</literal></para>
<para>Uses <package role="port">devel/gettext-runtime</package>.
By default, with no arguments or with the <literal>lib</literal>
argument, implies a library dependency on
<filename>libintl.so</filename>. <literal>build</literal> and
<literal>run</literal> implies, respectively a build-time and a
run-time dependency on <filename>gettext</filename>.</para>
</sect1>
<sect1 xml:id="uses-gettext-tools">
<title><literal>gettext-tools</literal></title>
<para>Possible arguments: (none), <literal>build</literal>
(default), <literal>run</literal></para>
<para>Uses <package role="port">devel/gettext-tools</package>. By
default, with no argument, or with the <literal>build</literal>
argument, a build time dependency on <filename>msgfmt</filename>
is registered. With the <literal>run</literal> argument, a
run-time dependency is registered.</para>
</sect1>
<sect1 xml:id="uses-ghostscript">
<title><literal>ghostscript</literal></title>
<para>Possible arguments: <replaceable>X</replaceable>,
<literal>build</literal>, <literal>run</literal>,
<literal>nox11</literal></para>
<para>A specific version <replaceable>X</replaceable> can be used.
Possible versions are <literal>7</literal>,
<literal>8</literal>, <literal>9</literal>, and
<literal>agpl</literal> (default). <literal>nox11</literal>
indicates
that the <literal>-nox11</literal> version of the port is
required. <literal>build</literal> and <literal>run</literal>
add build- and run-time dependencies on
<application>Ghostscript</application>. The default is both
build- and run-time dependencies.</para>
</sect1>
<sect1 xml:id="uses-gmake">
<title><literal>gmake</literal></title>
<para>Possible arguments: (none)</para>
<para>Uses <package role="port">devel/gmake</package> as a build-time
dependency and sets up the environment to use
<command>gmake</command> as the default <command>make</command>
for the build.</para>
</sect1>
<sect1 xml:id="uses-gnome">
<title><literal>gnome</literal></title>
<para>Possible arguments: (none)</para>
<para>Provides an easy way to depend on
<application>GNOME</application> components. The components
should be listed in <varname>USE_GNOME</varname>. The available
components are:</para>
<itemizedlist>
<listitem>
<para><literal>atk</literal></para>
</listitem>
<listitem>
<para><literal>atkmm</literal></para>
</listitem>
<listitem>
<para><literal>atspi</literal></para>
</listitem>
<listitem>
<para><literal>cairo</literal></para>
</listitem>
<listitem>
<para><literal>cairomm</literal></para>
</listitem>
<listitem>
<para><literal>dconf</literal></para>
</listitem>
<listitem>
<para><literal>esound</literal></para>
</listitem>
<listitem>
<para><literal>evolutiondataserver3</literal></para>
</listitem>
<listitem>
<para><literal>gal2</literal></para>
</listitem>
<listitem>
<para><literal>gconf2</literal></para>
</listitem>
<listitem>
<para><literal>gconfmm26</literal></para>
</listitem>
<listitem>
<para><literal>gdkpixbuf</literal></para>
</listitem>
<listitem>
<para><literal>gdkpixbuf2</literal></para>
</listitem>
<listitem>
<para><literal>glib12</literal></para>
</listitem>
<listitem>
<para><literal>glib20</literal></para>
</listitem>
<listitem>
<para><literal>glibmm</literal></para>
</listitem>
<listitem>
<para><literal>gnomecontrolcenter3</literal></para>
</listitem>
<listitem>
<para><literal>gnomedesktop3</literal></para>
</listitem>
<listitem>
<para><literal>gnomedocutils</literal></para>
</listitem>
<listitem>
<para><literal>gnomemenus3</literal></para>
</listitem>
<listitem>
<para><literal>gnomemimedata</literal></para>
</listitem>
<listitem>
<para><literal>gnomeprefix</literal></para>
</listitem>
<listitem>
<para><literal>gnomesharp20</literal></para>
</listitem>
<listitem>
<para><literal>gnomespeech</literal></para>
</listitem>
<listitem>
<para><literal>gnomevfs2</literal></para>
</listitem>
<listitem>
<para><literal>gsound</literal></para>
</listitem>
<listitem>
<para><literal>gtk-update-icon-cache</literal></para>
</listitem>
<listitem>
<para><literal>gtk12</literal></para>
</listitem>
<listitem>
<para><literal>gtk20</literal></para>
</listitem>
<listitem>
<para><literal>gtk30</literal></para>
</listitem>
<listitem>
<para><literal>gtkhtml3</literal></para>
</listitem>
<listitem>
<para><literal>gtkhtml4</literal></para>
</listitem>
<listitem>
<para><literal>gtkmm20</literal></para>
</listitem>
<listitem>
<para><literal>gtkmm24</literal></para>
</listitem>
<listitem>
<para><literal>gtkmm30</literal></para>
</listitem>
<listitem>
<para><literal>gtksharp10</literal></para>
</listitem>
<listitem>
<para><literal>gtksharp20</literal></para>
</listitem>
<listitem>
<para><literal>gtksourceview</literal></para>
</listitem>
<listitem>
<para><literal>gtksourceview2</literal></para>
</listitem>
<listitem>
<para><literal>gtksourceview3</literal></para>
</listitem>
<listitem>
<para><literal>gtksourceviewmm3</literal></para>
</listitem>
<listitem>
<para><literal>gvfs</literal></para>
</listitem>
<listitem>
<para><literal>intlhack</literal></para>
</listitem>
<listitem>
<para><literal>intltool</literal></para>
</listitem>
<listitem>
<para><literal>introspection</literal></para>
</listitem>
<listitem>
<para><literal>libartlgpl2</literal></para>
</listitem>
<listitem>
<para><literal>libbonobo</literal></para>
</listitem>
<listitem>
<para><literal>libbonoboui</literal></para>
</listitem>
<listitem>
<para><literal>libgda4</literal></para>
</listitem>
<listitem>
<para><literal>libgda5</literal></para>
</listitem>
<listitem>
<para><literal>libgda5-ui</literal></para>
</listitem>
<listitem>
<para><literal>libgdamm</literal></para>
</listitem>
<listitem>
<para><literal>libgdamm5</literal></para>
</listitem>
<listitem>
<para><literal>libglade2</literal></para>
</listitem>
<listitem>
<para><literal>libgnome</literal></para>
</listitem>
<listitem>
<para><literal>libgnomecanvas</literal></para>
</listitem>
<listitem>
<para><literal>libgnomekbd</literal></para>
</listitem>
<listitem>
<para><literal>libgnomeprint</literal></para>
</listitem>
<listitem>
<para><literal>libgnomeprintui</literal></para>
</listitem>
<listitem>
<para><literal>libgnomeui</literal></para>
</listitem>
<listitem>
<para><literal>libgsf</literal></para>
</listitem>
<listitem>
<para><literal>libgtkhtml</literal></para>
</listitem>
<listitem>
<para><literal>libgtksourceviewmm</literal></para>
</listitem>
<listitem>
<para><literal>libidl</literal></para>
</listitem>
<listitem>
<para><literal>librsvg2</literal></para>
</listitem>
<listitem>
<para><literal>libsigc++12</literal></para>
</listitem>
<listitem>
<para><literal>libsigc++20</literal></para>
</listitem>
<listitem>
<para><literal>libwnck</literal></para>
</listitem>
<listitem>
<para><literal>libwnck3</literal></para>
</listitem>
<listitem>
<para><literal>libxml++26</literal></para>
</listitem>
<listitem>
<para><literal>libxml2</literal></para>
</listitem>
<listitem>
<para><literal>libxslt</literal></para>
</listitem>
<listitem>
<para><literal>metacity</literal></para>
</listitem>
<listitem>
<para><literal>nautilus3</literal></para>
</listitem>
<listitem>
<para><literal>orbit2</literal></para>
</listitem>
<listitem>
<para><literal>pango</literal></para>
</listitem>
<listitem>
<para><literal>pangomm</literal></para>
</listitem>
<listitem>
<para><literal>pangox-compat</literal></para>
</listitem>
<listitem>
<para><literal>py3gobject3</literal></para>
</listitem>
<listitem>
<para><literal>pygnome2</literal></para>
</listitem>
<listitem>
<para><literal>pygobject</literal></para>
</listitem>
<listitem>
<para><literal>pygobject3</literal></para>
</listitem>
<listitem>
<para><literal>pygtk2</literal></para>
</listitem>
<listitem>
<para><literal>pygtksourceview</literal></para>
</listitem>
<listitem>
<para><literal>referencehack</literal></para>
</listitem>
<listitem>
<para><literal>vte</literal></para>
</listitem>
<listitem>
<para><literal>vte3</literal></para>
</listitem>
</itemizedlist>
<para>The default dependency is build- and run-time, it can be
changed with <literal>:build</literal> or
<literal>:run</literal>. For example:</para>
<programlisting>USES= gnome
USE_GNOME= gnomemenus3:build intlhack</programlisting>
<para>See <xref linkend="using-gnome"/> for more
information.</para>
</sect1>
<sect1 xml:id="uses-go">
<title><literal>go</literal></title>
<para>Possible arguments: (none)</para>
<para>Sets default values and targets used to build
<application>Go</application> software. A build-time dependency
on <package role="port">lang/go</package> is added. The build
process is controlled by several variables:</para>
<variablelist>
<varlistentry>
<term><varname>GO_PKGNAME</varname></term>
<listitem>
<para>The name of the <application>Go</application> package.
This is the directory that will be created in
<literal>GOPATH/src</literal>. The default value is
<varname>${PORTNAME}</varname>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>GO_TARGET</varname></term>
<listitem>
<para>The name of the packages to build. The default
value is <varname>${GO_PKGNAME}</varname>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>CGO_CFLAGS</varname></term>
<listitem>
<para>Additional <varname>CFLAGS</varname> values to be
passed to the <application>C</application> compiler by
<command>go</command>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>CGO_LDFLAGS</varname></term>
<listitem>
<para>Additional <varname>LDFLAGS</varname> values to be
passed to the <application>C</application> compiler by
<command>go</command>.</para>
</listitem>
</varlistentry>
</variablelist>
</sect1>
<sect1 xml:id="uses-gperf">
<title><literal>gperf</literal></title>
<para>Possible arguments: (none)</para>
<para>Add a buildtime dependency on <package
role="port">devel/gperf</package> if <command>gperf</command>
is not present in the base system.</para>
</sect1>
<sect1 xml:id="uses-gssapi">
<title><literal>gssapi</literal></title>
<para>Possible arguments: (none), <literal>base</literal>
(default), <literal>heimdal</literal>, <literal>mit</literal>,
<literal>flags</literal>, <literal>bootstrap</literal></para>
<para>Handle dependencies needed by consumers of the
<acronym>GSS-API</acronym>. Only libraries that provide the
<application>Kerberos</application> mechanism are available. By
default, or set to <literal>base</literal>, the
<acronym>GSS-API</acronym> library from the base system is used.
Can also be set to <literal>heimdal</literal> to use <package
role="port">security/heimdal</package>, or
<literal>mit</literal> to use <package
role="port">security/krb5</package>.</para>
<para>When the local <application>Kerberos</application>
installation is not in <varname>LOCALBASE</varname>, set
<varname>HEIMDAL_HOME</varname> (for <literal>heimdal</literal>)
or <varname>KRB5_HOME</varname> (for <literal>krb5</literal>) to
the location of the <application>Kerberos</application>
installation.</para>
<para>These variables are exported for the ports to use:</para>
<itemizedlist>
<listitem>
<para><varname>GSSAPIBASEDIR</varname></para>
</listitem>
<listitem>
<para><varname>GSSAPICPPFLAGS</varname></para>
</listitem>
<listitem>
<para><varname>GSSAPIINCDIR</varname></para>
</listitem>
<listitem>
<para><varname>GSSAPILDFLAGS</varname></para>
</listitem>
<listitem>
<para><varname>GSSAPILIBDIR</varname></para>
</listitem>
<listitem>
<para><varname>GSSAPILIBS</varname></para>
</listitem>
<listitem>
<para><varname>GSSAPI_CONFIGURE_ARGS</varname></para>
</listitem>
</itemizedlist>
<para>The <literal>flags</literal> option can be given alongside
<literal>base</literal>, <literal>heimdal</literal>, or
<literal>mit</literal> to automatically add
<varname>GSSAPICPPFLAGS</varname>,
<varname>GSSAPILDFLAGS</varname>, and
<varname>GSSAPILIBS</varname> to <varname>CFLAGS</varname>,
<varname>LDFLAGS</varname>, and <varname>LDADD</varname>,
respectively. For example, use
<literal>base,flags</literal>.</para>
<para>The <literal>bootstrap</literal> option is a special prefix
only for use by <package role="port">security/krb5</package> and
<package role="port">security/heimdal</package>. For example,
use <literal>bootstrap,mit</literal>.</para>
<example>
<title>Typical Use</title>
<programlisting>OPTIONS_SINGLE= GSSAPI
OPTIONS_SINGLE_GSSAPI= GSSAPI_BASE GSSAPI_HEIMDAL GSSAPI_MIT GSSAPI_NONE
GSSAPI_BASE_USES= gssapi
GSSAPI_BASE_CONFIGURE_ON= --with-gssapi=${GSSAPIBASEDIR} ${GSSAPI_CONFIGURE_ARGS}
GSSAPI_HEIMDAL_USES= gssapi:heimdal
GSSAPI_HEIMDAL_CONFIGURE_ON= --with-gssapi=${GSSAPIBASEDIR} ${GSSAPI_CONFIGURE_ARGS}
GSSAPI_MIT_USES= gssapi:mit
GSSAPI_MIT_CONFIGURE_ON= --with-gssapi=${GSSAPIBASEDIR} ${GSSAPI_CONFIGURE_ARGS}
GSSAPI_NONE_CONFIGURE_ON= --without-gssapi</programlisting>
</example>
</sect1>
<sect1 xml:id="uses-horde">
<title><literal>horde</literal></title>
<para>Possible arguments: (none)</para>
<para>Add buildtime and runtime dependencies on <package
role="port">devel/pear-channel-horde</package>. Other
<application>Horde</application> dependencies can be added
with <varname>USE_HORDE_BUILD</varname> and
<varname>USE_HORDE_RUN</varname>. See <xref
linkend="php-horde"/> for more information.</para>
</sect1>
<sect1 xml:id="uses-iconv">
<title><literal>iconv</literal></title>
<para>Possible arguments: (none), <literal>lib</literal>,
<literal>build</literal>,
<literal>patch</literal>, <literal>translit</literal>,
<literal>wchar_t</literal></para>
<para>Uses <command>iconv</command> functions, either from the
port <package role="port">converters/libiconv</package> as a
build-time and run-time dependency, or from the base system on
10-CURRENT after a native <command>iconv</command> was committed
in <revnumber>254273</revnumber>. By default, with no arguments
or with the <literal>lib</literal> argument, implies
<command>iconv</command> with build-time and run-time
dependencies. <literal>build</literal> implies a build-time
dependency, and <literal>patch</literal> implies a patch-time
dependency. If the port uses the <literal>WCHAR_T</literal> or
<literal>//TRANSLIT</literal> iconv extensions, add the relevant
arguments so that the correct iconv is used. For more
information see <xref linkend="using-iconv"/>.</para>
</sect1>
<sect1 xml:id="uses-imake">
<title><literal>imake</literal></title>
<para>Possible arguments: (none), <literal>env</literal>,
<literal>notall</literal>, <literal>noman</literal></para>
<para>Add <package role="port">devel/imake</package> as a
build-time dependency and run <command>xmkmf -a</command> during
the <buildtarget>configure</buildtarget> stage. If the
<literal>env</literal> argument is given, the
<buildtarget>configure</buildtarget> target is not set. If the
<option>-a</option> flag is a problem for the port, add the
<literal>notall</literal> argument. If <command>xmkmf</command>
does not generate a <buildtarget>install.man</buildtarget>
target, add the <literal>noman</literal> argument.</para>
</sect1>
<sect1 xml:id="uses-kde">
<title><literal>kde</literal></title>
<para>Possible arguments: <literal>4</literal></para>
<para>Add dependency on <application>KDE</application> components.
See <xref linkend="using-kde"/> for more information.</para>
</sect1>
<sect1 xml:id="uses-kmod">
<title><literal>kmod</literal></title>
<para>Possible arguments: (none), <literal>debug</literal></para>
<para>Fills in the boilerplate for kernel module ports,
currently:</para>
<itemizedlist>
<listitem>
<para>Add <literal>kld</literal> to
<varname>CATEGORIES</varname>.</para>
</listitem>
<listitem>
<para>Set <varname>SSP_UNSAFE</varname>.</para>
</listitem>
<listitem>
<para>Set <varname>IGNORE</varname> if the kernel sources are
not found in <varname>SRC_BASE</varname>.</para>
</listitem>
<listitem>
<para>Define <varname>KMODDIR</varname> to
<filename>/boot/modules</filename> by default, add it to
<varname>PLIST_SUB</varname> and
<varname>MAKE_ENV</varname>, and create it upon
installation. If <varname>KMODDIR</varname> is set to
<filename>/boot/kernel</filename>, it will be rewritten to
<filename>/boot/modules</filename>. This prevents breaking
packages when upgrading the kernel due to
<filename>/boot/kernel</filename> being renamed to
<filename>/boot/kernel.old</filename> in the process.</para>
</listitem>
<listitem>
<para>Handle cross-referencing kernel modules upon
installation and deinstallation, using <link
linkend="plist-keywords-kld"><literal>@kld</literal></link>.</para>
</listitem>
<listitem>
<para>If the <literal>debug</literal> argument is given, the
port can install a debug version of the module into
<filename>KERN_DEBUGDIR</filename>/<filename>KMODDIR</filename>.
By default, <varname>KERN_DEBUGDIR</varname> is copied from
<varname>DEBUGDIR</varname> and set to
<filename>/usr/lib/debug</filename>. The framework will take
care of creating and removing any required directories.</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="uses-lha">
<title><literal>lha</literal></title>
<para>Possible arguments: (none)</para>
<para>Set <varname>EXTRACT_SUFX</varname> to
<literal>.lzh</literal></para>
</sect1>
<sect1 xml:id="uses-libarchive">
<title><literal>libarchive</literal></title>
<para>Possible arguments: (none)</para>
<para>Registers a dependency on <package
role="port">archivers/libarchive</package>. Any ports
depending on <application>libarchive</application> must include
<literal>USES=libarchive</literal>.</para>
</sect1>
<sect1 xml:id="uses-libedit">
<title><literal>libedit</literal></title>
<para>Possible arguments: (none)</para>
<para>Registers a dependency on <package
role="port">devel/libedit</package>. Any ports depending on
<application>libedit</application> must include
<literal>USES=libedit</literal>.</para>
</sect1>
<sect1 xml:id="uses-libtool">
<title><literal>libtool</literal></title>
<para>Possible arguments: (none), <literal>keepla</literal>,
<literal>build</literal></para>
<para>Patches <command>libtool</command> scripts. This must be
added to all ports that use <command>libtool</command>. The
<literal>keepla</literal> argument can be used to keep
<filename>.la</filename> files. Some ports do not ship with
their own copy of libtool and need a build time dependency on
<package role="port">devel/libtool</package>, use the
<literal>:build</literal> argument to add such
dependency.</para>
</sect1>
<sect1 xml:id="uses-localbase">
<title><literal>localbase</literal></title>
<para>Possible arguments: (none)</para>
<para>Ensures that libraries from dependencies in
<varname>LOCALBASE</varname> are used instead of the ones from
the base system. Ports that depend on libraries that are also
present in the base system should use this. It is also used
internally by a few other <varname>USES</varname>.</para>
</sect1>
<sect1 xml:id="uses-lua">
<title><literal>lua</literal></title>
<para>Possible arguments: (none),
<literal><replaceable>XY</replaceable>+</literal>,
<literal><replaceable>XY</replaceable></literal>,
<literal>build</literal>, <literal>run</literal></para>
<para>Adds a dependency on <application>Lua</application>. By
default this is a library dependency, unless overridden by the
<literal>build</literal> or <literal>run</literal> option. The
default version is 5.2, unless set by the
<literal><replaceable>XY</replaceable></literal> parameter (for
example, <literal>51</literal> or
<literal>52+</literal>).</para>
</sect1>
<sect1 xml:id="uses-makeinfo">
<title><literal>makeinfo</literal></title>
<para>Possible arguments: (none)</para>
<para>Add a build-time dependency on <command>makeinfo</command>
if it is not present in the base system.</para>
</sect1>
<sect1 xml:id="uses-makeself">
<title><literal>makeself</literal></title>
<para>Possible arguments: (none)</para>
<para>Indicates that the distribution files are makeself archives
and sets the appropriate dependencies.</para>
</sect1>
<sect1 xml:id="uses-mate">
<title><literal>mate</literal></title>
<para>Possible arguments: (none)</para>
<para>Provides an easy way to depend on
<application>MATE</application> components. The components
should be listed in <varname>USE_MATE</varname>. The available
components are:</para>
<itemizedlist>
<listitem>
<para><literal>autogen</literal></para>
</listitem>
<listitem>
<para><literal>caja</literal></para>
</listitem>
<listitem>
<para><literal>common</literal></para>
</listitem>
<listitem>
<para><literal>controlcenter</literal></para>
</listitem>
<listitem>
<para><literal>desktop</literal></para>
</listitem>
<listitem>
<para><literal>dialogs</literal></para>
</listitem>
<listitem>
<para><literal>docutils</literal></para>
</listitem>
<listitem>
<para><literal>icontheme</literal></para>
</listitem>
<listitem>
<para><literal>intlhack</literal></para>
</listitem>
<listitem>
<para><literal>intltool</literal></para>
</listitem>
<listitem>
<para><literal>libmatekbd</literal></para>
</listitem>
<listitem>
<para><literal>libmateweather</literal></para>
</listitem>
<listitem>
<para><literal>marco</literal></para>
</listitem>
<listitem>
<para><literal>menus</literal></para>
</listitem>
<listitem>
<para><literal>notificationdaemon</literal></para>
</listitem>
<listitem>
<para><literal>panel</literal></para>
</listitem>
<listitem>
<para><literal>pluma</literal></para>
</listitem>
<listitem>
<para><literal>polkit</literal></para>
</listitem>
<listitem>
<para><literal>settingsdaemon</literal></para>
</listitem>
</itemizedlist>
<para>The default dependency is build- and run-time, it can be
changed with <literal>:build</literal> or
<literal>:run</literal>. For example:</para>
<programlisting>USES= mate
USE_MATE= menus:build intlhack</programlisting>
</sect1>
<sect1 xml:id="uses-metaport">
<title><literal>metaport</literal></title>
<para>Possible arguments: (none)</para>
<para>Sets the following variables to make it easier to create a
metaport: <varname>MASTER_SITES</varname>,
<varname>DISTFILES</varname>, <varname>EXTRACT_ONLY</varname>,
<varname>NO_BUILD</varname>, <varname>NO_INSTALL</varname>,
<varname>NO_MTREE</varname>, <varname>NO_ARCH</varname>.</para>
</sect1>
<sect1 xml:id="uses-mysql">
<title><literal>mysql</literal></title>
<para>Possible arguments: (none),
<literal><replaceable>version</replaceable></literal>,
<literal>client</literal> (default), <literal>server</literal>,
<literal>embedded</literal></para>
<para>Provide support for <application>MySQL</application>. If no
version is given, try to find the current installed version.
Fall back to the default version, MySQL-5.6. The possible
versions are <literal>55</literal>, <literal>55m</literal>,
<literal>55p</literal>, <literal>56</literal>,
<literal>56p</literal>, <literal>57</literal>,
<literal>100m</literal>, and <literal>101m</literal>. The
<literal>m</literal> and <literal>p</literal> suffixes are for
the <application>MariaDB</application> and
<application>Percona</application> variants of
<application>MySQL</application>. <literal>server</literal> and
<literal>embedded</literal> add a build- and run-time dependency
on the <application>MySQL</application> server. When using
<literal>server</literal> or <literal>embedded</literal>, add
<literal>client</literal> to also add a dependency on
<filename>libmysqlclient.so</filename>. A port can set
<varname>IGNORE_WITH_MYSQL</varname> if some versions are not
supported.</para>
<para>The framework sets <varname>MYSQL_VER</varname> to the
detected MySQL version.</para>
</sect1>
<sect1 xml:id="uses-mono">
<title><literal>mono</literal></title>
<para>Possible arguments: (none)</para>
<para>Adds a dependency on the <application>Mono</application>
(currently only C#) framework by setting the appropriate
dependencies.</para>
</sect1>
<sect1 xml:id="uses-motif">
<title><literal>motif</literal></title>
<para>Possible arguments: (none)</para>
<para>Uses <package role="port">x11-toolkits/open-motif</package>
as a library dependency. End users can set
<varname>WANT_LESSTIF</varname> for the dependency to be on
<package role="port">x11-toolkits/lesstif</package> instead of
<package role="port">x11-toolkits/open-motif</package>.</para>
</sect1>
<sect1 xml:id="uses-ncurses">
<title><literal>ncurses</literal></title>
<para>Possible arguments: (none), <literal>base</literal>,
<literal>port</literal></para>
<para>Uses <application>ncurses</application>, and causes some
useful variables to be set.</para>
</sect1>
<sect1 xml:id="uses-ninja">
<title><literal>ninja</literal></title>
<para>Possible arguments: (none)</para>
<para>Uses <application>ninja</application> to build the port.
End users can set <varname>NINJA_VERBOSE</varname> for verbose
output.</para>
</sect1>
<sect1 xml:id="uses-objc">
<title><literal>objc</literal></title>
<para>Possible arguments: (none)</para>
<para>Add objective C dependencies (compiler, runtime library) if
the base system does not support it.</para>
</sect1>
<sect1 xml:id="uses-openal">
<title><literal>openal</literal></title>
<para>Possible arguments: <literal>al</literal>,
<literal>soft</literal> (default), <literal>si</literal>,
<literal>alut</literal></para>
<para>Uses <application>OpenAL</application>. The backend can be
specified, with the software implementation as the default. The
user can specify a preferred backend with
<varname>WANT_OPENAL</varname>. Valid values for this knob are
<literal>soft</literal> (default) and
<literal>si</literal>.</para>
</sect1>
<sect1 xml:id="uses-pathfix">
<title><literal>pathfix</literal></title>
<para>Possible arguments: (none)</para>
<para>Look for <filename>Makefile.in</filename> and
<filename>configure</filename> in
<varname>PATHFIX_WRKSRC</varname> (defaults to
<varname>WRKSRC</varname>)
and fix common paths to make sure they respect the &os;
hierarchy. For example, it fixes the installation directory
of <command>pkgconfig</command>'s <filename>.pc</filename> files
to <filename>${PREFIX}/libdata/pkgconfig</filename>. If
the port uses <command>automake</command>, set
<varname>PATHFIX_MAKEFILEIN</varname> to
<filename>Makefile.am</filename> if needed.</para>
<para>If the port <link
linkend="uses-cmake"><literal>USES=cmake</literal></link> it
will look for <filename>CMakeLists.txt</filename> in
<varname>PATHFIX_WRKSRC</varname>. If needed, that default
filename can be changed with
<varname>PATHFIX_CMAKELISTSTXT</varname>.</para>
</sect1>
<sect1 xml:id="uses-pear">
<title><literal>pear</literal></title>
<para>Possible arguments: (none)</para>
<para>Adds a dependency on <package
role="port">devel/pear</package>. It will setup default
behavior for software using the <application>PHP</application>
Extension and Application Repository. See <xref
linkend="php-pear"/> for more information.</para>
</sect1>
<sect1 xml:id="uses-perl5">
<title><literal>perl5</literal></title>
<para>Possible arguments: (none)</para>
<para>Depends on <application>Perl</application>. These variables
can be set:</para>
<itemizedlist>
<listitem>
<para><varname>PERL_VERSION</varname>: Full version of
<application>Perl</application> to use, or the default if
not set</para>
</listitem>
<listitem>
<para><varname>PERL_ARCH</varname>: Directory name of
architecture dependent libraries, defaults to
<filename>mach</filename></para>
</listitem>
<listitem>
<para><varname>PERL_PORT</varname>: Name of the
<application>Perl</application> port to be installed, the
default is derived from
<varname>PERL_VERSION</varname></para>
</listitem>
<listitem>
<para><varname>SITE_PERL</varname>: Directory name for site
specific <application>Perl</application> packages</para>
</listitem>
<listitem>
<para><varname>USE_PERL5</varname>: Phases in which to use
<application>Perl</application>, can be
<literal>extract</literal>, <literal>patch</literal>,
<literal>build</literal>, <literal>install</literal>, or
<literal>run</literal>. It can also be
<literal>configure</literal>, <literal>modbuild</literal>,
or <literal>modbuildtiny</literal> when
<filename>Makefile.PL</filename>,
<filename>Build.PL</filename>, or the Module::Build::Tiny
flavor of <filename>Build.PL</filename> is required. It
defaults to <literal>build run</literal>.</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="uses-pgsql">
<title><literal>pgsql</literal></title>
<para>Possible arguments: (none),
<literal><replaceable>X.Y</replaceable></literal>,
<literal><replaceable>X.Y</replaceable>+</literal>,
<literal><replaceable>X.Y</replaceable>-</literal></para>
<para>Provide support for PostgreSQL. Maintainer can set version
required. Minimum and maximum versions can be specified; for
example, 9.0-, 8.4+.</para>
<para>Add PostgreSQL component dependency, using
<literal>WANT_PGSQL=component[:target]</literal>. for example,
<literal>WANT_PGSQL=server:configure pltcl plperl</literal> For
the full list use <command>make -V
_USE_PGSQL_DEP</command>.</para>
</sect1>
<sect1 xml:id="uses-php">
<title><literal>php</literal></title>
<para>Possible arguments: (none), <literal>phpize</literal>,
<literal>ext</literal>, <literal>zend</literal>,
<literal>build</literal>, <literal>cli</literal>,
<literal>cgi</literal>, <literal>mod</literal>,
<literal>web</literal>, <literal>embed</literal></para>
<para>Provide support for <application>PHP</application>. Add a
runtime dependency on the default PHP version, <package
role="port">lang/php56</package>.</para>
<variablelist>
<varlistentry>
<term><literal>phpize</literal></term>
<listitem>
<para>Use to build a <application>PHP</application>
extension.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ext</literal></term>
<listitem>
<para>Use to build, install and register a
<application>PHP</application> extension.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>zend</literal></term>
<listitem>
<para>Use to build, install and register a Zend
extension.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>build</literal></term>
<listitem>
<para>Set <application>PHP</application> also as a
build-time dependency.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>cli</literal></term>
<listitem>
<para>Needs the CLI version of
<application>PHP</application>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>cgi</literal></term>
<listitem>
<para>Needs the CGI version of
<application>PHP</application>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>mod</literal></term>
<listitem>
<para>Needs the <application>Apache</application> module for
<application>PHP</application>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>web</literal></term>
<listitem>
<para>Needs the <application>Apache</application> module or
the <acronym>CGI</acronym> version of
<application>PHP</application>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>embed</literal></term>
<listitem>
<para>Needs the embedded library version of
<application>PHP</application>.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Variables are used to specify which
<application>PHP</application> modules are required, as well as
which version of <application>PHP</application> are
supported.</para>
<variablelist>
<varlistentry>
<term><varname>USE_PHP</varname></term>
<listitem>
<para>The list of required <application>PHP</application>
extensions at run-time. Add <literal>:build</literal> to
the extension name to add a build-time dependency.
Example: <literal>pcre xml:build gettext</literal></para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>DEFAULT_PHP_VER</varname></term>
<listitem>
<para>Selects which major version of
<application>PHP</application> will be installed as a
dependency when no <application>PHP</application> is
installed yet. Default is <literal>56</literal>.
Possible values: <literal>55</literal>,
<literal>56</literal>, and <literal>70</literal>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>IGNORE_WITH_PHP</varname></term>
<listitem>
<para>The port does not work with
<application>PHP</application> of the given version.
Possible values: <literal>55</literal>,
<literal>56</literal>, and <literal>7</literal>.</para>
</listitem>
</varlistentry>
</variablelist>
<para>When building a <application>PHP</application> or
<application>Zend</application> extension with
<literal>:ext</literal> or <literal>:zend</literal>, these
variables can be set:</para>
<variablelist>
<varlistentry>
<term><varname>PHP_MODNAME</varname></term>
<listitem>
<para>The name of the <application>PHP</application> or
<application>Zend</application> extension. Default value
is <literal>${PORTNAME}</literal>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>PHP_HEADER_DIRS</varname></term>
<listitem>
<para>A list of subdirectories from which to install header
files. The framework will always install the header files
that are present in the same directory as the
extension.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>PHP_MOD_PRIO</varname></term>
<listitem>
<para>The priority at which to load the extension. It is a
number between <literal>00</literal> and
<literal>99</literal>.</para>
<para>For extensions that do not depend on any extension,
the priority is automatically set to
<literal>20</literal>, for extensions that depend on
another extension, the priority is automatically set to
<literal>30</literal>. Some extensions may need to be
loaded before every other extension, for example <package
role="port">www/php56-opcache</package>. Some may need
to be loaded after an extension with a priority of
<literal>30</literal>. In that case, add
<literal>PHP_MOD_PRIO=<replaceable>XX</replaceable></literal>
in the port's Makefile. For example:</para>
<programlisting>USES= php:ext
USE_PHP= wddx
PHP_MOD_PRIO= 40</programlisting>
</listitem>
</varlistentry>
</variablelist>
</sect1>
<sect1 xml:id="uses-pkgconfig">
<title><literal>pkgconfig</literal></title>
<para>Possible arguments: (none), <literal>build</literal>
(default), <literal>run</literal>,
<literal>both</literal></para>
<para>Uses <package role="port">devel/pkgconf</package>. 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.</para>
</sect1>
<sect1 xml:id="uses-pure">
<title><literal>pure</literal></title>
<para>Possible arguments: (none), <literal>ffi</literal></para>
<para>Uses <package role="port">lang/pure</package>. Largely used
for building related <application>pure</application> ports.
With the <literal>ffi</literal> argument, it implies <package
role="port">devel/pure-ffi</package> as a run-time
dependency.</para>
</sect1>
<sect1 xml:id="uses-pyqt">
<title><literal>pyqt</literal></title>
<para>Possible arguments: (none), <literal>4</literal>,
<literal>5</literal></para>
<para>Uses <application>PyQt</application>. If the port is part
of PyQT itself, set <varname>PYQT_DIST</varname>. Use
<varname>USE_PYQT</varname> to select the components the port
needs. The available components are:</para>
<itemizedlist>
<listitem>
<para><literal>core</literal></para>
</listitem>
<listitem>
<para><literal>dbus</literal></para>
</listitem>
<listitem>
<para><literal>dbussupport</literal></para>
</listitem>
<listitem>
<para><literal>demo</literal></para>
</listitem>
<listitem>
<para><literal>designer</literal></para>
</listitem>
<listitem>
<para><literal>designerplugin</literal></para>
</listitem>
<listitem>
<para><literal>doc</literal></para>
</listitem>
<listitem>
<para><literal>gui</literal></para>
</listitem>
<listitem>
<para><literal>multimedia</literal></para>
</listitem>
<listitem>
<para><literal>network</literal></para>
</listitem>
<listitem>
<para><literal>opengl</literal></para>
</listitem>
<listitem>
<para><literal>qscintilla2</literal></para>
</listitem>
<listitem>
<para><literal>sip</literal></para>
</listitem>
<listitem>
<para><literal>sql</literal></para>
</listitem>
<listitem>
<para><literal>svg</literal></para>
</listitem>
<listitem>
<para><literal>test</literal></para>
</listitem>
<listitem>
<para><literal>webkit</literal></para>
</listitem>
<listitem>
<para><literal>xml</literal></para>
</listitem>
<listitem>
<para><literal>xmlpatterns</literal></para>
</listitem>
</itemizedlist>
<para>These components are only available with
<application>PyQT4</application>:</para>
<itemizedlist>
<listitem>
<para><literal>assistant</literal></para>
</listitem>
<listitem>
<para><literal>declarative</literal></para>
</listitem>
<listitem>
<para><literal>help</literal></para>
</listitem>
<listitem>
<para><literal>phonon</literal></para>
</listitem>
<listitem>
<para><literal>script</literal></para>
</listitem>
<listitem>
<para><literal>scripttools</literal></para>
</listitem>
</itemizedlist>
<para>These components are only available with
<application>PyQT5</application>:</para>
<itemizedlist>
<listitem>
<para><literal>multimediawidgets</literal></para>
</listitem>
<listitem>
<para><literal>printsupport</literal></para>
</listitem>
<listitem>
<para><literal>qml</literal></para>
</listitem>
<listitem>
<para><literal>serialport</literal></para>
</listitem>
<listitem>
<para><literal>webkitwidgets</literal></para>
</listitem>
<listitem>
<para><literal>widgets</literal></para>
</listitem>
</itemizedlist>
<para>The default dependency for each component is build- and
run-time, to select only build or run, add
<literal>_build</literal> or <literal>_run</literal> to the
component name. For example:</para>
<programlisting>USES= pyqt
USE_PYQT= core doc_build designer_run</programlisting>
</sect1>
<sect1 xml:id="uses-python">
<title><literal>python</literal></title>
<para>Possible arguments: (none),
<literal><replaceable>X.Y</replaceable></literal>,
<literal><replaceable>X.Y+</replaceable></literal>,
<literal><replaceable>-X.Y</replaceable></literal>,
<literal><replaceable>X.Y-Z.A</replaceable></literal>,
<literal>build</literal>, <literal>run</literal>,
<literal>test</literal></para>
<para>Uses <application>Python</application>. A supported version
or version range can be specified. If Python is only needed at
build time, run time or for the tests, it can be set as a build,
run or test dependency with <literal>build</literal>,
<literal>run</literal>, or <literal>test</literal>. See
<xref linkend="using-python"/> for more information.</para>
</sect1>
<sect1 xml:id="uses-qmail">
<title><literal>qmail</literal></title>
<para>Possible arguments: (none), <literal>build</literal>,
<literal>run</literal>, <literal>both</literal>,
<literal>vars</literal></para>
<para>Uses <package role="port">mail/qmail</package>. 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.</para>
</sect1>
<sect1 xml:id="uses-qmake">
<title><literal>qmake</literal></title>
<para>Possible arguments: (none), <literal>norecursive</literal>,
<literal>outsource</literal></para>
<para>Uses <application>QMake</application> for configuring. For
more information see <xref linkend="using-qmake"/>.</para>
</sect1>
<sect1 xml:id="uses-readline">
<title><literal>readline</literal></title>
<para>Possible arguments: (none), <literal>port</literal></para>
<para>Uses <application>readline</application> as a library
dependency, and sets <varname>CPPFLAGS</varname> and
<varname>LDFLAGS</varname> as necessary. If the
<literal>port</literal> argument is used or if readline is not
present in the base system, add a dependency on <package
role="port">devel/readline</package></para>
</sect1>
<sect1 xml:id="uses-scons">
<title><literal>scons</literal></title>
<para>Possible arguments: (none)</para>
<para>Provide support for the use of <package
role="port">devel/scons</package></para>
</sect1>
<sect1 xml:id="uses-shared-mime-info">
<title><literal>shared-mime-info</literal></title>
<para>Possible arguments: (none)</para>
<para>Uses <application>update-mime-database</application> from
<package role="port">misc/shared-mime-info</package>. 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 add an <link
linkend="plist-keywords-shared-mime-info"><literal>@shared-mime-info</literal></link>
para to the plist.</para>
</sect1>
<sect1 xml:id="uses-shebangfix">
<title><literal>shebangfix</literal></title>
<para>Possible arguments: (none)</para>
<para>A lot of software uses incorrect locations for script
interpreters, most notably <filename>/usr/bin/perl</filename>
and <filename>/bin/bash</filename>. The shebagngfix macro fixes
shebang lines in scripts listed in
<varname>SHEBANG_FILES</varname>. The shebangfix macro is run
from <literal>${WRKSRC}</literal>, so it can contain paths that
are relative to <literal>${WRKSRC}</literal>. It can also deal
with absolute paths if files outside of
<literal>${WRKSRC}</literal> require patching. For
example:</para>
<programlisting>USES= shebangfix
SHEBANG_FILES= scripts/foobar.pl scripts/*.sh</programlisting>
<para>Currently
<application>Bash</application>,
<application>Java</application>, <application>Ksh</application>,
<application>Lua</application>,
<application>Perl</application>, <application>PHP</application>,
<application>Python</application>,
<application>Ruby</application>, <application>Tcl</application>,
and <application>Tk</application> are supported by
default.</para>
<para>There are three configuration variables:</para>
<variablelist>
<varlistentry>
<term><varname>SHEBANG_LANG</varname></term>
<listitem>
<para>The list of supported interpreters.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname><replaceable>interp</replaceable>_CMD</varname></term>
<listitem>
<para>The path to the command interpreter on &os;. The
default value is
<literal>${LOCALBASE}/bin/<replaceable>interp</replaceable></literal>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname><replaceable>interp</replaceable>_OLD_CMD</varname></term>
<listitem>
<para>The list of wrong invocations of interpreters. These
are typically obsolete paths, or paths used on other
operating systems that are incorrect on &os;. They
will be replaced by the correct path in
<varname><replaceable>interp</replaceable>_CMD</varname>.
This list will always be part of
<varname><replaceable>interp</replaceable>_OLD_CMD</varname>:
<literal>"/usr/bin/env <replaceable>interp</replaceable>"
/bin/<replaceable>interp</replaceable>
/usr/bin/<replaceable>interp</replaceable></literal>.</para>
</listitem>
</varlistentry>
</variablelist>
<para>To add another interpreter, set
<varname>SHEBANG_LANG</varname>. For example:</para>
<programlisting>SHEBANG_LANG= lua</programlisting>
<para><literal><replaceable>interp</replaceable>_OLD_CMD</literal>
will contain multiple values. Any entry with spaces must be
quoted. For example, if it was not already defined, the
<application>Ksh</application> entry could be defined as:</para>
<programlisting>SHEBANG_LANG= ksh
ksh_OLD_CMD= "/usr/bin/env ksh" /bin/ksh /usr/bin/ksh
ksh_CMD= ${LOCALBASE}/bin/ksh</programlisting>
<para>Some software uses strange locations for an interpreter.
For example, an application might expect
<application>Python</application> to be located in
<filename>/opt/bin/python2.7</filename>. The strange path to be
replaced can be declared in the port
<filename>Makefile</filename>:</para>
<programlisting>python_OLD_CMD= /opt/bin/python2.7</programlisting>
<note>
<para>The fixing of shebangs is done during the
<buildtarget>patch</buildtarget> phase. If scripts are
created with incorrect shebangs during the
<buildtarget>build</buildtarget> phase, the build process (for
examples, the <filename>configure</filename> script, or the
<filename>Makefiles</filename>) must be patched to generate
the right shebangs. Correct paths for supported interpreters
are available in
<literal><replaceable>interp</replaceable>_CMD</literal>.</para>
</note>
</sect1>
<sect1 xml:id="uses-sqlite">
<title><literal>sqlite</literal></title>
<para>Possible arguments: (none), <literal>2</literal>,
<literal>3</literal></para>
<para>Add a dependency on <application>SQLite</application>. The
default version used is 3, but version 2 is also possible using
the <literal>:2</literal> modifier.</para>
</sect1>
<sect1 xml:id="uses-ssl">
<title><literal>ssl</literal></title>
<para>Possible arguments: (none), <literal>build</literal>,
<literal>run</literal></para>
<para>Provide support for <application>OpenSSL</application>.
A build- or run-time only dependency can be specified using
<literal>build</literal> or <literal>run</literal>.
These variables are available for the port's use, they are also
added to <varname>MAKE_ENV</varname>:</para>
<variablelist>
<varlistentry>
<term><varname>OPENSSLBASE</varname></term>
<listitem>
<para>Path to the OpenSSL installation base.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>OPENSSLDIR</varname></term>
<listitem>
<para>Path to <application>OpenSSL</application>'s
configuration files.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>OPENSSLLIB</varname></term>
<listitem>
<para>Path to the <application>OpenSSL</application> libraries.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>OPENSSLINC</varname></term>
<listitem>
<para>Path to the <application>OpenSSL</application> includes.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>OPENSSLRPATH</varname></term>
<listitem>
<para>If defined, the path the linker needs to use to find
the <application>OpenSSL</application> libraries.</para>
</listitem>
</varlistentry>
</variablelist>
</sect1>
<sect1 xml:id="uses-tar">
<title><literal>tar</literal></title>
<para>Possible arguments: (none), <literal>Z</literal>,
<literal>bz2</literal>, <literal>bzip2</literal>,
<literal>lzma</literal>, <literal>tbz</literal>,
<literal>tbz2</literal>,
<literal>tgz</literal>, <literal>txz</literal>,
<literal>xz</literal></para>
<para>Set <varname>EXTRACT_SUFX</varname> to
<literal>.tar</literal>, <literal>.tar.Z</literal>,
<literal>.tar.bz2</literal>, <literal>.tar.bz2</literal>,
<literal>.tar.lzma</literal>, <literal>.tbz</literal>,
<literal>.tbz2</literal>,
<literal>.tgz</literal>, <literal>.txz</literal> or
<literal>.tar.xz</literal> respectively.</para>
</sect1>
<sect1 xml:id="uses-tcl">
<title><literal>tcl</literal></title>
<para>Possible arguments: <replaceable>version</replaceable>,
<literal>wrapper</literal>, <literal>build</literal>,
<literal>run</literal>, <literal>tea</literal></para>
<para>Add a dependency on <application>Tcl</application>. A
specific version can be requested using
<replaceable>version</replaceable>. The version can be empty,
one or more exact version numbers (currently
<literal>84</literal>, <literal>85</literal>, or
<literal>86</literal>), or a minimal version number (currently
<literal>84+</literal>, <literal>85+</literal> or
<literal>86+</literal>). To only request a non version specific
wrapper, use <literal>wrapper</literal>. A build- or run-time
only dependency can be specified using <literal>build</literal>
or <literal>run</literal>. To build the port using the
<application>Tcl Extension Architecture</application>, use
<literal>tea</literal>. After including
<filename>bsd.port.pre.mk</filename> the port can inspect the
results using these variables:</para>
<itemizedlist>
<listitem>
<para><varname>TCL_VER</varname>: chosen major.minor version
of <application>Tcl</application></para>
</listitem>
<listitem>
<para><varname>TCLSH</varname>: full path of the
<application>Tcl</application> interpreter</para>
</listitem>
<listitem>
<para><varname>TCL_LIBDIR</varname>: path of the
<application>Tcl</application> libraries</para>
</listitem>
<listitem>
<para><varname>TCL_INCLUDEDIR</varname>: path of the
<application>Tcl</application> C header files</para>
</listitem>
<listitem>
<para><varname>TK_VER</varname>: chosen major.minor version of
<application>Tk</application></para>
</listitem>
<listitem>
<para><varname>WISH</varname>: full path of the
<application>Tk</application> interpreter</para>
</listitem>
<listitem>
<para><varname>TK_LIBDIR</varname>: path of the
<application>Tk</application> libraries</para>
</listitem>
<listitem>
<para><varname>TK_INCLUDEDIR</varname>: path of the
<application>Tk</application> C header files</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="uses-terminfo">
<title><literal>terminfo</literal></title>
<para>Possible arguments: (none)</para>
<para>Adds <link
linkend="plist-keywords-terminfo"><literal>@terminfo</literal></link>
to the <filename>plist</filename>. Use when the port installs
<filename><replaceable>*</replaceable>.terminfo</filename> files
in <filename>${PREFIX}/share/misc</filename>.</para>
</sect1>
<sect1 xml:id="uses-tk">
<title><literal>tk</literal></title>
<para>Same as arguments for <literal>tcl</literal></para>
<para>Small wrapper when using both <application>Tcl</application>
and <application>Tk</application>. The same variables are
returned as when using <application>Tcl</application>.</para>
</sect1>
<sect1 xml:id="uses-twisted">
<title><literal>twisted</literal></title>
<para>Possible arguments: (none), <literal>ARGS</literal></para>
<para>Add a dependency on <application>twistedCore</application>.
The list of required components can be specified as a value of
this variable. <literal>ARGS</literal> can be one of:</para>
<itemizedlist>
<listitem>
<para><literal>build</literal>: add
<application>twistedCore</application> or any specified
component as build dependency.</para>
</listitem>
<listitem>
<para><literal>run</literal>: add
<application>twistedCore</application> or any specified
component as run dependency.</para>
</listitem>
</itemizedlist>
<para>Besides <literal>build</literal> and <literal>run</literal>,
one or more other supported <application>twisted</application>
components can be specified. Supported values are listed in
<filename>Uses/twisted.mk</filename>.</para>
</sect1>
<sect1 xml:id="uses-uidfix">
<title><literal>uidfix</literal></title>
<para>Possible arguments: (none)</para>
<para>Changes some default behavior (mostly variables) of
the build system to allow installing this port as a normal
user. Try this in the port before using <link
linkend="uses-fakeroot">USES=fakeroot</link> or
patching.</para>
</sect1>
<sect1 xml:id="uses-uniquefiles">
<title><literal>uniquefiles</literal></title>
<para>Possible arguments: (none), <literal>dirs</literal></para>
<para>Make files or directories 'unique', by adding a prefix or
suffix. If the <literal>dirs</literal> argument is used, the
port needs a prefix (a only a prefix) based on
<varname>UNIQUE_PREFIX</varname> for standard directories
<varname>DOCSDIR</varname>, <varname>EXAMPLESDIR</varname>,
<varname>DATADIR</varname>, <varname>WWWDIR</varname>,
<varname>ETCDIR</varname>. These variables are available for
ports:</para>
<itemizedlist>
<listitem>
<para><varname>UNIQUE_PREFIX</varname>: The prefix to be used
for directories and files. Default:
<varname>${PKGNAMEPREFIX}</varname>.</para>
</listitem>
<listitem>
<para><varname>UNIQUE_PREFIX_FILES</varname>: A list of files
that need to be prefixed. Default: empty.</para>
</listitem>
<listitem>
<para><varname>UNIQUE_SUFFIX</varname>: The suffix to be used
for files. Default:
<varname>${PKGNAMESUFFIX}</varname>.</para>
</listitem>
<listitem>
<para><varname>UNIQUE_SUFFIX_FILES</varname>: A list of files
that need to be suffixed. Default: empty.</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="uses-webplugin">
<title><literal>webplugin</literal></title>
<para>Possible arguments: (none), <literal>ARGS</literal></para>
<para>Automatically create and remove symbolic links for each
application that supports the webplugin framework.
<literal>ARGS</literal> can be one of:</para>
<itemizedlist>
<listitem>
<para><literal>gecko</literal>: support plug-ins based on
Gecko</para>
</listitem>
<listitem>
<para><literal>native</literal>: support plug-ins for Gecko,
Opera, and WebKit-GTK</para>
</listitem>
<listitem>
<para><literal>linux</literal>: support Linux plug-ins</para>
</listitem>
<listitem>
<para><literal>all</literal> (default, implicit): support all
plug-in types</para>
</listitem>
<listitem>
<para>(individual entries): support only the browsers
listed</para>
</listitem>
</itemizedlist>
<para>These variables can be adjusted:</para>
<itemizedlist>
<listitem>
<para><varname>WEBPLUGIN_FILES</varname>: No default, must be
set manually. The plug-in files to install.</para>
</listitem>
<listitem>
<para><varname>WEBPLUGIN_DIR</varname>: The directory to
install the plug-in files to, default
<filename><replaceable>PREFIX</replaceable>/lib/browser_plugins/<replaceable>WEBPLUGIN_NAME</replaceable></filename>.
Set this if the port installs plug-in files outside of the
default directory to prevent broken symbolic links.</para>
</listitem>
<listitem>
<para><varname>WEBPLUGIN_NAME</varname>: The final directory
to install the plug-in files into, default
<varname>PKGBASE</varname>.</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="uses-xfce">
<title><literal>xfce</literal></title>
<para>Possible arguments: (none), <literal>gtk3</literal></para>
<para>Provide support for <application>Xfce</application> related
ports. See <xref linkend="using-xfce"/> for details.</para>
<para>The <literal>gtk3</literal> argument specifies that the port
requires <application>GTK3</application> support. It adds
additional features provided by some core components, for
example, <package role="port">x11/libxfce4menu</package> and
<package role="port">x11-wm/xfce4-panel</package>.</para>
</sect1>
<sect1 xml:id="uses-zip">
<title><literal>zip</literal></title>
<para>Possible arguments: (none),
<literal>infozip</literal></para>
<para>Indicates that the distribution files use the ZIP
compression algorithm. For files using the InfoZip algorithm
the <literal>infozip</literal> argument must be passed to set
the appropriate dependencies.</para>
</sect1>
<sect1 xml:id="uses-zope">
<title><literal>zope</literal></title>
<para>Possible arguments: (none)</para>
<para>Uses <package role="port">www/zope</package>. Mostly used
for building <application>zope</application> related ports.
<varname>ZOPE_VERSION</varname> can be used by a port to
indicate that a specific version of
<application>zope</application> shall be used.</para>
</sect1>
</chapter>