source: trunk/doc-new/man/xml/portfile-phase.7.xml @ 30499

Last change on this file since 30499 was 30499, checked in by mww@…, 12 years ago

add further "configure."-options

File size: 56.2 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
4<refentry>
5  <refmeta>
6    <refentrytitle>PORTFILE-PHASE</refentrytitle>
7
8    <manvolnum>7</manvolnum>
9  </refmeta>
10
11  <refnamediv>
12    <refname>portfile</refname>
13
14    <refpurpose>MacPorts Portfile reference</refpurpose>
15  </refnamediv>
16
17  <refsection>
18    <title>Description</title>
19
20    <para>A reference of all available Portfile keywords that relate to port
21    phases. Portfiles consist of valid TCL and are encoded in UTF-8. They
22    usually contain only simple keyword/value combinations and Tcl extensions
23    as described below, though they may also contain arbitrary TCL code. Every
24    port has a corresponding Portfile, but Portfiles do not completely define
25    a port's installation behavior since the MacPorts base has default port
26    installation characteristics coded within it. Therefore Portfiles need
27    only specify required options and, if necessary, non-default
28    characteristics for a port.</para>
29  </refsection>
30
31  <refsection>
32    <title>Installation Phase Keywords</title>
33
34    <para>MacPorts keywords are used to specify required or optional items
35    within a Portfile, or to override default options used by MacPorts base
36    for individual ports. Keywords are to be used within the "global" and
37    "variant" sections of Portfiles, and not within optional port phase
38    declarations.</para>
39
40    <para>In other words, port phase keywords are not located within port
41    phase declarations, but rather they <emphasis>refer</emphasis> to port
42    phases and set options for those phases, and they take affect whether or
43    not phase declarations have been explicitly defined in a Portfile.</para>
44
45    <refsection>
46      <title>A Word about Keyword List Modifiers (-append / -delete)</title>
47
48      <para>It is often necessary to add to a list of keyword values
49      previously set by a previously executed Portfile keyword or by MacPorts
50      base. To keep from overwriting a previous keyword list, use a keyword
51      list modifier. Keywords that support list modifiers are identified under
52      appropriate reference sections below.</para>
53
54      <para>The three most common uses for keyword list modifiers are to
55      preserve configure defaults, to preserve PortGroup dependencies, and to
56      add or delete items for variants.</para>
57
58      <refsection>
59        <title>Common Uses for Keyword List Modifiers</title>
60
61        <para>The three most common uses for keyword list modifiers are to
62        preserve configure defaults, to preserve PortGroup dependencies, and
63        to add or delete items for variants.</para>
64
65        <variablelist>
66          <varlistentry>
67            <term>Preserve configure Defaults</term>
68
69            <listitem>
70              <para>MacPorts base sets the gcc compiler flags CFLAGS and
71              LDFLAGS for all ports using <literal>configure.cflags</literal>
72              and <literal>configure.ldflags</literal>, therefore to keep from
73              overwriting the default compiler flags use
74              <literal>configure.cflags-append</literal> and
75              <literal>configure.ldflags-append</literal>.</para>
76
77              <itemizedlist>
78                <listitem>
79                  <para><code>configure.cflags-append</code></para>
80                </listitem>
81
82                <listitem>
83                  <para><code>configure.ldflags-append</code></para>
84                </listitem>
85              </itemizedlist>
86            </listitem>
87          </varlistentry>
88
89          <varlistentry>
90            <term>Preserve PortGroup Dependencies</term>
91
92            <listitem>
93              <para>Ports in a PortGroup have default library dependencies set
94              by MacPorts base. Therefore, never use
95              <literal>depends_lib</literal> in ports belonging to a PortGroup
96              or it will overwrite the default library dependencies. Instead,
97              use <literal>depends_lib-append</literal>.</para>
98            </listitem>
99          </varlistentry>
100
101          <varlistentry>
102            <term>Add or Delete Items for Variants</term>
103
104            <listitem>
105              <para>When a variant requires more or fewer dependencies,
106              distfiles, or patchfiles, when the variant is invoked you want
107              to add or remove items to the appropriate keyword values list
108              set in the global section of the Portfile. Use the appropriate
109              keywords, for example:</para>
110
111              <itemizedlist>
112                <listitem>
113                  <para><code>depends_lib-append</code> or
114                  <code>depends_lib-delete</code></para>
115                </listitem>
116
117                <listitem>
118                  <para><code>distfiles-append</code> or
119                  <code>distfile-delete</code></para>
120                </listitem>
121
122                <listitem>
123                  <para><code>patchfiles-append</code> or
124                  <code>patchfiles-delete</code></para>
125                </listitem>
126              </itemizedlist>
127            </listitem>
128          </varlistentry>
129        </variablelist>
130      </refsection>
131    </refsection>
132
133    <refsection>
134      <title>A Word about Keyword Argument Modifiers (.pre_args /
135      .post_args)</title>
136
137      <para>Keywords that support pre_args and post_args are used to assemble
138      command strings together in a row, as described in the reference
139      sections below. But it should be noted that all keyword argument
140      modifiers implicitly support keyword list modifiers. For example, the
141      keyword <literal>configure.pre_args</literal> also supports
142      <literal>configure.pre_args-append</literal> and
143      <literal>configure.pre_args-delete</literal>.</para>
144    </refsection>
145
146    <refsection>
147      <title>Fetch Phase Keywords</title>
148
149      <para>The list of keywords related to the fetch phase.</para>
150
151      <variablelist>
152        <varlistentry>
153          <term>master_sites</term>
154
155          <listitem>
156            <para>A list of URLs from which a port's download file(s) may be
157            retrieved. For multiple master_sites, they are searched in order
158            until a file matching <varname>${distfile}</varname> is
159            found.</para>
160
161            <itemizedlist>
162              <listitem>
163                <para>Default: ???</para>
164              </listitem>
165
166              <listitem>
167                <para>Examples:</para>
168
169                <programlisting>master_sites   http://www.somesite.org/files/ \
170               http://www.somemirror.org/somesite_org/files/
171
172</programlisting>
173
174                <para>You may also use mirror site lists predefined by
175                MacPorts. Here the sourceforge and gnu mirrors are
176                used.</para>
177
178                <programlisting>master_sites   sourceforge gnu
179
180</programlisting>
181
182                <para>When using mirror master_sites, the subdirectory
183                <varname>${name}</varname> is checked on every mirror. If the
184                mirror subdirectory does not match ${name}, then you may
185                specify it using after the mirror separated by a colon.</para>
186
187                <programlisting>master_sites   sourceforge:widget \
188               gnu:widget
189
190</programlisting>
191
192                <para>For ports that must fetch multiple download files from
193                different locations, you must label the files with tags and
194                match the tags in a distfiles statement. The format is
195                <literal>mirror:subdirectory:tag</literal>.</para>
196
197                <para>In the example below, file_one.tar.gz is fetched from
198                sourceforge mirrors in subdirectory
199                <varname>${name}</varname>; file tagtwo.tar.gz is fetched from
200                the gnu mirrors in subdirectory sources.</para>
201
202                <programlisting>master_sites    sourceforge::tagone \
203                gnu:sources:tagtwo
204
205distfiles       file_one.tar.gz:tagone \
206                file_two.tar.gz:tagtwo</programlisting>
207              </listitem>
208            </itemizedlist>
209          </listitem>
210        </varlistentry>
211
212        <varlistentry>
213          <term>patch_sites</term>
214
215          <listitem>
216            <para>A list of sites from which a port's patchfiles may be
217            downloaded, where applicable.</para>
218
219            <itemizedlist>
220              <listitem>
221                <para>Default: <varname>${master_sites}</varname></para>
222              </listitem>
223
224              <listitem>
225                <para>Example:</para>
226
227                <programlisting>patch_sites    ftp://ftp.patchcityrepo.com/pub/magic/patches</programlisting>
228              </listitem>
229            </itemizedlist>
230          </listitem>
231        </varlistentry>
232
233        <varlistentry>
234          <term>distname</term>
235
236          <listitem>
237            <para>The name of the distribution filename, not including the
238            extract suffix.</para>
239
240            <itemizedlist>
241              <listitem>
242                <para>Default: <varname>${name}-${version}</varname></para>
243              </listitem>
244
245              <listitem>
246                <para>Example:</para>
247
248                <programlisting>distname     ${name}</programlisting>
249              </listitem>
250            </itemizedlist>
251          </listitem>
252        </varlistentry>
253
254        <varlistentry>
255          <term>distfiles</term>
256
257          <listitem>
258            <para>The full distribution filename, including the extract
259            suffix. Used to specify non-default distribution filenames; this
260            keyword must be specified (and tags used) when a port has multiple
261            download files (see master_sites).</para>
262
263            <itemizedlist>
264              <listitem>
265                <para>Default:
266                <varname>${distname}${extract.suffix}</varname></para>
267              </listitem>
268
269              <listitem>
270                <para>Example:</para>
271
272                <programlisting>distfiles    ${name}-dev_src.tgz
273
274
275distfiles       file_one.tar.gz:tagone \
276                file_two.tar.gz:tagtwo</programlisting>
277              </listitem>
278            </itemizedlist>
279          </listitem>
280        </varlistentry>
281
282        <varlistentry>
283          <term>extract.suffix</term>
284
285          <listitem>
286            <para>This keyword is used to specify the extract suffix
287            type.</para>
288
289            <itemizedlist>
290              <listitem>
291                <para>Default: <filename>.tar.gz</filename></para>
292              </listitem>
293
294              <listitem>
295                <para>Example:</para>
296
297                <programlisting>extract.suffix   .tgz</programlisting>
298              </listitem>
299            </itemizedlist>
300          </listitem>
301        </varlistentry>
302
303        <varlistentry>
304          <term>use_bzip2</term>
305
306          <listitem>
307            <para>This keyword is for downloads that are tarred and bzipped.
308            When invoked, it automatically sets:</para>
309
310            <literallayout>extract.suffix = .tar.bz
311extract.cmd = bzip
312
313</literallayout>
314
315            <itemizedlist>
316              <listitem>
317                <para>Default: yes</para>
318              </listitem>
319
320              <listitem>
321                <para>Example:</para>
322
323                <programlisting>use_bzip2     yes</programlisting>
324              </listitem>
325            </itemizedlist>
326          </listitem>
327        </varlistentry>
328
329        <varlistentry>
330          <term>use_zip</term>
331
332          <listitem>
333            <para>This keyword is for downloads are zipped. When invoked, it
334            automatically sets:</para>
335
336            <literallayout>extract.suffix = .zip
337extract.cmd = unzip
338extract.pre_args = -q
339extract.post_args = "-d ${portpath}/${workdir}"
340
341</literallayout>
342
343            <itemizedlist>
344              <listitem>
345                <para>Default: <option>yes</option></para>
346              </listitem>
347
348              <listitem>
349                <para>Example:</para>
350
351                <programlisting>use_zip       yes</programlisting>
352              </listitem>
353            </itemizedlist>
354          </listitem>
355        </varlistentry>
356      </variablelist>
357
358      <refsection>
359        <title>Fetch from CVS</title>
360
361        <para><ulink url="http://www.nongnu.org/cvs/">CVS</ulink> may be used
362        as an alternative method of fetching distribution files using the
363        keywords in this section. However, fetching via CVS may cause
364        non-reproducible builds, so it is strongly discouraged.</para>
365
366        <variablelist>
367          <varlistentry>
368            <term>cvs.root</term>
369
370            <listitem>
371              <para>Specify the url from which to fetch files.</para>
372
373              <itemizedlist>
374                <listitem>
375                  <para>Default: none</para>
376                </listitem>
377
378                <listitem>
379                  <para>Example:</para>
380
381                  <programlisting>cvs.root :pserver:anonymous@cvs.sv.gnu.org:/sources/emacs</programlisting>
382                </listitem>
383              </itemizedlist>
384            </listitem>
385          </varlistentry>
386
387          <varlistentry>
388            <term>cvs.tag</term>
389
390            <listitem>
391              <para>Optional for fetching with CVS, this specifies the code
392              revision to checkout.</para>
393
394              <itemizedlist>
395                <listitem>
396                  <para>Default: none</para>
397                </listitem>
398
399                <listitem>
400                  <para>Example:</para>
401
402                  <programlisting>cvs.tag  HEAD</programlisting>
403                </listitem>
404              </itemizedlist>
405            </listitem>
406          </varlistentry>
407
408          <varlistentry>
409            <term>cvs.date</term>
410
411            <listitem>
412              <para>A date that identifies the CVS code set to
413              checkout.</para>
414
415              <itemizedlist>
416                <listitem>
417                  <para>Default: none</para>
418                </listitem>
419
420                <listitem>
421                  <para>Example:</para>
422
423                  <programlisting>cvs.date "12-April-2007"</programlisting>
424                </listitem>
425              </itemizedlist>
426            </listitem>
427          </varlistentry>
428
429          <varlistentry>
430            <term>cvs.module</term>
431
432            <listitem>
433              <para>A CVS module from which to check out the code.</para>
434
435              <itemizedlist>
436                <listitem>
437                  <para>Default: none</para>
438                </listitem>
439
440                <listitem>
441                  <para>Example:</para>
442
443                  <programlisting>cvs.module  Sources</programlisting>
444                </listitem>
445              </itemizedlist>
446            </listitem>
447          </varlistentry>
448        </variablelist>
449      </refsection>
450
451      <refsection>
452        <title>Fetch from Subversion</title>
453
454        <para><ulink url="http://subversion.tigris.org/">Subversion</ulink>
455        may be used as an alternative method of fetching distribution files
456        using the keywords in this section. However, fetching via Subversion
457        may cause non-reproducible builds, so it is strongly
458        discouraged.</para>
459
460        <variablelist>
461          <varlistentry>
462            <term>svn.url</term>
463
464            <listitem>
465              <para>This specifies the url from which to fetch files.</para>
466
467              <itemizedlist>
468                <listitem>
469                  <para>Default: none</para>
470                </listitem>
471
472                <listitem>
473                  <para>Examples:</para>
474
475                  <programlisting>svn.url http://www.domain.com/svn-repo/mydirectory
476svn.url svn://www.domain.com/svn-repo/mydirectory
477</programlisting>
478                </listitem>
479              </itemizedlist>
480            </listitem>
481          </varlistentry>
482
483          <varlistentry>
484            <term>svn.tag</term>
485
486            <listitem>
487              <para>Optional tag for fetching with Subversion, this specifies
488              the code revision to checkout; it corresponds to the -r option
489              in the svn cli. You must use backslashes to escape characters
490              that are meaningful to the Tcl interpreter, such as braces and
491              double quotes.</para>
492
493              <itemizedlist>
494                <listitem>
495                  <para>Default: none</para>
496                </listitem>
497
498                <listitem>
499                  <para>Examples:</para>
500
501                  <programlisting>svn.tag 37192
502svn.tag \{\"2006-02-17 15:30 +0230\"\}</programlisting>
503                </listitem>
504              </itemizedlist>
505            </listitem>
506          </varlistentry>
507        </variablelist>
508      </refsection>
509    </refsection>
510
511    <refsection>
512      <title>Checksum Phase Keywords</title>
513
514      <para>The list of keywords related to the checksum phase.</para>
515
516      <variablelist>
517        <varlistentry>
518          <term>checksums</term>
519
520          <listitem>
521            <para>Checksum(s) of the distribution files. For ports with
522            multiple distribution files, filenames must be included to
523            associate files with their checksums.</para>
524
525            <itemizedlist>
526              <listitem>
527                <para>Default: ???</para>
528              </listitem>
529
530              <listitem>
531                <para>Examples:</para>
532
533                <programlisting>checksums     md5 dafa161bc9c61e57636a6085c87c1fe8 \
534              sha1 5da610e1c8bc01b80abc21ab9e98e004363b429c \
535              rmd160 0c1147242adf476f5e93f4d59b553ee3ea378b23</programlisting>
536
537                <programlisting>checksums     ${distname}${extract.suffix} md5 dafa161bc9c61e57636a6085c87c1fe8 \
538                  sha1 5da610e1c8bc01b80abc21ab9e98e004363b429c \
539                  rmd160 0c1147242adf476f5e93f4d59b553ee3ea378b23 \
540              hobbit.tar.gz md5 3b8d02c6cf6239b9bdadbc6543c5a683 \
541                  sha1 27874638b23e66d39ed94fe716ca25c967f6e993 \
542                  rmd160 82b9991f3bf0ceedbf74c188c5fa44b98b5e40c9</programlisting>
543              </listitem>
544            </itemizedlist>
545          </listitem>
546        </varlistentry>
547      </variablelist>
548    </refsection>
549
550    <refsection>
551      <title>Extract Phase Keywords</title>
552
553      <para>The list of keywords related to the extract phase.</para>
554
555      <variablelist>
556        <varlistentry>
557          <term>extract.only</term>
558
559          <term>extract.only-append</term>
560
561          <term>extract.only-delete</term>
562
563          <listitem>
564            <para>List of files to extract into
565            <varname>${worksrcpath}</varname>; the default is
566            <varname>${distfiles}</varname>. Only use if default extract
567            behavior is not correct for your port.</para>
568
569            <itemizedlist>
570              <listitem>
571                <para>Default: none</para>
572              </listitem>
573
574              <listitem>
575                <para>Example:</para>
576
577                <programlisting>extract.only     foo.tar.gz
578
579</programlisting>
580              </listitem>
581            </itemizedlist>
582          </listitem>
583
584          <listitem>
585            <para>List modifier examples:</para>
586
587            <programlisting>extract.only-append  bar.tar.gz
588extract.only-delete  foo.tar.gz</programlisting>
589          </listitem>
590        </varlistentry>
591
592        <varlistentry>
593          <term>extract.cmd</term>
594
595          <listitem>
596            <para>Command to perform extraction.</para>
597
598            <itemizedlist>
599              <listitem>
600                <para>Default: gzip</para>
601              </listitem>
602
603              <listitem>
604                <para>Example:</para>
605
606                <programlisting>extract.cmd     gunzip</programlisting>
607              </listitem>
608            </itemizedlist>
609          </listitem>
610        </varlistentry>
611
612        <varlistentry>
613          <term>extract.args</term>
614
615          <term>extract.pre_args</term>
616
617          <term>extract.post_args</term>
618
619          <listitem>
620            <para>Main arguments to extract.cmd; additional arguments passed
621            before and after the main arguments.</para>
622
623            <itemizedlist>
624              <listitem>
625                <para>Default: ${distpath}/${distfile}</para>
626              </listitem>
627
628              <listitem>
629                <para>Example:</para>
630
631                <programlisting>extract.args      ${distpath}/${distfile}
632
633</programlisting>
634              </listitem>
635            </itemizedlist>
636          </listitem>
637
638          <listitem>
639            <para>The following argument modifiers are available:</para>
640
641            <itemizedlist>
642              <listitem>
643                <para>extract.pre_args default: "-dc"</para>
644              </listitem>
645
646              <listitem>
647                <para>extract.post_args default: " | tar -xf"</para>
648              </listitem>
649
650              <listitem>
651                <para>Examples:</para>
652
653                <programlisting>extract.pre_args     xf
654extract.post_args    "| gnutar –x"</programlisting>
655              </listitem>
656            </itemizedlist>
657          </listitem>
658        </varlistentry>
659      </variablelist>
660    </refsection>
661
662    <refsection>
663      <title>Patch Phase Keywords</title>
664
665      <para>The list of keywords related to the patch phase.</para>
666
667      <variablelist>
668        <varlistentry>
669          <term>patch.dir</term>
670
671          <listitem>
672            <para>Specify the base path for patch files.</para>
673
674            <itemizedlist>
675              <listitem>
676                <para>Default: <varname>${worksrcpath}</varname></para>
677              </listitem>
678
679              <listitem>
680                <para>Example:</para>
681
682                <programlisting>patch.dir      ${worksrcpath}/util</programlisting>
683              </listitem>
684            </itemizedlist>
685          </listitem>
686        </varlistentry>
687
688        <varlistentry>
689          <term>patch.cmd</term>
690
691          <listitem>
692            <para>Specify the command to be used for patching files.</para>
693
694            <itemizedlist>
695              <listitem>
696                <para>Default: <command>patch</command></para>
697              </listitem>
698
699              <listitem>
700                <para>Example:</para>
701
702                <programlisting>patch.cmd      cat</programlisting>
703              </listitem>
704            </itemizedlist>
705          </listitem>
706        </varlistentry>
707
708        <varlistentry>
709          <term>patchfiles</term>
710
711          <term>patchfiles-append</term>
712
713          <term>patchfiles-delete</term>
714
715          <listitem>
716            <para>Specify patch files to be applied for a port; list modifiers
717            specify patchfiles to be added or removed from a previous
718            patchfile declaration.</para>
719
720            <itemizedlist>
721              <listitem>
722                <para>Default: none</para>
723              </listitem>
724
725              <listitem>
726                <para>Example:</para>
727
728                <programlisting>patchfiles     patch-Makefile.in \
729               patch-source.c
730
731</programlisting>
732              </listitem>
733            </itemizedlist>
734          </listitem>
735
736          <listitem>
737            <para>List modifier examples:</para>
738
739            <programlisting>patchfiles-append   patch-configure
740patchfiles-delete   patch-src-Makefile.in
741</programlisting>
742          </listitem>
743        </varlistentry>
744
745        <varlistentry>
746          <term>patch.args</term>
747
748          <term>patch.pre_args</term>
749
750          <term>patch.post_args</term>
751
752          <listitem>
753            <para>Main arguments to patch.cmd; optional argument modifiers
754            pass arguments before and after the main arguments.</para>
755
756            <itemizedlist>
757              <listitem>
758                <para>Default: none</para>
759              </listitem>
760
761              <listitem>
762                <para>Example:</para>
763
764                <programlisting>patch.args   ???
765
766</programlisting>
767              </listitem>
768            </itemizedlist>
769          </listitem>
770
771          <listitem>
772            <para>The following argument modifiers are available:</para>
773
774            <itemizedlist>
775              <listitem>
776                <para>patch.pre_args default: -p0</para>
777              </listitem>
778
779              <listitem>
780                <para>patch.post_args default: none</para>
781              </listitem>
782
783              <listitem>
784                <para>Examples:</para>
785
786                <programlisting>patch.pre_args     -p1
787patch.post_args    ???</programlisting>
788              </listitem>
789            </itemizedlist>
790          </listitem>
791        </varlistentry>
792      </variablelist>
793    </refsection>
794
795    <refsection>
796      <title>Configure Phase Keywords</title>
797
798      <para>The list of keywords related to the configure phase.</para>
799
800      <para>MacPorts base sets some important default configure options, so
801      should use the -append version of most configure keywords so you don't
802      overwrite them. For example, MacPorts base sets default
803      <literal>configure.cflags</literal> so you should always use
804      <literal>configure.cflags-append</literal> to set additional CFLAGS in
805      Portfiles.</para>
806
807      <variablelist>
808        <varlistentry>
809          <term>configure.env</term>
810
811          <term>configure.env-append</term>
812
813          <term>configure.env-delete</term>
814
815          <listitem>
816            <para>Set environment variables for configure; list modifiers add
817            and delete items from a previous Portfile configure.env keyword,
818            or a default set by MacPorts base. If available, it is encouraged
819            to use the predefined options (like configure.cflags) instead of
820            modifying configure.env directly</para>
821
822            <itemizedlist>
823              <listitem>
824                <para>Default: <literal>CFLAGS=-I${prefix}/include
825                LDFLAGS=-L${prefix}/lib</literal></para>
826              </listitem>
827
828              <listitem>
829                <para>Example:</para>
830
831                <programlisting>configure.env   QTDIR=${prefix}/lib/qt3
832</programlisting>
833              </listitem>
834            </itemizedlist>
835          </listitem>
836
837          <listitem>
838            <para>List modifier examples:</para>
839
840            <programlisting>configure.env-append   ABI=32
841configure.env-delete   TCLROOT=${prefix}</programlisting>
842          </listitem>
843        </varlistentry>
844
845        <varlistentry>
846          <term>configure.cflags</term>
847
848          <term>configure.cflags-append</term>
849
850          <term>configure.cflags-delete</term>
851
852          <listitem>
853            <para>Set CFLAGS compiler flags; list modifiers add or delete
854            items from a previous Portfile configure.cflags keyword or the
855            default set by MacPorts base.</para>
856
857            <itemizedlist>
858              <listitem>
859                <para>Default: <literal>-O2</literal></para>
860              </listitem>
861
862              <listitem>
863                <para>Example:</para>
864
865                <programlisting>configure.cflags    -Os -flat_namespace
866
867</programlisting>
868              </listitem>
869            </itemizedlist>
870          </listitem>
871
872          <listitem>
873            <para>List modifier examples:</para>
874
875            <programlisting>configure.cflags-append   "-undefined suppress"
876configure.cflags-delete   -O2</programlisting>
877          </listitem>
878        </varlistentry>
879
880        <varlistentry>
881          <term>configure.ldflags</term>
882
883          <term>configure.ldflags-append</term>
884
885          <term>configure.ldflags-delete</term>
886
887          <listitem>
888            <para>Set LDFLAGS compiler flags; list modifiers add or delete
889            items from a previous Portfile configure.ldflags keyword or the
890            default set by MacPorts base.</para>
891
892            <itemizedlist>
893              <listitem>
894                <para>Default: <literal>-L${prefix}/lib</literal></para>
895              </listitem>
896
897              <listitem>
898                <para>Example:</para>
899
900                <programlisting>configure.ldflags    -L${worksrcpath}/zlib -lz
901
902</programlisting>
903              </listitem>
904            </itemizedlist>
905          </listitem>
906
907          <listitem>
908            <para>List modifier examples:</para>
909
910            <programlisting>configure.ldflags-append   "-L/usr/X11R6/lib -L${worksrcpath}/lib"
911configure.ldflags-delete   -L${prefix}/lib/db44</programlisting>
912          </listitem>
913        </varlistentry>
914
915        <varlistentry>
916          <term>configure.cppflags</term>
917
918          <term>configure.cppflags-append</term>
919
920          <term>configure.cppflags-delete</term>
921
922          <listitem>
923            <para>Set CPPFLAGS to be passed to the C processor; list modifiers
924            add or delete items from a previous Portfile configure.cppflags
925            keyword or the default set by MacPorts base.</para>
926
927            <itemizedlist>
928              <listitem>
929                <para>Default: <literal>-I${prefix}/include</literal></para>
930              </listitem>
931
932              <listitem>
933                <para>Example:</para>
934
935                <programlisting>configure.cppflags    -I${worksrcpath}/include
936
937</programlisting>
938              </listitem>
939            </itemizedlist>
940          </listitem>
941
942          <listitem>
943            <para>List modifier examples:</para>
944
945            <programlisting>configure.cppflags-append   "-I/usr/X11R6/lib -I${worksrcpath}/lib -DHAVE_RRD_12X"
946configure.cppflags-delete   -I${prefix}/lib/db44</programlisting>
947          </listitem>
948        </varlistentry>
949
950        <!-- fortran compiler options -->
951
952        <varlistentry>
953          <term>configure.fflags</term>
954
955          <term>configure.fflags-append</term>
956
957          <term>configure.fflags-delete</term>
958
959          <listitem>
960            <para>Set FFLAGS to be passed to the Fortran compiler; list
961            modifiers add or delete items from a previous Portfile
962            configure.fflags keyword or the default set by MacPorts
963            base.</para>
964
965            <itemizedlist>
966              <listitem>
967                <para>Default: <literal>-O2</literal></para>
968              </listitem>
969
970              <listitem>
971                <para>Example:</para>
972
973                <programlisting>configure.fflags    -Os
974
975</programlisting>
976              </listitem>
977            </itemizedlist>
978          </listitem>
979        </varlistentry>
980
981        <varlistentry>
982          <term>configure.fcflags</term>
983
984          <term>configure.fcflags-append</term>
985
986          <term>configure.fcflags-delete</term>
987
988          <listitem>
989            <para>Set FCFLAGS to be passed to the Fortran compiler; list
990            modifiers add or delete items from a previous Portfile
991            configure.fcflags keyword or the default set by MacPorts
992            base.</para>
993
994            <itemizedlist>
995              <listitem>
996                <para>Default: <literal>-O2</literal></para>
997              </listitem>
998
999              <listitem>
1000                <para>Example:</para>
1001
1002                <programlisting>configure.fcflags    -Os
1003
1004</programlisting>
1005              </listitem>
1006            </itemizedlist>
1007          </listitem>
1008        </varlistentry>
1009
1010        <varlistentry>
1011          <term>configure.f90flags</term>
1012
1013          <term>configure.f90flags-append</term>
1014
1015          <term>configure.f90flags-delete</term>
1016
1017          <listitem>
1018            <para>Set F90FLAGS to be passed to the Fortran 90 compiler; list
1019            modifiers add or delete items from a previous Portfile
1020            configure.f90flags keyword or the default set by MacPorts
1021            base.</para>
1022
1023            <itemizedlist>
1024              <listitem>
1025                <para>Default: <literal>-O2</literal></para>
1026              </listitem>
1027
1028              <listitem>
1029                <para>Example:</para>
1030
1031                <programlisting>configure.f90flags    -Os
1032
1033</programlisting>
1034              </listitem>
1035            </itemizedlist>
1036          </listitem>
1037        </varlistentry>
1038
1039        <!-- fortran compiler options end -->
1040
1041        <!-- compiler selection arguments -->
1042
1043        <varlistentry>
1044          <term>configure.cc</term>
1045
1046          <listitem>
1047            <para>Set CC compiler flags for selecting a C compiler;</para>
1048
1049            <itemizedlist>
1050              <listitem>
1051                <para>Default: <literal></literal></para>
1052              </listitem>
1053
1054              <listitem>
1055                <para>Example:</para>
1056
1057                <programlisting>configure.cc    ${prefix}/bin/gcc-mp-4.2</programlisting>
1058              </listitem>
1059            </itemizedlist>
1060          </listitem>
1061        </varlistentry>
1062
1063        <varlistentry>
1064          <term>configure.cpp</term>
1065
1066          <listitem>
1067            <para>Set CPP compiler flags for selecting a C
1068            preprocessor;</para>
1069
1070            <itemizedlist>
1071              <listitem>
1072                <para>Default: <literal></literal></para>
1073              </listitem>
1074
1075              <listitem>
1076                <para>Example:</para>
1077
1078                <programlisting>configure.cpp    /usr/bin/cpp-3.3</programlisting>
1079              </listitem>
1080            </itemizedlist>
1081          </listitem>
1082        </varlistentry>
1083
1084        <varlistentry>
1085          <term>configure.cxx</term>
1086
1087          <listitem>
1088            <para>Set CXX compiler flags for selecting a C++ compiler;</para>
1089
1090            <itemizedlist>
1091              <listitem>
1092                <para>Default: <literal></literal></para>
1093              </listitem>
1094
1095              <listitem>
1096                <para>Example:</para>
1097
1098                <programlisting>configure.cpp    /usr/bin/g++-4.0</programlisting>
1099              </listitem>
1100            </itemizedlist>
1101          </listitem>
1102        </varlistentry>
1103
1104        <varlistentry>
1105          <term>configure.objc</term>
1106
1107          <listitem>
1108            <para>Set OBJC compiler flags for selecting an Objective-C
1109            compiler;</para>
1110
1111            <itemizedlist>
1112              <listitem>
1113                <para>Default: <literal></literal></para>
1114              </listitem>
1115
1116              <listitem>
1117                <para>Example:</para>
1118
1119                <programlisting>configure.objc    /usr/bin/gcc-4.0</programlisting>
1120              </listitem>
1121            </itemizedlist>
1122          </listitem>
1123        </varlistentry>
1124
1125        <varlistentry>
1126          <term>configure.fc</term>
1127
1128          <listitem>
1129            <para>Set FC compiler flags for selecting a Fortran
1130            compiler;</para>
1131
1132            <itemizedlist>
1133              <listitem>
1134                <para>Default: <literal></literal></para>
1135              </listitem>
1136
1137              <listitem>
1138                <para>Example:</para>
1139
1140                <programlisting>configure.fc    ${prefix}/bin/gfortran-mp-4.2</programlisting>
1141              </listitem>
1142            </itemizedlist>
1143          </listitem>
1144        </varlistentry>
1145
1146        <varlistentry>
1147          <term>configure.f77</term>
1148
1149          <listitem>
1150            <para>Set F77 compiler flags for selecting a Fortran 77
1151            compiler;</para>
1152
1153            <itemizedlist>
1154              <listitem>
1155                <para>Default: <literal></literal></para>
1156              </listitem>
1157
1158              <listitem>
1159                <para>Example:</para>
1160
1161                <programlisting>configure.f77    ${prefix}/bin/gfortran-mp-4.2</programlisting>
1162              </listitem>
1163            </itemizedlist>
1164          </listitem>
1165        </varlistentry>
1166
1167        <varlistentry>
1168          <term>configure.f90</term>
1169
1170          <listitem>
1171            <para>Set F90 compiler flags for selecting a Fortran 90
1172            compiler;</para>
1173
1174            <itemizedlist>
1175              <listitem>
1176                <para>Default: <literal></literal></para>
1177              </listitem>
1178
1179              <listitem>
1180                <para>Example:</para>
1181
1182                <programlisting>configure.f90    ${prefix}/bin/gfortran-mp-4.2</programlisting>
1183              </listitem>
1184            </itemizedlist>
1185          </listitem>
1186        </varlistentry>
1187
1188        <varlistentry>
1189          <term>configure.javac</term>
1190
1191          <listitem>
1192            <para>Set JAVAC compiler flags for selecting a Java
1193            compiler;</para>
1194
1195            <itemizedlist>
1196              <listitem>
1197                <para>Default: <literal></literal></para>
1198              </listitem>
1199
1200              <listitem>
1201                <para>Example:</para>
1202
1203                <programlisting>configure.javac    ${prefix}/bin/jikes</programlisting>
1204              </listitem>
1205            </itemizedlist>
1206          </listitem>
1207        </varlistentry>
1208
1209        <varlistentry>
1210          <term>configure.compiler</term>
1211
1212          <listitem>
1213            <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.</para>
1214
1215            <itemizedlist>
1216              <listitem>
1217                <para>Default: <literal>gcc-3.3</literal>Mac OS X 10.3</para>
1218                <para>Default: <literal>gcc-4.0</literal>Mac OS X 10.4, 10.5</para>
1219              </listitem>
1220
1221              <listitem>
1222                <para>Options:</para>
1223
1224                <programlisting>gcc-3.3 gcc-4.0 apple-gcc-3.3 apple-gcc-4.0 macports-gcc-3.3 macports-gcc-3.4 macports-gcc-4.0 macports-gcc-4.1 macports-gcc-4.2 macports-gcc-4.3</programlisting>
1225              </listitem>
1226
1227              <listitem>
1228                <para>Example:</para>
1229
1230                <programlisting>configure.compiler    macports-gcc-4.2</programlisting>
1231              </listitem>
1232            </itemizedlist>
1233          </listitem>
1234        </varlistentry>
1235
1236        <!-- compiler selection arguments end -->
1237
1238        <!-- interpreter selection arguments -->
1239
1240        <varlistentry>
1241          <term>configure.perl</term>
1242
1243          <listitem>
1244            <para>Set PERL flag for selecting a Perl interpreter;</para>
1245
1246            <itemizedlist>
1247              <listitem>
1248                <para>Default: <literal></literal></para>
1249              </listitem>
1250
1251              <listitem>
1252                <para>Example:</para>
1253
1254                <programlisting>configure.perl    ${prefix}/bin/perl5.8</programlisting>
1255              </listitem>
1256            </itemizedlist>
1257          </listitem>
1258        </varlistentry>
1259
1260        <varlistentry>
1261          <term>configure.python</term>
1262
1263          <listitem>
1264            <para>Set PYTHON flag for selecting a Python interpreter;</para>
1265
1266            <itemizedlist>
1267              <listitem>
1268                <para>Default: <literal></literal></para>
1269              </listitem>
1270
1271              <listitem>
1272                <para>Example:</para>
1273
1274                <programlisting>configure.python    ${prefix}/bin/python3.0</programlisting>
1275              </listitem>
1276            </itemizedlist>
1277          </listitem>
1278        </varlistentry>
1279
1280        <varlistentry>
1281          <term>configure.ruby</term>
1282
1283          <listitem>
1284            <para>Set RUBY flag for selecting a Ruby interpreter;</para>
1285
1286            <itemizedlist>
1287              <listitem>
1288                <para>Default: <literal></literal></para>
1289              </listitem>
1290
1291              <listitem>
1292                <para>Example:</para>
1293
1294                <programlisting>configure.ruby    ${prefix}/bin/ruby</programlisting>
1295              </listitem>
1296            </itemizedlist>
1297          </listitem>
1298        </varlistentry>
1299
1300        <!-- interpreter selection arguments end -->
1301
1302        <!-- other tools selection arguments -->
1303
1304        <varlistentry>
1305          <term>configure.install</term>
1306
1307          <listitem>
1308            <para>Set INSTALL flag for selecting an install tool; used for copying files and creating directories</para>
1309
1310            <itemizedlist>
1311              <listitem>
1312                <para>Default: <literal>/usr/bin/install</literal></para>
1313              </listitem>
1314
1315              <listitem>
1316                <para>Example:</para>
1317
1318                <programlisting>configure.install    ${prefix}/bin/ginstall</programlisting>
1319              </listitem>
1320            </itemizedlist>
1321          </listitem>
1322        </varlistentry>
1323
1324        <!-- other tools selection arguments end -->
1325
1326        <varlistentry>
1327          <term>configure.args</term>
1328
1329          <term>configure.pre_args</term>
1330
1331          <term>configure.post_args</term>
1332
1333          <listitem>
1334            <para>Main arguments to configure.cmd; optional argument modifiers
1335            pass arguments before and after the main arguments.</para>
1336
1337            <itemizedlist>
1338              <listitem>
1339                <para>Default: none</para>
1340              </listitem>
1341
1342              <listitem>
1343                <para>Example:</para>
1344
1345                <programlisting>configure.args    --bindir=${prefix}/bin
1346
1347</programlisting>
1348              </listitem>
1349            </itemizedlist>
1350          </listitem>
1351
1352          <listitem>
1353            <para>The following argument modifiers are available:</para>
1354
1355            <itemizedlist>
1356              <listitem>
1357                <para>configure.pre_args default: --prefix=${prefix}</para>
1358              </listitem>
1359
1360              <listitem>
1361                <para>configure.post_args default: none</para>
1362              </listitem>
1363
1364              <listitem>
1365                <para>Examples:</para>
1366
1367                <programlisting>configure.pre_args   --prefix=${prefix}/share/bro
1368configure.post_args  OPT="-D__DARWIN_UNIX03"</programlisting>
1369              </listitem>
1370            </itemizedlist>
1371          </listitem>
1372        </varlistentry>
1373      </variablelist>
1374
1375      <refsection>
1376        <title>Configure Universal</title>
1377
1378        <para>Universal keywords are used to make a port compile on the OS X
1379        platform to run on either PPC or Intel.</para>
1380
1381        <note>
1382          <para>There is a default universal variant made available to all
1383          ports by MacPorts base, so redefining universal keywords should only
1384          be done to make a given port compile if the default options fail to
1385          do so.</para>
1386        </note>
1387
1388        <variablelist>
1389          <varlistentry>
1390            <term>configure.universal_args</term>
1391
1392            <listitem>
1393              <para>Arguments used in the configure script to build the port
1394              universal.</para>
1395
1396              <itemizedlist>
1397                <listitem>
1398                  <para>Default: --disable-dependency-tracking</para>
1399                </listitem>
1400
1401                <listitem>
1402                  <para>Example:</para>
1403
1404                  <programlisting></programlisting>
1405                </listitem>
1406              </itemizedlist>
1407            </listitem>
1408          </varlistentry>
1409
1410          <varlistentry>
1411            <term>configure.universal_cflags</term>
1412
1413            <listitem>
1414              <para>Arguments appended to the configure script to build the
1415              port universal.</para>
1416
1417              <itemizedlist>
1418                <listitem>
1419                  <para>Default: -sysroot /Developer/SDKs/MacOSX10.4u.sdk
1420                  -arch i386 -arch ppc</para>
1421                </listitem>
1422
1423                <listitem>
1424                  <para>Example:</para>
1425
1426                  <programlisting></programlisting>
1427                </listitem>
1428              </itemizedlist>
1429            </listitem>
1430          </varlistentry>
1431
1432          <varlistentry>
1433            <term>configure.universal_cppflags</term>
1434
1435            <listitem>
1436              <para>Additional flags to put in the CPPFLAGS environment
1437              variable when invoking the configure script.</para>
1438
1439              <itemizedlist>
1440                <listitem>
1441                  <para>Default: ???</para>
1442                </listitem>
1443
1444                <listitem>
1445                  <para>Example:</para>
1446
1447                  <programlisting></programlisting>
1448                </listitem>
1449              </itemizedlist>
1450            </listitem>
1451          </varlistentry>
1452
1453          <varlistentry>
1454            <term>configure.universal_cxxflags</term>
1455
1456            <listitem>
1457              <para>Additional flags to put in the CXXFLAGS environment
1458              variable when invoking the configure script.</para>
1459
1460              <itemizedlist>
1461                <listitem>
1462                  <para>Default: -isysroot /Developer/SDKs/MacOSX10.4u.sdk
1463                  -arch i386 -arch ppc</para>
1464                </listitem>
1465
1466                <listitem>
1467                  <para>Example:</para>
1468
1469                  <programlisting></programlisting>
1470                </listitem>
1471              </itemizedlist>
1472            </listitem>
1473          </varlistentry>
1474
1475          <varlistentry>
1476            <term>configure.universal_ldflags</term>
1477
1478            <listitem>
1479              <para>Additional flags to put in the LDFLAGS environment
1480              variable when invoking the configure script.</para>
1481
1482              <itemizedlist>
1483                <listitem>
1484                  <para>Default: -arch i386 -arch ppc</para>
1485                </listitem>
1486
1487                <listitem>
1488                  <para>Example:</para>
1489
1490                  <programlisting></programlisting>
1491                </listitem>
1492              </itemizedlist>
1493            </listitem>
1494          </varlistentry>
1495        </variablelist>
1496      </refsection>
1497
1498      <refsection>
1499        <title>Automake and Autoconf</title>
1500
1501        <para>The list of configure keywords available for ports that need
1502        automake and/or autoconf.</para>
1503
1504        <variablelist>
1505          <varlistentry>
1506            <term>use_automake</term>
1507
1508            <listitem>
1509              <para>Whether or not to use automake; the default is
1510              "no".</para>
1511
1512              <programlisting>use_automake      yes</programlisting>
1513            </listitem>
1514          </varlistentry>
1515
1516          <varlistentry>
1517            <term>automake.env</term>
1518
1519            <listitem>
1520              <para>Environment variables to pass to automake.</para>
1521
1522              <programlisting>automake.env      CFLAGS=-I${prefix}/include</programlisting>
1523            </listitem>
1524          </varlistentry>
1525
1526          <varlistentry>
1527            <term>automake.args</term>
1528
1529            <listitem>
1530              <para>Arguments to pass to automake.</para>
1531
1532              <programlisting>automake.args     --foreign</programlisting>
1533            </listitem>
1534          </varlistentry>
1535
1536          <varlistentry>
1537            <term>automake.dir</term>
1538
1539            <listitem>
1540              <para>Directory in which to run
1541              <varname>${automake.cmd}</varname>; the default is
1542              <varname>${worksrcpath}</varname>.</para>
1543
1544              <programlisting>automake.dir      ./src</programlisting>
1545            </listitem>
1546          </varlistentry>
1547
1548          <varlistentry>
1549            <term>use_autoconf</term>
1550
1551            <listitem>
1552              <para>Whether or not to use autoconf; the default is
1553              "no".</para>
1554
1555              <programlisting>use_autoconf      yes</programlisting>
1556            </listitem>
1557          </varlistentry>
1558
1559          <varlistentry>
1560            <term>autoconf.env</term>
1561
1562            <listitem>
1563              <para>Environmental variables to pass to autoconf.</para>
1564
1565              <programlisting>autoconf.env      CFLAGS=-I${prefix}/include/gtk12</programlisting>
1566            </listitem>
1567          </varlistentry>
1568
1569          <varlistentry>
1570            <term>autoconf.args</term>
1571
1572            <listitem>
1573              <para>Arguments to pass to autoconf.</para>
1574
1575              <programlisting>autoconf.args     -l src/aclocaldir</programlisting>
1576            </listitem>
1577          </varlistentry>
1578
1579          <varlistentry>
1580            <term>autoconf.dir</term>
1581
1582            <listitem>
1583              <para>Directory in which to run
1584              <varname>${autoconf.cmd}</varname>; the default is
1585              <varname>${worksrcpath}</varname>.</para>
1586
1587              <programlisting>autoconf.dir      src</programlisting>
1588            </listitem>
1589          </varlistentry>
1590        </variablelist>
1591      </refsection>
1592    </refsection>
1593
1594    <refsection>
1595      <title>Build Phase Keywords</title>
1596
1597      <para>The list of keywords related to the build phase.</para>
1598
1599      <variablelist>
1600        <varlistentry>
1601          <term>build.cmd</term>
1602
1603          <listitem>
1604            <para>Make command to run in <varname>${worksrcdir}</varname>; the
1605            default is "make".</para>
1606
1607            <programlisting>build.cmd      pbxbuild</programlisting>
1608          </listitem>
1609        </varlistentry>
1610
1611        <varlistentry>
1612          <term>build.type</term>
1613
1614          <listitem>
1615            <para>Defines which "make" is required: "gnu" or "bsd". Sets
1616            build.cmd to either "gnumake" or "bsdmake" accordingly.</para>
1617
1618            <programlisting>build.type     gnu</programlisting>
1619          </listitem>
1620        </varlistentry>
1621
1622        <varlistentry>
1623          <term>build.args</term>
1624
1625          <term>build.pre_args</term>
1626
1627          <term>build.post_args</term>
1628
1629          <listitem>
1630            <para>Main arguments to build.cmd; optional argument modifiers
1631            pass arguments before and after the main arguments.</para>
1632
1633            <itemizedlist>
1634              <listitem>
1635                <para>Default: none</para>
1636              </listitem>
1637
1638              <listitem>
1639                <para>Example:</para>
1640
1641                <programlisting>build.args    -DNOWARN
1642
1643</programlisting>
1644              </listitem>
1645            </itemizedlist>
1646          </listitem>
1647
1648          <listitem>
1649            <para>The following argument modifiers are available:</para>
1650
1651            <itemizedlist>
1652              <listitem>
1653                <para>build.pre_args default:
1654                <varname>${build.target.current}</varname></para>
1655              </listitem>
1656
1657              <listitem>
1658                <para>build.post_args default: none</para>
1659              </listitem>
1660
1661              <listitem>
1662                <para>Examples:</para>
1663
1664                <programlisting>build.pre_args  -project AudioSlicer.xcode
1665build.post_args CFLAGS_SYS="-DUSE_FREETYPE -DPREFER_FREETYPE"</programlisting>
1666              </listitem>
1667            </itemizedlist>
1668          </listitem>
1669        </varlistentry>
1670
1671        <varlistentry>
1672          <term>build.target</term>
1673
1674          <term>build.target-append</term>
1675
1676          <term>build.target-delete</term>
1677
1678          <listitem>
1679            <para>Build target to pass to ${build.cmd}; list modifiers add or
1680            delete items from a previous Portfile build.target keyword or the
1681            default set by MacPorts base.</para>
1682
1683            <itemizedlist>
1684              <listitem>
1685                <para>Default: all</para>
1686              </listitem>
1687
1688              <listitem>
1689                <para>Example:</para>
1690
1691                <programlisting>build.target    all-src
1692
1693</programlisting>
1694              </listitem>
1695            </itemizedlist>
1696          </listitem>
1697
1698          <listitem>
1699            <para>List modifier examples:</para>
1700
1701            <programlisting>build.target-append   doc extra
1702build.target-delete   compat</programlisting>
1703          </listitem>
1704        </varlistentry>
1705      </variablelist>
1706    </refsection>
1707
1708    <refsection>
1709      <title>Destroot Phase Keywords</title>
1710
1711      <para>The list of keywords related to the destroot phase.</para>
1712
1713      <variablelist>
1714        <varlistentry>
1715          <term>destroot.cmd</term>
1716
1717          <listitem>
1718            <para>Install command to run relative to
1719            <varname>${worksrcdir}</varname>; default is
1720            <varname>${build.cmd}</varname>.</para>
1721
1722            <programlisting>destroot.cmd         pbxbuild</programlisting>
1723          </listitem>
1724        </varlistentry>
1725
1726        <varlistentry>
1727          <term>destroot.type</term>
1728
1729          <listitem>
1730            <para>Defines which "make" is required: either "gnu" or "bsd".
1731            Sets install.cmd to either "gnumake" or "bsdmake"
1732            accordingly.</para>
1733
1734            <programlisting>destroot.type        gnu</programlisting>
1735          </listitem>
1736        </varlistentry>
1737
1738        <varlistentry>
1739          <term>destroot.args</term>
1740
1741          <term>destroot.pre_args</term>
1742
1743          <term>destroot.post_args</term>
1744
1745          <listitem>
1746            <para>Main arguments to ${destroot.cmd}; optional argument
1747            modifiers pass arguments before and after the main
1748            arguments.</para>
1749
1750            <itemizedlist>
1751              <listitem>
1752                <para>Default: none</para>
1753              </listitem>
1754
1755              <listitem>
1756                <para>Example:</para>
1757
1758                <programlisting>destroot.args    BINDIR=${prefix}/bin
1759
1760</programlisting>
1761              </listitem>
1762            </itemizedlist>
1763          </listitem>
1764
1765          <listitem>
1766            <para>The following argument modifiers are available:</para>
1767
1768            <itemizedlist>
1769              <listitem>
1770                <para>destroot.pre_args default:
1771                <varname>${destroot.target}</varname></para>
1772              </listitem>
1773
1774              <listitem>
1775                <para>destroot.post_args default: none</para>
1776              </listitem>
1777
1778              <listitem>
1779                <para>Examples:</para>
1780
1781                <programlisting>destroot.pre_args  -project AudioSlicer.xcode
1782destroot.post_args INSTDIR=${destroot}${prefix}</programlisting>
1783              </listitem>
1784            </itemizedlist>
1785          </listitem>
1786        </varlistentry>
1787
1788        <varlistentry>
1789          <term>destroot.target</term>
1790
1791          <term>destroot.target-append</term>
1792
1793          <term>destroot.target-delete</term>
1794
1795          <listitem>
1796            <para>Install target to pass to ${destroot.cmd}; list modifiers
1797            add or delete items from a previous Portfile destroot.target
1798            keyword or the default set by MacPorts base.</para>
1799
1800            <itemizedlist>
1801              <listitem>
1802                <para>Default: <literal>install</literal></para>
1803              </listitem>
1804
1805              <listitem>
1806                <para>Example:</para>
1807
1808                <programlisting>destroot.target    install install-config install-commandmode
1809
1810</programlisting>
1811              </listitem>
1812            </itemizedlist>
1813          </listitem>
1814
1815          <listitem>
1816            <para>List modifier examples:</para>
1817
1818            <programlisting>destroot.target-append   install-plugins
1819destroot.target-delete   install-commandmode</programlisting>
1820          </listitem>
1821        </varlistentry>
1822
1823        <varlistentry>
1824          <term>destroot.destdir</term>
1825
1826          <listitem>
1827            <para>Arguments passed to ${destroot.cmd} to install correctly
1828            into the destroot.</para>
1829
1830            <programlisting>destroot.destdir     prefix=${destroot}${prefix}</programlisting>
1831
1832            <note>
1833              <para>If an application's Makefile properly supports the DESTDIR
1834              variable, MacPorts will automatically destroot the port
1835              properly. A port must destroot properly or the port will not
1836              install correctly, upgrade, or uninstall. If not, you may need
1837              to set this variable, or even patch the application's
1838              Makefile.</para>
1839            </note>
1840          </listitem>
1841        </varlistentry>
1842
1843        <varlistentry>
1844          <term>destroot.keepdirs</term>
1845
1846          <listitem>
1847            <para>A list of directories that should not be removed if empty
1848            upon destroot completion.</para>
1849
1850            <programlisting>destroot.keepdirs \
1851                ${destroot}${prefix}/var/run \
1852                ${destroot}${prefix}/var/log \
1853                ${destroot}${prefix}/var/cache/mrtg</programlisting>
1854          </listitem>
1855        </varlistentry>
1856
1857        <varlistentry>
1858          <term>destroot.violate_mtree</term>
1859
1860          <listitem>
1861            <para>MacPorts tests for compliance to the common directory
1862            structure in ${prefix}; the default is "no". If a port is not
1863            compliant with the standard, set it to "yes".</para>
1864
1865            <programlisting>destroot.violate_mtree    yes</programlisting>
1866          </listitem>
1867        </varlistentry>
1868      </variablelist>
1869    </refsection>
1870  </refsection>
1871
1872  <refsection>
1873    <title>SEE ALSO</title>
1874
1875    <para><citerefentry>
1876        <refentrytitle>portfile-global</refentrytitle>
1877
1878        <manvolnum>7</manvolnum>
1879      </citerefentry>, <citerefentry>
1880        <refentrytitle>portfile-startupitem</refentrytitle>
1881
1882        <manvolnum>7</manvolnum>
1883      </citerefentry>, <citerefentry>
1884        <refentrytitle>portfile-tcl</refentrytitle>
1885
1886        <manvolnum>7</manvolnum>
1887      </citerefentry></para>
1888  </refsection>
1889
1890  <refsection>
1891    <title>AUTHORS</title>
1892
1893    <para>Landon Fuller <email>landonf@macports.org</email></para>
1894
1895    <para>Juan Manuel Palacios <email>jmpp@macports.org</email></para>
1896
1897    <para>Mark Duling <email>markd@macports.org</email></para>
1898
1899    <para>Kevin Van Vechten <email>kevin@opendarwin.org</email></para>
1900
1901    <para>Jordan K. Hubbard <email>jkh@macports.org</email></para>
1902
1903    <para>Chris Ridd <email>cjr@opendarwin.org</email></para>
1904
1905    <para>Kevin Ballard <email>eridius@macports.org</email></para>
1906
1907    <para>Markus W. Weissmann <email>mww@macports.org</email></para>
1908  </refsection>
1909</refentry>
Note: See TracBrowser for help on using the repository browser.