source: trunk/doc/guide/xml/portfiles/variants.xml @ 4478

Last change on this file since 4478 was 4478, checked in by fkr, 17 years ago

Bug:
Submitted by:
Reviewed by:
Approved by:
Obtained from:

big guide-update from wbb@. Thanks Will!

  • Property svn:eol-style set to native
File size: 3.4 KB
Line 
1<?xml version="1.0" encoding="UTF-8" ?>
2<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
3                "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
4<chapter id="variants">
5        <title>Variants</title> 
6        <sect1>
7                <title>What are variants?</title> 
8                <para>DarwinPorts allows multiple versions of a port to be specified in a single Portfile. For example, vim can be built with and without x11 support. Rather than duplicate the whole port and have vim-x11 vim-nox ports DarwinPorts supports "variants". </para>
9
10        </sect1>
11        <sect1>
12                <title>Syntax</title> 
13                <para>The variants syntax is largely identical to the syntax in the main part of the Portfile. </para>
14
15                <variablelist>
16                        <varlistentry id='variant'>
17                                <term>
18                                        variant
19                                </term>
20                                <listitem>
21                                        <para>The key variant is used to begin the foo variant as shown in the example.
22                                                <programlisting>
23<![CDATA[
24variant foo    {
25                              [variant code]
26                              [more variant code]
27                 }
28]]> 
29                                                </programlisting></para>
30
31                                        <para>Within the variant block essentially all of the keys available in the main section are available. Using a key used in the main section will overwrite it. </para>
32
33                                </listitem>
34                        </varlistentry>
35                        <varlistentry id='append'>
36                                <term>
37                                        append
38                                </term>
39                                <listitem>
40                                        <para>For most of the keys you can append additional terms.
41                                                <programlisting>
42<![CDATA[
43variant foo    { configure.args-append --with-x}
44
45]]> 
46                                                </programlisting></para>
47
48                                </listitem>
49                        </varlistentry>
50                        <varlistentry id='delete'>
51                                <term>
52                                        delete
53                                </term>
54                                <listitem>
55                                        <para>For most of the keys you can delete terms. The item being deleted should match a string in the option being deleted exactly.
56                                                <programlisting>
57<![CDATA[
58variant gnome    { configure.args-delete --without-gnome}
59
60]]> 
61                                                </programlisting></para>
62
63                                </listitem>
64                        </varlistentry>
65                </variablelist>
66        </sect1>
67        <sect1>
68                <title>Advanced variants</title> 
69                <para>For the most part, variants are quite straightforward to use. Several more advanced features of variants are also available. </para>
70
71                <variablelist>
72                        <varlistentry id='default_variants'>
73                                <term>
74                                        default_variants
75                                </term>
76                                <listitem>
77                                        <para>In some cases you may want a variant or variants to be executed by default. For example w3m is distributed with a patch to add international text support. This is a vendor provided patch, but not a core part of the program. In this case it makes sense to make the internationalised version the default, but keep the vanilla w3m as the main port. The default_variants key is used in the main section of a Portfile, not in a variant. </para>
78
79                                        <para><userinput>
80                                                        default_variants +foo +bar
81                                                </userinput></para>
82
83                                </listitem>
84                        </varlistentry>
85                        <varlistentry id='platform_variants'>
86                                <term>
87                                        platform_variants
88                                </term>
89                                <listitem>
90                                        <para>Platform specific variants are automatically executed on that platform, without needing any intervention from the user. Currently available platforms are:
91                                                <simplelist>
92                                                        <member>
93                                                                darwin
94                                                        </member>
95                                                        <member>
96                                                                freebsd
97                                                        </member>
98                                                        <member>
99                                                                linux
100                                                        </member>
101                                                </simplelist></para>
102
103                                        <para><userinput>
104                                                        variant foo darwin {[variant code]}
105                                                </userinput></para>
106
107                                </listitem>
108                        </varlistentry>
109                </variablelist>
110        </sect1>
111</chapter>
Note: See TracBrowser for help on using the repository browser.