[32049] trunk/doc-new
simon at macports.org
simon at macports.org
Fri Dec 14 07:04:55 PST 2007
Revision: 32049
http://trac.macosforge.org/projects/macports/changeset/32049
Author: simon at macports.org
Date: 2007-12-14 07:04:49 -0800 (Fri, 14 Dec 2007)
Log Message:
-----------
doc-new: Removed .7 from the portfile-* xml files.
Modified Paths:
--------------
trunk/doc-new/guide/xml/portfileref.xml
trunk/doc-new/man/xml/portfile.7.xml
Added Paths:
-----------
trunk/doc-new/guide/xml/portfile-keywords.xml
trunk/doc-new/guide/xml/portfile-phase.xml
trunk/doc-new/guide/xml/portfile-startupitem.xml
trunk/doc-new/guide/xml/portfile-tcl.xml
trunk/doc-new/guide/xml/portfile-variables.xml
Removed Paths:
-------------
trunk/doc-new/guide/xml/portfile-keywords.7.xml
trunk/doc-new/guide/xml/portfile-phase.7.xml
trunk/doc-new/guide/xml/portfile-startupitem.7.xml
trunk/doc-new/guide/xml/portfile-tcl.7.xml
trunk/doc-new/guide/xml/portfile-variables.7.xml
Deleted: trunk/doc-new/guide/xml/portfile-keywords.7.xml
===================================================================
--- trunk/doc-new/guide/xml/portfile-keywords.7.xml 2007-12-14 14:49:31 UTC (rev 32048)
+++ trunk/doc-new/guide/xml/portfile-keywords.7.xml 2007-12-14 15:04:49 UTC (rev 32049)
@@ -1,640 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<section id="reference.keywords">
- <title>Global Keywords</title>
-
- <para>MacPorts keywords are used to specify required or optional items
- within a Portfile, or to override default options used by MacPorts base for
- individual ports. Keywords are to be used within the "global" and "variant"
- sections of Portfiles, and not within optional port phase
- declarations.</para>
-
- <para>The global keywords listed below specify information for ports as a
- whole, whereas the keywords listed under a port phase specify information to
- be used during a particular installation phase.</para>
-
- <section id="reference.keywords.general">
- <title>General</title>
-
- <para>The list of global keywords.</para>
-
- <variablelist>
- <varlistentry>
- <term>PortSystem</term>
-
- <listitem>
- <para>The top line of every Portfile; it must be followed by a blank
- line. It defines which version of the Portfile interpreter will be
- used.</para>
-
- <programlisting>PortSystem 1.0
-
-</programlisting>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>name</term>
-
- <listitem>
- <para>The name of the Port; it should be lowercase to prevent
- uninstallation problems due to a macports base bug.</para>
-
- <programlisting>name foo</programlisting>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>version</term>
-
- <listitem>
- <para>The version of the ported software.</para>
-
- <programlisting>version 1.23.45</programlisting>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>revision</term>
-
- <listitem>
- <para>Optional keyword (default is 0) that is used to track port
- revisions. It should not be incremented for port revisions unless it
- would benefit users to upgrade an installed port, and cleared when
- the port is updated to a newer version.</para>
-
- <para>It should be used if a bug in the Portfile was found and all
- installations of this port have to be updated. If the change only
- affects new installations, there is no need to increase it.</para>
-
- <programlisting>revision 1</programlisting>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>epoch</term>
-
- <listitem>
- <para>An optional keyword (default value is 0) that may be used when
- ports are updated to a version that is numerically less than the
- previous version. For example 1.10 -> 1.2 or 20070928 -> 1.0.
- An epoch ensures that port version comparisons work correctly in
- these cases. Often the epoch is formatted like a date, but it can
- simply be a number such as 1.</para>
-
- <programlisting>epoch 20080924</programlisting>
-
- <programlisting>epoch 1</programlisting>
-
- <note>
- <para>If an epoch is used it must must never be decreased or reset
- to zero, because this would always cause a port version comparison
- to be incorrect after a port upgrade.</para>
- </note>
-
- <para>An epoch is not needed for most ports, and good use of a
- port's version can make using an epoch unnecessary even for
- application distributions without official version numbers. For
- example, if an application version 1.5 is superseded by a snapshot
- release 20081022, the new release could be given version number
- 1.5.20081022, rather than 20081022, so the newer release will have a
- numericaly greater value.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>categories</term>
-
- <listitem>
- <para>The category under which the ported software falls. The first
- category should be the same as the directory within which the
- Portfile is stored; secondary and tertiary categories may be
- selected.</para>
-
- <programlisting>categories net security</programlisting>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>maintainers</term>
-
- <listitem>
- <para>A port's maintainer is a person or persons who take
- responsibility for keeping the port up-to-date, and the maintainer
- keyword lists maintainer email addresses(s). However, many
- maintainers wish to hide these addresses from spambots; to do so
- follow these conventions:</para>
-
- <itemizedlist>
- <listitem>
- <para>For addresses in domain @macports.org, simply omit the
- domain name.</para>
- </listitem>
-
- <listitem>
- <para>For addresses in other domains, say
- <email>account at example.org</email>, use the convention
- example.org:account to specify the address.</para>
- </listitem>
- </itemizedlist>
-
- <para>In the example below, the maintainer email addresses
- <email>jdoe at macports.org</email> and
- <email>julesverne at example.org</email> are hidden using these
- conventions.</para>
-
- <programlisting>maintainers jdoe \
- example.org:julesverne</programlisting>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>description</term>
-
- <listitem>
- <para>A one-sentence description of the ported software.</para>
-
- <programlisting>description A classic shooter arcade game.</programlisting>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>long_description</term>
-
- <listitem>
- <para>A long description of the ported software. Break long lines
- with escaped newlines.</para>
-
- <programlisting>long_description A classic shooter arcade game derived from \
- the game alien-munchers. Not suitable for \
- children under two years old.</programlisting>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>homepage</term>
-
- <listitem>
- <para>Port application's homepage.</para>
-
- <programlisting>homepage http://www.example.org/apps</programlisting>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>platforms</term>
-
- <listitem>
- <para>The platforms on which the port has been tested.</para>
-
- <programlisting>platforms darwin freebsd</programlisting>
- </listitem>
- </varlistentry>
- </variablelist>
- </section>
-
- <section id="reference.keywords.dependencies">
- <title>Dependencies</title>
-
- <para>Free and open source software is highly modular, and MacPorts ports
- often require that other ports be installed beforehand; these
- prerequisites for a given port are called a port's
- <quote>dependencies</quote>.</para>
-
- <para>There are three types of MacPorts dependencies: library, build, and
- run dependencies. Dependency types are important for proper port upgrade
- and uninstall behavior. For example, you may not uninstall a port that is
- a library dependency for another port, though you may remove one with a
- build dependency; likewise, upgrading a port will upgrade its library and
- build dependencies also, but not its run dependencies.</para>
-
- <variablelist>
- <varlistentry>
- <term>depends_lib</term>
-
- <term>depends_lib-append</term>
-
- <term>depends_lib-delete</term>
-
- <listitem>
- <para>The list of dependencies to check before phases
- <option>configure</option>, <option>build</option>,
- <option>destroot</option>, <option>install</option>, and
- <option>package</option>. Library dependencies are needed both at
- build time (for headers and libraries to link against) and at run
- time.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>depends_build</term>
-
- <term>depends_build-append</term>
-
- <term>depends_build-delete</term>
-
- <listitem>
- <para>The list of dependencies to check before phases
- <option>build</option>, <option>destroot</option>,
- <option>install</option>, and <option>package</option>. Build
- dependencies are needed when software is compiled, but not needed at
- all once the software is compiled and installed.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>depends_run</term>
-
- <term>depends_run-append</term>
-
- <term>depends_run-delete</term>
-
- <listitem>
- <para>The list of dependencies to check before phases
- <option>destroot</option>, <option>install</option>, and
- <option>package</option>. Run dependencies are needed when the
- software is run, but not to compile it.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <section id="reference.keywords.dependencies.types">
- <title>Port and Non-Port Dependencies</title>
-
- <para>Port dependencies should be provided by MacPorts ports whenever
- possible, however dependencies may be provided by vendor-supplied
- software when satisfying a dependency by a port is not practical or
- desirable for a special reason. Dependencies of this type are called
- non-port dependencies.</para>
-
- <para>Non-port dependencies should only be used if the application or
- library can be installed by multiple ports (for example stable and
- -devel version) or if it can't be installed with Macports.</para>
-
- <para>Port dependencies, the preferred type, are specified as shown in
- these examples:</para>
-
- <programlisting>depends_lib port:rrdtool port:apache2
-
-depends_build port:libtool
-
-depends_run port:apache2 port:php5</programlisting>
-
- <para>Non-port dependencies are specified as shown in these
- examples:</para>
-
- <programlisting>depends_lib lib:libX11.6:xorg
-
-depends_build bin:glibtool:libtool
-
-depends_run path:${prefix}/lib/libltdl.a:libtool</programlisting>
- </section>
- </section>
-
- <section id="reference.keywords.variants">
- <title>Variants</title>
-
- <para>MacPorts variants are conditional modifications of port installation
- behavior that may be invoked by a user at the time of port install.</para>
-
- <variablelist>
- <varlistentry>
- <term>variant [requires variant] [conflicts variant] [description
- description]</term>
-
- <listitem>
- <para>The variant declaration may contain any keywords that can be
- placed in a Portfile's global section. If you wish to execute system
- (shell) calls or Tcl extensions during the execution of a port
- phase, you should place those statements within a
- <literal>variant_isset</literal> conditional within a phase
- declaration and not within the variant declaration itself.
- Dependencies and conflicts with other variants in the same port can
- be expressed with requires and conflicts. See the isset Tcl
- extension.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: no</para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>variant gnome requires glib {
- configure.args-append --with-gnome
- depends_lib-append port:gnome-session
-}</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>default_variants</term>
-
- <listitem>
- <para>If variants are defined, then the default_variants value lists
- which variants are enabled by default. This allows for Portfile
- modularity and also allows users to suppress default variants if
- they wish.</para>
-
- <para>Due to a bug in the current Macports base default_variants
- shouldn't be used at the moment as they cause problems while
- upgrading ports.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: none</para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>default_variants +ssl +tcpd
-
-</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>Default variants may be suppressed by preceding a variant name
- with a "-" as shown in this example.</para>
-
- <programlisting><prompt>%%</prompt> <userinput>port install foo -ssl</userinput></programlisting>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>universal_variant</term>
-
- <listitem>
- <para>When using MacPorts on Mac OS X, a universal variant is
- defined by default to configure ports with universal flags. The
- variant can be overridden if the default code does not work (see the
- Configure Universal section below), or suppressed if a universal
- variant is not possible for the port with this keyword.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: yes</para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>universal_variant no</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
- </variablelist>
- </section>
-
- <section id="reference.keywords.livecheck">
- <title>Livecheck / Distcheck</title>
-
- <para>Options livecheck and distcheck are especially useful for port
- maintainers, but others may also find this information valuable.</para>
-
- <para>Livecheck checks to see if MacPorts can query the developer's
- download site to determine if a newer version of the software has become
- available since the port was installed.</para>
-
- <variablelist>
- <varlistentry>
- <term>livecheck.check</term>
-
- <listitem>
- <para>Specify what kind of update check to perform.</para>
-
- <para>Open source mirror site options are to use the project's
- latest file release from <option>sourceforge</option> or
- <option>googlecode</option>, or the project's
- <literal>date_updated</literal> XML tag for
- <option>freshmeat</option>. These options are automatically used if
- a matching <varname>${master_sites}</varname> URL is used.</para>
-
- <para>Generic download site options are to specify a
- <option>moddate</option> (modification date of a URL resource), a
- <option>regex</option> (retrieve the version by applying a regex to
- a URL resource), <option>regexm</option> (retrieve the version by
- applying a multi-line regex to a URL resource), <option>md5</option>
- (compares the md5 sum of a URL resource) or <option>none</option>
- (no check).</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <option>sourceforge</option> or
- <option>googlecode</option> if the
- <varname>${master_sites}</varname> is one of these, else
- <option>freshmeat</option>.</para>
- </listitem>
-
- <listitem>
- <para>Values: <option>freshmeat</option>
- <option>sourceforge</option> <option>googlecode</option>
- <option>moddate</option> <option>regex</option>
- <option>regexm</option> <option>md5</option>
- <option>none</option></para>
- </listitem>
-
- <listitem>
- <para>Examples:</para>
-
- <programlisting>livecheck.check regex
-livecheck.url ${homepage}
-livecheck.regex "Generally Available (\\d+(?:\\.\\d+)*)"</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>livecheck.name</term>
-
- <listitem>
- <para>Name of the project for live checks. Is only used with
- freshmeat, sourceforge, and googlecode livechecks.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <varname>${name}</varname> or the sourceforge,
- freshmeat or googlecode project name if it can be guessed from
- <varname>${master_sites}</varname>.</para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>livecheck.name hibernate</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>livecheck.distname</term>
-
- <listitem>
- <para>Name of the file release for sourceforge and googlecode
- checks. For sourceforge releases use the name of the package
- release. For googlecode releases use the name of the file download,
- including extension. You may use this keyword without
- <code>livecheck.version</code> if you replace the version part of
- the name with "<literal>(.*)</literal>".</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: sourceforge:
- <varname>${livecheck.name}</varname>, googlecode: first
- <varname>${distfiles}</varname> item</para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>livecheck.distname faad2.src</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>livecheck.version</term>
-
- <listitem>
- <para>Version of the project for a check; used for regex-based
- checks.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <varname>${version}</varname></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>livecheck.version ${name}-${version}</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>livecheck.url</term>
-
- <listitem>
- <para>URL to query for a check.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default:</para>
-
- <itemizedlist>
- <listitem>
- <para><varname>${homepage}</varname> or the first hit among
- the following sites:</para>
- </listitem>
-
- <listitem>
- <para><literal>http://freshmeat.net/projects-xml/${livecheck.name}/${livecheck.name}.xml</literal></para>
- </listitem>
-
- <listitem>
- <para><literal>http://sourceforge.net/export/rss2_projfiles.php?project=${livecheck.name}</literal></para>
- </listitem>
-
- <listitem>
- <para><literal>http://code.google.com/p/${livecheck.name}/downloads/list</literal></para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>livecheck.url http://ftp.gnu.org/gnu/bison/</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>livecheck.regex</term>
-
- <listitem>
- <para>Regular expression to parse the resource for regex checks. Be
- sure to use a regular expression grouping around the version
- component.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: none</para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>livecheck.regex 4th-([a-z0-9.]+)-unix${extract.suffix}</programlisting>
-
- <!-- TODO: add more examples -->
-
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>livecheck.md5</term>
-
- <listitem>
- <para>md5 checksum to use for an md5 comparison.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: none</para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>livecheck.md5 37e6a5b6516a680c7178b72021d3b706</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Distcheck reports whether or not the distfile(s) specified in a
- Portfile are still available on the developer's download site. Examples
- are given below.</para>
-
- <variablelist>
- <varlistentry>
- <term>distcheck.check</term>
-
- <listitem>
- <para>This option can be used to disable distcheck. It specifies
- what kind of check should be performed on distfiles:
- <option>moddate</option> (check if the Portfile is older than the
- distfile) or <option>none</option> (no check).</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <option>moddate</option></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>distcheck.check none</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
- </variablelist>
- </section>
-</section>
\ No newline at end of file
Copied: trunk/doc-new/guide/xml/portfile-keywords.xml (from rev 32048, trunk/doc-new/guide/xml/portfile-keywords.7.xml)
===================================================================
--- trunk/doc-new/guide/xml/portfile-keywords.xml (rev 0)
+++ trunk/doc-new/guide/xml/portfile-keywords.xml 2007-12-14 15:04:49 UTC (rev 32049)
@@ -0,0 +1,640 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<section id="reference.keywords">
+ <title>Global Keywords</title>
+
+ <para>MacPorts keywords are used to specify required or optional items
+ within a Portfile, or to override default options used by MacPorts base for
+ individual ports. Keywords are to be used within the "global" and "variant"
+ sections of Portfiles, and not within optional port phase
+ declarations.</para>
+
+ <para>The global keywords listed below specify information for ports as a
+ whole, whereas the keywords listed under a port phase specify information to
+ be used during a particular installation phase.</para>
+
+ <section id="reference.keywords.general">
+ <title>General</title>
+
+ <para>The list of global keywords.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>PortSystem</term>
+
+ <listitem>
+ <para>The top line of every Portfile; it must be followed by a blank
+ line. It defines which version of the Portfile interpreter will be
+ used.</para>
+
+ <programlisting>PortSystem 1.0
+
+</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>name</term>
+
+ <listitem>
+ <para>The name of the Port; it should be lowercase to prevent
+ uninstallation problems due to a macports base bug.</para>
+
+ <programlisting>name foo</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>version</term>
+
+ <listitem>
+ <para>The version of the ported software.</para>
+
+ <programlisting>version 1.23.45</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>revision</term>
+
+ <listitem>
+ <para>Optional keyword (default is 0) that is used to track port
+ revisions. It should not be incremented for port revisions unless it
+ would benefit users to upgrade an installed port, and cleared when
+ the port is updated to a newer version.</para>
+
+ <para>It should be used if a bug in the Portfile was found and all
+ installations of this port have to be updated. If the change only
+ affects new installations, there is no need to increase it.</para>
+
+ <programlisting>revision 1</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>epoch</term>
+
+ <listitem>
+ <para>An optional keyword (default value is 0) that may be used when
+ ports are updated to a version that is numerically less than the
+ previous version. For example 1.10 -> 1.2 or 20070928 -> 1.0.
+ An epoch ensures that port version comparisons work correctly in
+ these cases. Often the epoch is formatted like a date, but it can
+ simply be a number such as 1.</para>
+
+ <programlisting>epoch 20080924</programlisting>
+
+ <programlisting>epoch 1</programlisting>
+
+ <note>
+ <para>If an epoch is used it must must never be decreased or reset
+ to zero, because this would always cause a port version comparison
+ to be incorrect after a port upgrade.</para>
+ </note>
+
+ <para>An epoch is not needed for most ports, and good use of a
+ port's version can make using an epoch unnecessary even for
+ application distributions without official version numbers. For
+ example, if an application version 1.5 is superseded by a snapshot
+ release 20081022, the new release could be given version number
+ 1.5.20081022, rather than 20081022, so the newer release will have a
+ numericaly greater value.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>categories</term>
+
+ <listitem>
+ <para>The category under which the ported software falls. The first
+ category should be the same as the directory within which the
+ Portfile is stored; secondary and tertiary categories may be
+ selected.</para>
+
+ <programlisting>categories net security</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>maintainers</term>
+
+ <listitem>
+ <para>A port's maintainer is a person or persons who take
+ responsibility for keeping the port up-to-date, and the maintainer
+ keyword lists maintainer email addresses(s). However, many
+ maintainers wish to hide these addresses from spambots; to do so
+ follow these conventions:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>For addresses in domain @macports.org, simply omit the
+ domain name.</para>
+ </listitem>
+
+ <listitem>
+ <para>For addresses in other domains, say
+ <email>account at example.org</email>, use the convention
+ example.org:account to specify the address.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>In the example below, the maintainer email addresses
+ <email>jdoe at macports.org</email> and
+ <email>julesverne at example.org</email> are hidden using these
+ conventions.</para>
+
+ <programlisting>maintainers jdoe \
+ example.org:julesverne</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>description</term>
+
+ <listitem>
+ <para>A one-sentence description of the ported software.</para>
+
+ <programlisting>description A classic shooter arcade game.</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>long_description</term>
+
+ <listitem>
+ <para>A long description of the ported software. Break long lines
+ with escaped newlines.</para>
+
+ <programlisting>long_description A classic shooter arcade game derived from \
+ the game alien-munchers. Not suitable for \
+ children under two years old.</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>homepage</term>
+
+ <listitem>
+ <para>Port application's homepage.</para>
+
+ <programlisting>homepage http://www.example.org/apps</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>platforms</term>
+
+ <listitem>
+ <para>The platforms on which the port has been tested.</para>
+
+ <programlisting>platforms darwin freebsd</programlisting>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </section>
+
+ <section id="reference.keywords.dependencies">
+ <title>Dependencies</title>
+
+ <para>Free and open source software is highly modular, and MacPorts ports
+ often require that other ports be installed beforehand; these
+ prerequisites for a given port are called a port's
+ <quote>dependencies</quote>.</para>
+
+ <para>There are three types of MacPorts dependencies: library, build, and
+ run dependencies. Dependency types are important for proper port upgrade
+ and uninstall behavior. For example, you may not uninstall a port that is
+ a library dependency for another port, though you may remove one with a
+ build dependency; likewise, upgrading a port will upgrade its library and
+ build dependencies also, but not its run dependencies.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>depends_lib</term>
+
+ <term>depends_lib-append</term>
+
+ <term>depends_lib-delete</term>
+
+ <listitem>
+ <para>The list of dependencies to check before phases
+ <option>configure</option>, <option>build</option>,
+ <option>destroot</option>, <option>install</option>, and
+ <option>package</option>. Library dependencies are needed both at
+ build time (for headers and libraries to link against) and at run
+ time.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>depends_build</term>
+
+ <term>depends_build-append</term>
+
+ <term>depends_build-delete</term>
+
+ <listitem>
+ <para>The list of dependencies to check before phases
+ <option>build</option>, <option>destroot</option>,
+ <option>install</option>, and <option>package</option>. Build
+ dependencies are needed when software is compiled, but not needed at
+ all once the software is compiled and installed.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>depends_run</term>
+
+ <term>depends_run-append</term>
+
+ <term>depends_run-delete</term>
+
+ <listitem>
+ <para>The list of dependencies to check before phases
+ <option>destroot</option>, <option>install</option>, and
+ <option>package</option>. Run dependencies are needed when the
+ software is run, but not to compile it.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <section id="reference.keywords.dependencies.types">
+ <title>Port and Non-Port Dependencies</title>
+
+ <para>Port dependencies should be provided by MacPorts ports whenever
+ possible, however dependencies may be provided by vendor-supplied
+ software when satisfying a dependency by a port is not practical or
+ desirable for a special reason. Dependencies of this type are called
+ non-port dependencies.</para>
+
+ <para>Non-port dependencies should only be used if the application or
+ library can be installed by multiple ports (for example stable and
+ -devel version) or if it can't be installed with Macports.</para>
+
+ <para>Port dependencies, the preferred type, are specified as shown in
+ these examples:</para>
+
+ <programlisting>depends_lib port:rrdtool port:apache2
+
+depends_build port:libtool
+
+depends_run port:apache2 port:php5</programlisting>
+
+ <para>Non-port dependencies are specified as shown in these
+ examples:</para>
+
+ <programlisting>depends_lib lib:libX11.6:xorg
+
+depends_build bin:glibtool:libtool
+
+depends_run path:${prefix}/lib/libltdl.a:libtool</programlisting>
+ </section>
+ </section>
+
+ <section id="reference.keywords.variants">
+ <title>Variants</title>
+
+ <para>MacPorts variants are conditional modifications of port installation
+ behavior that may be invoked by a user at the time of port install.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>variant [requires variant] [conflicts variant] [description
+ description]</term>
+
+ <listitem>
+ <para>The variant declaration may contain any keywords that can be
+ placed in a Portfile's global section. If you wish to execute system
+ (shell) calls or Tcl extensions during the execution of a port
+ phase, you should place those statements within a
+ <literal>variant_isset</literal> conditional within a phase
+ declaration and not within the variant declaration itself.
+ Dependencies and conflicts with other variants in the same port can
+ be expressed with requires and conflicts. See the isset Tcl
+ extension.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: no</para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>variant gnome requires glib {
+ configure.args-append --with-gnome
+ depends_lib-append port:gnome-session
+}</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>default_variants</term>
+
+ <listitem>
+ <para>If variants are defined, then the default_variants value lists
+ which variants are enabled by default. This allows for Portfile
+ modularity and also allows users to suppress default variants if
+ they wish.</para>
+
+ <para>Due to a bug in the current Macports base default_variants
+ shouldn't be used at the moment as they cause problems while
+ upgrading ports.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: none</para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>default_variants +ssl +tcpd
+
+</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
+ <para>Default variants may be suppressed by preceding a variant name
+ with a "-" as shown in this example.</para>
+
+ <programlisting><prompt>%%</prompt> <userinput>port install foo -ssl</userinput></programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>universal_variant</term>
+
+ <listitem>
+ <para>When using MacPorts on Mac OS X, a universal variant is
+ defined by default to configure ports with universal flags. The
+ variant can be overridden if the default code does not work (see the
+ Configure Universal section below), or suppressed if a universal
+ variant is not possible for the port with this keyword.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: yes</para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>universal_variant no</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </section>
+
+ <section id="reference.keywords.livecheck">
+ <title>Livecheck / Distcheck</title>
+
+ <para>Options livecheck and distcheck are especially useful for port
+ maintainers, but others may also find this information valuable.</para>
+
+ <para>Livecheck checks to see if MacPorts can query the developer's
+ download site to determine if a newer version of the software has become
+ available since the port was installed.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>livecheck.check</term>
+
+ <listitem>
+ <para>Specify what kind of update check to perform.</para>
+
+ <para>Open source mirror site options are to use the project's
+ latest file release from <option>sourceforge</option> or
+ <option>googlecode</option>, or the project's
+ <literal>date_updated</literal> XML tag for
+ <option>freshmeat</option>. These options are automatically used if
+ a matching <varname>${master_sites}</varname> URL is used.</para>
+
+ <para>Generic download site options are to specify a
+ <option>moddate</option> (modification date of a URL resource), a
+ <option>regex</option> (retrieve the version by applying a regex to
+ a URL resource), <option>regexm</option> (retrieve the version by
+ applying a multi-line regex to a URL resource), <option>md5</option>
+ (compares the md5 sum of a URL resource) or <option>none</option>
+ (no check).</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <option>sourceforge</option> or
+ <option>googlecode</option> if the
+ <varname>${master_sites}</varname> is one of these, else
+ <option>freshmeat</option>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Values: <option>freshmeat</option>
+ <option>sourceforge</option> <option>googlecode</option>
+ <option>moddate</option> <option>regex</option>
+ <option>regexm</option> <option>md5</option>
+ <option>none</option></para>
+ </listitem>
+
+ <listitem>
+ <para>Examples:</para>
+
+ <programlisting>livecheck.check regex
+livecheck.url ${homepage}
+livecheck.regex "Generally Available (\\d+(?:\\.\\d+)*)"</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>livecheck.name</term>
+
+ <listitem>
+ <para>Name of the project for live checks. Is only used with
+ freshmeat, sourceforge, and googlecode livechecks.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <varname>${name}</varname> or the sourceforge,
+ freshmeat or googlecode project name if it can be guessed from
+ <varname>${master_sites}</varname>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>livecheck.name hibernate</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>livecheck.distname</term>
+
+ <listitem>
+ <para>Name of the file release for sourceforge and googlecode
+ checks. For sourceforge releases use the name of the package
+ release. For googlecode releases use the name of the file download,
+ including extension. You may use this keyword without
+ <code>livecheck.version</code> if you replace the version part of
+ the name with "<literal>(.*)</literal>".</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: sourceforge:
+ <varname>${livecheck.name}</varname>, googlecode: first
+ <varname>${distfiles}</varname> item</para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>livecheck.distname faad2.src</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>livecheck.version</term>
+
+ <listitem>
+ <para>Version of the project for a check; used for regex-based
+ checks.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <varname>${version}</varname></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>livecheck.version ${name}-${version}</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>livecheck.url</term>
+
+ <listitem>
+ <para>URL to query for a check.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><varname>${homepage}</varname> or the first hit among
+ the following sites:</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>http://freshmeat.net/projects-xml/${livecheck.name}/${livecheck.name}.xml</literal></para>
+ </listitem>
+
+ <listitem>
+ <para><literal>http://sourceforge.net/export/rss2_projfiles.php?project=${livecheck.name}</literal></para>
+ </listitem>
+
+ <listitem>
+ <para><literal>http://code.google.com/p/${livecheck.name}/downloads/list</literal></para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>livecheck.url http://ftp.gnu.org/gnu/bison/</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>livecheck.regex</term>
+
+ <listitem>
+ <para>Regular expression to parse the resource for regex checks. Be
+ sure to use a regular expression grouping around the version
+ component.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: none</para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>livecheck.regex 4th-([a-z0-9.]+)-unix${extract.suffix}</programlisting>
+
+ <!-- TODO: add more examples -->
+
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>livecheck.md5</term>
+
+ <listitem>
+ <para>md5 checksum to use for an md5 comparison.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: none</para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>livecheck.md5 37e6a5b6516a680c7178b72021d3b706</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Distcheck reports whether or not the distfile(s) specified in a
+ Portfile are still available on the developer's download site. Examples
+ are given below.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>distcheck.check</term>
+
+ <listitem>
+ <para>This option can be used to disable distcheck. It specifies
+ what kind of check should be performed on distfiles:
+ <option>moddate</option> (check if the Portfile is older than the
+ distfile) or <option>none</option> (no check).</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <option>moddate</option></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>distcheck.check none</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </section>
+</section>
\ No newline at end of file
Deleted: trunk/doc-new/guide/xml/portfile-phase.7.xml
===================================================================
--- trunk/doc-new/guide/xml/portfile-phase.7.xml 2007-12-14 14:49:31 UTC (rev 32048)
+++ trunk/doc-new/guide/xml/portfile-phase.7.xml 2007-12-14 15:04:49 UTC (rev 32049)
@@ -1,2639 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<section id="reference.phases">
- <title>Port Phases</title>
-
- <section id="reference.phases.introduction">
- <title>Introduction</title>
-
- <para>A MacPorts port has ten distinct phases. The MacPorts base is set to
- perform default steps for applications that use the standard
- <command>configure</command>, <command>make</command>, and <command>make
- install</command> steps, but for applications that do not conform to this
- behavior, installation phases may be declared in a Portfile to <link
- linkend="development.examples.augment">augment</link> or <link
- linkend="development.examples.override">override</link> the default
- behavior as described in the <link linkend="development">Portfile
- Development</link> chapter.</para>
-
- <variablelist>
- <varlistentry>
- <term>fetch</term>
-
- <listitem>
- <para>Fetch the <varname>${distfiles}</varname> from
- <varname>${master_sites}</varname> and place it in
- <filename>${prefix}/var/macports/distfiles/${name}</filename>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>checksum</term>
-
- <listitem>
- <para>Compare <varname>${checksums}</varname> specified in a
- <filename>Portfile</filename> to the checksums of the fetched
- ${distfiles}.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>extract</term>
-
- <listitem>
- <para>Unzip and untar the <varname>${distfiles}</varname> into the
- path ${prefix}/var/macports/build/..../work</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>patch</term>
-
- <listitem>
- <para>Apply optional <ulink
- url="http://en.wikipedia.org/wiki/Patch_(Unix)">patch</ulink> files
- specified in <varname>${patchfiles}</varname> to modify a port's
- source code file(s).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>configure</term>
-
- <listitem>
- <para>Execute the command <command>configure</command> in
- <varname>${workpath}</varname>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>build</term>
-
- <listitem>
- <para>Execute the command <command>make</command> in
- <varname>${workpath}</varname>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>test</term>
-
- <listitem>
- <para>Execute commands to run test suites bundled with a
- port.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>destroot</term>
-
- <listitem>
- <para>Execute the command <command>make install</command>
- <varname>DESTDIR=${destroot}</varname>in
- <varname>${workpath}</varname>.</para>
-
- <para>Understanding the destroot phase is critical to understanding
- MacPorts, because, unlike some port systems, MacPorts "stages" an
- installation into an intermediate location —not the final file
- destination. MacPorts uses the destroot phase to provide:</para>
-
- <itemizedlist>
- <listitem>
- <para>Port uninstalls - a port's files may be cleanly
- uninstalled because all files and directories are recorded
- during install.</para>
- </listitem>
-
- <listitem>
- <para>Multiple port versions may be installed on the same host,
- since a port's files are not directly inserted into
- <varname>${prefix}</varname> but rather hard-linked into
- <varname>${prefix}</varname> from an intermediate location
- during a later activation phase.</para>
- </listitem>
- </itemizedlist>
-
- <note>
- <para>The <varname>DESTDIR</varname> variable must be supported in
- an application's Makefile for the MacPorts destroot phase to work
- properly. Urge developers to fully support
- <varname>DESTDIR</varname> in their Makefiles.</para>
- </note>
-
- <para>Any empty directories in <varname>${destroot}</varname> upon
- completion of the destroot phase are removed unless a directory name
- is placed in the value field of the optional
- <code>destroot.keepdirs</code> keyword.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>archive</term>
-
- <listitem>
- <para>Use tar to create a tarball of a port's destrooted files and
- copy it to
- <filename>${prefix}/var/macports/packages/</filename>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>install</term>
-
- <listitem>
- <para>Copy a port's destrooted files into
- <filename>${prefix}/var/macports/software</filename>. See <link
- linkend="internals.images">Port Images</link> in the <link
- linkend="internals">MacPorts Internals</link> chapter for
- details.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>activate</term>
-
- <listitem>
- <para>Set <ulink
- url="http://en.wikipedia.org/wiki/Hard_link">hardlinks</ulink>
- pointing to <filename>${prefix}/var/macports/software</filename> to
- point to <varname>${prefix}</varname>.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </section>
-
- <section id="reference.phases.installation">
- <title>Installation Phase Keywords</title>
-
- <para>MacPorts keywords are used to specify required or optional items
- within a Portfile, or to override default options used by MacPorts base
- for individual ports. Keywords are to be used within the "global" and
- "variant" sections of Portfiles, and not within optional port phase
- declarations.</para>
-
- <para>In other words, port phase keywords are not located within port
- phase declarations, but rather they <emphasis>refer</emphasis> to port
- phases and set options for those phases, and they take affect whether or
- not phase declarations have been explicitly defined in a Portfile.</para>
-
- <section id="reference.phases.installation.list-modifiers">
- <title>Keyword List Modifiers (-append / -delete)</title>
-
- <para>Keyword list modifiers are keywords that end in -append or
- -delete. Keywords that support list modifiers are identified under
- appropriate reference sections below. Keyword list modifiers are most
- frequently used for these three purposes:</para>
-
- <orderedlist>
- <listitem>
- <para>Preserve configure Defaults set by a previously executed
- Portfile keyword or by MacPorts base</para>
-
- <para>MacPorts base sets the gcc compiler flags CFLAGS and LDFLAGS
- for all ports using <literal>configure.cflags</literal> and
- <literal>configure.ldflags</literal>, therefore to keep from
- overwriting the default compiler flags use
- <literal>configure.cflags-append</literal> and
- <literal>configure.ldflags-append</literal>.</para>
-
- <itemizedlist>
- <listitem>
- <para><code>configure.cflags-append</code></para>
- </listitem>
-
- <listitem>
- <para><code>configure.ldflags-append</code></para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>Preserve PortGroup Dependencies</para>
-
- <para>Ports in a PortGroup have default library dependencies set by
- MacPorts base. Therefore, never use <literal>depends_lib</literal>
- in ports belonging to a PortGroup or it will overwrite the default
- library dependencies. Instead, use
- <literal>depends_lib-append</literal>.</para>
- </listitem>
-
- <listitem>
- <para>Add or Delete Items for Variants</para>
-
- <para>When a variant requires more or fewer dependencies, distfiles,
- or patchfiles, when the variant is invoked you want to add or remove
- items to the appropriate keyword values list set in the global
- section of the Portfile. Use the appropriate keywords, for
- example:</para>
-
- <itemizedlist>
- <listitem>
- <para><code>depends_lib-append</code> or
- <code>depends_lib-delete</code></para>
- </listitem>
-
- <listitem>
- <para><code>distfiles-append</code> or
- <code>distfile-delete</code></para>
- </listitem>
-
- <listitem>
- <para><code>patchfiles-append</code> or
- <code>patchfiles-delete</code></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </orderedlist>
- </section>
-
- <section id="reference.phases.installation.argument-modifiers">
- <title>Keyword Argument Modifiers (.pre_args / .post_args)</title>
-
- <para>Keywords that support pre_args and post_args are used to assemble
- command strings together in a row, as described in the reference
- sections below. But it should be noted that all keyword argument
- modifiers implicitly support keyword list modifiers. For example, the
- keyword <literal>configure.pre_args</literal> also supports
- <literal>configure.pre_args-append</literal> and
- <literal>configure.pre_args-delete</literal>.</para>
- </section>
- </section>
-
- <section id="reference.phases.fetch">
- <title>Fetch Phase Keywords</title>
-
- <para>The list of keywords related to the fetch phase.</para>
-
- <variablelist>
- <varlistentry>
- <term>master_sites</term>
-
- <listitem>
- <para>A list of URLs from which a port's download file(s) may be
- retrieved. For multiple master_sites, they are searched in order
- until a file matching <varname>${distfile}</varname> is
- found.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: ???</para>
- </listitem>
-
- <listitem>
- <para>Examples:</para>
-
- <programlisting>master_sites http://www.example.org/files/ \
- http://www.examplemirror.org/example_org/files/
-
-</programlisting>
-
- <para>You may also use mirror site lists predefined by MacPorts.
- Here the sourceforge and gnu mirrors are used.</para>
-
- <programlisting>master_sites sourceforge gnu
-
-</programlisting>
-
- <para>When using mirror master_sites, the subdirectory
- <varname>${name}</varname> is checked on every mirror. If the
- mirror subdirectory does not match ${name}, then you may specify
- it using after the mirror separated by a colon.</para>
-
- <programlisting>master_sites sourceforge:widget \
- gnu:widget
-
-</programlisting>
-
- <para>For ports that must fetch multiple download files from
- different locations, you must label the files with tags and
- match the tags in a distfiles statement. The format is
- <literal>mirror:subdirectory:tag</literal>.</para>
-
- <para>In the example below, file_one.tar.gz is fetched from
- sourceforge mirrors in subdirectory <varname>${name}</varname>;
- file tagtwo.tar.gz is fetched from the gnu mirrors in
- subdirectory sources.</para>
-
- <programlisting>master_sites sourceforge::tagone \
- gnu:sources:tagtwo
-
-distfiles file_one.tar.gz:tagone \
- file_two.tar.gz:tagtwo</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>master_sites.mirror_subdir</term>
-
- <listitem>
- <para>Subdirectory to append to all mirror sites for any list
- specified in <varname>${master_sites}</varname>.</para>
-
- <!-- TODO: add a better explanation -->
-
- <itemizedlist>
- <listitem>
- <para>Default: <varname>${name}</varname></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>master_sites.mirror_subdir magic</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>patch_sites</term>
-
- <listitem>
- <para>A list of sites from which a port's patchfiles may be
- downloaded, where applicable.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <varname>${master_sites}</varname></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>patch_sites ftp://ftp.patchcityrepo.com/pub/magic/patches</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>patch_sites.mirror_subdir</term>
-
- <listitem>
- <para>Subdirectory to append to all mirror sites for any list
- specified in <varname>${patch_sites}</varname>.</para>
-
- <!-- TODO: add a better explanation -->
-
- <itemizedlist>
- <listitem>
- <para>Default: <varname>${name}</varname></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>patch_sites.mirror_subdir magic</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>distname</term>
-
- <listitem>
- <para>The name of the distribution filename, not including the
- extract suffix (see below).</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <varname>${name}-${version}</varname></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>distname ${name}</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>distfiles</term>
-
- <listitem>
- <para>The full distribution filename, including the extract suffix.
- Used to specify non-default distribution filenames; this keyword
- must be specified (and tags used) when a port has multiple download
- files (see master_sites).</para>
-
- <itemizedlist>
- <listitem>
- <para>Default:
- <varname>${distname}${extract.suffix}</varname></para>
- </listitem>
-
- <listitem>
- <para>Examples:</para>
-
- <programlisting>distfiles ${name}-dev_src.tgz</programlisting>
-
- <programlisting>distfiles file_one.tar.gz:tagone \
- file_two.tar.gz:tagtwo</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>dist_subdir</term>
-
- <listitem>
- <para>Create a sub-directory in distpath to store all fetched
- files.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <varname>${name}</varname></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>dist_subdir vim${version}</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>extract.suffix</term>
-
- <listitem>
- <para>This keyword is used to specify the extract suffix
- type.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <filename>.tar.gz</filename></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>extract.suffix .tgz</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>extract.mkdir</term>
-
- <listitem>
- <para>This keyword is used to specify if the directory
- <filename>worksrcdir</filename> is part of the distfile or if it
- should be created automatically and the distfiles should be
- extracted there instead. This is useful for distfiles with a flat
- structure which would pollute the <filename>worksrcdir</filename>
- with lots of files.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <option>no</option></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>extract.mkdir yes</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>use_bzip2</term>
-
- <listitem>
- <para>This keyword is for downloads that are tarred and bzipped.
- When invoked, it automatically sets:</para>
-
- <literallayout>extract.suffix = .tar.bz
-extract.cmd = bzip
-
-</literallayout>
-
- <itemizedlist>
- <listitem>
- <para>Default: <option>no</option></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>use_bzip2 yes</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>use_zip</term>
-
- <listitem>
- <para>This keyword is for downloads which are zipped. When invoked,
- it automatically sets:</para>
-
- <literallayout>extract.suffix = .zip
-extract.cmd = unzip
-extract.pre_args = -q
-extract.post_args = "-d ${portpath}/${workdir}"
-
-</literallayout>
-
- <itemizedlist>
- <listitem>
- <para>Default: <option>no</option></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>use_zip yes</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>worksrcdir</term>
-
- <listitem>
- <para>Sets the path to source directory relative to workpath. It can
- be used if the extracted source directory has a different name then
- the distfile.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <varname>${distname}</varname></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>worksrcdir ${name}-src-${version}</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <section id="reference.phases.fetch.advanced">
- <title>Advanced Fetch Options</title>
-
- <para>Some mirrors require special options for a resource to be properly
- fetched.</para>
-
- <variablelist>
- <varlistentry>
- <term>fetch.user</term>
-
- <listitem>
- <para>HTTP or FTP user to fetch the resource.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: ???</para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>TODO: add example</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>fetch.password</term>
-
- <listitem>
- <para>HTTP or FTP password to fetch the resource.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: ???</para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>TODO: add example</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>fetch.use_epsv</term>
-
- <listitem>
- <para>Whether to use EPSV command for FTP transfers.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <option>yes</option></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>fetch.use_epsv no</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>fetch.ignore_sslcert</term>
-
- <listitem>
- <para>Whether to ignore the host SSL certificate (for
- HTTPS).</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <option>no</option></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>fetch.ignore_sslcert yes</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
- </variablelist>
- </section>
-
- <section id="reference.phases.fetch.cvs">
- <title>Fetch from CVS</title>
-
- <para><ulink url="http://www.nongnu.org/cvs/">CVS</ulink> may be used as
- an alternative method of fetching distribution files using the keywords
- in this section. However, fetching via CVS may cause non-reproducible
- builds, so it is strongly discouraged.</para>
-
- <variablelist>
- <varlistentry>
- <term>cvs.root</term>
-
- <listitem>
- <para>Specify the url from which to fetch files.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: none</para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>cvs.root :pserver:anonymous at cvs.sv.gnu.org:/sources/emacs</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>cvs.tag</term>
-
- <listitem>
- <para>Optional for fetching with CVS, this specifies the code
- revision to checkout.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: none</para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>cvs.tag HEAD</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>cvs.date</term>
-
- <listitem>
- <para>A date that identifies the CVS code set to checkout.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: none</para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>cvs.date "12-April-2007"</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>cvs.module</term>
-
- <listitem>
- <para>A CVS module from which to check out the code.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: none</para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>cvs.module Sources</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
- </variablelist>
- </section>
-
- <section id="reference.phases.fetch.svn">
- <title>Fetch from Subversion</title>
-
- <para><ulink url="http://subversion.tigris.org/">Subversion</ulink> may
- be used as an alternative method of fetching distribution files using
- the keywords in this section. However, fetching via Subversion may cause
- non-reproducible builds, so it is strongly discouraged.</para>
-
- <variablelist>
- <varlistentry>
- <term>svn.url</term>
-
- <listitem>
- <para>This specifies the url from which to fetch files.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: none</para>
- </listitem>
-
- <listitem>
- <para>Examples:</para>
-
- <programlisting>svn.url http://www.domain.com/svn-repo/mydirectory</programlisting>
-
- <programlisting>svn.url svn://www.domain.com/svn-repo/mydirectory</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>svn.tag</term>
-
- <listitem>
- <para>Optional tag for fetching with Subversion, this specifies
- the code revision to checkout; it corresponds to the -r option in
- the svn cli.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: none</para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>svn.tag 37192</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
- </variablelist>
- </section>
- </section>
-
- <section id="reference.phases.checksum">
- <title>Checksum Phase Keywords</title>
-
- <para>The list of keywords related to the checksum phase.</para>
-
- <variablelist>
- <varlistentry>
- <term>checksums</term>
-
- <listitem>
- <para>Checksum(s) of the distribution files. For ports with multiple
- distribution files, filenames must be included to associate files
- with their checksums.</para>
-
- <para>All checksum types (md5, sha1 and rdm160) should be used to
- ensure the integrity of the distfiles.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: ???</para>
- </listitem>
-
- <listitem>
- <para>Examples:</para>
-
- <programlisting>checksums md5 dafa161bc9c61e57636a6085c87c1fe8 \
- sha1 5da610e1c8bc01b80abc21ab9e98e004363b429c \
- rmd160 0c1147242adf476f5e93f4d59b553ee3ea378b23</programlisting>
-
- <programlisting>checksums ${distname}${extract.suffix} \
- md5 dafa161bc9c61e57636a6085c87c1fe8 \
- sha1 5da610e1c8bc01b80abc21ab9e98e004363b429c \
- rmd160 0c1147242adf476f5e93f4d59b553ee3ea378b23 \
- hobbit.tar.gz \
- md5 3b8d02c6cf6239b9bdadbc6543c5a683 \
- sha1 27874638b23e66d39ed94fe716ca25c967f6e993 \
- rmd160 82b9991f3bf0ceedbf74c188c5fa44b98b5e40c9</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
- </variablelist>
- </section>
-
- <section id="reference.phases.extract">
- <title>Extract Phase Keywords</title>
-
- <para>The list of keywords related to the extract phase.</para>
-
- <variablelist>
- <varlistentry>
- <term>extract.only</term>
-
- <term>extract.only-append</term>
-
- <term>extract.only-delete</term>
-
- <listitem>
- <para>List of files to extract into
- <varname>${worksrcpath}</varname>. Only use if default extract
- behavior is not correct for your port.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <varname>${distfiles}</varname></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>extract.only foo.tar.gz</programlisting>
-
- <programlisting>extract.only-append bar.tar.gz
-extract.only-delete foo.tar.gz</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>extract.cmd</term>
-
- <listitem>
- <para>Command to perform extraction.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <command>gzip</command></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>extract.cmd gunzip</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>extract.args</term>
-
- <term>extract.pre_args</term>
-
- <term>extract.post_args</term>
-
- <listitem>
- <para>Main arguments to extract.cmd; additional arguments passed
- before and after the main arguments.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <varname>${distpath}/${distfile}</varname></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>extract.args ${distpath}/${distfile}
-
-</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>The following argument modifiers are available:</para>
-
- <itemizedlist>
- <listitem>
- <para><literal>extract.pre_args</literal>, defaults to:
- <literal>-dc</literal></para>
- </listitem>
-
- <listitem>
- <para><literal>extract.post_args</literal>, defaults to:
- <literal>"| tar -xf"</literal></para>
- </listitem>
-
- <listitem>
- <para>Examples:</para>
-
- <programlisting>extract.pre_args xf
-extract.post_args "| gnutar –x"</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
- </variablelist>
- </section>
-
- <section id="reference.phases.patch">
- <title>Patch Phase Keywords</title>
-
- <para>The list of keywords related to the patch phase.</para>
-
- <variablelist>
- <varlistentry>
- <term>patch.dir</term>
-
- <listitem>
- <para>Specify the base path for patch files.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <varname>${worksrcpath}</varname></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>patch.dir ${worksrcpath}/util</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>patch.cmd</term>
-
- <listitem>
- <para>Specify the command to be used for patching files.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <command>patch</command></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>patch.cmd cat</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>patchfiles</term>
-
- <term>patchfiles-append</term>
-
- <term>patchfiles-delete</term>
-
- <listitem>
- <para>Specify patch files to be applied for a port; list modifiers
- specify patchfiles to be added or removed from a previous patchfile
- declaration.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: none</para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>patchfiles patch-Makefile.in \
- patch-source.c</programlisting>
-
- <programlisting>patchfiles-append patch-configure
-patchfiles-delete patch-src-Makefile.in</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>patch.args</term>
-
- <term>patch.pre_args</term>
-
- <term>patch.post_args</term>
-
- <listitem>
- <para>Main arguments to patch.cmd; optional argument modifiers pass
- arguments before and after the main arguments.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: none</para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>patch.args ???
-
-</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>The following argument modifiers are available:</para>
-
- <itemizedlist>
- <listitem>
- <para><literal>patch.pre_args</literal>, defaults to:
- <literal>-p0</literal></para>
- </listitem>
-
- <listitem>
- <para><literal>patch.post_args</literal>, defaults to:
- none</para>
- </listitem>
-
- <listitem>
- <para>Examples:</para>
-
- <programlisting>patch.pre_args -p1
-patch.post_args ???</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
- </variablelist>
- </section>
-
- <section id="reference.phases.configure">
- <title>Configure Phase Keywords</title>
-
- <para>The list of keywords related to the configure phase.</para>
-
- <para>MacPorts base sets some important default configure options, so
- should use the -append version of most configure keywords so you don't
- overwrite them. For example, MacPorts base sets default
- <literal>configure.cflags</literal> so you should always use
- <literal>configure.cflags-append</literal> to set additional CFLAGS in
- Portfiles.</para>
-
- <variablelist>
- <varlistentry>
- <term>use_configure</term>
-
- <listitem>
- <para>Sets if the configure phase should be run.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <option>yes</option></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>use_configure no</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>configure.env</term>
-
- <term>configure.env-append</term>
-
- <term>configure.env-delete</term>
-
- <listitem>
- <para>Set environment variables for configure; list modifiers add
- and delete items from a previous Portfile configure.env keyword, or
- a default set by MacPorts base. If available, it is encouraged to
- use the predefined options (like configure.cflags) instead of
- modifying configure.env directly.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>CFLAGS=-I${prefix}/include
- LDFLAGS=-L${prefix}/lib</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>configure.env QTDIR=${prefix}/lib/qt3</programlisting>
-
- <programlisting>configure.env-append ABI=32
-configure.env-delete TCLROOT=${prefix}</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>configure.cflags</term>
-
- <term>configure.cflags-append</term>
-
- <term>configure.cflags-delete</term>
-
- <listitem>
- <para>Set CFLAGS compiler flags; list modifiers add or delete items
- from a previous Portfile configure.cflags keyword or the default set
- by MacPorts base.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>-O2</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>configure.cflags -Os -flat_namespace</programlisting>
-
- <programlisting>configure.cflags-append "-undefined suppress"
-configure.cflags-delete -O2</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>configure.ldflags</term>
-
- <term>configure.ldflags-append</term>
-
- <term>configure.ldflags-delete</term>
-
- <listitem>
- <para>Set LDFLAGS compiler flags; list modifiers add or delete items
- from a previous Portfile configure.ldflags keyword or the default
- set by MacPorts base.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>-L${prefix}/lib</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>configure.ldflags "-L${worksrcpath}/zlib -lz"</programlisting>
-
- <programlisting>configure.ldflags-append "-L/usr/X11R6/lib -L${worksrcpath}/lib"
-configure.ldflags-delete -L${prefix}/lib/db44</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>configure.cppflags</term>
-
- <term>configure.cppflags-append</term>
-
- <term>configure.cppflags-delete</term>
-
- <listitem>
- <para>Set CPPFLAGS to be passed to the C processor; list modifiers
- add or delete items from a previous Portfile configure.cppflags
- keyword or the default set by MacPorts base.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>-I${prefix}/include</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>configure.cppflags -I${worksrcpath}/include</programlisting>
-
- <programlisting>configure.cppflags-append "-I/usr/X11R6/lib -I${worksrcpath}/lib -DHAVE_RRD_12X"
-configure.cppflags-delete -I${prefix}/lib/db44</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>configure.cxxflags</term>
-
- <term>configure.cxxflags-append</term>
-
- <term>configure.cxxflags-delete</term>
-
- <listitem>
- <para>Set CXXFLAGS to be passed to the C++ processor; list modifiers
- add or delete items from a previous Portfile configure.cxxflags
- keyword or the default set by MacPorts base.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>-O2</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>TODO: add example</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>configure.objcflags</term>
-
- <term>configure.objcflags-append</term>
-
- <term>configure.objcflags-delete</term>
-
- <listitem>
- <para>TODO: add description</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>-O2</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>TODO: add example</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>configure.classpath</term>
-
- <term>configure.classpath-append</term>
-
- <term>configure.classpath-delete</term>
-
- <listitem>
- <para>TODO: add description</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: ???</para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>TODO: add example</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>configure.macosx_deployment_target</term>
-
- <term>configure.macosx_deployment_target-append</term>
-
- <term>configure.macosx_deployment_target-delete</term>
-
- <listitem>
- <para>TODO: add description</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: ???</para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>TODO: add example</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <!-- fortran compiler options -->
-
- <varlistentry>
- <term>configure.fflags</term>
-
- <term>configure.fflags-append</term>
-
- <term>configure.fflags-delete</term>
-
- <listitem>
- <para>Set FFLAGS to be passed to the Fortran compiler; list
- modifiers add or delete items from a previous Portfile
- configure.fflags keyword or the default set by MacPorts base.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>-O2</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>configure.fflags -Os</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>configure.fcflags</term>
-
- <term>configure.fcflags-append</term>
-
- <term>configure.fcflags-delete</term>
-
- <listitem>
- <para>Set FCFLAGS to be passed to the Fortran compiler; list
- modifiers add or delete items from a previous Portfile
- configure.fcflags keyword or the default set by MacPorts
- base.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>-O2</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>configure.fcflags -Os</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>configure.f90flags</term>
-
- <term>configure.f90flags-append</term>
-
- <term>configure.f90flags-delete</term>
-
- <listitem>
- <para>Set F90FLAGS to be passed to the Fortran 90 compiler; list
- modifiers add or delete items from a previous Portfile
- configure.f90flags keyword or the default set by MacPorts
- base.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>-O2</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>configure.f90flags -Os</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <!-- fortran compiler options end -->
-
- <!-- compiler selection arguments -->
-
- <varlistentry>
- <term>configure.cc</term>
-
- <listitem>
- <para>Set CC compiler flags for selecting a C compiler.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>???</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>configure.cc ${prefix}/bin/gcc-mp-4.2</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>configure.cpp</term>
-
- <listitem>
- <para>Set CPP compiler flags for selecting a C preprocessor.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>???</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>configure.cpp /usr/bin/cpp-3.3</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>configure.cxx</term>
-
- <listitem>
- <para>Set CXX compiler flags for selecting a C++ compiler.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>???</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>configure.cxx /usr/bin/g++-4.0</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>configure.objc</term>
-
- <listitem>
- <para>Set OBJC compiler flags for selecting an Objective-C
- compiler.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>???</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>configure.objc /usr/bin/gcc-4.0</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>configure.fc</term>
-
- <listitem>
- <para>Set FC compiler flags for selecting a Fortran compiler.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>???</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>configure.fc ${prefix}/bin/gfortran-mp-4.2</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>configure.f77</term>
-
- <listitem>
- <para>Set F77 compiler flags for selecting a Fortran 77
- compiler.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>???</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>configure.f77 ${prefix}/bin/gfortran-mp-4.2</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>configure.f90</term>
-
- <listitem>
- <para>Set F90 compiler flags for selecting a Fortran 90
- compiler.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>???</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>configure.f90 ${prefix}/bin/gfortran-mp-4.2</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>configure.javac</term>
-
- <listitem>
- <para>Set JAVAC compiler flags for selecting a Java compiler.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>???</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>configure.javac ${prefix}/bin/jikes</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>configure.compiler</term>
-
- <listitem>
- <para>Select a compiler suite to fill the compiler environment
- variables. All variables/tools a compiler suite can provide are set.
- Manually set variables are not overwritten. Dependencies are not
- added for you, as they may be just build- or also run-dependencies.
- Keep in mind that not all compiler suites might be available on your
- platform: <literal>gcc-3.3</literal> is available on Mac OS X 10.3
- and 10.4 PowerPC, <literal>gcc-4.0</literal> is available on 10.4
- and 10.5, <literal>gcc-4.2</literal> is available as preview for
- 10.5.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>gcc-3.3</literal> on Mac OS X
- 10.3</para>
- </listitem>
-
- <listitem>
- <para>Default: <literal>gcc-4.0</literal> on Mac OS X 10.4 and
- 10.5</para>
- </listitem>
-
- <listitem>
- <para>Values: <literal>gcc-3.3</literal>
- <literal>gcc-4.0</literal> <literal>gcc-4.2</literal>
- <literal>apple-gcc-3.3</literal>
- <literal>apple-gcc-4.0</literal>
- <literal>macports-gcc-3.3</literal>
- <literal>macports-gcc-3.4</literal>
- <literal>macports-gcc-4.0</literal>
- <literal>macports-gcc-4.1</literal>
- <literal>macports-gcc-4.2</literal>
- <literal>macports-gcc-4.3</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>configure.compiler macports-gcc-4.2</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <!-- compiler selection arguments end -->
-
- <!-- interpreter selection arguments -->
-
- <varlistentry>
- <term>configure.perl</term>
-
- <listitem>
- <para>Set PERL flag for selecting a Perl interpreter.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>???</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>configure.perl ${prefix}/bin/perl5.8</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>configure.python</term>
-
- <listitem>
- <para>Set PYTHON flag for selecting a Python interpreter.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>???</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>configure.python ${prefix}/bin/python3.0</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>configure.ruby</term>
-
- <listitem>
- <para>Set RUBY flag for selecting a Ruby interpreter.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>???</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>configure.ruby ${prefix}/bin/ruby</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <!-- interpreter selection arguments end -->
-
- <!-- other tools selection arguments -->
-
- <varlistentry>
- <term>configure.install</term>
-
- <listitem>
- <para>Set <literal>INSTALL</literal> flag for selecting an install
- tool; used for copying files and creating directories.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <filename>/usr/bin/install</filename></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>configure.install ${prefix}/bin/ginstall</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>configure.awk</term>
-
- <listitem>
- <para>Set AWK flag for selecting an awk executable.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>???</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>configure.awk ${prefix}/bin/gawk</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>configure.bison</term>
-
- <listitem>
- <para>Set BISON flag for selecting a bison executable, a parser
- generator.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>???</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>configure.bison /usr/bin/bison</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>configure.pkg_config</term>
-
- <listitem>
- <para>Set PKG_CONFIG flag for helping find pkg_config, a tool for
- retrieving information about installed libraries.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>???</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>configure.pkg_config ${prefix}/bin/pkg-config</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>configure.pkg_config_path</term>
-
- <listitem>
- <para>Set PKG_CONFIG_PATH flag for telling pkg_config where to
- search for information about installed libraries.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>???</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>configure.pkg_config_path ${prefix}/lib/pkgconfig:${x11prefix}/lib/pkgconfig</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <!-- other tools selection arguments end -->
-
- <varlistentry>
- <term>configure.args</term>
-
- <term>configure.pre_args</term>
-
- <term>configure.post_args</term>
-
- <listitem>
- <para>Main arguments to configure.cmd; optional argument modifiers
- pass arguments before and after the main arguments.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: none</para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>configure.args --bindir=${prefix}/bin
-
-</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>The following argument modifiers are available:</para>
-
- <itemizedlist>
- <listitem>
- <para><literal>configure.pre_args</literal>, defaults to:
- <literal>--prefix=${prefix}</literal></para>
- </listitem>
-
- <listitem>
- <para><literal>configure.post_args</literal>, defaults to:
- none</para>
- </listitem>
-
- <listitem>
- <para>Examples:</para>
-
- <programlisting>configure.pre_args --prefix=${prefix}/share/bro
-configure.post_args OPT="-D__DARWIN_UNIX03"</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <section id="reference.phases.configure.universal">
- <title>Configure Universal</title>
-
- <para>Universal keywords are used to make a port compile on the Mac OS X
- platform to run on either PPC or Intel.</para>
-
- <note>
- <para>There is a default universal variant made available to all ports
- by MacPorts base, so redefining universal keywords should only be done
- to make a given port compile if the default options fail to do
- so.</para>
- </note>
-
- <variablelist>
- <varlistentry>
- <term>configure.universal_args</term>
-
- <listitem>
- <para>Arguments used in the configure script to build the port
- universal.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default:
- <literal>--disable-dependency-tracking</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>TODO: add example</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>configure.universal_cflags</term>
-
- <listitem>
- <para>Arguments appended to the configure script to build the port
- universal.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>-sysroot
- /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch
- ppc</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>TODO: add example</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>configure.universal_cppflags</term>
-
- <listitem>
- <para>Additional flags to put in the CPPFLAGS environment variable
- when invoking the configure script.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>???</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>TODO: add example</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>configure.universal_cxxflags</term>
-
- <listitem>
- <para>Additional flags to put in the CXXFLAGS environment variable
- when invoking the configure script.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>-isysroot
- /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch
- ppc</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>TODO: add example</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>configure.universal_ldflags</term>
-
- <listitem>
- <para>Additional flags to put in the LDFLAGS environment variable
- when invoking the configure script.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>-arch i386 -arch ppc</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>TODO: add example</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
- </variablelist>
- </section>
-
- <section id="reference.phases.configure.automake-autoconf">
- <title>Automake and Autoconf</title>
-
- <para>The list of configure keywords available for ports that need
- automake and/or autoconf.</para>
-
- <variablelist>
- <varlistentry>
- <term>use_automake</term>
-
- <listitem>
- <para>Whether or not to use automake.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <option>no</option></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>use_automake yes</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>automake.env</term>
-
- <listitem>
- <para>Environment variables to pass to automake.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: ???</para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>automake.env CFLAGS=-I${prefix}/include</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>automake.args</term>
-
- <listitem>
- <para>Arguments to pass to automake.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: ???</para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>automake.args --foreign</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>automake.dir</term>
-
- <listitem>
- <para>Directory in which to run
- <varname>${automake.cmd}</varname>.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <varname>${worksrcpath}</varname></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>automake.dir ./src</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>use_autoconf</term>
-
- <listitem>
- <para>Whether or not to use autoconf.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <option>no</option></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>use_autoconf yes</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>autoconf.env</term>
-
- <listitem>
- <para>Environmental variables to pass to autoconf.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: ???</para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>autoconf.env CFLAGS=-I${prefix}/include/gtk12</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>autoconf.args</term>
-
- <listitem>
- <para>Arguments to pass to autoconf.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: ???</para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>autoconf.args "-l src/aclocaldir"</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>autoconf.dir</term>
-
- <listitem>
- <para>Directory in which to run
- <varname>${autoconf.cmd}</varname>.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <varname>${worksrcpath}</varname></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>autoconf.dir src</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
- </variablelist>
- </section>
- </section>
-
- <section id="reference.phases.build">
- <title>Build Phase Keywords</title>
-
- <para>The list of keywords related to the build phase.</para>
-
- <variablelist>
- <varlistentry>
- <term>build.cmd</term>
-
- <listitem>
- <para>Make command to run in <varname>${worksrcdir}</varname>. Only
- use it if you can't use <literal>build.type</literal>.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <command>make</command></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>build.cmd pbxbuild</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>build.type</term>
-
- <listitem>
- <para>Defines which "make" is required. Sets
- <varname>${build.cmd}</varname> to either "gnumake" or "bsdmake"
- accordingly.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <option>gnu</option></para>
- </listitem>
-
- <listitem>
- <para>Values: <option>gnu</option> <option>bsd</option></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>build.type bsd</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>build.args</term>
-
- <term>build.pre_args</term>
-
- <term>build.post_args</term>
-
- <listitem>
- <para>Main arguments to <varname>${build.cmd}</varname>; optional
- argument modifiers pass arguments before and after the main
- arguments.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: none</para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>build.args -DNOWARN
-
-</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>The following argument modifiers are available:</para>
-
- <itemizedlist>
- <listitem>
- <para><literal>build.pre_args</literal>, defaults to:
- <varname>${build.target.current}</varname></para>
- </listitem>
-
- <listitem>
- <para><literal>build.post_args</literal>, defaults to:
- none</para>
- </listitem>
-
- <listitem>
- <para>Examples:</para>
-
- <programlisting>build.pre_args -project AudioSlicer.xcode
-build.post_args CFLAGS_SYS="-DUSE_FREETYPE -DPREFER_FREETYPE"</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>build.target</term>
-
- <term>build.target-append</term>
-
- <term>build.target-delete</term>
-
- <listitem>
- <para>Build target to pass to <varname>${build.cmd}</varname>; list
- modifiers add or delete items from a previous Portfile build.target
- keyword or the default set by MacPorts base.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>all</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>build.target all-src</programlisting>
-
- <programlisting>build.target-append doc extra
-build.target-delete compat</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>use_parallel_build</term>
-
- <listitem>
- <para>This keyword is for specifying whether or not it is safe for a
- port to use multiple cpus or multiple cores in parallel during its
- build phase. If a port is declared to be builadble this way, the
- option <option>-j N</option> may be passed to the
- <command>make</command> command if parallel builds are enabled
- system-wide. This can be obtained by setting
- <varname>buildmakejobs</varname> in
- <filename>macports.conf</filename>. The integer <option>N</option>
- refers to the number of parallel build threads.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <option>no</option></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>use_parallel_build yes</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
- </variablelist>
- </section>
-
- <section id="reference.phases.test">
- <title>Test Phase Keywords</title>
-
- <para>The list of keywords related to the test phase.</para>
-
- <variablelist>
- <varlistentry>
- <term>test.run</term>
-
- <listitem>
- <para>Enable running test suites bundled with a port.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <option>no</option></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>test.run yes</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>test.cmd</term>
-
- <listitem>
- <para>Test command to run relative to
- <varname>${worksrcdir}</varname>.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <varname>${build.cmd}</varname></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>test.cmd checks.sh</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>test.target</term>
-
- <listitem>
- <para>Test target to pass to <varname>${test.cmd}</varname>.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>test</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>test.target checks</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
-
- </varlistentry>
- </variablelist>
- </section>
-
- <section id="reference.phases.destroot">
- <title>Destroot Phase Keywords</title>
-
- <para>The list of keywords related to the destroot phase.</para>
-
- <variablelist>
- <varlistentry>
- <term>destroot.cmd</term>
-
- <listitem>
- <para>Install command to run relative to
- <varname>${worksrcdir}</varname>. Only use it if you can't use
- <literal>destroot.type</literal>.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <varname>${build.cmd}</varname></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>destroot.cmd pbxbuild</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>destroot.type</term>
-
- <listitem>
- <para>Defines which "make" is required. Sets
- <varname>${destroot.cmd}</varname> to either "gnumake" or "bsdmake"
- accordingly.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <varname>${build.type}</varname></para>
- </listitem>
-
- <listitem>
- <para>Values: <option>gnu</option> <option>bsd</option></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>destroot.type bsd</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>destroot.args</term>
-
- <term>destroot.pre_args</term>
-
- <term>destroot.post_args</term>
-
- <listitem>
- <para>Main arguments to <varname>${destroot.cmd}</varname>; optional
- argument modifiers pass arguments before and after the main
- arguments.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: none</para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>destroot.args BINDIR=${prefix}/bin
-
-</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>The following argument modifiers are available:</para>
-
- <itemizedlist>
- <listitem>
- <para><literal>destroot.pre_args</literal>, defaults to:
- <varname>${destroot.target}</varname></para>
- </listitem>
-
- <listitem>
- <para><literal>destroot.post_args</literal>, defaults to:
- none</para>
- </listitem>
-
- <listitem>
- <para>Examples:</para>
-
- <programlisting>destroot.pre_args -project AudioSlicer.xcode
-destroot.post_args INSTDIR=${destroot}${prefix}</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>destroot.target</term>
-
- <term>destroot.target-append</term>
-
- <term>destroot.target-delete</term>
-
- <listitem>
- <para>Install target to pass to <varname>${destroot.cmd}</varname>;
- list modifiers add or delete items from a previous Portfile
- destroot.target keyword or the default set by MacPorts base.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>install</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>destroot.target install install-config install-commandmode</programlisting>
-
- <programlisting>destroot.target-append install-plugins
-destroot.target-delete install-commandmode</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>destroot.destdir</term>
-
- <listitem>
- <para>Arguments passed to <varname>${destroot.cmd}</varname> to
- install correctly into the destroot.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>DESTDIR=${destroot}</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>destroot.destdir prefix=${destroot}${prefix}</programlisting>
- </listitem>
- </itemizedlist>
-
- <note>
- <para>If an application's Makefile properly supports the DESTDIR
- variable, MacPorts will automatically destroot the port properly.
- A port must destroot properly or the port will not install
- correctly, upgrade, or uninstall. If not, you may need to set this
- variable, or even patch the application's Makefile.</para>
- </note>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>destroot.umask</term>
-
- <listitem>
- <para>Umask to use during destroot.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <literal>022</literal></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>destroot.umask 002</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>destroot.keepdirs</term>
-
- <listitem>
- <para>A list of directories that should not be removed if empty upon
- destroot completion.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: ???</para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>destroot.keepdirs ${destroot}${prefix}/var/run \
- ${destroot}${prefix}/var/log \
- ${destroot}${prefix}/var/cache/mrtg</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>destroot.violate_mtree</term>
-
- <listitem>
- <para>MacPorts tests for compliance to the common directory
- structure in <varname>${prefix}</varname>. If a port is not
- compliant with the standard, set it to <option>yes</option>.</para>
-
- <para>You can find the macports standard in <link
- linkend="internals.hierarchy">MacPorts File Hierarchy</link> or in
- the porthier(7) man page.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <option>no</option></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>destroot.violate_mtree yes</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
- </variablelist>
- </section>
-</section>
Copied: trunk/doc-new/guide/xml/portfile-phase.xml (from rev 32048, trunk/doc-new/guide/xml/portfile-phase.7.xml)
===================================================================
--- trunk/doc-new/guide/xml/portfile-phase.xml (rev 0)
+++ trunk/doc-new/guide/xml/portfile-phase.xml 2007-12-14 15:04:49 UTC (rev 32049)
@@ -0,0 +1,2639 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<section id="reference.phases">
+ <title>Port Phases</title>
+
+ <section id="reference.phases.introduction">
+ <title>Introduction</title>
+
+ <para>A MacPorts port has ten distinct phases. The MacPorts base is set to
+ perform default steps for applications that use the standard
+ <command>configure</command>, <command>make</command>, and <command>make
+ install</command> steps, but for applications that do not conform to this
+ behavior, installation phases may be declared in a Portfile to <link
+ linkend="development.examples.augment">augment</link> or <link
+ linkend="development.examples.override">override</link> the default
+ behavior as described in the <link linkend="development">Portfile
+ Development</link> chapter.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>fetch</term>
+
+ <listitem>
+ <para>Fetch the <varname>${distfiles}</varname> from
+ <varname>${master_sites}</varname> and place it in
+ <filename>${prefix}/var/macports/distfiles/${name}</filename>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>checksum</term>
+
+ <listitem>
+ <para>Compare <varname>${checksums}</varname> specified in a
+ <filename>Portfile</filename> to the checksums of the fetched
+ ${distfiles}.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>extract</term>
+
+ <listitem>
+ <para>Unzip and untar the <varname>${distfiles}</varname> into the
+ path ${prefix}/var/macports/build/..../work</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>patch</term>
+
+ <listitem>
+ <para>Apply optional <ulink
+ url="http://en.wikipedia.org/wiki/Patch_(Unix)">patch</ulink> files
+ specified in <varname>${patchfiles}</varname> to modify a port's
+ source code file(s).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>configure</term>
+
+ <listitem>
+ <para>Execute the command <command>configure</command> in
+ <varname>${workpath}</varname>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>build</term>
+
+ <listitem>
+ <para>Execute the command <command>make</command> in
+ <varname>${workpath}</varname>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>test</term>
+
+ <listitem>
+ <para>Execute commands to run test suites bundled with a
+ port.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>destroot</term>
+
+ <listitem>
+ <para>Execute the command <command>make install</command>
+ <varname>DESTDIR=${destroot}</varname>in
+ <varname>${workpath}</varname>.</para>
+
+ <para>Understanding the destroot phase is critical to understanding
+ MacPorts, because, unlike some port systems, MacPorts "stages" an
+ installation into an intermediate location —not the final file
+ destination. MacPorts uses the destroot phase to provide:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Port uninstalls - a port's files may be cleanly
+ uninstalled because all files and directories are recorded
+ during install.</para>
+ </listitem>
+
+ <listitem>
+ <para>Multiple port versions may be installed on the same host,
+ since a port's files are not directly inserted into
+ <varname>${prefix}</varname> but rather hard-linked into
+ <varname>${prefix}</varname> from an intermediate location
+ during a later activation phase.</para>
+ </listitem>
+ </itemizedlist>
+
+ <note>
+ <para>The <varname>DESTDIR</varname> variable must be supported in
+ an application's Makefile for the MacPorts destroot phase to work
+ properly. Urge developers to fully support
+ <varname>DESTDIR</varname> in their Makefiles.</para>
+ </note>
+
+ <para>Any empty directories in <varname>${destroot}</varname> upon
+ completion of the destroot phase are removed unless a directory name
+ is placed in the value field of the optional
+ <code>destroot.keepdirs</code> keyword.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>archive</term>
+
+ <listitem>
+ <para>Use tar to create a tarball of a port's destrooted files and
+ copy it to
+ <filename>${prefix}/var/macports/packages/</filename>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>install</term>
+
+ <listitem>
+ <para>Copy a port's destrooted files into
+ <filename>${prefix}/var/macports/software</filename>. See <link
+ linkend="internals.images">Port Images</link> in the <link
+ linkend="internals">MacPorts Internals</link> chapter for
+ details.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>activate</term>
+
+ <listitem>
+ <para>Set <ulink
+ url="http://en.wikipedia.org/wiki/Hard_link">hardlinks</ulink>
+ pointing to <filename>${prefix}/var/macports/software</filename> to
+ point to <varname>${prefix}</varname>.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </section>
+
+ <section id="reference.phases.installation">
+ <title>Installation Phase Keywords</title>
+
+ <para>MacPorts keywords are used to specify required or optional items
+ within a Portfile, or to override default options used by MacPorts base
+ for individual ports. Keywords are to be used within the "global" and
+ "variant" sections of Portfiles, and not within optional port phase
+ declarations.</para>
+
+ <para>In other words, port phase keywords are not located within port
+ phase declarations, but rather they <emphasis>refer</emphasis> to port
+ phases and set options for those phases, and they take affect whether or
+ not phase declarations have been explicitly defined in a Portfile.</para>
+
+ <section id="reference.phases.installation.list-modifiers">
+ <title>Keyword List Modifiers (-append / -delete)</title>
+
+ <para>Keyword list modifiers are keywords that end in -append or
+ -delete. Keywords that support list modifiers are identified under
+ appropriate reference sections below. Keyword list modifiers are most
+ frequently used for these three purposes:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Preserve configure Defaults set by a previously executed
+ Portfile keyword or by MacPorts base</para>
+
+ <para>MacPorts base sets the gcc compiler flags CFLAGS and LDFLAGS
+ for all ports using <literal>configure.cflags</literal> and
+ <literal>configure.ldflags</literal>, therefore to keep from
+ overwriting the default compiler flags use
+ <literal>configure.cflags-append</literal> and
+ <literal>configure.ldflags-append</literal>.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><code>configure.cflags-append</code></para>
+ </listitem>
+
+ <listitem>
+ <para><code>configure.ldflags-append</code></para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
+ <para>Preserve PortGroup Dependencies</para>
+
+ <para>Ports in a PortGroup have default library dependencies set by
+ MacPorts base. Therefore, never use <literal>depends_lib</literal>
+ in ports belonging to a PortGroup or it will overwrite the default
+ library dependencies. Instead, use
+ <literal>depends_lib-append</literal>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Add or Delete Items for Variants</para>
+
+ <para>When a variant requires more or fewer dependencies, distfiles,
+ or patchfiles, when the variant is invoked you want to add or remove
+ items to the appropriate keyword values list set in the global
+ section of the Portfile. Use the appropriate keywords, for
+ example:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><code>depends_lib-append</code> or
+ <code>depends_lib-delete</code></para>
+ </listitem>
+
+ <listitem>
+ <para><code>distfiles-append</code> or
+ <code>distfile-delete</code></para>
+ </listitem>
+
+ <listitem>
+ <para><code>patchfiles-append</code> or
+ <code>patchfiles-delete</code></para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </orderedlist>
+ </section>
+
+ <section id="reference.phases.installation.argument-modifiers">
+ <title>Keyword Argument Modifiers (.pre_args / .post_args)</title>
+
+ <para>Keywords that support pre_args and post_args are used to assemble
+ command strings together in a row, as described in the reference
+ sections below. But it should be noted that all keyword argument
+ modifiers implicitly support keyword list modifiers. For example, the
+ keyword <literal>configure.pre_args</literal> also supports
+ <literal>configure.pre_args-append</literal> and
+ <literal>configure.pre_args-delete</literal>.</para>
+ </section>
+ </section>
+
+ <section id="reference.phases.fetch">
+ <title>Fetch Phase Keywords</title>
+
+ <para>The list of keywords related to the fetch phase.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>master_sites</term>
+
+ <listitem>
+ <para>A list of URLs from which a port's download file(s) may be
+ retrieved. For multiple master_sites, they are searched in order
+ until a file matching <varname>${distfile}</varname> is
+ found.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: ???</para>
+ </listitem>
+
+ <listitem>
+ <para>Examples:</para>
+
+ <programlisting>master_sites http://www.example.org/files/ \
+ http://www.examplemirror.org/example_org/files/
+
+</programlisting>
+
+ <para>You may also use mirror site lists predefined by MacPorts.
+ Here the sourceforge and gnu mirrors are used.</para>
+
+ <programlisting>master_sites sourceforge gnu
+
+</programlisting>
+
+ <para>When using mirror master_sites, the subdirectory
+ <varname>${name}</varname> is checked on every mirror. If the
+ mirror subdirectory does not match ${name}, then you may specify
+ it using after the mirror separated by a colon.</para>
+
+ <programlisting>master_sites sourceforge:widget \
+ gnu:widget
+
+</programlisting>
+
+ <para>For ports that must fetch multiple download files from
+ different locations, you must label the files with tags and
+ match the tags in a distfiles statement. The format is
+ <literal>mirror:subdirectory:tag</literal>.</para>
+
+ <para>In the example below, file_one.tar.gz is fetched from
+ sourceforge mirrors in subdirectory <varname>${name}</varname>;
+ file tagtwo.tar.gz is fetched from the gnu mirrors in
+ subdirectory sources.</para>
+
+ <programlisting>master_sites sourceforge::tagone \
+ gnu:sources:tagtwo
+
+distfiles file_one.tar.gz:tagone \
+ file_two.tar.gz:tagtwo</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>master_sites.mirror_subdir</term>
+
+ <listitem>
+ <para>Subdirectory to append to all mirror sites for any list
+ specified in <varname>${master_sites}</varname>.</para>
+
+ <!-- TODO: add a better explanation -->
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <varname>${name}</varname></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>master_sites.mirror_subdir magic</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>patch_sites</term>
+
+ <listitem>
+ <para>A list of sites from which a port's patchfiles may be
+ downloaded, where applicable.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <varname>${master_sites}</varname></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>patch_sites ftp://ftp.patchcityrepo.com/pub/magic/patches</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>patch_sites.mirror_subdir</term>
+
+ <listitem>
+ <para>Subdirectory to append to all mirror sites for any list
+ specified in <varname>${patch_sites}</varname>.</para>
+
+ <!-- TODO: add a better explanation -->
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <varname>${name}</varname></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>patch_sites.mirror_subdir magic</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>distname</term>
+
+ <listitem>
+ <para>The name of the distribution filename, not including the
+ extract suffix (see below).</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <varname>${name}-${version}</varname></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>distname ${name}</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>distfiles</term>
+
+ <listitem>
+ <para>The full distribution filename, including the extract suffix.
+ Used to specify non-default distribution filenames; this keyword
+ must be specified (and tags used) when a port has multiple download
+ files (see master_sites).</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default:
+ <varname>${distname}${extract.suffix}</varname></para>
+ </listitem>
+
+ <listitem>
+ <para>Examples:</para>
+
+ <programlisting>distfiles ${name}-dev_src.tgz</programlisting>
+
+ <programlisting>distfiles file_one.tar.gz:tagone \
+ file_two.tar.gz:tagtwo</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>dist_subdir</term>
+
+ <listitem>
+ <para>Create a sub-directory in distpath to store all fetched
+ files.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <varname>${name}</varname></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>dist_subdir vim${version}</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>extract.suffix</term>
+
+ <listitem>
+ <para>This keyword is used to specify the extract suffix
+ type.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <filename>.tar.gz</filename></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>extract.suffix .tgz</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>extract.mkdir</term>
+
+ <listitem>
+ <para>This keyword is used to specify if the directory
+ <filename>worksrcdir</filename> is part of the distfile or if it
+ should be created automatically and the distfiles should be
+ extracted there instead. This is useful for distfiles with a flat
+ structure which would pollute the <filename>worksrcdir</filename>
+ with lots of files.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <option>no</option></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>extract.mkdir yes</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>use_bzip2</term>
+
+ <listitem>
+ <para>This keyword is for downloads that are tarred and bzipped.
+ When invoked, it automatically sets:</para>
+
+ <literallayout>extract.suffix = .tar.bz
+extract.cmd = bzip
+
+</literallayout>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <option>no</option></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>use_bzip2 yes</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>use_zip</term>
+
+ <listitem>
+ <para>This keyword is for downloads which are zipped. When invoked,
+ it automatically sets:</para>
+
+ <literallayout>extract.suffix = .zip
+extract.cmd = unzip
+extract.pre_args = -q
+extract.post_args = "-d ${portpath}/${workdir}"
+
+</literallayout>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <option>no</option></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>use_zip yes</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>worksrcdir</term>
+
+ <listitem>
+ <para>Sets the path to source directory relative to workpath. It can
+ be used if the extracted source directory has a different name then
+ the distfile.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <varname>${distname}</varname></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>worksrcdir ${name}-src-${version}</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <section id="reference.phases.fetch.advanced">
+ <title>Advanced Fetch Options</title>
+
+ <para>Some mirrors require special options for a resource to be properly
+ fetched.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>fetch.user</term>
+
+ <listitem>
+ <para>HTTP or FTP user to fetch the resource.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: ???</para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>TODO: add example</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>fetch.password</term>
+
+ <listitem>
+ <para>HTTP or FTP password to fetch the resource.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: ???</para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>TODO: add example</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>fetch.use_epsv</term>
+
+ <listitem>
+ <para>Whether to use EPSV command for FTP transfers.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <option>yes</option></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>fetch.use_epsv no</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>fetch.ignore_sslcert</term>
+
+ <listitem>
+ <para>Whether to ignore the host SSL certificate (for
+ HTTPS).</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <option>no</option></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>fetch.ignore_sslcert yes</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </section>
+
+ <section id="reference.phases.fetch.cvs">
+ <title>Fetch from CVS</title>
+
+ <para><ulink url="http://www.nongnu.org/cvs/">CVS</ulink> may be used as
+ an alternative method of fetching distribution files using the keywords
+ in this section. However, fetching via CVS may cause non-reproducible
+ builds, so it is strongly discouraged.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>cvs.root</term>
+
+ <listitem>
+ <para>Specify the url from which to fetch files.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: none</para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>cvs.root :pserver:anonymous at cvs.sv.gnu.org:/sources/emacs</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>cvs.tag</term>
+
+ <listitem>
+ <para>Optional for fetching with CVS, this specifies the code
+ revision to checkout.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: none</para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>cvs.tag HEAD</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>cvs.date</term>
+
+ <listitem>
+ <para>A date that identifies the CVS code set to checkout.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: none</para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>cvs.date "12-April-2007"</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>cvs.module</term>
+
+ <listitem>
+ <para>A CVS module from which to check out the code.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: none</para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>cvs.module Sources</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </section>
+
+ <section id="reference.phases.fetch.svn">
+ <title>Fetch from Subversion</title>
+
+ <para><ulink url="http://subversion.tigris.org/">Subversion</ulink> may
+ be used as an alternative method of fetching distribution files using
+ the keywords in this section. However, fetching via Subversion may cause
+ non-reproducible builds, so it is strongly discouraged.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>svn.url</term>
+
+ <listitem>
+ <para>This specifies the url from which to fetch files.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: none</para>
+ </listitem>
+
+ <listitem>
+ <para>Examples:</para>
+
+ <programlisting>svn.url http://www.domain.com/svn-repo/mydirectory</programlisting>
+
+ <programlisting>svn.url svn://www.domain.com/svn-repo/mydirectory</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>svn.tag</term>
+
+ <listitem>
+ <para>Optional tag for fetching with Subversion, this specifies
+ the code revision to checkout; it corresponds to the -r option in
+ the svn cli.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: none</para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>svn.tag 37192</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </section>
+ </section>
+
+ <section id="reference.phases.checksum">
+ <title>Checksum Phase Keywords</title>
+
+ <para>The list of keywords related to the checksum phase.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>checksums</term>
+
+ <listitem>
+ <para>Checksum(s) of the distribution files. For ports with multiple
+ distribution files, filenames must be included to associate files
+ with their checksums.</para>
+
+ <para>All checksum types (md5, sha1 and rdm160) should be used to
+ ensure the integrity of the distfiles.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: ???</para>
+ </listitem>
+
+ <listitem>
+ <para>Examples:</para>
+
+ <programlisting>checksums md5 dafa161bc9c61e57636a6085c87c1fe8 \
+ sha1 5da610e1c8bc01b80abc21ab9e98e004363b429c \
+ rmd160 0c1147242adf476f5e93f4d59b553ee3ea378b23</programlisting>
+
+ <programlisting>checksums ${distname}${extract.suffix} \
+ md5 dafa161bc9c61e57636a6085c87c1fe8 \
+ sha1 5da610e1c8bc01b80abc21ab9e98e004363b429c \
+ rmd160 0c1147242adf476f5e93f4d59b553ee3ea378b23 \
+ hobbit.tar.gz \
+ md5 3b8d02c6cf6239b9bdadbc6543c5a683 \
+ sha1 27874638b23e66d39ed94fe716ca25c967f6e993 \
+ rmd160 82b9991f3bf0ceedbf74c188c5fa44b98b5e40c9</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </section>
+
+ <section id="reference.phases.extract">
+ <title>Extract Phase Keywords</title>
+
+ <para>The list of keywords related to the extract phase.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>extract.only</term>
+
+ <term>extract.only-append</term>
+
+ <term>extract.only-delete</term>
+
+ <listitem>
+ <para>List of files to extract into
+ <varname>${worksrcpath}</varname>. Only use if default extract
+ behavior is not correct for your port.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <varname>${distfiles}</varname></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>extract.only foo.tar.gz</programlisting>
+
+ <programlisting>extract.only-append bar.tar.gz
+extract.only-delete foo.tar.gz</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>extract.cmd</term>
+
+ <listitem>
+ <para>Command to perform extraction.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <command>gzip</command></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>extract.cmd gunzip</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>extract.args</term>
+
+ <term>extract.pre_args</term>
+
+ <term>extract.post_args</term>
+
+ <listitem>
+ <para>Main arguments to extract.cmd; additional arguments passed
+ before and after the main arguments.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <varname>${distpath}/${distfile}</varname></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>extract.args ${distpath}/${distfile}
+
+</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
+ <para>The following argument modifiers are available:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>extract.pre_args</literal>, defaults to:
+ <literal>-dc</literal></para>
+ </listitem>
+
+ <listitem>
+ <para><literal>extract.post_args</literal>, defaults to:
+ <literal>"| tar -xf"</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Examples:</para>
+
+ <programlisting>extract.pre_args xf
+extract.post_args "| gnutar –x"</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </section>
+
+ <section id="reference.phases.patch">
+ <title>Patch Phase Keywords</title>
+
+ <para>The list of keywords related to the patch phase.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>patch.dir</term>
+
+ <listitem>
+ <para>Specify the base path for patch files.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <varname>${worksrcpath}</varname></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>patch.dir ${worksrcpath}/util</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>patch.cmd</term>
+
+ <listitem>
+ <para>Specify the command to be used for patching files.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <command>patch</command></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>patch.cmd cat</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>patchfiles</term>
+
+ <term>patchfiles-append</term>
+
+ <term>patchfiles-delete</term>
+
+ <listitem>
+ <para>Specify patch files to be applied for a port; list modifiers
+ specify patchfiles to be added or removed from a previous patchfile
+ declaration.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: none</para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>patchfiles patch-Makefile.in \
+ patch-source.c</programlisting>
+
+ <programlisting>patchfiles-append patch-configure
+patchfiles-delete patch-src-Makefile.in</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>patch.args</term>
+
+ <term>patch.pre_args</term>
+
+ <term>patch.post_args</term>
+
+ <listitem>
+ <para>Main arguments to patch.cmd; optional argument modifiers pass
+ arguments before and after the main arguments.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: none</para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>patch.args ???
+
+</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
+ <para>The following argument modifiers are available:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>patch.pre_args</literal>, defaults to:
+ <literal>-p0</literal></para>
+ </listitem>
+
+ <listitem>
+ <para><literal>patch.post_args</literal>, defaults to:
+ none</para>
+ </listitem>
+
+ <listitem>
+ <para>Examples:</para>
+
+ <programlisting>patch.pre_args -p1
+patch.post_args ???</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </section>
+
+ <section id="reference.phases.configure">
+ <title>Configure Phase Keywords</title>
+
+ <para>The list of keywords related to the configure phase.</para>
+
+ <para>MacPorts base sets some important default configure options, so
+ should use the -append version of most configure keywords so you don't
+ overwrite them. For example, MacPorts base sets default
+ <literal>configure.cflags</literal> so you should always use
+ <literal>configure.cflags-append</literal> to set additional CFLAGS in
+ Portfiles.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>use_configure</term>
+
+ <listitem>
+ <para>Sets if the configure phase should be run.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <option>yes</option></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>use_configure no</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>configure.env</term>
+
+ <term>configure.env-append</term>
+
+ <term>configure.env-delete</term>
+
+ <listitem>
+ <para>Set environment variables for configure; list modifiers add
+ and delete items from a previous Portfile configure.env keyword, or
+ a default set by MacPorts base. If available, it is encouraged to
+ use the predefined options (like configure.cflags) instead of
+ modifying configure.env directly.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>CFLAGS=-I${prefix}/include
+ LDFLAGS=-L${prefix}/lib</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>configure.env QTDIR=${prefix}/lib/qt3</programlisting>
+
+ <programlisting>configure.env-append ABI=32
+configure.env-delete TCLROOT=${prefix}</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>configure.cflags</term>
+
+ <term>configure.cflags-append</term>
+
+ <term>configure.cflags-delete</term>
+
+ <listitem>
+ <para>Set CFLAGS compiler flags; list modifiers add or delete items
+ from a previous Portfile configure.cflags keyword or the default set
+ by MacPorts base.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>-O2</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>configure.cflags -Os -flat_namespace</programlisting>
+
+ <programlisting>configure.cflags-append "-undefined suppress"
+configure.cflags-delete -O2</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>configure.ldflags</term>
+
+ <term>configure.ldflags-append</term>
+
+ <term>configure.ldflags-delete</term>
+
+ <listitem>
+ <para>Set LDFLAGS compiler flags; list modifiers add or delete items
+ from a previous Portfile configure.ldflags keyword or the default
+ set by MacPorts base.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>-L${prefix}/lib</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>configure.ldflags "-L${worksrcpath}/zlib -lz"</programlisting>
+
+ <programlisting>configure.ldflags-append "-L/usr/X11R6/lib -L${worksrcpath}/lib"
+configure.ldflags-delete -L${prefix}/lib/db44</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>configure.cppflags</term>
+
+ <term>configure.cppflags-append</term>
+
+ <term>configure.cppflags-delete</term>
+
+ <listitem>
+ <para>Set CPPFLAGS to be passed to the C processor; list modifiers
+ add or delete items from a previous Portfile configure.cppflags
+ keyword or the default set by MacPorts base.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>-I${prefix}/include</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>configure.cppflags -I${worksrcpath}/include</programlisting>
+
+ <programlisting>configure.cppflags-append "-I/usr/X11R6/lib -I${worksrcpath}/lib -DHAVE_RRD_12X"
+configure.cppflags-delete -I${prefix}/lib/db44</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>configure.cxxflags</term>
+
+ <term>configure.cxxflags-append</term>
+
+ <term>configure.cxxflags-delete</term>
+
+ <listitem>
+ <para>Set CXXFLAGS to be passed to the C++ processor; list modifiers
+ add or delete items from a previous Portfile configure.cxxflags
+ keyword or the default set by MacPorts base.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>-O2</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>TODO: add example</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>configure.objcflags</term>
+
+ <term>configure.objcflags-append</term>
+
+ <term>configure.objcflags-delete</term>
+
+ <listitem>
+ <para>TODO: add description</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>-O2</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>TODO: add example</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>configure.classpath</term>
+
+ <term>configure.classpath-append</term>
+
+ <term>configure.classpath-delete</term>
+
+ <listitem>
+ <para>TODO: add description</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: ???</para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>TODO: add example</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>configure.macosx_deployment_target</term>
+
+ <term>configure.macosx_deployment_target-append</term>
+
+ <term>configure.macosx_deployment_target-delete</term>
+
+ <listitem>
+ <para>TODO: add description</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: ???</para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>TODO: add example</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <!-- fortran compiler options -->
+
+ <varlistentry>
+ <term>configure.fflags</term>
+
+ <term>configure.fflags-append</term>
+
+ <term>configure.fflags-delete</term>
+
+ <listitem>
+ <para>Set FFLAGS to be passed to the Fortran compiler; list
+ modifiers add or delete items from a previous Portfile
+ configure.fflags keyword or the default set by MacPorts base.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>-O2</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>configure.fflags -Os</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>configure.fcflags</term>
+
+ <term>configure.fcflags-append</term>
+
+ <term>configure.fcflags-delete</term>
+
+ <listitem>
+ <para>Set FCFLAGS to be passed to the Fortran compiler; list
+ modifiers add or delete items from a previous Portfile
+ configure.fcflags keyword or the default set by MacPorts
+ base.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>-O2</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>configure.fcflags -Os</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>configure.f90flags</term>
+
+ <term>configure.f90flags-append</term>
+
+ <term>configure.f90flags-delete</term>
+
+ <listitem>
+ <para>Set F90FLAGS to be passed to the Fortran 90 compiler; list
+ modifiers add or delete items from a previous Portfile
+ configure.f90flags keyword or the default set by MacPorts
+ base.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>-O2</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>configure.f90flags -Os</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <!-- fortran compiler options end -->
+
+ <!-- compiler selection arguments -->
+
+ <varlistentry>
+ <term>configure.cc</term>
+
+ <listitem>
+ <para>Set CC compiler flags for selecting a C compiler.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>???</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>configure.cc ${prefix}/bin/gcc-mp-4.2</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>configure.cpp</term>
+
+ <listitem>
+ <para>Set CPP compiler flags for selecting a C preprocessor.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>???</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>configure.cpp /usr/bin/cpp-3.3</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>configure.cxx</term>
+
+ <listitem>
+ <para>Set CXX compiler flags for selecting a C++ compiler.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>???</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>configure.cxx /usr/bin/g++-4.0</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>configure.objc</term>
+
+ <listitem>
+ <para>Set OBJC compiler flags for selecting an Objective-C
+ compiler.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>???</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>configure.objc /usr/bin/gcc-4.0</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>configure.fc</term>
+
+ <listitem>
+ <para>Set FC compiler flags for selecting a Fortran compiler.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>???</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>configure.fc ${prefix}/bin/gfortran-mp-4.2</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>configure.f77</term>
+
+ <listitem>
+ <para>Set F77 compiler flags for selecting a Fortran 77
+ compiler.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>???</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>configure.f77 ${prefix}/bin/gfortran-mp-4.2</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>configure.f90</term>
+
+ <listitem>
+ <para>Set F90 compiler flags for selecting a Fortran 90
+ compiler.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>???</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>configure.f90 ${prefix}/bin/gfortran-mp-4.2</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>configure.javac</term>
+
+ <listitem>
+ <para>Set JAVAC compiler flags for selecting a Java compiler.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>???</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>configure.javac ${prefix}/bin/jikes</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>configure.compiler</term>
+
+ <listitem>
+ <para>Select a compiler suite to fill the compiler environment
+ variables. All variables/tools a compiler suite can provide are set.
+ Manually set variables are not overwritten. Dependencies are not
+ added for you, as they may be just build- or also run-dependencies.
+ Keep in mind that not all compiler suites might be available on your
+ platform: <literal>gcc-3.3</literal> is available on Mac OS X 10.3
+ and 10.4 PowerPC, <literal>gcc-4.0</literal> is available on 10.4
+ and 10.5, <literal>gcc-4.2</literal> is available as preview for
+ 10.5.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>gcc-3.3</literal> on Mac OS X
+ 10.3</para>
+ </listitem>
+
+ <listitem>
+ <para>Default: <literal>gcc-4.0</literal> on Mac OS X 10.4 and
+ 10.5</para>
+ </listitem>
+
+ <listitem>
+ <para>Values: <literal>gcc-3.3</literal>
+ <literal>gcc-4.0</literal> <literal>gcc-4.2</literal>
+ <literal>apple-gcc-3.3</literal>
+ <literal>apple-gcc-4.0</literal>
+ <literal>macports-gcc-3.3</literal>
+ <literal>macports-gcc-3.4</literal>
+ <literal>macports-gcc-4.0</literal>
+ <literal>macports-gcc-4.1</literal>
+ <literal>macports-gcc-4.2</literal>
+ <literal>macports-gcc-4.3</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>configure.compiler macports-gcc-4.2</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <!-- compiler selection arguments end -->
+
+ <!-- interpreter selection arguments -->
+
+ <varlistentry>
+ <term>configure.perl</term>
+
+ <listitem>
+ <para>Set PERL flag for selecting a Perl interpreter.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>???</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>configure.perl ${prefix}/bin/perl5.8</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>configure.python</term>
+
+ <listitem>
+ <para>Set PYTHON flag for selecting a Python interpreter.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>???</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>configure.python ${prefix}/bin/python3.0</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>configure.ruby</term>
+
+ <listitem>
+ <para>Set RUBY flag for selecting a Ruby interpreter.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>???</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>configure.ruby ${prefix}/bin/ruby</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <!-- interpreter selection arguments end -->
+
+ <!-- other tools selection arguments -->
+
+ <varlistentry>
+ <term>configure.install</term>
+
+ <listitem>
+ <para>Set <literal>INSTALL</literal> flag for selecting an install
+ tool; used for copying files and creating directories.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <filename>/usr/bin/install</filename></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>configure.install ${prefix}/bin/ginstall</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>configure.awk</term>
+
+ <listitem>
+ <para>Set AWK flag for selecting an awk executable.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>???</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>configure.awk ${prefix}/bin/gawk</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>configure.bison</term>
+
+ <listitem>
+ <para>Set BISON flag for selecting a bison executable, a parser
+ generator.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>???</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>configure.bison /usr/bin/bison</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>configure.pkg_config</term>
+
+ <listitem>
+ <para>Set PKG_CONFIG flag for helping find pkg_config, a tool for
+ retrieving information about installed libraries.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>???</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>configure.pkg_config ${prefix}/bin/pkg-config</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>configure.pkg_config_path</term>
+
+ <listitem>
+ <para>Set PKG_CONFIG_PATH flag for telling pkg_config where to
+ search for information about installed libraries.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>???</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>configure.pkg_config_path ${prefix}/lib/pkgconfig:${x11prefix}/lib/pkgconfig</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <!-- other tools selection arguments end -->
+
+ <varlistentry>
+ <term>configure.args</term>
+
+ <term>configure.pre_args</term>
+
+ <term>configure.post_args</term>
+
+ <listitem>
+ <para>Main arguments to configure.cmd; optional argument modifiers
+ pass arguments before and after the main arguments.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: none</para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>configure.args --bindir=${prefix}/bin
+
+</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
+ <para>The following argument modifiers are available:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>configure.pre_args</literal>, defaults to:
+ <literal>--prefix=${prefix}</literal></para>
+ </listitem>
+
+ <listitem>
+ <para><literal>configure.post_args</literal>, defaults to:
+ none</para>
+ </listitem>
+
+ <listitem>
+ <para>Examples:</para>
+
+ <programlisting>configure.pre_args --prefix=${prefix}/share/bro
+configure.post_args OPT="-D__DARWIN_UNIX03"</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <section id="reference.phases.configure.universal">
+ <title>Configure Universal</title>
+
+ <para>Universal keywords are used to make a port compile on the Mac OS X
+ platform to run on either PPC or Intel.</para>
+
+ <note>
+ <para>There is a default universal variant made available to all ports
+ by MacPorts base, so redefining universal keywords should only be done
+ to make a given port compile if the default options fail to do
+ so.</para>
+ </note>
+
+ <variablelist>
+ <varlistentry>
+ <term>configure.universal_args</term>
+
+ <listitem>
+ <para>Arguments used in the configure script to build the port
+ universal.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default:
+ <literal>--disable-dependency-tracking</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>TODO: add example</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>configure.universal_cflags</term>
+
+ <listitem>
+ <para>Arguments appended to the configure script to build the port
+ universal.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>-sysroot
+ /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch
+ ppc</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>TODO: add example</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>configure.universal_cppflags</term>
+
+ <listitem>
+ <para>Additional flags to put in the CPPFLAGS environment variable
+ when invoking the configure script.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>???</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>TODO: add example</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>configure.universal_cxxflags</term>
+
+ <listitem>
+ <para>Additional flags to put in the CXXFLAGS environment variable
+ when invoking the configure script.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>-isysroot
+ /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch
+ ppc</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>TODO: add example</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>configure.universal_ldflags</term>
+
+ <listitem>
+ <para>Additional flags to put in the LDFLAGS environment variable
+ when invoking the configure script.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>-arch i386 -arch ppc</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>TODO: add example</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </section>
+
+ <section id="reference.phases.configure.automake-autoconf">
+ <title>Automake and Autoconf</title>
+
+ <para>The list of configure keywords available for ports that need
+ automake and/or autoconf.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>use_automake</term>
+
+ <listitem>
+ <para>Whether or not to use automake.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <option>no</option></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>use_automake yes</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>automake.env</term>
+
+ <listitem>
+ <para>Environment variables to pass to automake.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: ???</para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>automake.env CFLAGS=-I${prefix}/include</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>automake.args</term>
+
+ <listitem>
+ <para>Arguments to pass to automake.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: ???</para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>automake.args --foreign</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>automake.dir</term>
+
+ <listitem>
+ <para>Directory in which to run
+ <varname>${automake.cmd}</varname>.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <varname>${worksrcpath}</varname></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>automake.dir ./src</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>use_autoconf</term>
+
+ <listitem>
+ <para>Whether or not to use autoconf.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <option>no</option></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>use_autoconf yes</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>autoconf.env</term>
+
+ <listitem>
+ <para>Environmental variables to pass to autoconf.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: ???</para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>autoconf.env CFLAGS=-I${prefix}/include/gtk12</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>autoconf.args</term>
+
+ <listitem>
+ <para>Arguments to pass to autoconf.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: ???</para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>autoconf.args "-l src/aclocaldir"</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>autoconf.dir</term>
+
+ <listitem>
+ <para>Directory in which to run
+ <varname>${autoconf.cmd}</varname>.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <varname>${worksrcpath}</varname></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>autoconf.dir src</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </section>
+ </section>
+
+ <section id="reference.phases.build">
+ <title>Build Phase Keywords</title>
+
+ <para>The list of keywords related to the build phase.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>build.cmd</term>
+
+ <listitem>
+ <para>Make command to run in <varname>${worksrcdir}</varname>. Only
+ use it if you can't use <literal>build.type</literal>.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <command>make</command></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>build.cmd pbxbuild</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>build.type</term>
+
+ <listitem>
+ <para>Defines which "make" is required. Sets
+ <varname>${build.cmd}</varname> to either "gnumake" or "bsdmake"
+ accordingly.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <option>gnu</option></para>
+ </listitem>
+
+ <listitem>
+ <para>Values: <option>gnu</option> <option>bsd</option></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>build.type bsd</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>build.args</term>
+
+ <term>build.pre_args</term>
+
+ <term>build.post_args</term>
+
+ <listitem>
+ <para>Main arguments to <varname>${build.cmd}</varname>; optional
+ argument modifiers pass arguments before and after the main
+ arguments.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: none</para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>build.args -DNOWARN
+
+</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
+ <para>The following argument modifiers are available:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>build.pre_args</literal>, defaults to:
+ <varname>${build.target.current}</varname></para>
+ </listitem>
+
+ <listitem>
+ <para><literal>build.post_args</literal>, defaults to:
+ none</para>
+ </listitem>
+
+ <listitem>
+ <para>Examples:</para>
+
+ <programlisting>build.pre_args -project AudioSlicer.xcode
+build.post_args CFLAGS_SYS="-DUSE_FREETYPE -DPREFER_FREETYPE"</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>build.target</term>
+
+ <term>build.target-append</term>
+
+ <term>build.target-delete</term>
+
+ <listitem>
+ <para>Build target to pass to <varname>${build.cmd}</varname>; list
+ modifiers add or delete items from a previous Portfile build.target
+ keyword or the default set by MacPorts base.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>all</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>build.target all-src</programlisting>
+
+ <programlisting>build.target-append doc extra
+build.target-delete compat</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>use_parallel_build</term>
+
+ <listitem>
+ <para>This keyword is for specifying whether or not it is safe for a
+ port to use multiple cpus or multiple cores in parallel during its
+ build phase. If a port is declared to be builadble this way, the
+ option <option>-j N</option> may be passed to the
+ <command>make</command> command if parallel builds are enabled
+ system-wide. This can be obtained by setting
+ <varname>buildmakejobs</varname> in
+ <filename>macports.conf</filename>. The integer <option>N</option>
+ refers to the number of parallel build threads.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <option>no</option></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>use_parallel_build yes</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </section>
+
+ <section id="reference.phases.test">
+ <title>Test Phase Keywords</title>
+
+ <para>The list of keywords related to the test phase.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>test.run</term>
+
+ <listitem>
+ <para>Enable running test suites bundled with a port.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <option>no</option></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>test.run yes</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>test.cmd</term>
+
+ <listitem>
+ <para>Test command to run relative to
+ <varname>${worksrcdir}</varname>.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <varname>${build.cmd}</varname></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>test.cmd checks.sh</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>test.target</term>
+
+ <listitem>
+ <para>Test target to pass to <varname>${test.cmd}</varname>.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>test</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>test.target checks</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+
+ </varlistentry>
+ </variablelist>
+ </section>
+
+ <section id="reference.phases.destroot">
+ <title>Destroot Phase Keywords</title>
+
+ <para>The list of keywords related to the destroot phase.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>destroot.cmd</term>
+
+ <listitem>
+ <para>Install command to run relative to
+ <varname>${worksrcdir}</varname>. Only use it if you can't use
+ <literal>destroot.type</literal>.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <varname>${build.cmd}</varname></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>destroot.cmd pbxbuild</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>destroot.type</term>
+
+ <listitem>
+ <para>Defines which "make" is required. Sets
+ <varname>${destroot.cmd}</varname> to either "gnumake" or "bsdmake"
+ accordingly.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <varname>${build.type}</varname></para>
+ </listitem>
+
+ <listitem>
+ <para>Values: <option>gnu</option> <option>bsd</option></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>destroot.type bsd</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>destroot.args</term>
+
+ <term>destroot.pre_args</term>
+
+ <term>destroot.post_args</term>
+
+ <listitem>
+ <para>Main arguments to <varname>${destroot.cmd}</varname>; optional
+ argument modifiers pass arguments before and after the main
+ arguments.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: none</para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>destroot.args BINDIR=${prefix}/bin
+
+</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
+ <para>The following argument modifiers are available:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>destroot.pre_args</literal>, defaults to:
+ <varname>${destroot.target}</varname></para>
+ </listitem>
+
+ <listitem>
+ <para><literal>destroot.post_args</literal>, defaults to:
+ none</para>
+ </listitem>
+
+ <listitem>
+ <para>Examples:</para>
+
+ <programlisting>destroot.pre_args -project AudioSlicer.xcode
+destroot.post_args INSTDIR=${destroot}${prefix}</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>destroot.target</term>
+
+ <term>destroot.target-append</term>
+
+ <term>destroot.target-delete</term>
+
+ <listitem>
+ <para>Install target to pass to <varname>${destroot.cmd}</varname>;
+ list modifiers add or delete items from a previous Portfile
+ destroot.target keyword or the default set by MacPorts base.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>install</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>destroot.target install install-config install-commandmode</programlisting>
+
+ <programlisting>destroot.target-append install-plugins
+destroot.target-delete install-commandmode</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>destroot.destdir</term>
+
+ <listitem>
+ <para>Arguments passed to <varname>${destroot.cmd}</varname> to
+ install correctly into the destroot.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>DESTDIR=${destroot}</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>destroot.destdir prefix=${destroot}${prefix}</programlisting>
+ </listitem>
+ </itemizedlist>
+
+ <note>
+ <para>If an application's Makefile properly supports the DESTDIR
+ variable, MacPorts will automatically destroot the port properly.
+ A port must destroot properly or the port will not install
+ correctly, upgrade, or uninstall. If not, you may need to set this
+ variable, or even patch the application's Makefile.</para>
+ </note>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>destroot.umask</term>
+
+ <listitem>
+ <para>Umask to use during destroot.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <literal>022</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>destroot.umask 002</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>destroot.keepdirs</term>
+
+ <listitem>
+ <para>A list of directories that should not be removed if empty upon
+ destroot completion.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: ???</para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>destroot.keepdirs ${destroot}${prefix}/var/run \
+ ${destroot}${prefix}/var/log \
+ ${destroot}${prefix}/var/cache/mrtg</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>destroot.violate_mtree</term>
+
+ <listitem>
+ <para>MacPorts tests for compliance to the common directory
+ structure in <varname>${prefix}</varname>. If a port is not
+ compliant with the standard, set it to <option>yes</option>.</para>
+
+ <para>You can find the macports standard in <link
+ linkend="internals.hierarchy">MacPorts File Hierarchy</link> or in
+ the porthier(7) man page.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <option>no</option></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>destroot.violate_mtree yes</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </section>
+</section>
Deleted: trunk/doc-new/guide/xml/portfile-startupitem.7.xml
===================================================================
--- trunk/doc-new/guide/xml/portfile-startupitem.7.xml 2007-12-14 14:49:31 UTC (rev 32048)
+++ trunk/doc-new/guide/xml/portfile-startupitem.7.xml 2007-12-14 15:04:49 UTC (rev 32049)
@@ -1,492 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-
-<section id="reference.startupitems">
- <title>StartupItems</title>
-
- <para>A StartupItem is a MacPorts facility to run "daemons," a Unix term
- for programs that run continuously in the background, rather than under
- the direct control of a user; for example, mail servers, network
- listeners, etc. Ports that use StartupItem keywords create Mac OS X
- scripts for <ulink
- url="http://developer.apple.com/macosx/launchd.html">launchd</ulink>,
- which is the Apple facility introduced with Mac OS X 10.4 to replace xinetd
- for starting and managing daemons. To support
- <command>launchd</command>, a program named <command>daemondo</command>
- is provided by MacPorts base that serves as an adapter between Mac OS X's
- <command>launchd</command> and daemons (<quote>executable</quote>
- StartupItems) or traditional Unix startup scripts that start daemons
- (<quote>script</quote> StartupItems).</para>
-
- <para>There are three categories of StartupItem keywords. Those that
- trigger StartupItem creation and logging, those that specify attributes
- of <quote>executable</quote> StartupItems, and those that specify
- attributes of <quote>script</quote> StartupItems.</para>
-
- <note>
- <para>The variable <varname>startupitem_type</varname> in
- <filename>${prefix}/etc/macports/macports.conf</filename> may be set to
- <option>none</option> to globally override all StartupItem keywords
- found in Portfiles; this prevents StartupItems from being
- created.</para>
- </note>
-
- <section id="reference.startupitems.attributes">
- <title>StartupItem Attributes</title>
-
- <para>The keywords in this section may be used with either
- <quote>executable</quote> or <quote>script</quote> StartupItems (see
- below).</para>
-
- <variablelist>
- <varlistentry>
- <term>startupitem.create</term>
-
- <listitem>
- <para>Trigger the creation of a StartupItem.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <option>no</option></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>startupitem.create yes</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>startupitem.name</term>
-
- <listitem>
- <para>Sets the name for the StartupItem.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: none</para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>startupitem.name OpenSSH</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>startupitem.type</term>
-
- <!-- TODO: check if this is still up to date -->
-
- <listitem>
- <para>Select the type of startupitem to generate. By default, a
- startupitem will be generated that is of the appropriate type for
- the OS. For instance, launchd is used on system 10.4, while
- SystemStarter is used on prior Mac OS X systems. A global default
- may be specified with the startupitem_type preference in
- <filename>ports.conf</filename>.
- </para>
-
- <itemizedlist>
- <listitem>
- <para>Default: none</para>
- </listitem>
-
- <listitem>
- <para>Values: <option>SystemStarter</option>
- <option>launchd</option> <option>default</option>
- <option>rcNG</option></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>startupitem.type launchd</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>startupitem.logfile</term>
-
- <listitem>
- <para>Path to a logfile for logging events about the lifetime of
- the StartupItem. Depending on the type of StartupItem, and the
- manner in which it is started, standard output from the daemon
- may also be directed to the logfile.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <filename>/dev/null</filename></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>startupitem.logfile ${prefix}/var/log/mydaemon.log</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>startupitem.logevents</term>
-
- <listitem>
- <para>Control whether or not to log events to the log file. If
- logevents is set, events with timestamps are logged to the
- logfile.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <option>no</option></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>startupitem.logevents yes</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>startupitem.netchange</term>
-
- <listitem>
- <para>Cause the daemon to be restarted when a change in network
- state is detected.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: <option>no</option></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>startupitem.netchange yes</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
- </variablelist>
- </section>
-
- <section id="reference.startupitems.executable">
- <title>Executable StartupItems</title>
-
- <para>Daemons run continuously, so monitoring the health of daemon
- processes and restarting them if they die is an important
- StartupItems' feature. <quote>Executable</quote> StartupItems are
- preferred over <quote>script</quote> StartupItems because
- <command>daemondo</command> launches the daemon
- <emphasis>directly</emphasis>, rather than
- <emphasis>indirectly</emphasis> via a script, and therefore it
- automatically knows how to monitor a daemon process and restart it if
- it dies. Daemons used with <quote>executable</quote> StartupItems may
- be programs or scripts (shell, perl, python, etc.), but when a script is
- used the script <emphasis>itself</emphasis> must be the daemon, rather
- than a script that launches a daemon. <quote>Script</quote> StartupItems
- are to be used for the latter.</para>
-
- <note>
- <para>For a given port, the <quote>executable</quote> StartupItem
- keyword may not be used with any keywords in the
- <quote>script</quote> StartupItem category.</para>
- </note>
-
- <variablelist>
- <varlistentry>
- <term>startupitem.executable</term>
-
- <listitem>
- <para>Specifies the name of the daemon to be run in the
- background. It may have multiple arguments, but they must be
- appropriate for a call to exec; arbitrary shell code may not be
- used.</para>
-
- <itemizedlist>
- <listitem>
- <!-- TODO: is the default really no, not none? -->
- <para>Default: <option>no</option></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>startupitem.executable ${prefix}/sbin/vm-pop3d -d 10 -t 600</programlisting>
- </listitem>
- </itemizedlist>
-
- <note>
- <para>Do not to wrap the value in quotes if passing arguments
- to the daemon; unlike with<quote>script</quote> StartupItem
- values, executable StartupItem value elements must be tagged
- separately as shown in this example .plist file
- snippet.</para>
-
- <programlisting><![CDATA[<key>ProgramArguments</key>
-<array>
- <string>/opt/local/bin/daemondo</string>
- <string>--label=vm-pop3d</string>
- <string>--start-cmd</string>
- <string>/opt/local/sbin/vm-pop3d</string>
- <string>-d</string>
- <string>10</string>
- <string>-t</string>
- <string>600</string>
- <string>;</string>
-</array>]]></programlisting>
- <!-- TODO: what is the meaning of this snippet here? -->
- </note>
- </listitem>
- </varlistentry>
- </variablelist>
- </section>
-
- <section id="reference.startupitems.script">
- <title>Script StartupItems</title>
-
- <para>StartupItems of type <quote>script</quote> use
- <command>daemondo</command> to launch a daemon
- <emphasis>indirectly</emphasis> via a startup script. A typical
- snippet of a startup script that may be used with a
- <quote>script</quote> StartupItem is shown below. Notice that the
- script is not a daemon; rather the script indirectly launches the
- vm-pop3d daemon.</para>
-
- <programlisting>#!/bin/sh
-
-case "$1" in
- start)
- echo -n "Starting vm-pop3d: "
- /opt/local/sbin/vm-pop3d -d 10 -t 600
-
-[... trimmed ...]</programlisting>
-
- <para>But if a script itself is a daemon, use the
- <quote>executable</quote> StartupItem type since that way it will be
- launched directly and its health tracked automatically. When using
- <quote>script</quote> StartupItems, the
- <code>startupitem.pidfile</code> keyword must be used if you want
- <command>daemondo</command> to monitor a daemon process and restart it
- if it dies.</para>
-
- <note>
- <para>For a given port, StartupItem keywords in category
- <quote>script</quote> may not be used with an
- <quote>executable</quote> StartupItem keyword.</para>
- </note>
-
- <variablelist>
- <varlistentry>
- <term>startupitem.start</term>
-
- <term>startupitem.stop</term>
-
- <term>startupitem.restart</term>
-
- <listitem>
- <para>Specify a shell script to start, stop, and restart the daemon.
- In the absence of <code>startupitem.restart</code>, the daemon will
- be restarted by taking the stop action, followed by the start
- action.</para>
-
- <itemizedlist>
- <listitem>
- <para>Default: none</para>
- </listitem>
-
- <listitem>
- <para>Examples:</para>
-
- <programlisting>startupitem.start "${prefix}/share/mysql/mysql.server start"
-startupitem.stop "${prefix}/share/mysql/mysql.server stop"
-startupitem.restart "${prefix}/share/mysql/mysql.server restart"</programlisting>
- </listitem>
- </itemizedlist>
-
- <note>
- <para>Wrap the stop, start, and restart values in quotes so
- they will be placed in the wrapper as a single command.</para>
- </note>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>startupitem.init</term>
-
- <listitem>
- <para>Shell code that will be executed prior to any of the
- options <code>startupitem.start</code>,
- <code>startupitem.stop</code> and
- <code>startupitem.restart</code>.</para>
-
- <itemizedlist>
-
- <listitem>
- <!-- TODO: is the default really no, not none? -->
- <para>Default: <option>no</option></para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>startupitem.init BIN=${prefix}/sbin/bacula-fd</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>startupitem.pidfile</term>
-
- <listitem>
- <para>This keyword must be defined properly for
- <command>daemondo</command> to be able to monitor daemons
- launched via <quote>script</quote> StartupItems and restart them
- if they die. It specifies two things: a process id (PID) file
- handling method, and a pidfile name and path.</para>
-
- <itemizedlist>
- <listitem>
- <!-- TODO: this is the default value described in the old
- portfile.7 man page -->
- <para>Default: <literal>none
- ${prefix}/var/run/${name}.pid</literal></para>
- <!-- TODO: clarify the default value -->
- <para>Default: [none] |
- [<filename>${prefix}/var/run/${name}.pid</filename>]</para>
- </listitem>
-
- <listitem>
- <!-- TODO: clarify this -->
- <para>Values [none auto manual clean]
- [<replaceable>/path/to/pidfile</replaceable>]</para>
- </listitem>
-
- <listitem>
- <para>Example:</para>
-
- <programlisting>startupitem.pidfile auto ${prefix}/var/run/${name}.pidfile</programlisting>
-
- <!-- TODO: add more examples here -->
-
- </listitem>
- </itemizedlist>
-
- <para>PID file handling options:</para>
-
- <itemizedlist>
- <listitem>
- <para><option>none</option> - daemondo will not create or
- track a PID file, so it won't know when a daemon
- dies.</para>
- </listitem>
-
- <listitem>
- <para><option>auto</option> - The started process is
- expected to create a PID file that contains the PID of the
- running daemon; daemondo then reads the PID from the file
- and tracks the process. The started process must delete the
- PID file if this is necessary.</para>
- </listitem>
-
- <listitem>
- <para><option>clean</option> - The started process is
- expected to create a PID file that contains the PID of the
- running daemon; daemondo then reads the PID from the file
- and tracks the process, and deletes the PID file if it
- detects the daemon has died.</para>
- </listitem>
-
- <listitem>
- <para><option>manual</option> - This option should only be
- used if an <quote>executable</quote> StartupItem could be
- used (daemondo launches a daemon directly)
- <emphasis>and</emphasis> a port author wants a PID file
- written for some special use. A PID file is not needed to
- detect process death for daemons launched directly by
- daemondo. As with executable StartupItems, daemondo remembers
- the PID of the launched process and tracks it
- automatically.</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
- </variablelist>
- </section>
-
- <section id="reference.startupitems.launchd">
- <title>Loading / Unloading StartupItems into launchd</title>
-
- <para>A port with a StartupItem places a link to a .plist file for the
- port's daemon within <filename>/Library/LaunchDaemons/</filename>. A
- .plist file is an XML file; MacPorts installs .plist files tagged as
- <quote>disabled</quote> for the sake of security. You may enable a
- startup script (tag the.plist file as <quote>enabled</quote>) and load
- it into <command>launchd</command> with a single command as
- shown.</para>
-
- <programlisting><prompt>%%</prompt> <userinput>sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist</userinput></programlisting>
-
- <para>You may stop a running startup script, disable it (tag the.plist
- file as <quote>disabled</quote>), and unload it from
- <command>launchd</command> with a single command as shown.</para>
-
- <programlisting><prompt>%%</prompt> <userinput>sudo launchctl unload -w /Library/LaunchDaemons/org.macports.mysql5.plist</userinput></programlisting>
- </section>
-
- <section id="reference.startupitems.internals">
- <title>StartupItem Internals</title>
-
- <para>During port installation a MacPorts StartupItem creates a .plist
- file in <filename>${prefix}/etc/LaunchDaemons/</filename>, and places
- a symbolic link to the .plist file within
- <filename>/Library/LaunchDaemons/</filename>.</para>
-
- <para>For example, the StartupItem for the mysql5 port is
- <filename>org.macports.mysql5.plist</filename>, and it is linked as
- shown.</para>
-
- <programlisting><prompt>%%</prompt> <userinput>ls -l /Library/LaunchDaemons</userinput></programlisting>
-
- <screen>org.macports.mysql5.plist ->
- /opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist</screen>
-
- <para>For <quote>script</quote> StartupItems, in addition to a .plist
- file, a wrapper is also created.<programlisting><prompt>%%</prompt> <userinput>ls -l /opt/local/etc/LaunchDaemons/org.macports.mysql5/</userinput></programlisting><screen>-rwxr-xr-x 2 root wheel 475 Aug 2 14:16 mysql5.wrapper
--rw-r--r-- 2 root wheel 975 Aug 2 14:16 org.macports.mysql5.plist</screen>The
- wrapper manipulates the script as specified in the startupitem.start
- and startupitem.stop keywords. An example wrapper script snippet is
- shown below.</para>
-
- <programlisting>#!/bin/sh
-
-# MacPorts generated daemondo support script
-
-# Start
-Start()
-{
- /opt/local/share/mysql5/mysql/mysql.server start
-}
-
-# Stop
-Stop()
-{
- /opt/local/share/mysql5/mysql/mysql.server stop
-}
-
-[... trimmed ...]</programlisting>
- </section>
-</section>
Copied: trunk/doc-new/guide/xml/portfile-startupitem.xml (from rev 32048, trunk/doc-new/guide/xml/portfile-startupitem.7.xml)
===================================================================
--- trunk/doc-new/guide/xml/portfile-startupitem.xml (rev 0)
+++ trunk/doc-new/guide/xml/portfile-startupitem.xml 2007-12-14 15:04:49 UTC (rev 32049)
@@ -0,0 +1,492 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+
+<section id="reference.startupitems">
+ <title>StartupItems</title>
+
+ <para>A StartupItem is a MacPorts facility to run "daemons," a Unix term
+ for programs that run continuously in the background, rather than under
+ the direct control of a user; for example, mail servers, network
+ listeners, etc. Ports that use StartupItem keywords create Mac OS X
+ scripts for <ulink
+ url="http://developer.apple.com/macosx/launchd.html">launchd</ulink>,
+ which is the Apple facility introduced with Mac OS X 10.4 to replace xinetd
+ for starting and managing daemons. To support
+ <command>launchd</command>, a program named <command>daemondo</command>
+ is provided by MacPorts base that serves as an adapter between Mac OS X's
+ <command>launchd</command> and daemons (<quote>executable</quote>
+ StartupItems) or traditional Unix startup scripts that start daemons
+ (<quote>script</quote> StartupItems).</para>
+
+ <para>There are three categories of StartupItem keywords. Those that
+ trigger StartupItem creation and logging, those that specify attributes
+ of <quote>executable</quote> StartupItems, and those that specify
+ attributes of <quote>script</quote> StartupItems.</para>
+
+ <note>
+ <para>The variable <varname>startupitem_type</varname> in
+ <filename>${prefix}/etc/macports/macports.conf</filename> may be set to
+ <option>none</option> to globally override all StartupItem keywords
+ found in Portfiles; this prevents StartupItems from being
+ created.</para>
+ </note>
+
+ <section id="reference.startupitems.attributes">
+ <title>StartupItem Attributes</title>
+
+ <para>The keywords in this section may be used with either
+ <quote>executable</quote> or <quote>script</quote> StartupItems (see
+ below).</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>startupitem.create</term>
+
+ <listitem>
+ <para>Trigger the creation of a StartupItem.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <option>no</option></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>startupitem.create yes</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>startupitem.name</term>
+
+ <listitem>
+ <para>Sets the name for the StartupItem.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: none</para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>startupitem.name OpenSSH</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>startupitem.type</term>
+
+ <!-- TODO: check if this is still up to date -->
+
+ <listitem>
+ <para>Select the type of startupitem to generate. By default, a
+ startupitem will be generated that is of the appropriate type for
+ the OS. For instance, launchd is used on system 10.4, while
+ SystemStarter is used on prior Mac OS X systems. A global default
+ may be specified with the startupitem_type preference in
+ <filename>ports.conf</filename>.
+ </para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: none</para>
+ </listitem>
+
+ <listitem>
+ <para>Values: <option>SystemStarter</option>
+ <option>launchd</option> <option>default</option>
+ <option>rcNG</option></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>startupitem.type launchd</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>startupitem.logfile</term>
+
+ <listitem>
+ <para>Path to a logfile for logging events about the lifetime of
+ the StartupItem. Depending on the type of StartupItem, and the
+ manner in which it is started, standard output from the daemon
+ may also be directed to the logfile.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <filename>/dev/null</filename></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>startupitem.logfile ${prefix}/var/log/mydaemon.log</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>startupitem.logevents</term>
+
+ <listitem>
+ <para>Control whether or not to log events to the log file. If
+ logevents is set, events with timestamps are logged to the
+ logfile.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <option>no</option></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>startupitem.logevents yes</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>startupitem.netchange</term>
+
+ <listitem>
+ <para>Cause the daemon to be restarted when a change in network
+ state is detected.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: <option>no</option></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>startupitem.netchange yes</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </section>
+
+ <section id="reference.startupitems.executable">
+ <title>Executable StartupItems</title>
+
+ <para>Daemons run continuously, so monitoring the health of daemon
+ processes and restarting them if they die is an important
+ StartupItems' feature. <quote>Executable</quote> StartupItems are
+ preferred over <quote>script</quote> StartupItems because
+ <command>daemondo</command> launches the daemon
+ <emphasis>directly</emphasis>, rather than
+ <emphasis>indirectly</emphasis> via a script, and therefore it
+ automatically knows how to monitor a daemon process and restart it if
+ it dies. Daemons used with <quote>executable</quote> StartupItems may
+ be programs or scripts (shell, perl, python, etc.), but when a script is
+ used the script <emphasis>itself</emphasis> must be the daemon, rather
+ than a script that launches a daemon. <quote>Script</quote> StartupItems
+ are to be used for the latter.</para>
+
+ <note>
+ <para>For a given port, the <quote>executable</quote> StartupItem
+ keyword may not be used with any keywords in the
+ <quote>script</quote> StartupItem category.</para>
+ </note>
+
+ <variablelist>
+ <varlistentry>
+ <term>startupitem.executable</term>
+
+ <listitem>
+ <para>Specifies the name of the daemon to be run in the
+ background. It may have multiple arguments, but they must be
+ appropriate for a call to exec; arbitrary shell code may not be
+ used.</para>
+
+ <itemizedlist>
+ <listitem>
+ <!-- TODO: is the default really no, not none? -->
+ <para>Default: <option>no</option></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>startupitem.executable ${prefix}/sbin/vm-pop3d -d 10 -t 600</programlisting>
+ </listitem>
+ </itemizedlist>
+
+ <note>
+ <para>Do not to wrap the value in quotes if passing arguments
+ to the daemon; unlike with<quote>script</quote> StartupItem
+ values, executable StartupItem value elements must be tagged
+ separately as shown in this example .plist file
+ snippet.</para>
+
+ <programlisting><![CDATA[<key>ProgramArguments</key>
+<array>
+ <string>/opt/local/bin/daemondo</string>
+ <string>--label=vm-pop3d</string>
+ <string>--start-cmd</string>
+ <string>/opt/local/sbin/vm-pop3d</string>
+ <string>-d</string>
+ <string>10</string>
+ <string>-t</string>
+ <string>600</string>
+ <string>;</string>
+</array>]]></programlisting>
+ <!-- TODO: what is the meaning of this snippet here? -->
+ </note>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </section>
+
+ <section id="reference.startupitems.script">
+ <title>Script StartupItems</title>
+
+ <para>StartupItems of type <quote>script</quote> use
+ <command>daemondo</command> to launch a daemon
+ <emphasis>indirectly</emphasis> via a startup script. A typical
+ snippet of a startup script that may be used with a
+ <quote>script</quote> StartupItem is shown below. Notice that the
+ script is not a daemon; rather the script indirectly launches the
+ vm-pop3d daemon.</para>
+
+ <programlisting>#!/bin/sh
+
+case "$1" in
+ start)
+ echo -n "Starting vm-pop3d: "
+ /opt/local/sbin/vm-pop3d -d 10 -t 600
+
+[... trimmed ...]</programlisting>
+
+ <para>But if a script itself is a daemon, use the
+ <quote>executable</quote> StartupItem type since that way it will be
+ launched directly and its health tracked automatically. When using
+ <quote>script</quote> StartupItems, the
+ <code>startupitem.pidfile</code> keyword must be used if you want
+ <command>daemondo</command> to monitor a daemon process and restart it
+ if it dies.</para>
+
+ <note>
+ <para>For a given port, StartupItem keywords in category
+ <quote>script</quote> may not be used with an
+ <quote>executable</quote> StartupItem keyword.</para>
+ </note>
+
+ <variablelist>
+ <varlistentry>
+ <term>startupitem.start</term>
+
+ <term>startupitem.stop</term>
+
+ <term>startupitem.restart</term>
+
+ <listitem>
+ <para>Specify a shell script to start, stop, and restart the daemon.
+ In the absence of <code>startupitem.restart</code>, the daemon will
+ be restarted by taking the stop action, followed by the start
+ action.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Default: none</para>
+ </listitem>
+
+ <listitem>
+ <para>Examples:</para>
+
+ <programlisting>startupitem.start "${prefix}/share/mysql/mysql.server start"
+startupitem.stop "${prefix}/share/mysql/mysql.server stop"
+startupitem.restart "${prefix}/share/mysql/mysql.server restart"</programlisting>
+ </listitem>
+ </itemizedlist>
+
+ <note>
+ <para>Wrap the stop, start, and restart values in quotes so
+ they will be placed in the wrapper as a single command.</para>
+ </note>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>startupitem.init</term>
+
+ <listitem>
+ <para>Shell code that will be executed prior to any of the
+ options <code>startupitem.start</code>,
+ <code>startupitem.stop</code> and
+ <code>startupitem.restart</code>.</para>
+
+ <itemizedlist>
+
+ <listitem>
+ <!-- TODO: is the default really no, not none? -->
+ <para>Default: <option>no</option></para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>startupitem.init BIN=${prefix}/sbin/bacula-fd</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>startupitem.pidfile</term>
+
+ <listitem>
+ <para>This keyword must be defined properly for
+ <command>daemondo</command> to be able to monitor daemons
+ launched via <quote>script</quote> StartupItems and restart them
+ if they die. It specifies two things: a process id (PID) file
+ handling method, and a pidfile name and path.</para>
+
+ <itemizedlist>
+ <listitem>
+ <!-- TODO: this is the default value described in the old
+ portfile.7 man page -->
+ <para>Default: <literal>none
+ ${prefix}/var/run/${name}.pid</literal></para>
+ <!-- TODO: clarify the default value -->
+ <para>Default: [none] |
+ [<filename>${prefix}/var/run/${name}.pid</filename>]</para>
+ </listitem>
+
+ <listitem>
+ <!-- TODO: clarify this -->
+ <para>Values [none auto manual clean]
+ [<replaceable>/path/to/pidfile</replaceable>]</para>
+ </listitem>
+
+ <listitem>
+ <para>Example:</para>
+
+ <programlisting>startupitem.pidfile auto ${prefix}/var/run/${name}.pidfile</programlisting>
+
+ <!-- TODO: add more examples here -->
+
+ </listitem>
+ </itemizedlist>
+
+ <para>PID file handling options:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><option>none</option> - daemondo will not create or
+ track a PID file, so it won't know when a daemon
+ dies.</para>
+ </listitem>
+
+ <listitem>
+ <para><option>auto</option> - The started process is
+ expected to create a PID file that contains the PID of the
+ running daemon; daemondo then reads the PID from the file
+ and tracks the process. The started process must delete the
+ PID file if this is necessary.</para>
+ </listitem>
+
+ <listitem>
+ <para><option>clean</option> - The started process is
+ expected to create a PID file that contains the PID of the
+ running daemon; daemondo then reads the PID from the file
+ and tracks the process, and deletes the PID file if it
+ detects the daemon has died.</para>
+ </listitem>
+
+ <listitem>
+ <para><option>manual</option> - This option should only be
+ used if an <quote>executable</quote> StartupItem could be
+ used (daemondo launches a daemon directly)
+ <emphasis>and</emphasis> a port author wants a PID file
+ written for some special use. A PID file is not needed to
+ detect process death for daemons launched directly by
+ daemondo. As with executable StartupItems, daemondo remembers
+ the PID of the launched process and tracks it
+ automatically.</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </section>
+
+ <section id="reference.startupitems.launchd">
+ <title>Loading / Unloading StartupItems into launchd</title>
+
+ <para>A port with a StartupItem places a link to a .plist file for the
+ port's daemon within <filename>/Library/LaunchDaemons/</filename>. A
+ .plist file is an XML file; MacPorts installs .plist files tagged as
+ <quote>disabled</quote> for the sake of security. You may enable a
+ startup script (tag the.plist file as <quote>enabled</quote>) and load
+ it into <command>launchd</command> with a single command as
+ shown.</para>
+
+ <programlisting><prompt>%%</prompt> <userinput>sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist</userinput></programlisting>
+
+ <para>You may stop a running startup script, disable it (tag the.plist
+ file as <quote>disabled</quote>), and unload it from
+ <command>launchd</command> with a single command as shown.</para>
+
+ <programlisting><prompt>%%</prompt> <userinput>sudo launchctl unload -w /Library/LaunchDaemons/org.macports.mysql5.plist</userinput></programlisting>
+ </section>
+
+ <section id="reference.startupitems.internals">
+ <title>StartupItem Internals</title>
+
+ <para>During port installation a MacPorts StartupItem creates a .plist
+ file in <filename>${prefix}/etc/LaunchDaemons/</filename>, and places
+ a symbolic link to the .plist file within
+ <filename>/Library/LaunchDaemons/</filename>.</para>
+
+ <para>For example, the StartupItem for the mysql5 port is
+ <filename>org.macports.mysql5.plist</filename>, and it is linked as
+ shown.</para>
+
+ <programlisting><prompt>%%</prompt> <userinput>ls -l /Library/LaunchDaemons</userinput></programlisting>
+
+ <screen>org.macports.mysql5.plist ->
+ /opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist</screen>
+
+ <para>For <quote>script</quote> StartupItems, in addition to a .plist
+ file, a wrapper is also created.<programlisting><prompt>%%</prompt> <userinput>ls -l /opt/local/etc/LaunchDaemons/org.macports.mysql5/</userinput></programlisting><screen>-rwxr-xr-x 2 root wheel 475 Aug 2 14:16 mysql5.wrapper
+-rw-r--r-- 2 root wheel 975 Aug 2 14:16 org.macports.mysql5.plist</screen>The
+ wrapper manipulates the script as specified in the startupitem.start
+ and startupitem.stop keywords. An example wrapper script snippet is
+ shown below.</para>
+
+ <programlisting>#!/bin/sh
+
+# MacPorts generated daemondo support script
+
+# Start
+Start()
+{
+ /opt/local/share/mysql5/mysql/mysql.server start
+}
+
+# Stop
+Stop()
+{
+ /opt/local/share/mysql5/mysql/mysql.server stop
+}
+
+[... trimmed ...]</programlisting>
+ </section>
+</section>
Deleted: trunk/doc-new/guide/xml/portfile-tcl.7.xml
===================================================================
--- trunk/doc-new/guide/xml/portfile-tcl.7.xml 2007-12-14 14:49:31 UTC (rev 32048)
+++ trunk/doc-new/guide/xml/portfile-tcl.7.xml 2007-12-14 15:04:49 UTC (rev 32049)
@@ -1,334 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-
-<section id="reference.tcl-extensions">
- <title>Tcl Extensions</title>
-
- <para>A MacPorts Portfile is a Tcl script, so it may contain any arbitrary
- Tcl code you may learn about in a <ulink
- url="http://tmml.sourceforge.net/doc/tcl/">Tcl reference manual</ulink>.
- However, few authors will use arbitrary Tcl code; the vast majority will use
- Tcl extensions that are coded within MacPorts for performing the most common
- tasks needed for Portfiles. The list below is a list of Tcl extensions
- provided by MacPorts base.</para>
-
- <variablelist>
- <varlistentry>
- <term>file</term>
-
- <listitem>
- <para>Description.</para>
-
- <variablelist>
- <varlistentry>
- <term>file copy</term>
-
- <listitem>
- <para></para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <variablelist>
- <varlistentry>
- <term>file move</term>
-
- <listitem>
- <para></para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <variablelist>
- <varlistentry>
- <term>file rename</term>
-
- <listitem>
- <para></para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <variablelist>
- <varlistentry>
- <term>file delete [-force]</term>
-
- <listitem>
- <para></para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <variablelist>
- <varlistentry>
- <term>file mkdir</term>
-
- <listitem>
- <para></para>
- </listitem>
- </varlistentry>
- </variablelist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>macros</term>
-
- <listitem>
- <para>Description.</para>
-
- <variablelist>
- <varlistentry>
- <term>copy</term>
-
- <listitem>
- <para>Shorthand alternative to "file copy".</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <variablelist>
- <varlistentry>
- <term>move</term>
-
- <listitem>
- <para>Shorthand alternative to "file rename".</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>delete file ...</term>
-
- <listitem>
- <para>Deletes each of the given files/directories. Behaves
- similarly to file delete -force except that file delete
- -force will fail to delete directories properly on 10.3
- systems.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>touch</term>
-
- <listitem>
- <para>Mimicks the BSD touch command.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>ln</term>
-
- <listitem>
- <para>Mimickes the BSD ln command.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>xinstall</term>
-
- <listitem>
- <para>xinstall copies files and creates directories; it is
- intended to be compatible with install(1).</para>
-
- <variablelist>
- <varlistentry>
- <term>xinstall [-o <replaceable>owner</replaceable>] [-g
- <replaceable>group</replaceable>] [-m
- <replaceable>mode</replaceable>] [<replaceable>file1 file2
- ...</replaceable>] <replaceable>directory</replaceable></term>
-
- <listitem>
- <para>Install the specified file(s) to a destination
- directory.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <variablelist>
- <varlistentry>
- <term>xinstall [-o <replaceable>owner</replaceable>] [-g
- <replaceable>group</replaceable>] [-m
- <replaceable>mode</replaceable>] [-W
- <replaceable>dir</replaceable>] [<replaceable>file1 file2
- ...</replaceable>] <replaceable>directory</replaceable></term>
-
- <listitem>
- <para>Change to <option>dir</option> and install file(s) to
- a destination directory.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <variablelist>
- <varlistentry>
- <term>eval xinstall [-o <replaceable>owner</replaceable>] [-g
- <replaceable>group</replaceable>] [-m
- <replaceable>mode</replaceable>] [glob
- <replaceable>pattern</replaceable>]
- <replaceable>directory</replaceable></term>
-
- <listitem>
- <para>Install the file(s) matching the glob pattern to a
- destination directory.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <variablelist>
- <varlistentry>
- <term>xinstall -d [-o <replaceable>owner</replaceable>] [-g
- <replaceable>group</replaceable>] [-m
- <replaceable>mode</replaceable>]
- <replaceable>directory</replaceable></term>
-
- <listitem>
- <para>Create a directory.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Defaults:</para>
-
- <itemizedlist>
- <listitem>
- <para>owner -</para>
- </listitem>
-
- <listitem>
- <para>group -</para>
- </listitem>
-
- <listitem>
- <para>mode -</para>
- </listitem>
- </itemizedlist>
-
- <para>Examples:</para>
-
- <programlisting>xinstall -m 640 ${worksrcpath}/doc README \
- ${destroot}${prefix}/share/doc/${name}</programlisting>
-
- <programlisting>xinstall -m 640 -W ${worksrcpath}/doc README INSTALL COPY \
- ${destroot}${prefix}/share/doc/${name}</programlisting>
-
- <programlisting>eval xinstall -m 640 [glob ${worksrcpath}/doc/*] \
- ${destroot}${prefix}/share/doc/${name}</programlisting>
-
- <programlisting>xinstall -d ${destroot}${prefix}/share/doc/${name}</programlisting>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>reinplace</term>
-
- <listitem>
- <para>Description.</para>
-
- <para>Examples:</para>
-
- <programlisting>example 1</programlisting>
-
- <programlisting>example 2</programlisting>
-
- <programlisting>example 3</programlisting>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>user/group</term>
-
- <listitem>
- <para></para>
-
- <variablelist>
- <varlistentry>
- <term>adduser username [uid=<replaceable>uid</replaceable>]
- [gid=<replaceable>gid</replaceable>]
- [passwd=<replaceable>passwd</replaceable>]
- [realname=<replaceable>realname</replaceable>]
- [home=<replaceable>home</replaceable>]
- [shell=<replaceable>shell</replaceable>]</term>
-
- <listitem>
- <para>Add a new local user to the system with the specified
- uid, gid, password, real name, home directory and login
- shell.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <variablelist>
- <varlistentry>
- <term>existsuser <replaceable>username</replaceable></term>
-
- <listitem>
- <para>Check if a local user exists.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <variablelist>
- <varlistentry>
- <term>nextuid</term>
-
- <listitem>
- <para>Returns the highest used uid plus one.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <variablelist>
- <varlistentry>
- <term>addgroup <replaceable>group</replaceable>
- [gid=<replaceable>gid</replaceable>]
- [passwd=<replaceable>passwd</replaceable>]
- [realname=<replaceable>realname</replaceable>]
- [users=<replaceable>users</replaceable>]</term>
-
- <listitem>
- <para>Add a new local group to the system, with the
- specified gid, password, real name, and with a list users as
- members.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <variablelist>
- <varlistentry>
- <term>existsgroup <replaceable>group</replaceable></term>
-
- <listitem>
- <para>Check if a local group exists and return the
- corresponding gid. This can be used with adduser:</para>
-
- <programlisting>addgroup foo
-adduser foo gid=[existsgroup foo]</programlisting>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <variablelist>
- <varlistentry>
- <term>nextgid</term>
-
- <listitem>
- <para>Returns the highest used gid plus one.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>External program execution</term>
-
- <listitem>
- <para>Use only when ....</para>
- </listitem>
- </varlistentry>
- </variablelist>
-</section>
Copied: trunk/doc-new/guide/xml/portfile-tcl.xml (from rev 32048, trunk/doc-new/guide/xml/portfile-tcl.7.xml)
===================================================================
--- trunk/doc-new/guide/xml/portfile-tcl.xml (rev 0)
+++ trunk/doc-new/guide/xml/portfile-tcl.xml 2007-12-14 15:04:49 UTC (rev 32049)
@@ -0,0 +1,334 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+
+<section id="reference.tcl-extensions">
+ <title>Tcl Extensions</title>
+
+ <para>A MacPorts Portfile is a Tcl script, so it may contain any arbitrary
+ Tcl code you may learn about in a <ulink
+ url="http://tmml.sourceforge.net/doc/tcl/">Tcl reference manual</ulink>.
+ However, few authors will use arbitrary Tcl code; the vast majority will use
+ Tcl extensions that are coded within MacPorts for performing the most common
+ tasks needed for Portfiles. The list below is a list of Tcl extensions
+ provided by MacPorts base.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>file</term>
+
+ <listitem>
+ <para>Description.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>file copy</term>
+
+ <listitem>
+ <para></para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <variablelist>
+ <varlistentry>
+ <term>file move</term>
+
+ <listitem>
+ <para></para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <variablelist>
+ <varlistentry>
+ <term>file rename</term>
+
+ <listitem>
+ <para></para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <variablelist>
+ <varlistentry>
+ <term>file delete [-force]</term>
+
+ <listitem>
+ <para></para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <variablelist>
+ <varlistentry>
+ <term>file mkdir</term>
+
+ <listitem>
+ <para></para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>macros</term>
+
+ <listitem>
+ <para>Description.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>copy</term>
+
+ <listitem>
+ <para>Shorthand alternative to "file copy".</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <variablelist>
+ <varlistentry>
+ <term>move</term>
+
+ <listitem>
+ <para>Shorthand alternative to "file rename".</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>delete file ...</term>
+
+ <listitem>
+ <para>Deletes each of the given files/directories. Behaves
+ similarly to file delete -force except that file delete
+ -force will fail to delete directories properly on 10.3
+ systems.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>touch</term>
+
+ <listitem>
+ <para>Mimicks the BSD touch command.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>ln</term>
+
+ <listitem>
+ <para>Mimickes the BSD ln command.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>xinstall</term>
+
+ <listitem>
+ <para>xinstall copies files and creates directories; it is
+ intended to be compatible with install(1).</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>xinstall [-o <replaceable>owner</replaceable>] [-g
+ <replaceable>group</replaceable>] [-m
+ <replaceable>mode</replaceable>] [<replaceable>file1 file2
+ ...</replaceable>] <replaceable>directory</replaceable></term>
+
+ <listitem>
+ <para>Install the specified file(s) to a destination
+ directory.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <variablelist>
+ <varlistentry>
+ <term>xinstall [-o <replaceable>owner</replaceable>] [-g
+ <replaceable>group</replaceable>] [-m
+ <replaceable>mode</replaceable>] [-W
+ <replaceable>dir</replaceable>] [<replaceable>file1 file2
+ ...</replaceable>] <replaceable>directory</replaceable></term>
+
+ <listitem>
+ <para>Change to <option>dir</option> and install file(s) to
+ a destination directory.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <variablelist>
+ <varlistentry>
+ <term>eval xinstall [-o <replaceable>owner</replaceable>] [-g
+ <replaceable>group</replaceable>] [-m
+ <replaceable>mode</replaceable>] [glob
+ <replaceable>pattern</replaceable>]
+ <replaceable>directory</replaceable></term>
+
+ <listitem>
+ <para>Install the file(s) matching the glob pattern to a
+ destination directory.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <variablelist>
+ <varlistentry>
+ <term>xinstall -d [-o <replaceable>owner</replaceable>] [-g
+ <replaceable>group</replaceable>] [-m
+ <replaceable>mode</replaceable>]
+ <replaceable>directory</replaceable></term>
+
+ <listitem>
+ <para>Create a directory.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Defaults:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>owner -</para>
+ </listitem>
+
+ <listitem>
+ <para>group -</para>
+ </listitem>
+
+ <listitem>
+ <para>mode -</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Examples:</para>
+
+ <programlisting>xinstall -m 640 ${worksrcpath}/doc README \
+ ${destroot}${prefix}/share/doc/${name}</programlisting>
+
+ <programlisting>xinstall -m 640 -W ${worksrcpath}/doc README INSTALL COPY \
+ ${destroot}${prefix}/share/doc/${name}</programlisting>
+
+ <programlisting>eval xinstall -m 640 [glob ${worksrcpath}/doc/*] \
+ ${destroot}${prefix}/share/doc/${name}</programlisting>
+
+ <programlisting>xinstall -d ${destroot}${prefix}/share/doc/${name}</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>reinplace</term>
+
+ <listitem>
+ <para>Description.</para>
+
+ <para>Examples:</para>
+
+ <programlisting>example 1</programlisting>
+
+ <programlisting>example 2</programlisting>
+
+ <programlisting>example 3</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>user/group</term>
+
+ <listitem>
+ <para></para>
+
+ <variablelist>
+ <varlistentry>
+ <term>adduser username [uid=<replaceable>uid</replaceable>]
+ [gid=<replaceable>gid</replaceable>]
+ [passwd=<replaceable>passwd</replaceable>]
+ [realname=<replaceable>realname</replaceable>]
+ [home=<replaceable>home</replaceable>]
+ [shell=<replaceable>shell</replaceable>]</term>
+
+ <listitem>
+ <para>Add a new local user to the system with the specified
+ uid, gid, password, real name, home directory and login
+ shell.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <variablelist>
+ <varlistentry>
+ <term>existsuser <replaceable>username</replaceable></term>
+
+ <listitem>
+ <para>Check if a local user exists.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <variablelist>
+ <varlistentry>
+ <term>nextuid</term>
+
+ <listitem>
+ <para>Returns the highest used uid plus one.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <variablelist>
+ <varlistentry>
+ <term>addgroup <replaceable>group</replaceable>
+ [gid=<replaceable>gid</replaceable>]
+ [passwd=<replaceable>passwd</replaceable>]
+ [realname=<replaceable>realname</replaceable>]
+ [users=<replaceable>users</replaceable>]</term>
+
+ <listitem>
+ <para>Add a new local group to the system, with the
+ specified gid, password, real name, and with a list users as
+ members.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <variablelist>
+ <varlistentry>
+ <term>existsgroup <replaceable>group</replaceable></term>
+
+ <listitem>
+ <para>Check if a local group exists and return the
+ corresponding gid. This can be used with adduser:</para>
+
+ <programlisting>addgroup foo
+adduser foo gid=[existsgroup foo]</programlisting>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <variablelist>
+ <varlistentry>
+ <term>nextgid</term>
+
+ <listitem>
+ <para>Returns the highest used gid plus one.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>External program execution</term>
+
+ <listitem>
+ <para>Use only when ....</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</section>
Deleted: trunk/doc-new/guide/xml/portfile-variables.7.xml
===================================================================
--- trunk/doc-new/guide/xml/portfile-variables.7.xml 2007-12-14 14:49:31 UTC (rev 32048)
+++ trunk/doc-new/guide/xml/portfile-variables.7.xml 2007-12-14 15:04:49 UTC (rev 32049)
@@ -1,188 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-
-<section id="reference.variables">
- <title>Global Variables</title>
-
- <para>Global variables are variables available to any Portfile. For a list
- of additional variables available to ports that are assigned to a MacPorts
- Portgroup, see portgroup(7).</para>
- <para>All of these variables except <varname>prefix</varname> are
- read-only!</para>
-
- <variablelist>
- <varlistentry>
- <term>prefix</term>
-
- <listitem>
- <para>Installation prefix, set in
- <filename>${prefix}/etc/macports/macports.conf</filename> —may be
- overridden on a per port basis. For example, aqua applications are
- installed in <filename>/Applications/MacPorts</filename>.</para>
-
- <para>Default: <filename>/opt/local</filename></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>binpath</term>
-
- <listitem>
- <para>Default PATH to use in finding executables.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>libpath</term>
-
- <listitem>
- <para>Path to the MacPorts TCL libraries.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>portpath</term>
-
- <listitem>
- <para>Full path to the Portfile location.</para>
-
- <para>Value: <literal>work</literal></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>filesdir</term>
-
- <listitem>
- <para>Path to port files relative to
- <varname>${portpath}</varname>.</para>
-
- <para>Value: <literal>files</literal></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>filespath</term>
-
- <listitem>
- <para>Path to port files relative to
- <varname>${portpath}</varname>.</para>
-
- <para>Value: <varname>${portpath}/${filesdir}</varname></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>workpath</term>
-
- <listitem>
- <para>Full path to work directory.</para>
-
- <!-- TODO: what is ${portbuildpath}? -->
-
- <para>Value: <varname>${portbuildpath}/work</varname></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>worksrcpath</term>
-
- <listitem>
- <para>Full path to extracted source code.</para>
-
- <para>Value: <varname>${workpath}/${worksrcdir}</varname></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>destroot</term>
-
- <listitem>
- <para>Full path into which software will be destrooted.</para>
-
- <para>Value: <varname>${workpath}/destroot</varname></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>distpath</term>
-
- <listitem>
- <para>Location to store downloaded distfiles.</para>
-
- <!-- TODO: which value have the variables? -->
-
- <para>Value: <varname>${sysportpath}/distfiles/${dist_subdir}/</varname></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>install.user</term>
-
- <listitem>
- <para>The Unix user at the time of port installation.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>install.group</term>
-
- <listitem>
- <para>The Unix group at the time of port installation.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>os.platform</term>
-
- <listitem>
- <para>Identifies platform type (ie "darwin", "freebsd",
- etc).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>os.arch</term>
-
- <listitem>
- <para>Identifies hardware type (ie "powerpc", "intel").</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>os.version</term>
-
- <listitem>
- <para>The version number of the host operating system (ie "8.0" for
- Darwin 8.0).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>os.endian</term>
-
- <listitem>
- <para>Endianness of the processor (ie "bigEndian").</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>os.major</term>
-
- <listitem>
- <para>The major version number of the host operating system (ie "8"
- for Darwin 8.0).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>x11prefix</term>
-
- <listitem>
- <para>Absolute path to X11.</para>
- </listitem>
- </varlistentry>
-
- </variablelist>
-</section>
Copied: trunk/doc-new/guide/xml/portfile-variables.xml (from rev 32048, trunk/doc-new/guide/xml/portfile-variables.7.xml)
===================================================================
--- trunk/doc-new/guide/xml/portfile-variables.xml (rev 0)
+++ trunk/doc-new/guide/xml/portfile-variables.xml 2007-12-14 15:04:49 UTC (rev 32049)
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+
+<section id="reference.variables">
+ <title>Global Variables</title>
+
+ <para>Global variables are variables available to any Portfile. For a list
+ of additional variables available to ports that are assigned to a MacPorts
+ Portgroup, see portgroup(7).</para>
+ <para>All of these variables except <varname>prefix</varname> are
+ read-only!</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>prefix</term>
+
+ <listitem>
+ <para>Installation prefix, set in
+ <filename>${prefix}/etc/macports/macports.conf</filename> —may be
+ overridden on a per port basis. For example, aqua applications are
+ installed in <filename>/Applications/MacPorts</filename>.</para>
+
+ <para>Default: <filename>/opt/local</filename></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>binpath</term>
+
+ <listitem>
+ <para>Default PATH to use in finding executables.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>libpath</term>
+
+ <listitem>
+ <para>Path to the MacPorts TCL libraries.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>portpath</term>
+
+ <listitem>
+ <para>Full path to the Portfile location.</para>
+
+ <para>Value: <literal>work</literal></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>filesdir</term>
+
+ <listitem>
+ <para>Path to port files relative to
+ <varname>${portpath}</varname>.</para>
+
+ <para>Value: <literal>files</literal></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>filespath</term>
+
+ <listitem>
+ <para>Path to port files relative to
+ <varname>${portpath}</varname>.</para>
+
+ <para>Value: <varname>${portpath}/${filesdir}</varname></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>workpath</term>
+
+ <listitem>
+ <para>Full path to work directory.</para>
+
+ <!-- TODO: what is ${portbuildpath}? -->
+
+ <para>Value: <varname>${portbuildpath}/work</varname></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>worksrcpath</term>
+
+ <listitem>
+ <para>Full path to extracted source code.</para>
+
+ <para>Value: <varname>${workpath}/${worksrcdir}</varname></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>destroot</term>
+
+ <listitem>
+ <para>Full path into which software will be destrooted.</para>
+
+ <para>Value: <varname>${workpath}/destroot</varname></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>distpath</term>
+
+ <listitem>
+ <para>Location to store downloaded distfiles.</para>
+
+ <!-- TODO: which value have the variables? -->
+
+ <para>Value: <varname>${sysportpath}/distfiles/${dist_subdir}/</varname></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>install.user</term>
+
+ <listitem>
+ <para>The Unix user at the time of port installation.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>install.group</term>
+
+ <listitem>
+ <para>The Unix group at the time of port installation.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>os.platform</term>
+
+ <listitem>
+ <para>Identifies platform type (ie "darwin", "freebsd",
+ etc).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>os.arch</term>
+
+ <listitem>
+ <para>Identifies hardware type (ie "powerpc", "intel").</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>os.version</term>
+
+ <listitem>
+ <para>The version number of the host operating system (ie "8.0" for
+ Darwin 8.0).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>os.endian</term>
+
+ <listitem>
+ <para>Endianness of the processor (ie "bigEndian").</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>os.major</term>
+
+ <listitem>
+ <para>The major version number of the host operating system (ie "8"
+ for Darwin 8.0).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>x11prefix</term>
+
+ <listitem>
+ <para>Absolute path to X11.</para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+</section>
Modified: trunk/doc-new/guide/xml/portfileref.xml
===================================================================
--- trunk/doc-new/guide/xml/portfileref.xml 2007-12-14 14:49:31 UTC (rev 32048)
+++ trunk/doc-new/guide/xml/portfileref.xml 2007-12-14 15:04:49 UTC (rev 32049)
@@ -8,19 +8,19 @@
Portfile: port phases, dependencies, StartupItems, variables, keywords, and
Tcl extensions.</para>
- <xi:include href="portfile-variables.7.xml"
+ <xi:include href="portfile-variables.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="portfile-keywords.7.xml"
+ <xi:include href="portfile-keywords.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="portfile-phase.7.xml"
+ <xi:include href="portfile-phase.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="portfile-startupitem.7.xml"
+ <xi:include href="portfile-startupitem.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="portfile-tcl.7.xml"
+ <xi:include href="portfile-tcl.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<section id="reference.portgroup">
Modified: trunk/doc-new/man/xml/portfile.7.xml
===================================================================
--- trunk/doc-new/man/xml/portfile.7.xml 2007-12-14 14:49:31 UTC (rev 32048)
+++ trunk/doc-new/man/xml/portfile.7.xml 2007-12-14 15:04:49 UTC (rev 32049)
@@ -27,19 +27,19 @@
characteristics for a port.</para>
</refsection>
- <xi:include href="../tmp/portfile-variables.7.xml"
+ <xi:include href="../tmp/portfile-variables.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="../tmp/portfile-keywords.7.xml"
+ <xi:include href="../tmp/portfile-keywords.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="../tmp/portfile-phase.7.xml"
+ <xi:include href="../tmp/portfile-phase.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="../tmp/portfile-startupitem.7.xml"
+ <xi:include href="../tmp/portfile-startupitem.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="../tmp/portfile-tcl.7.xml"
+ <xi:include href="../tmp/portfile-tcl.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<refsection>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macports-changes/attachments/20071214/34c68412/attachment-0001.html
More information about the macports-changes
mailing list