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

Last change on this file since 31135 was 31030, checked in by mww@…, 13 years ago

document 'extract.mkdir [no|yes]'

File size: 60.6 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-phase</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>extract.mkdir</term>
305
306          <listitem>
307            <para>This option is used to specify if the directory
308            <filename>worksrcdir</filename> is part of the distfile or if it
309            should be created automatically and the distfiles should be
310            extracted there instead. This is useful for distfiles with a flat
311            structure which would pollute the <filename>worksrcdir</filename>
312            with lots of files.</para>
313
314            <itemizedlist>
315              <listitem>
316                <para>Default: <option>no</option></para>
317              </listitem>
318
319              <listitem>
320                <para>Example:</para>
321
322                <programlisting>extract.mkdir   yes</programlisting>
323              </listitem>
324            </itemizedlist>
325          </listitem>
326        </varlistentry>
327
328        <varlistentry>
329          <term>use_bzip2</term>
330
331          <listitem>
332            <para>This keyword is for downloads that are tarred and bzipped.
333            When invoked, it automatically sets:</para>
334
335            <literallayout>extract.suffix = .tar.bz
336extract.cmd = bzip
337
338</literallayout>
339
340            <itemizedlist>
341              <listitem>
342                <para>Default: <option>no</option></para>
343              </listitem>
344
345              <listitem>
346                <para>Example:</para>
347
348                <programlisting>use_bzip2     yes</programlisting>
349              </listitem>
350            </itemizedlist>
351          </listitem>
352        </varlistentry>
353
354        <varlistentry>
355          <term>use_zip</term>
356
357          <listitem>
358            <para>This keyword is for downloads are zipped. When invoked, it
359            automatically sets:</para>
360
361            <literallayout>extract.suffix = .zip
362extract.cmd = unzip
363extract.pre_args = -q
364extract.post_args = "-d ${portpath}/${workdir}"
365
366</literallayout>
367
368            <itemizedlist>
369              <listitem>
370                <para>Default: <option>no</option></para>
371              </listitem>
372
373              <listitem>
374                <para>Example:</para>
375
376                <programlisting>use_zip       yes</programlisting>
377              </listitem>
378            </itemizedlist>
379          </listitem>
380        </varlistentry>
381      </variablelist>
382
383      <refsection>
384        <title>Fetch from CVS</title>
385
386        <para><ulink url="http://www.nongnu.org/cvs/">CVS</ulink> may be used
387        as an alternative method of fetching distribution files using the
388        keywords in this section. However, fetching via CVS may cause
389        non-reproducible builds, so it is strongly discouraged.</para>
390
391        <variablelist>
392          <varlistentry>
393            <term>cvs.root</term>
394
395            <listitem>
396              <para>Specify the url from which to fetch files.</para>
397
398              <itemizedlist>
399                <listitem>
400                  <para>Default: none</para>
401                </listitem>
402
403                <listitem>
404                  <para>Example:</para>
405
406                  <programlisting>cvs.root :pserver:anonymous@cvs.sv.gnu.org:/sources/emacs</programlisting>
407                </listitem>
408              </itemizedlist>
409            </listitem>
410          </varlistentry>
411
412          <varlistentry>
413            <term>cvs.tag</term>
414
415            <listitem>
416              <para>Optional for fetching with CVS, this specifies the code
417              revision to checkout.</para>
418
419              <itemizedlist>
420                <listitem>
421                  <para>Default: none</para>
422                </listitem>
423
424                <listitem>
425                  <para>Example:</para>
426
427                  <programlisting>cvs.tag  HEAD</programlisting>
428                </listitem>
429              </itemizedlist>
430            </listitem>
431          </varlistentry>
432
433          <varlistentry>
434            <term>cvs.date</term>
435
436            <listitem>
437              <para>A date that identifies the CVS code set to
438              checkout.</para>
439
440              <itemizedlist>
441                <listitem>
442                  <para>Default: none</para>
443                </listitem>
444
445                <listitem>
446                  <para>Example:</para>
447
448                  <programlisting>cvs.date "12-April-2007"</programlisting>
449                </listitem>
450              </itemizedlist>
451            </listitem>
452          </varlistentry>
453
454          <varlistentry>
455            <term>cvs.module</term>
456
457            <listitem>
458              <para>A CVS module from which to check out the code.</para>
459
460              <itemizedlist>
461                <listitem>
462                  <para>Default: none</para>
463                </listitem>
464
465                <listitem>
466                  <para>Example:</para>
467
468                  <programlisting>cvs.module  Sources</programlisting>
469                </listitem>
470              </itemizedlist>
471            </listitem>
472          </varlistentry>
473        </variablelist>
474      </refsection>
475
476      <refsection>
477        <title>Fetch from Subversion</title>
478
479        <para><ulink url="http://subversion.tigris.org/">Subversion</ulink>
480        may be used as an alternative method of fetching distribution files
481        using the keywords in this section. However, fetching via Subversion
482        may cause non-reproducible builds, so it is strongly
483        discouraged.</para>
484
485        <variablelist>
486          <varlistentry>
487            <term>svn.url</term>
488
489            <listitem>
490              <para>This specifies the url from which to fetch files.</para>
491
492              <itemizedlist>
493                <listitem>
494                  <para>Default: none</para>
495                </listitem>
496
497                <listitem>
498                  <para>Examples:</para>
499
500                  <programlisting>svn.url http://www.domain.com/svn-repo/mydirectory
501svn.url svn://www.domain.com/svn-repo/mydirectory
502</programlisting>
503                </listitem>
504              </itemizedlist>
505            </listitem>
506          </varlistentry>
507
508          <varlistentry>
509            <term>svn.tag</term>
510
511            <listitem>
512              <para>Optional tag for fetching with Subversion, this specifies
513              the code revision to checkout; it corresponds to the -r option
514              in the svn cli. You must use backslashes to escape characters
515              that are meaningful to the Tcl interpreter, such as braces and
516              double quotes.</para>
517
518              <itemizedlist>
519                <listitem>
520                  <para>Default: none</para>
521                </listitem>
522
523                <listitem>
524                  <para>Examples:</para>
525
526                  <programlisting>svn.tag 37192
527svn.tag \{\"2006-02-17 15:30 +0230\"\}</programlisting>
528                </listitem>
529              </itemizedlist>
530            </listitem>
531          </varlistentry>
532        </variablelist>
533      </refsection>
534    </refsection>
535
536    <refsection>
537      <title>Checksum Phase Keywords</title>
538
539      <para>The list of keywords related to the checksum phase.</para>
540
541      <variablelist>
542        <varlistentry>
543          <term>checksums</term>
544
545          <listitem>
546            <para>Checksum(s) of the distribution files. For ports with
547            multiple distribution files, filenames must be included to
548            associate files with their checksums.</para>
549
550            <itemizedlist>
551              <listitem>
552                <para>Default: ???</para>
553              </listitem>
554
555              <listitem>
556                <para>Examples:</para>
557
558                <programlisting>checksums     md5 dafa161bc9c61e57636a6085c87c1fe8 \
559              sha1 5da610e1c8bc01b80abc21ab9e98e004363b429c \
560              rmd160 0c1147242adf476f5e93f4d59b553ee3ea378b23</programlisting>
561
562                <programlisting>checksums     ${distname}${extract.suffix} md5 dafa161bc9c61e57636a6085c87c1fe8 \
563                  sha1 5da610e1c8bc01b80abc21ab9e98e004363b429c \
564                  rmd160 0c1147242adf476f5e93f4d59b553ee3ea378b23 \
565              hobbit.tar.gz md5 3b8d02c6cf6239b9bdadbc6543c5a683 \
566                  sha1 27874638b23e66d39ed94fe716ca25c967f6e993 \
567                  rmd160 82b9991f3bf0ceedbf74c188c5fa44b98b5e40c9</programlisting>
568              </listitem>
569            </itemizedlist>
570          </listitem>
571        </varlistentry>
572      </variablelist>
573    </refsection>
574
575    <refsection>
576      <title>Extract Phase Keywords</title>
577
578      <para>The list of keywords related to the extract phase.</para>
579
580      <variablelist>
581        <varlistentry>
582          <term>extract.only</term>
583
584          <term>extract.only-append</term>
585
586          <term>extract.only-delete</term>
587
588          <listitem>
589            <para>List of files to extract into
590            <varname>${worksrcpath}</varname>; the default is
591            <varname>${distfiles}</varname>. Only use if default extract
592            behavior is not correct for your port.</para>
593
594            <itemizedlist>
595              <listitem>
596                <para>Default: none</para>
597              </listitem>
598
599              <listitem>
600                <para>Example:</para>
601
602                <programlisting>extract.only     foo.tar.gz
603
604</programlisting>
605              </listitem>
606            </itemizedlist>
607          </listitem>
608
609          <listitem>
610            <para>List modifier examples:</para>
611
612            <programlisting>extract.only-append  bar.tar.gz
613extract.only-delete  foo.tar.gz</programlisting>
614          </listitem>
615        </varlistentry>
616
617        <varlistentry>
618          <term>extract.cmd</term>
619
620          <listitem>
621            <para>Command to perform extraction.</para>
622
623            <itemizedlist>
624              <listitem>
625                <para>Default: gzip</para>
626              </listitem>
627
628              <listitem>
629                <para>Example:</para>
630
631                <programlisting>extract.cmd     gunzip</programlisting>
632              </listitem>
633            </itemizedlist>
634          </listitem>
635        </varlistentry>
636
637        <varlistentry>
638          <term>extract.args</term>
639
640          <term>extract.pre_args</term>
641
642          <term>extract.post_args</term>
643
644          <listitem>
645            <para>Main arguments to extract.cmd; additional arguments passed
646            before and after the main arguments.</para>
647
648            <itemizedlist>
649              <listitem>
650                <para>Default: ${distpath}/${distfile}</para>
651              </listitem>
652
653              <listitem>
654                <para>Example:</para>
655
656                <programlisting>extract.args      ${distpath}/${distfile}
657
658</programlisting>
659              </listitem>
660            </itemizedlist>
661          </listitem>
662
663          <listitem>
664            <para>The following argument modifiers are available:</para>
665
666            <itemizedlist>
667              <listitem>
668                <para>extract.pre_args default: "-dc"</para>
669              </listitem>
670
671              <listitem>
672                <para>extract.post_args default: " | tar -xf"</para>
673              </listitem>
674
675              <listitem>
676                <para>Examples:</para>
677
678                <programlisting>extract.pre_args     xf
679extract.post_args    "| gnutar –x"</programlisting>
680              </listitem>
681            </itemizedlist>
682          </listitem>
683        </varlistentry>
684      </variablelist>
685    </refsection>
686
687    <refsection>
688      <title>Patch Phase Keywords</title>
689
690      <para>The list of keywords related to the patch phase.</para>
691
692      <variablelist>
693        <varlistentry>
694          <term>patch.dir</term>
695
696          <listitem>
697            <para>Specify the base path for patch files.</para>
698
699            <itemizedlist>
700              <listitem>
701                <para>Default: <varname>${worksrcpath}</varname></para>
702              </listitem>
703
704              <listitem>
705                <para>Example:</para>
706
707                <programlisting>patch.dir      ${worksrcpath}/util</programlisting>
708              </listitem>
709            </itemizedlist>
710          </listitem>
711        </varlistentry>
712
713        <varlistentry>
714          <term>patch.cmd</term>
715
716          <listitem>
717            <para>Specify the command to be used for patching files.</para>
718
719            <itemizedlist>
720              <listitem>
721                <para>Default: <command>patch</command></para>
722              </listitem>
723
724              <listitem>
725                <para>Example:</para>
726
727                <programlisting>patch.cmd      cat</programlisting>
728              </listitem>
729            </itemizedlist>
730          </listitem>
731        </varlistentry>
732
733        <varlistentry>
734          <term>patchfiles</term>
735
736          <term>patchfiles-append</term>
737
738          <term>patchfiles-delete</term>
739
740          <listitem>
741            <para>Specify patch files to be applied for a port; list modifiers
742            specify patchfiles to be added or removed from a previous
743            patchfile declaration.</para>
744
745            <itemizedlist>
746              <listitem>
747                <para>Default: none</para>
748              </listitem>
749
750              <listitem>
751                <para>Example:</para>
752
753                <programlisting>patchfiles     patch-Makefile.in \
754               patch-source.c
755
756</programlisting>
757              </listitem>
758            </itemizedlist>
759          </listitem>
760
761          <listitem>
762            <para>List modifier examples:</para>
763
764            <programlisting>patchfiles-append   patch-configure
765patchfiles-delete   patch-src-Makefile.in
766</programlisting>
767          </listitem>
768        </varlistentry>
769
770        <varlistentry>
771          <term>patch.args</term>
772
773          <term>patch.pre_args</term>
774
775          <term>patch.post_args</term>
776
777          <listitem>
778            <para>Main arguments to patch.cmd; optional argument modifiers
779            pass arguments before and after the main arguments.</para>
780
781            <itemizedlist>
782              <listitem>
783                <para>Default: none</para>
784              </listitem>
785
786              <listitem>
787                <para>Example:</para>
788
789                <programlisting>patch.args   ???
790
791</programlisting>
792              </listitem>
793            </itemizedlist>
794          </listitem>
795
796          <listitem>
797            <para>The following argument modifiers are available:</para>
798
799            <itemizedlist>
800              <listitem>
801                <para>patch.pre_args default: -p0</para>
802              </listitem>
803
804              <listitem>
805                <para>patch.post_args default: none</para>
806              </listitem>
807
808              <listitem>
809                <para>Examples:</para>
810
811                <programlisting>patch.pre_args     -p1
812patch.post_args    ???</programlisting>
813              </listitem>
814            </itemizedlist>
815          </listitem>
816        </varlistentry>
817      </variablelist>
818    </refsection>
819
820    <refsection>
821      <title>Configure Phase Keywords</title>
822
823      <para>The list of keywords related to the configure phase.</para>
824
825      <para>MacPorts base sets some important default configure options, so
826      should use the -append version of most configure keywords so you don't
827      overwrite them. For example, MacPorts base sets default
828      <literal>configure.cflags</literal> so you should always use
829      <literal>configure.cflags-append</literal> to set additional CFLAGS in
830      Portfiles.</para>
831
832      <variablelist>
833        <varlistentry>
834          <term>configure.env</term>
835
836          <term>configure.env-append</term>
837
838          <term>configure.env-delete</term>
839
840          <listitem>
841            <para>Set environment variables for configure; list modifiers add
842            and delete items from a previous Portfile configure.env keyword,
843            or a default set by MacPorts base. If available, it is encouraged
844            to use the predefined options (like configure.cflags) instead of
845            modifying configure.env directly</para>
846
847            <itemizedlist>
848              <listitem>
849                <para>Default: <literal>CFLAGS=-I${prefix}/include
850                LDFLAGS=-L${prefix}/lib</literal></para>
851              </listitem>
852
853              <listitem>
854                <para>Example:</para>
855
856                <programlisting>configure.env   QTDIR=${prefix}/lib/qt3
857</programlisting>
858              </listitem>
859            </itemizedlist>
860          </listitem>
861
862          <listitem>
863            <para>List modifier examples:</para>
864
865            <programlisting>configure.env-append   ABI=32
866configure.env-delete   TCLROOT=${prefix}</programlisting>
867          </listitem>
868        </varlistentry>
869
870        <varlistentry>
871          <term>configure.cflags</term>
872
873          <term>configure.cflags-append</term>
874
875          <term>configure.cflags-delete</term>
876
877          <listitem>
878            <para>Set CFLAGS compiler flags; list modifiers add or delete
879            items from a previous Portfile configure.cflags keyword or the
880            default set by MacPorts base.</para>
881
882            <itemizedlist>
883              <listitem>
884                <para>Default: <literal>-O2</literal></para>
885              </listitem>
886
887              <listitem>
888                <para>Example:</para>
889
890                <programlisting>configure.cflags    -Os -flat_namespace
891
892</programlisting>
893              </listitem>
894            </itemizedlist>
895          </listitem>
896
897          <listitem>
898            <para>List modifier examples:</para>
899
900            <programlisting>configure.cflags-append   "-undefined suppress"
901configure.cflags-delete   -O2</programlisting>
902          </listitem>
903        </varlistentry>
904
905        <varlistentry>
906          <term>configure.ldflags</term>
907
908          <term>configure.ldflags-append</term>
909
910          <term>configure.ldflags-delete</term>
911
912          <listitem>
913            <para>Set LDFLAGS compiler flags; list modifiers add or delete
914            items from a previous Portfile configure.ldflags keyword or the
915            default set by MacPorts base.</para>
916
917            <itemizedlist>
918              <listitem>
919                <para>Default: <literal>-L${prefix}/lib</literal></para>
920              </listitem>
921
922              <listitem>
923                <para>Example:</para>
924
925                <programlisting>configure.ldflags    -L${worksrcpath}/zlib -lz
926
927</programlisting>
928              </listitem>
929            </itemizedlist>
930          </listitem>
931
932          <listitem>
933            <para>List modifier examples:</para>
934
935            <programlisting>configure.ldflags-append   "-L/usr/X11R6/lib -L${worksrcpath}/lib"
936configure.ldflags-delete   -L${prefix}/lib/db44</programlisting>
937          </listitem>
938        </varlistentry>
939
940        <varlistentry>
941          <term>configure.cppflags</term>
942
943          <term>configure.cppflags-append</term>
944
945          <term>configure.cppflags-delete</term>
946
947          <listitem>
948            <para>Set CPPFLAGS to be passed to the C processor; list modifiers
949            add or delete items from a previous Portfile configure.cppflags
950            keyword or the default set by MacPorts base.</para>
951
952            <itemizedlist>
953              <listitem>
954                <para>Default: <literal>-I${prefix}/include</literal></para>
955              </listitem>
956
957              <listitem>
958                <para>Example:</para>
959
960                <programlisting>configure.cppflags    -I${worksrcpath}/include
961
962</programlisting>
963              </listitem>
964            </itemizedlist>
965          </listitem>
966
967          <listitem>
968            <para>List modifier examples:</para>
969
970            <programlisting>configure.cppflags-append   "-I/usr/X11R6/lib -I${worksrcpath}/lib -DHAVE_RRD_12X"
971configure.cppflags-delete   -I${prefix}/lib/db44</programlisting>
972          </listitem>
973        </varlistentry>
974
975        <!-- fortran compiler options -->
976
977        <varlistentry>
978          <term>configure.fflags</term>
979
980          <term>configure.fflags-append</term>
981
982          <term>configure.fflags-delete</term>
983
984          <listitem>
985            <para>Set FFLAGS to be passed to the Fortran compiler; list
986            modifiers add or delete items from a previous Portfile
987            configure.fflags keyword or the default set by MacPorts
988            base.</para>
989
990            <itemizedlist>
991              <listitem>
992                <para>Default: <literal>-O2</literal></para>
993              </listitem>
994
995              <listitem>
996                <para>Example:</para>
997
998                <programlisting>configure.fflags    -Os
999
1000</programlisting>
1001              </listitem>
1002            </itemizedlist>
1003          </listitem>
1004        </varlistentry>
1005
1006        <varlistentry>
1007          <term>configure.fcflags</term>
1008
1009          <term>configure.fcflags-append</term>
1010
1011          <term>configure.fcflags-delete</term>
1012
1013          <listitem>
1014            <para>Set FCFLAGS to be passed to the Fortran compiler; list
1015            modifiers add or delete items from a previous Portfile
1016            configure.fcflags keyword or the default set by MacPorts
1017            base.</para>
1018
1019            <itemizedlist>
1020              <listitem>
1021                <para>Default: <literal>-O2</literal></para>
1022              </listitem>
1023
1024              <listitem>
1025                <para>Example:</para>
1026
1027                <programlisting>configure.fcflags    -Os
1028
1029</programlisting>
1030              </listitem>
1031            </itemizedlist>
1032          </listitem>
1033        </varlistentry>
1034
1035        <varlistentry>
1036          <term>configure.f90flags</term>
1037
1038          <term>configure.f90flags-append</term>
1039
1040          <term>configure.f90flags-delete</term>
1041
1042          <listitem>
1043            <para>Set F90FLAGS to be passed to the Fortran 90 compiler; list
1044            modifiers add or delete items from a previous Portfile
1045            configure.f90flags keyword or the default set by MacPorts
1046            base.</para>
1047
1048            <itemizedlist>
1049              <listitem>
1050                <para>Default: <literal>-O2</literal></para>
1051              </listitem>
1052
1053              <listitem>
1054                <para>Example:</para>
1055
1056                <programlisting>configure.f90flags    -Os
1057
1058</programlisting>
1059              </listitem>
1060            </itemizedlist>
1061          </listitem>
1062        </varlistentry>
1063
1064        <!-- fortran compiler options end -->
1065
1066        <!-- compiler selection arguments -->
1067
1068        <varlistentry>
1069          <term>configure.cc</term>
1070
1071          <listitem>
1072            <para>Set CC compiler flags for selecting a C compiler;</para>
1073
1074            <itemizedlist>
1075              <listitem>
1076                <para>Default: <literal></literal></para>
1077              </listitem>
1078
1079              <listitem>
1080                <para>Example:</para>
1081
1082                <programlisting>configure.cc    ${prefix}/bin/gcc-mp-4.2</programlisting>
1083              </listitem>
1084            </itemizedlist>
1085          </listitem>
1086        </varlistentry>
1087
1088        <varlistentry>
1089          <term>configure.cpp</term>
1090
1091          <listitem>
1092            <para>Set CPP compiler flags for selecting a C
1093            preprocessor;</para>
1094
1095            <itemizedlist>
1096              <listitem>
1097                <para>Default: <literal></literal></para>
1098              </listitem>
1099
1100              <listitem>
1101                <para>Example:</para>
1102
1103                <programlisting>configure.cpp    /usr/bin/cpp-3.3</programlisting>
1104              </listitem>
1105            </itemizedlist>
1106          </listitem>
1107        </varlistentry>
1108
1109        <varlistentry>
1110          <term>configure.cxx</term>
1111
1112          <listitem>
1113            <para>Set CXX compiler flags for selecting a C++ compiler;</para>
1114
1115            <itemizedlist>
1116              <listitem>
1117                <para>Default: <literal></literal></para>
1118              </listitem>
1119
1120              <listitem>
1121                <para>Example:</para>
1122
1123                <programlisting>configure.cpp    /usr/bin/g++-4.0</programlisting>
1124              </listitem>
1125            </itemizedlist>
1126          </listitem>
1127        </varlistentry>
1128
1129        <varlistentry>
1130          <term>configure.objc</term>
1131
1132          <listitem>
1133            <para>Set OBJC compiler flags for selecting an Objective-C
1134            compiler;</para>
1135
1136            <itemizedlist>
1137              <listitem>
1138                <para>Default: <literal></literal></para>
1139              </listitem>
1140
1141              <listitem>
1142                <para>Example:</para>
1143
1144                <programlisting>configure.objc    /usr/bin/gcc-4.0</programlisting>
1145              </listitem>
1146            </itemizedlist>
1147          </listitem>
1148        </varlistentry>
1149
1150        <varlistentry>
1151          <term>configure.fc</term>
1152
1153          <listitem>
1154            <para>Set FC compiler flags for selecting a Fortran
1155            compiler;</para>
1156
1157            <itemizedlist>
1158              <listitem>
1159                <para>Default: <literal></literal></para>
1160              </listitem>
1161
1162              <listitem>
1163                <para>Example:</para>
1164
1165                <programlisting>configure.fc    ${prefix}/bin/gfortran-mp-4.2</programlisting>
1166              </listitem>
1167            </itemizedlist>
1168          </listitem>
1169        </varlistentry>
1170
1171        <varlistentry>
1172          <term>configure.f77</term>
1173
1174          <listitem>
1175            <para>Set F77 compiler flags for selecting a Fortran 77
1176            compiler;</para>
1177
1178            <itemizedlist>
1179              <listitem>
1180                <para>Default: <literal></literal></para>
1181              </listitem>
1182
1183              <listitem>
1184                <para>Example:</para>
1185
1186                <programlisting>configure.f77    ${prefix}/bin/gfortran-mp-4.2</programlisting>
1187              </listitem>
1188            </itemizedlist>
1189          </listitem>
1190        </varlistentry>
1191
1192        <varlistentry>
1193          <term>configure.f90</term>
1194
1195          <listitem>
1196            <para>Set F90 compiler flags for selecting a Fortran 90
1197            compiler;</para>
1198
1199            <itemizedlist>
1200              <listitem>
1201                <para>Default: <literal></literal></para>
1202              </listitem>
1203
1204              <listitem>
1205                <para>Example:</para>
1206
1207                <programlisting>configure.f90    ${prefix}/bin/gfortran-mp-4.2</programlisting>
1208              </listitem>
1209            </itemizedlist>
1210          </listitem>
1211        </varlistentry>
1212
1213        <varlistentry>
1214          <term>configure.javac</term>
1215
1216          <listitem>
1217            <para>Set JAVAC compiler flags for selecting a Java
1218            compiler;</para>
1219
1220            <itemizedlist>
1221              <listitem>
1222                <para>Default: <literal></literal></para>
1223              </listitem>
1224
1225              <listitem>
1226                <para>Example:</para>
1227
1228                <programlisting>configure.javac    ${prefix}/bin/jikes</programlisting>
1229              </listitem>
1230            </itemizedlist>
1231          </listitem>
1232        </varlistentry>
1233
1234        <varlistentry>
1235          <term>configure.compiler</term>
1236
1237          <listitem>
1238            <para>Select a compiler suite to fill the compiler environment
1239            variables. All variables/tools a compiler suite can provide are
1240            set. Manually set variables are not overwritten. Dependencies are
1241            not added for you, as they may be just build- or also
1242            run-dependencies. Keep in mind that not all compiler suites might
1243            be available on your platform.</para>
1244
1245            <itemizedlist>
1246              <listitem>
1247                <para>Default: <literal>gcc-3.3</literal>Mac OS X 10.3</para>
1248
1249                <para>Default: <literal>gcc-4.0</literal>Mac OS X 10.4,
1250                10.5</para>
1251              </listitem>
1252
1253              <listitem>
1254                <para>Options:</para>
1255
1256                <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>
1257              </listitem>
1258
1259              <listitem>
1260                <para>Example:</para>
1261
1262                <programlisting>configure.compiler    macports-gcc-4.2</programlisting>
1263              </listitem>
1264            </itemizedlist>
1265          </listitem>
1266        </varlistentry>
1267
1268        <!-- compiler selection arguments end -->
1269
1270        <!-- interpreter selection arguments -->
1271
1272        <varlistentry>
1273          <term>configure.perl</term>
1274
1275          <listitem>
1276            <para>Set PERL flag for selecting a Perl interpreter;</para>
1277
1278            <itemizedlist>
1279              <listitem>
1280                <para>Default: <literal></literal></para>
1281              </listitem>
1282
1283              <listitem>
1284                <para>Example:</para>
1285
1286                <programlisting>configure.perl    ${prefix}/bin/perl5.8</programlisting>
1287              </listitem>
1288            </itemizedlist>
1289          </listitem>
1290        </varlistentry>
1291
1292        <varlistentry>
1293          <term>configure.python</term>
1294
1295          <listitem>
1296            <para>Set PYTHON flag for selecting a Python interpreter;</para>
1297
1298            <itemizedlist>
1299              <listitem>
1300                <para>Default: <literal></literal></para>
1301              </listitem>
1302
1303              <listitem>
1304                <para>Example:</para>
1305
1306                <programlisting>configure.python    ${prefix}/bin/python3.0</programlisting>
1307              </listitem>
1308            </itemizedlist>
1309          </listitem>
1310        </varlistentry>
1311
1312        <varlistentry>
1313          <term>configure.ruby</term>
1314
1315          <listitem>
1316            <para>Set RUBY flag for selecting a Ruby interpreter;</para>
1317
1318            <itemizedlist>
1319              <listitem>
1320                <para>Default: <literal></literal></para>
1321              </listitem>
1322
1323              <listitem>
1324                <para>Example:</para>
1325
1326                <programlisting>configure.ruby    ${prefix}/bin/ruby</programlisting>
1327              </listitem>
1328            </itemizedlist>
1329          </listitem>
1330        </varlistentry>
1331
1332        <!-- interpreter selection arguments end -->
1333
1334        <!-- other tools selection arguments -->
1335
1336        <varlistentry>
1337          <term>configure.install</term>
1338
1339          <listitem>
1340            <para>Set INSTALL flag for selecting an install tool; used for
1341            copying files and creating directories</para>
1342
1343            <itemizedlist>
1344              <listitem>
1345                <para>Default: <literal>/usr/bin/install</literal></para>
1346              </listitem>
1347
1348              <listitem>
1349                <para>Example:</para>
1350
1351                <programlisting>configure.install    ${prefix}/bin/ginstall</programlisting>
1352              </listitem>
1353            </itemizedlist>
1354          </listitem>
1355        </varlistentry>
1356
1357        <varlistentry>
1358          <term>configure.awk</term>
1359
1360          <listitem>
1361            <para>Set AWK flag for selecting an awk executable</para>
1362
1363            <itemizedlist>
1364              <listitem>
1365                <para>Default: <literal></literal></para>
1366              </listitem>
1367
1368              <listitem>
1369                <para>Example:</para>
1370
1371                <programlisting>configure.awk    ${prefix}/bin/gawk</programlisting>
1372              </listitem>
1373            </itemizedlist>
1374          </listitem>
1375        </varlistentry>
1376
1377        <varlistentry>
1378          <term>configure.bison</term>
1379
1380          <listitem>
1381            <para>Set BISON flag for selecting a bison executable, a parser
1382            generator</para>
1383
1384            <itemizedlist>
1385              <listitem>
1386                <para>Default: <literal></literal></para>
1387              </listitem>
1388
1389              <listitem>
1390                <para>Example:</para>
1391
1392                <programlisting>configure.bison    /usr/bin/bison</programlisting>
1393              </listitem>
1394            </itemizedlist>
1395          </listitem>
1396        </varlistentry>
1397
1398        <varlistentry>
1399          <term>configure.pkg_config</term>
1400
1401          <listitem>
1402            <para>Set PKG_CONFIG flag for helping find pkg_config, a tool for
1403            retrieving information about installed libraries.</para>
1404
1405            <itemizedlist>
1406              <listitem>
1407                <para>Default: <literal></literal></para>
1408              </listitem>
1409
1410              <listitem>
1411                <para>Example:</para>
1412
1413                <programlisting>configure.pkg_config    ${prefix}/bin/pkg-config</programlisting>
1414              </listitem>
1415            </itemizedlist>
1416          </listitem>
1417        </varlistentry>
1418
1419        <varlistentry>
1420          <term>configure.pkg_config_path</term>
1421
1422          <listitem>
1423            <para>Set PKG_CONFIG_PATH flag for telling pkg_config where to
1424            search for information about installed libraries.</para>
1425
1426            <itemizedlist>
1427              <listitem>
1428                <para>Default: <literal></literal></para>
1429              </listitem>
1430
1431              <listitem>
1432                <para>Example:</para>
1433
1434                <programlisting>configure.pkg_config_path    ${prefix}/lib/pkgconfig:${x11prefix}/lib/pkgconfig</programlisting>
1435              </listitem>
1436            </itemizedlist>
1437          </listitem>
1438        </varlistentry>
1439
1440        <!-- other tools selection arguments end -->
1441
1442        <varlistentry>
1443          <term>configure.args</term>
1444
1445          <term>configure.pre_args</term>
1446
1447          <term>configure.post_args</term>
1448
1449          <listitem>
1450            <para>Main arguments to configure.cmd; optional argument modifiers
1451            pass arguments before and after the main arguments.</para>
1452
1453            <itemizedlist>
1454              <listitem>
1455                <para>Default: none</para>
1456              </listitem>
1457
1458              <listitem>
1459                <para>Example:</para>
1460
1461                <programlisting>configure.args    --bindir=${prefix}/bin
1462
1463</programlisting>
1464              </listitem>
1465            </itemizedlist>
1466          </listitem>
1467
1468          <listitem>
1469            <para>The following argument modifiers are available:</para>
1470
1471            <itemizedlist>
1472              <listitem>
1473                <para>configure.pre_args default: --prefix=${prefix}</para>
1474              </listitem>
1475
1476              <listitem>
1477                <para>configure.post_args default: none</para>
1478              </listitem>
1479
1480              <listitem>
1481                <para>Examples:</para>
1482
1483                <programlisting>configure.pre_args   --prefix=${prefix}/share/bro
1484configure.post_args  OPT="-D__DARWIN_UNIX03"</programlisting>
1485              </listitem>
1486            </itemizedlist>
1487          </listitem>
1488        </varlistentry>
1489      </variablelist>
1490
1491      <refsection>
1492        <title>Configure Universal</title>
1493
1494        <para>Universal keywords are used to make a port compile on the OS X
1495        platform to run on either PPC or Intel.</para>
1496
1497        <note>
1498          <para>There is a default universal variant made available to all
1499          ports by MacPorts base, so redefining universal keywords should only
1500          be done to make a given port compile if the default options fail to
1501          do so.</para>
1502        </note>
1503
1504        <variablelist>
1505          <varlistentry>
1506            <term>configure.universal_args</term>
1507
1508            <listitem>
1509              <para>Arguments used in the configure script to build the port
1510              universal.</para>
1511
1512              <itemizedlist>
1513                <listitem>
1514                  <para>Default: --disable-dependency-tracking</para>
1515                </listitem>
1516
1517                <listitem>
1518                  <para>Example:</para>
1519
1520                  <programlisting></programlisting>
1521                </listitem>
1522              </itemizedlist>
1523            </listitem>
1524          </varlistentry>
1525
1526          <varlistentry>
1527            <term>configure.universal_cflags</term>
1528
1529            <listitem>
1530              <para>Arguments appended to the configure script to build the
1531              port universal.</para>
1532
1533              <itemizedlist>
1534                <listitem>
1535                  <para>Default: -sysroot /Developer/SDKs/MacOSX10.4u.sdk
1536                  -arch i386 -arch ppc</para>
1537                </listitem>
1538
1539                <listitem>
1540                  <para>Example:</para>
1541
1542                  <programlisting></programlisting>
1543                </listitem>
1544              </itemizedlist>
1545            </listitem>
1546          </varlistentry>
1547
1548          <varlistentry>
1549            <term>configure.universal_cppflags</term>
1550
1551            <listitem>
1552              <para>Additional flags to put in the CPPFLAGS environment
1553              variable when invoking the configure script.</para>
1554
1555              <itemizedlist>
1556                <listitem>
1557                  <para>Default: ???</para>
1558                </listitem>
1559
1560                <listitem>
1561                  <para>Example:</para>
1562
1563                  <programlisting></programlisting>
1564                </listitem>
1565              </itemizedlist>
1566            </listitem>
1567          </varlistentry>
1568
1569          <varlistentry>
1570            <term>configure.universal_cxxflags</term>
1571
1572            <listitem>
1573              <para>Additional flags to put in the CXXFLAGS environment
1574              variable when invoking the configure script.</para>
1575
1576              <itemizedlist>
1577                <listitem>
1578                  <para>Default: -isysroot /Developer/SDKs/MacOSX10.4u.sdk
1579                  -arch i386 -arch ppc</para>
1580                </listitem>
1581
1582                <listitem>
1583                  <para>Example:</para>
1584
1585                  <programlisting></programlisting>
1586                </listitem>
1587              </itemizedlist>
1588            </listitem>
1589          </varlistentry>
1590
1591          <varlistentry>
1592            <term>configure.universal_ldflags</term>
1593
1594            <listitem>
1595              <para>Additional flags to put in the LDFLAGS environment
1596              variable when invoking the configure script.</para>
1597
1598              <itemizedlist>
1599                <listitem>
1600                  <para>Default: -arch i386 -arch ppc</para>
1601                </listitem>
1602
1603                <listitem>
1604                  <para>Example:</para>
1605
1606                  <programlisting></programlisting>
1607                </listitem>
1608              </itemizedlist>
1609            </listitem>
1610          </varlistentry>
1611        </variablelist>
1612      </refsection>
1613
1614      <refsection>
1615        <title>Automake and Autoconf</title>
1616
1617        <para>The list of configure keywords available for ports that need
1618        automake and/or autoconf.</para>
1619
1620        <variablelist>
1621          <varlistentry>
1622            <term>use_automake</term>
1623
1624            <listitem>
1625              <para>Whether or not to use automake; the default is
1626              "no".</para>
1627
1628              <programlisting>use_automake      yes</programlisting>
1629            </listitem>
1630          </varlistentry>
1631
1632          <varlistentry>
1633            <term>automake.env</term>
1634
1635            <listitem>
1636              <para>Environment variables to pass to automake.</para>
1637
1638              <programlisting>automake.env      CFLAGS=-I${prefix}/include</programlisting>
1639            </listitem>
1640          </varlistentry>
1641
1642          <varlistentry>
1643            <term>automake.args</term>
1644
1645            <listitem>
1646              <para>Arguments to pass to automake.</para>
1647
1648              <programlisting>automake.args     --foreign</programlisting>
1649            </listitem>
1650          </varlistentry>
1651
1652          <varlistentry>
1653            <term>automake.dir</term>
1654
1655            <listitem>
1656              <para>Directory in which to run
1657              <varname>${automake.cmd}</varname>; the default is
1658              <varname>${worksrcpath}</varname>.</para>
1659
1660              <programlisting>automake.dir      ./src</programlisting>
1661            </listitem>
1662          </varlistentry>
1663
1664          <varlistentry>
1665            <term>use_autoconf</term>
1666
1667            <listitem>
1668              <para>Whether or not to use autoconf; the default is
1669              "no".</para>
1670
1671              <programlisting>use_autoconf      yes</programlisting>
1672            </listitem>
1673          </varlistentry>
1674
1675          <varlistentry>
1676            <term>autoconf.env</term>
1677
1678            <listitem>
1679              <para>Environmental variables to pass to autoconf.</para>
1680
1681              <programlisting>autoconf.env      CFLAGS=-I${prefix}/include/gtk12</programlisting>
1682            </listitem>
1683          </varlistentry>
1684
1685          <varlistentry>
1686            <term>autoconf.args</term>
1687
1688            <listitem>
1689              <para>Arguments to pass to autoconf.</para>
1690
1691              <programlisting>autoconf.args     -l src/aclocaldir</programlisting>
1692            </listitem>
1693          </varlistentry>
1694
1695          <varlistentry>
1696            <term>autoconf.dir</term>
1697
1698            <listitem>
1699              <para>Directory in which to run
1700              <varname>${autoconf.cmd}</varname>; the default is
1701              <varname>${worksrcpath}</varname>.</para>
1702
1703              <programlisting>autoconf.dir      src</programlisting>
1704            </listitem>
1705          </varlistentry>
1706        </variablelist>
1707      </refsection>
1708    </refsection>
1709
1710    <refsection>
1711      <title>Build Phase Keywords</title>
1712
1713      <para>The list of keywords related to the build phase.</para>
1714
1715      <variablelist>
1716        <varlistentry>
1717          <term>build.cmd</term>
1718
1719          <listitem>
1720            <para>Make command to run in <varname>${worksrcdir}</varname>; the
1721            default is "make".</para>
1722
1723            <programlisting>build.cmd      pbxbuild</programlisting>
1724          </listitem>
1725        </varlistentry>
1726
1727        <varlistentry>
1728          <term>build.type</term>
1729
1730          <listitem>
1731            <para>Defines which "make" is required: "gnu" or "bsd". Sets
1732            build.cmd to either "gnumake" or "bsdmake" accordingly.</para>
1733
1734            <programlisting>build.type     gnu</programlisting>
1735          </listitem>
1736        </varlistentry>
1737
1738        <varlistentry>
1739          <term>build.args</term>
1740
1741          <term>build.pre_args</term>
1742
1743          <term>build.post_args</term>
1744
1745          <listitem>
1746            <para>Main arguments to build.cmd; optional argument modifiers
1747            pass arguments before and after the main arguments.</para>
1748
1749            <itemizedlist>
1750              <listitem>
1751                <para>Default: none</para>
1752              </listitem>
1753
1754              <listitem>
1755                <para>Example:</para>
1756
1757                <programlisting>build.args    -DNOWARN
1758
1759</programlisting>
1760              </listitem>
1761            </itemizedlist>
1762          </listitem>
1763
1764          <listitem>
1765            <para>The following argument modifiers are available:</para>
1766
1767            <itemizedlist>
1768              <listitem>
1769                <para>build.pre_args default:
1770                <varname>${build.target.current}</varname></para>
1771              </listitem>
1772
1773              <listitem>
1774                <para>build.post_args default: none</para>
1775              </listitem>
1776
1777              <listitem>
1778                <para>Examples:</para>
1779
1780                <programlisting>build.pre_args  -project AudioSlicer.xcode
1781build.post_args CFLAGS_SYS="-DUSE_FREETYPE -DPREFER_FREETYPE"</programlisting>
1782              </listitem>
1783            </itemizedlist>
1784          </listitem>
1785        </varlistentry>
1786
1787        <varlistentry>
1788          <term>build.target</term>
1789
1790          <term>build.target-append</term>
1791
1792          <term>build.target-delete</term>
1793
1794          <listitem>
1795            <para>Build target to pass to ${build.cmd}; list modifiers add or
1796            delete items from a previous Portfile build.target keyword or the
1797            default set by MacPorts base.</para>
1798
1799            <itemizedlist>
1800              <listitem>
1801                <para>Default: all</para>
1802              </listitem>
1803
1804              <listitem>
1805                <para>Example:</para>
1806
1807                <programlisting>build.target    all-src
1808
1809</programlisting>
1810              </listitem>
1811            </itemizedlist>
1812          </listitem>
1813
1814          <listitem>
1815            <para>List modifier examples:</para>
1816
1817            <programlisting>build.target-append   doc extra
1818build.target-delete   compat</programlisting>
1819          </listitem>
1820        </varlistentry>
1821
1822        <varlistentry>
1823          <term>use_parallel_build</term>
1824
1825          <listitem>
1826            <para>This keyword is for specifying whether or not it is safe for
1827            a port to use multiple cpus or multiple cores in parallel during
1828            its build phase. If a port is declared to be builadble this way,
1829            the option <option>-j N</option> may be passed to the
1830            <command>make</command> command if parallel builds are enabled
1831            system-wide.  This can be obtained by setting
1832            <varname>buildmakejobs</varname> in
1833            <filename>macports.conf</filename>. The integer <option>N</option>
1834            refers to the number of parallel build threads.</para>
1835
1836            <itemizedlist>
1837              <listitem>
1838                <para>Default: <option>no</option></para>
1839              </listitem>
1840
1841              <listitem>
1842                <para>Example:</para>
1843
1844                <programlisting>use_parallel_build     yes</programlisting>
1845              </listitem>
1846            </itemizedlist>
1847          </listitem>
1848        </varlistentry>
1849      </variablelist>
1850    </refsection>
1851
1852    <refsection>
1853      <title>Destroot Phase Keywords</title>
1854
1855      <para>The list of keywords related to the destroot phase.</para>
1856
1857      <variablelist>
1858        <varlistentry>
1859          <term>destroot.cmd</term>
1860
1861          <listitem>
1862            <para>Install command to run relative to
1863            <varname>${worksrcdir}</varname>; default is
1864            <varname>${build.cmd}</varname>.</para>
1865
1866            <programlisting>destroot.cmd         pbxbuild</programlisting>
1867          </listitem>
1868        </varlistentry>
1869
1870        <varlistentry>
1871          <term>destroot.type</term>
1872
1873          <listitem>
1874            <para>Defines which "make" is required: either "gnu" or "bsd".
1875            Sets install.cmd to either "gnumake" or "bsdmake"
1876            accordingly.</para>
1877
1878            <programlisting>destroot.type        gnu</programlisting>
1879          </listitem>
1880        </varlistentry>
1881
1882        <varlistentry>
1883          <term>destroot.args</term>
1884
1885          <term>destroot.pre_args</term>
1886
1887          <term>destroot.post_args</term>
1888
1889          <listitem>
1890            <para>Main arguments to ${destroot.cmd}; optional argument
1891            modifiers pass arguments before and after the main
1892            arguments.</para>
1893
1894            <itemizedlist>
1895              <listitem>
1896                <para>Default: none</para>
1897              </listitem>
1898
1899              <listitem>
1900                <para>Example:</para>
1901
1902                <programlisting>destroot.args    BINDIR=${prefix}/bin
1903
1904</programlisting>
1905              </listitem>
1906            </itemizedlist>
1907          </listitem>
1908
1909          <listitem>
1910            <para>The following argument modifiers are available:</para>
1911
1912            <itemizedlist>
1913              <listitem>
1914                <para>destroot.pre_args default:
1915                <varname>${destroot.target}</varname></para>
1916              </listitem>
1917
1918              <listitem>
1919                <para>destroot.post_args default: none</para>
1920              </listitem>
1921
1922              <listitem>
1923                <para>Examples:</para>
1924
1925                <programlisting>destroot.pre_args  -project AudioSlicer.xcode
1926destroot.post_args INSTDIR=${destroot}${prefix}</programlisting>
1927              </listitem>
1928            </itemizedlist>
1929          </listitem>
1930        </varlistentry>
1931
1932        <varlistentry>
1933          <term>destroot.target</term>
1934
1935          <term>destroot.target-append</term>
1936
1937          <term>destroot.target-delete</term>
1938
1939          <listitem>
1940            <para>Install target to pass to ${destroot.cmd}; list modifiers
1941            add or delete items from a previous Portfile destroot.target
1942            keyword or the default set by MacPorts base.</para>
1943
1944            <itemizedlist>
1945              <listitem>
1946                <para>Default: <literal>install</literal></para>
1947              </listitem>
1948
1949              <listitem>
1950                <para>Example:</para>
1951
1952                <programlisting>destroot.target    install install-config install-commandmode
1953
1954</programlisting>
1955              </listitem>
1956            </itemizedlist>
1957          </listitem>
1958
1959          <listitem>
1960            <para>List modifier examples:</para>
1961
1962            <programlisting>destroot.target-append   install-plugins
1963destroot.target-delete   install-commandmode</programlisting>
1964          </listitem>
1965        </varlistentry>
1966
1967        <varlistentry>
1968          <term>destroot.destdir</term>
1969
1970          <listitem>
1971            <para>Arguments passed to ${destroot.cmd} to install correctly
1972            into the destroot.</para>
1973
1974            <programlisting>destroot.destdir     prefix=${destroot}${prefix}</programlisting>
1975
1976            <note>
1977              <para>If an application's Makefile properly supports the DESTDIR
1978              variable, MacPorts will automatically destroot the port
1979              properly. A port must destroot properly or the port will not
1980              install correctly, upgrade, or uninstall. If not, you may need
1981              to set this variable, or even patch the application's
1982              Makefile.</para>
1983            </note>
1984          </listitem>
1985        </varlistentry>
1986
1987        <varlistentry>
1988          <term>destroot.keepdirs</term>
1989
1990          <listitem>
1991            <para>A list of directories that should not be removed if empty
1992            upon destroot completion.</para>
1993
1994            <programlisting>destroot.keepdirs \
1995                ${destroot}${prefix}/var/run \
1996                ${destroot}${prefix}/var/log \
1997                ${destroot}${prefix}/var/cache/mrtg</programlisting>
1998          </listitem>
1999        </varlistentry>
2000
2001        <varlistentry>
2002          <term>destroot.violate_mtree</term>
2003
2004          <listitem>
2005            <para>MacPorts tests for compliance to the common directory
2006            structure in ${prefix}; the default is "no". If a port is not
2007            compliant with the standard, set it to "yes".</para>
2008
2009            <programlisting>destroot.violate_mtree    yes</programlisting>
2010          </listitem>
2011        </varlistentry>
2012      </variablelist>
2013    </refsection>
2014  </refsection>
2015
2016  <refsection>
2017    <title>SEE ALSO</title>
2018
2019    <para><citerefentry>
2020        <refentrytitle>portfile-global</refentrytitle>
2021
2022        <manvolnum>7</manvolnum>
2023      </citerefentry>, <citerefentry>
2024        <refentrytitle>portfile-startupitem</refentrytitle>
2025
2026        <manvolnum>7</manvolnum>
2027      </citerefentry>, <citerefentry>
2028        <refentrytitle>portfile-tcl</refentrytitle>
2029
2030        <manvolnum>7</manvolnum>
2031      </citerefentry></para>
2032  </refsection>
2033
2034  <refsection>
2035    <title>AUTHORS</title>
2036
2037    <para>Landon Fuller <email>landonf@macports.org</email></para>
2038
2039    <para>Juan Manuel Palacios <email>jmpp@macports.org</email></para>
2040
2041    <para>Mark Duling <email>markd@macports.org</email></para>
2042
2043    <para>Kevin Van Vechten <email>kevin@opendarwin.org</email></para>
2044
2045    <para>Jordan K. Hubbard <email>jkh@macports.org</email></para>
2046
2047    <para>Chris Ridd <email>cjr@opendarwin.org</email></para>
2048
2049    <para>Kevin Ballard <email>eridius@macports.org</email></para>
2050
2051    <para>Markus W. Weissmann <email>mww@macports.org</email></para>
2052  </refsection>
2053</refentry>
Note: See TracBrowser for help on using the repository browser.