source: trunk/doc/guide/new/xml/portfileref.xml @ 27554

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

Add a Port Dependencies section to the Port Reference section.

File size: 42.7 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
4<chapter>
5  <title>Portfile Reference</title>
6
7  <para>This chapter serves as a reference for the major elements of a
8  <filename>Portfile</filename>: port phases, variants, StartupItems,
9  variables, keywords, and Tcl primitives.</para>
10
11  <section>
12    <title>Port Phases</title>
13
14    <para>A MacPorts port has ten distinct phases. The MacPorts base is set to
15    perform default steps for applications that use the standard
16    <command>configure</command>, <command>make</command>, and <command>make
17    install</command> steps, but for applications that do not conform to this
18    behavior, installation phases may be declared in a Portfile to override or
19    eliminate the default behavior, or augment it using pre- and/or post-
20    phases as shown in the section "Portfile Development".</para>
21
22    <section>
23      <title>Fetch</title>
24
25      <para>Overview: Fetch the <varname>${distfiles}</varname> from
26      <varname>${master_sites}</varname> and place it in
27      <filename>${prefix}/var/macports/distfiles</filename>.</para>
28    </section>
29
30    <section>
31      <title>Checksum</title>
32
33      <para>Overview: Compare <varname>${checksums}</varname> specified in a
34      <filename>Portfile</filename> to the checksums of the fetched
35      ${distfiles}.</para>
36    </section>
37
38    <section>
39      <title>Extract</title>
40
41      <para>Overview: Unzip and untar the <varname>${distfiles}</varname> into
42      the path ${prefix}/var/macports/build/..../work</para>
43    </section>
44
45    <section>
46      <title>Patch</title>
47
48      <para>Overview: Apply optional <ulink
49      url="http://en.wikipedia.org/wiki/Patch_(Unix)">patch</ulink> files
50      specified in <varname>${patchfiles}</varname> to modify a port's source
51      code file(s).</para>
52
53      <para>Details: Patch files are made using the <ulink
54      url="http://en.wikipedia.org/wiki/Diff">diff</ulink> command, and
55      MacPorts patches should be created as <ulink
56      url="http://en.wikipedia.org/wiki/Diff#Unified_format">unified
57      diffs</ulink>.</para>
58    </section>
59
60    <section>
61      <title>Configure</title>
62
63      <para>Overview: Execute the command "configure" in
64      <varname>${workpath}</varname>.</para>
65    </section>
66
67    <section>
68      <title>Build</title>
69
70      <para>Overview: Execute the command "make" in
71      <varname>${workpath}</varname>.</para>
72    </section>
73
74    <section>
75      <title>Destroot</title>
76
77      <para>Overview: Execute the command <command>make install
78      DESTDIR=${destroot}</command> in <varname>${workpath}</varname>.</para>
79
80      <para>Details: Understanding the destroot phase is critical to
81      understanding MacPorts, because, unlike some port systems, MacPorts
82      "stages" an installation into an intermediate location —not the final
83      file destination. There are two main advantages to this method.</para>
84
85      <orderedlist>
86        <listitem>
87          <para>A port's files may be cleanly uninstalled because all files
88          and locations are tracked.</para>
89        </listitem>
90
91        <listitem>
92          <para>Since a port's files are not installed into MacPorts directory
93          structure until an activation phase, a port may be deactivated
94          through MacPorts to allow activation of a different version of the
95          same port, thus allowing two versions of a port to be present,
96          though not both active, on a given host.</para>
97        </listitem>
98      </orderedlist>
99
100      <note>
101        <para>The <varname>$(DESTDIR)</varname> variable must be supported in
102        an application's Makefile for the MacPorts destroot phase to work
103        properly. Urge developers to fully support
104        <varname>$(DESTDIR)</varname> in their Makefiles.</para>
105      </note>
106    </section>
107
108    <section>
109      <title>Archive</title>
110
111      <para>Overview: Use tar to create a tarball of a port's destrooted files
112      and copy it to
113      <filename>${prefix}/var/macports/packages/</filename>.</para>
114    </section>
115
116    <section>
117      <title>Install</title>
118
119      <para>Overview: Copy a port's destrooted files into
120      <filename>${prefix}/var/macports/software</filename>. See "Port Images"
121      in section "MacPorts Internals" for details.</para>
122    </section>
123
124    <section>
125      <title>Activate</title>
126
127      <para>Overview: Set <ulink
128      url="http://en.wikipedia.org/wiki/Hard_link">hardlinks</ulink> pointing
129      to ${prefix}/var/macports/software to point to ${prefix}.</para>
130    </section>
131  </section>
132
133  <section>
134    <title>Port Dependencies</title>
135
136    <para>Free and open source software is highly modular, and MacPorts ports
137    often require modules not provided in a port's distribution to be
138    installed before a port may be installed, compiled, or run. These support
139    modules are generally other MacPorts ports, and the ports required to
140    satisfy prerequistes for a given port are called a port's
141    "dependencies".</para>
142
143    <para>There are three types of dependencies in MacPorts: library, build,
144    and run dependencies.</para>
145
146    <section>
147      <title>depends_lib</title>
148
149      <para>Library dependencies are needed both at build time (for headers
150      and libraries to link against) and at run time (to provide necessary
151      code).</para>
152
153      <programlisting>depends_lib         port:rrdtool</programlisting>
154    </section>
155
156    <section>
157      <title>depends_build</title>
158
159      <para>Build dependencies are only needed when software is compiled. They
160      are not needed at all once the software is compiled and
161      installed.</para>
162
163      <programlisting>depends_build       port:gcc42</programlisting>
164    </section>
165
166    <section>
167      <title>depends_run</title>
168
169      <para>Run dependencies are needed when the software is run, but not to
170      compile the software.</para>
171
172      <programlisting>depends_run         port:apache2</programlisting>
173
174      <note>
175        <para>The three dependency types become important for port upgrades
176        and uninstalls. For example, you may not uninstall a port that is a
177        library dependency for another port, though you may remove ports that
178        are build dependencies for other ports.</para>
179      </note>
180    </section>
181
182    <section>
183      <title>Non-Port Dependencies</title>
184
185      <para>Port dependencies should refer to other MacPort ports whenever
186      possible. However, if satisfying a dependency with a port is not
187      practical or desirable for a special reason, you may specify
188      dependencies in the Unix standard binary, library, or a specified
189      path.</para>
190
191      <para>In this lib style dependency, if the file
192      <filename>libX11.6.2.dylib</filename> is not found in the library path
193      the XFree86 port will be installed to satisfy it.</para>
194
195      <programlisting>depends_lib         lib:libX11.6:XFree86</programlisting>
196
197      <para>In this bin style dependency, if the <filename>rrdtool</filename>
198      binary is not found in the binary path the port rrdtool will be
199      installed.</para>
200
201      <programlisting>depends_lib         bin:python:python24</programlisting>
202
203      <para>In this path style dependency, if the <filename>nano</filename>
204      binary is not found in the path /usr/bin/nano the nano port will be
205      installed.</para>
206
207      <programlisting>depends_lib         path:/usr/bin/nano:nano</programlisting>
208    </section>
209  </section>
210
211  <section>
212    <title>Variants</title>
213
214    <para>Variants are a way for port authors to provide options that may be
215    invoked at install time. They are declared in a Porfile's global section
216    using the "variant" keyword and may provide a description.</para>
217
218    <section>
219      <title>Append / Delete Keywords</title>
220
221      <para>The most common use for a variant is to add or remove
222      dependencies, configure arguments, and build arguments from the global
223      <filename>Portfile</filename> section. In the example below, the global
224      configure argument --without-x11 is removed and others are
225      appended.</para>
226
227      <programlisting>variant x11 description {Builds port as an X11 program with Lucid widgets} {
228    configure.args-delete   --without-x
229    configure.args-append   --with-x-toolkit=lucid \
230                            --without-carbon \
231                            --with-xpm \
232                            --with-jpeg \
233                            --with-tiff \
234                            --with-gif \
235                            --with-png
236    depends_lib-append      lib:libX11:XFree86 \
237                            lib:libXpm:XFree86 \
238                            port:jpeg \
239                            port:tiff \
240                            port:libungif \
241                            port:libpng
242}</programlisting>
243    </section>
244
245    <section>
246      <title>Variant Actions in Port Phases</title>
247
248      <para>If a variant requires options in addition to those provided by
249      keywords using -append and/or -delete, or actions that would normally
250      take place within a port installation phase or its pre- and post-
251      phases, do not try to do this within the variant declaration. Rather,
252      modify the behavior of any affected phases when the variant is invoked
253      using the variant_isset keyword.</para>
254
255      <programlisting>post-destroot {
256    xinstall -m 755 -d ${destroot}${prefix}/etc/
257    xinstall ${worksrcpath}/examples/foo.conf \
258        ${destroot}${prefix}/etc/
259
260    if {[variant_isset] carbon]} {
261        delete ${destroot}${prefix}/bin/emacs
262        delete ${destroot}${prefix}/bin/emacs-${version}
263    }
264}</programlisting>
265    </section>
266
267    <section>
268      <title>Default Variants</title>
269
270      <para>Variants are used to specify actions that lie outside the core
271      functions of an application or port, but there may be some cases where
272      you wish to specify these non-core functions by default. For this
273      purpose you may use the keyword default_variants.</para>
274
275      <programlisting>default_variants +foo +bar</programlisting>
276
277      <note>
278        <para>The default_variant keyword may only be used in the global
279        <filename>Portfile</filename> section.</para>
280      </note>
281    </section>
282  </section>
283
284  <section>
285    <title>StartupItems</title>
286
287    <para>StartupItems are keywords that create Mac OS X LaunchDaemon startup
288    scripts. To create these startup scripts for a port, choose from the
289    following keywords.</para>
290
291    <para><variablelist>
292        <varlistentry>
293          <term>startupitem.create</term>
294
295          <listitem>
296            <para>This triggers the creation of a StartupItem, defaults to
297            "no".</para>
298          </listitem>
299        </varlistentry>
300      </variablelist><variablelist>
301        <varlistentry>
302          <term>startupitem.name</term>
303
304          <listitem>
305            <para>Sets the name for the StartupItem, defaults to
306            ${portname}.</para>
307          </listitem>
308        </varlistentry>
309      </variablelist><variablelist>
310        <varlistentry>
311          <term>startupitem.executable</term>
312
313          <listitem>
314            <para>The name of the daemon to be run in the background. This is
315            the preferred type of startup item and may not be used together
316            with any other startupitem. This option may contain multiple
317            arguments, but they must be appropriate for a call to exec; they
318            may not contain arbitrary shell code.</para>
319          </listitem>
320        </varlistentry>
321      </variablelist><variablelist>
322        <varlistentry>
323          <term>startupitem.init</term>
324
325          <listitem>
326            <para>Shell code that will be executed prior to any of the options
327            startupitem.start, startupitem.stop and startupitem.restart.
328            Typically a startup script is specified.</para>
329          </listitem>
330        </varlistentry>
331      </variablelist><variablelist>
332        <varlistentry>
333          <term>startupitem.start</term>
334
335          <listitem>
336            <para>Shell code executed to start the daemon.</para>
337          </listitem>
338        </varlistentry>
339      </variablelist><variablelist>
340        <varlistentry>
341          <term>startupitem.stop</term>
342
343          <listitem>
344            <para>Shell code executed to stop the daemon.</para>
345          </listitem>
346        </varlistentry>
347      </variablelist><variablelist>
348        <varlistentry>
349          <term>startupitem.restart</term>
350
351          <listitem>
352            <para>Shell code executed to restart the daemon. In the absence of
353            this key, the daemon will be restarted by taking the stop action,
354            followed by taking the start action.</para>
355          </listitem>
356        </varlistentry>
357      </variablelist><variablelist>
358        <varlistentry>
359          <term>startupitem.pidfile</term>
360
361          <listitem>
362            <para>Specification for pidfile handling. It is useful in
363            conjunction with the startupitem.executable key, because it is
364            important that the startupitem know how to track the executable.
365            This keyword specifies whether the daemon generates its own
366            pidfile (auto), whether it generates its own but forgets to delete
367            it, so that the startupitem should delete it (clean), or whether
368            it never generates one, in which case the startupitem should
369            manage the pidfile on its own (manual), or whether no pidfile
370            should be used at all (none).</para>
371          </listitem>
372        </varlistentry>
373      </variablelist><variablelist>
374        <varlistentry>
375          <term>startupitem.logfile</term>
376
377          <listitem>
378            <para>Path to a logfile for logging events about the lifetime of
379            the startupitem. Depending on the type of startupitem, and the
380            manner in which it is started, standard output from the daemon may
381            also be directed to the logfile.</para>
382          </listitem>
383        </varlistentry>
384      </variablelist><variablelist>
385        <varlistentry>
386          <term>startupitem.logevents</term>
387
388          <listitem>
389            <para>Control whether or not to log events to the log file. If
390            logevents is set, events with timestamps are logged to the
391            logfile.</para>
392          </listitem>
393        </varlistentry>
394      </variablelist></para>
395  </section>
396
397  <section>
398    <title>Variables</title>
399
400    <para>This section describes the MacPorts preset variables that may be
401    used within Portfiles.</para>
402
403    <section>
404      <title>General</title>
405
406      <para>These are the variables available to any
407      <filename>Portfile</filename>.</para>
408
409      <para><variablelist>
410          <varlistentry>
411            <term>prefix</term>
412
413            <listitem>
414              <para>Installation prefix, set in the system-wide configuration
415              file <filename>${prefix}/etc/macports/macports.conf</filename>
416              —may be overridden on a per port basis. For example, aqua
417              applications are installed in
418              <filename>/Applications/MacPorts</filename>.</para>
419            </listitem>
420          </varlistentry>
421        </variablelist><variablelist>
422          <varlistentry>
423            <term>binpath</term>
424
425            <listitem>
426              <para>Default PATH to use in finding executables. Read
427              only.</para>
428            </listitem>
429          </varlistentry>
430        </variablelist><variablelist>
431          <varlistentry>
432            <term>libpath</term>
433
434            <listitem>
435              <para>Path to the MacPorts TCL libraries. Read only.</para>
436            </listitem>
437          </varlistentry>
438        </variablelist><variablelist>
439          <varlistentry>
440            <term>portpath</term>
441
442            <listitem>
443              <para>Path to the directory containing the downloaded
444              <filename>Portfile</filename>s. Read only.</para>
445            </listitem>
446          </varlistentry>
447        </variablelist><variablelist>
448          <varlistentry>
449            <term>filesdir</term>
450
451            <listitem>
452              <para>Path to port files relative to
453              <varname>${portpath}</varname>. Read only.</para>
454            </listitem>
455          </varlistentry>
456        </variablelist><variablelist>
457          <varlistentry>
458            <term>workpath</term>
459
460            <listitem>
461              <para>Full path to work directory. Read only.</para>
462            </listitem>
463          </varlistentry>
464        </variablelist><variablelist>
465          <varlistentry>
466            <term>worksrcpath</term>
467
468            <listitem>
469              <para>Full path to extracted source code. Equivalent to
470              <varname>${workpath}/${worksrcdir}</varname>.</para>
471            </listitem>
472          </varlistentry>
473        </variablelist><variablelist>
474          <varlistentry>
475            <term>destroot</term>
476
477            <listitem>
478              <para>Full path into which software will be destrooted.
479              Equivalent to <filename>${workpath}/destroot</filename>. Read
480              only.</para>
481            </listitem>
482          </varlistentry>
483        </variablelist><variablelist>
484          <varlistentry>
485            <term>distpath</term>
486
487            <listitem>
488              <para>Location to store downloaded distfiles. Read only.</para>
489            </listitem>
490          </varlistentry>
491        </variablelist><variablelist>
492          <varlistentry>
493            <term>os.platform</term>
494
495            <listitem>
496              <para>Identifies platform type (ie, "darwin", "freebsd", etc).
497              Read only.</para>
498            </listitem>
499          </varlistentry>
500        </variablelist><variablelist>
501          <varlistentry>
502            <term>os.arch</term>
503
504            <listitem>
505              <para>Identifies hardware type (ie, "powerpc", "intel"). Read
506              only.</para>
507            </listitem>
508          </varlistentry>
509        </variablelist><variablelist>
510          <varlistentry>
511            <term>os.version</term>
512
513            <listitem>
514              <para>The version number of the host operating system (ie "8.0"
515              for Darwin 8.0). Read only.</para>
516            </listitem>
517          </varlistentry>
518        </variablelist><variablelist>
519          <varlistentry>
520            <term>os.major</term>
521
522            <listitem>
523              <para>The major version number of the host operating system (ie
524              "8" for Darwin 8.0). Read only.</para>
525            </listitem>
526          </varlistentry>
527        </variablelist></para>
528    </section>
529
530    <section>
531      <title>PortGroup Variables</title>
532
533      <para>In addition to the general <filename>Portfile</filename> type for
534      standard Unix applications and libraries, there are six optional
535      PortGroup types that provide special <filename>Portfile</filename>
536      handling to make creating <filename>a Portfile</filename> easier.</para>
537
538      <itemizedlist>
539        <listitem>
540          <para>perl5</para>
541        </listitem>
542
543        <listitem>
544          <para>python24 and python25</para>
545        </listitem>
546
547        <listitem>
548          <para>ruby</para>
549        </listitem>
550
551        <listitem>
552          <para>xcode</para>
553        </listitem>
554
555        <listitem>
556          <para>gnustep</para>
557        </listitem>
558
559        <listitem>
560          <para>zope</para>
561        </listitem>
562      </itemizedlist>
563
564      <para>Some PortGroups provide additional variables when they are
565      declared within a Portfile. The additional variables provided by
566      PortGroups perl5, python, and ruby are listed below. You may view the
567      port Tcl code for each group in the directory<filename>
568      ${prefix}/share/macports/resources/port1.0/group</filename>.</para>
569
570      <variablelist>
571        <varlistentry>
572          <term>PortGroup perl5</term>
573
574          <listitem>
575            <para>Description: The variables available to a
576            <filename>Portfile</filename> when the <literal>PortGroup
577            perl5</literal> keyword is declared.</para>
578
579            <variablelist>
580              <varlistentry>
581                <term>perl5.version</term>
582
583                <listitem>
584                  <para>The MacPorts Perl version.</para>
585                </listitem>
586              </varlistentry>
587            </variablelist>
588
589            <variablelist>
590              <varlistentry>
591                <term>perl5.bin</term>
592
593                <listitem>
594                  <para>The Perl binary path (ie,
595                  <filename>${prefix}/bin/perl</filename>).</para>
596                </listitem>
597              </varlistentry>
598            </variablelist>
599
600            <variablelist>
601              <varlistentry>
602                <term>perl5.lib</term>
603
604                <listitem>
605                  <para>Path to the Perl vendor directory.</para>
606                </listitem>
607              </varlistentry>
608            </variablelist>
609
610            <variablelist>
611              <varlistentry>
612                <term>perl5.archlib</term>
613
614                <listitem>
615                  <para>Path to the Perl architecture-dependent modules
616                  directory.</para>
617                </listitem>
618              </varlistentry>
619            </variablelist>
620          </listitem>
621        </varlistentry>
622      </variablelist>
623
624      <variablelist>
625        <varlistentry>
626          <term>PortGroup python2x</term>
627
628          <listitem>
629            <para>Description: The variables available to a
630            <filename>Portfile</filename> when the <literal>PortGroup
631            python2x</literal> keyword is declared.</para>
632
633            <variablelist>
634              <varlistentry>
635                <term>python.bin</term>
636
637                <listitem>
638                  <para>The MacPorts Python binary location.</para>
639                </listitem>
640              </varlistentry>
641            </variablelist>
642
643            <variablelist>
644              <varlistentry>
645                <term>python.lib</term>
646
647                <listitem>
648                  <para>The Python dynamic library and path (ie,
649                  <filename>${prefix}/lib/libpython2.x.dylib</filename>).</para>
650                </listitem>
651              </varlistentry>
652            </variablelist>
653
654            <variablelist>
655              <varlistentry>
656                <term>python.include</term>
657
658                <listitem>
659                  <para>Path to the Python include directory.</para>
660                </listitem>
661              </varlistentry>
662            </variablelist>
663
664            <variablelist>
665              <varlistentry>
666                <term>python.pkgd</term>
667
668                <listitem>
669                  <para>Path to the Python site-packages directory. (ie,
670                  <filename>${prefix}/lib/python2.4/site-packages</filename>).</para>
671                </listitem>
672              </varlistentry>
673            </variablelist>
674          </listitem>
675        </varlistentry>
676      </variablelist>
677
678      <variablelist>
679        <varlistentry>
680          <term>PortGroup ruby</term>
681
682          <listitem>
683            <para>Description: The variables available to a
684            <filename>Portfile</filename> when the <literal>PortGroup
685            ruby</literal> keyword is declared.</para>
686
687            <variablelist>
688              <varlistentry>
689                <term>ruby.version</term>
690
691                <listitem>
692                  <para>The MacPorts Ruby version.</para>
693                </listitem>
694              </varlistentry>
695            </variablelist>
696
697            <variablelist>
698              <varlistentry>
699                <term>ruby.bin</term>
700
701                <listitem>
702                  <para>The Ruby binary location.</para>
703                </listitem>
704              </varlistentry>
705            </variablelist>
706
707            <variablelist>
708              <varlistentry>
709                <term>ruby.lib</term>
710
711                <listitem>
712                  <para>Path to the Ruby vendorlibdir directory (ie,
713                  <filename>${prefix}/lib/ruby/vendor_ruby/${ruby.version}</filename>)</para>
714                </listitem>
715              </varlistentry>
716            </variablelist>
717
718            <variablelist>
719              <varlistentry>
720                <term>ruby.archlib</term>
721
722                <listitem>
723                  <para>Path to the Ruby vendor archdir (ie,
724                  <filename>${ruby.lib}/${ruby.arch}</filename>).</para>
725                </listitem>
726              </varlistentry>
727            </variablelist>
728          </listitem>
729        </varlistentry>
730      </variablelist>
731    </section>
732  </section>
733
734  <section>
735    <title>Keywords</title>
736
737    <para>MacPorts keywords are used to specify required or optional items for
738    a <filename>Portfile</filename> or to override default options when
739    necessary. All the keywords are to be used within the global section of a
740    <filename>Portfile</filename>. The keywords listed below in category
741    "global" specify information for a port as a whole, whereas the keywords
742    listed under a port phase specify information to be used during a
743    particular installation phase.</para>
744
745    <para>Remember that default port installation phase characteristics are
746    determined by the MacPorts base, so <filename>Portfile</filename> phase
747    declarations need only be defined for non-default characteristics. But
748    keywords that specify options for port phases take affect whether or not
749    phase characteristics are defined explicitly using
750    <filename>Portfile</filename> declarations or set by default by the
751    MacPorts base, or a combination.</para>
752
753    <section>
754      <title>Global</title>
755
756      <para>Global keywords.</para>
757
758      <variablelist>
759        <varlistentry>
760          <term>name</term>
761
762          <listitem>
763            <para>Port name.</para>
764          </listitem>
765        </varlistentry>
766      </variablelist>
767
768      <variablelist>
769        <varlistentry>
770          <term>version</term>
771
772          <listitem>
773            <para>Port version.</para>
774          </listitem>
775        </varlistentry>
776      </variablelist>
777
778      <variablelist>
779        <varlistentry>
780          <term>categories</term>
781
782          <listitem>
783            <para>Port category(s).</para>
784          </listitem>
785        </varlistentry>
786      </variablelist>
787
788      <variablelist>
789        <varlistentry>
790          <term>maintainers</term>
791
792          <listitem>
793            <para>Port maintainer(s).</para>
794          </listitem>
795        </varlistentry>
796      </variablelist>
797
798      <variablelist>
799        <varlistentry>
800          <term>description</term>
801
802          <listitem>
803            <para>Short description.</para>
804          </listitem>
805        </varlistentry>
806      </variablelist>
807
808      <variablelist>
809        <varlistentry>
810          <term>long_description</term>
811
812          <listitem>
813            <para>Long description.</para>
814          </listitem>
815        </varlistentry>
816      </variablelist>
817
818      <variablelist>
819        <varlistentry>
820          <term>homepage</term>
821
822          <listitem>
823            <para>Port application's homepage.</para>
824          </listitem>
825        </varlistentry>
826      </variablelist>
827
828      <variablelist>
829        <varlistentry>
830          <term>platforms</term>
831
832          <listitem>
833            <para>Platform(s) supported.</para>
834          </listitem>
835        </varlistentry>
836      </variablelist>
837
838      <variablelist>
839        <varlistentry>
840          <term>master_sites</term>
841
842          <listitem>
843            <para>Download site(s) for the distribution files.</para>
844          </listitem>
845        </varlistentry>
846      </variablelist>
847
848      <variablelist>
849        <varlistentry>
850          <term>checksums</term>
851
852          <listitem>
853            <para>Checksum(s) of the distribution files.</para>
854          </listitem>
855        </varlistentry>
856      </variablelist>
857
858      <variablelist>
859        <varlistentry>
860          <term>depends_lib</term>
861
862          <listitem>
863            <para></para>
864          </listitem>
865        </varlistentry>
866      </variablelist>
867
868      <variablelist>
869        <varlistentry>
870          <term>depends_build</term>
871
872          <listitem>
873            <para></para>
874          </listitem>
875        </varlistentry>
876      </variablelist>
877
878      <variablelist>
879        <varlistentry>
880          <term>depends_run</term>
881
882          <listitem>
883            <para></para>
884          </listitem>
885        </varlistentry>
886      </variablelist>
887
888      <variablelist>
889        <varlistentry>
890          <term></term>
891
892          <listitem>
893            <para></para>
894          </listitem>
895        </varlistentry>
896      </variablelist>
897
898      <variablelist>
899        <varlistentry>
900          <term></term>
901
902          <listitem>
903            <para></para>
904          </listitem>
905        </varlistentry>
906      </variablelist>
907
908      <variablelist>
909        <varlistentry>
910          <term></term>
911
912          <listitem>
913            <para></para>
914          </listitem>
915        </varlistentry>
916      </variablelist>
917
918      <variablelist>
919        <varlistentry>
920          <term></term>
921
922          <listitem>
923            <para></para>
924          </listitem>
925        </varlistentry>
926      </variablelist>
927    </section>
928
929    <section>
930      <title>Fetch</title>
931
932      <para>Fetch phase keywords.</para>
933
934      <variablelist>
935        <varlistentry>
936          <term>fetch.keyword1</term>
937
938          <listitem>
939            <para>Description fetch keyword 1.</para>
940          </listitem>
941        </varlistentry>
942      </variablelist>
943
944      <variablelist>
945        <varlistentry>
946          <term></term>
947
948          <listitem>
949            <para></para>
950          </listitem>
951        </varlistentry>
952      </variablelist>
953
954      <variablelist>
955        <varlistentry>
956          <term></term>
957
958          <listitem>
959            <para></para>
960          </listitem>
961        </varlistentry>
962      </variablelist>
963
964      <variablelist>
965        <varlistentry>
966          <term></term>
967
968          <listitem>
969            <para></para>
970          </listitem>
971        </varlistentry>
972      </variablelist>
973    </section>
974
975    <section>
976      <title>Checksum</title>
977
978      <para>Checksum phase keywords.</para>
979
980      <variablelist>
981        <varlistentry>
982          <term>checksum.keyword1</term>
983
984          <listitem>
985            <para>Description checksum keyword 1.</para>
986          </listitem>
987        </varlistentry>
988      </variablelist>
989
990      <variablelist>
991        <varlistentry>
992          <term></term>
993
994          <listitem>
995            <para></para>
996          </listitem>
997        </varlistentry>
998      </variablelist>
999
1000      <variablelist>
1001        <varlistentry>
1002          <term></term>
1003
1004          <listitem>
1005            <para></para>
1006          </listitem>
1007        </varlistentry>
1008      </variablelist>
1009
1010      <variablelist>
1011        <varlistentry>
1012          <term></term>
1013
1014          <listitem>
1015            <para></para>
1016          </listitem>
1017        </varlistentry>
1018      </variablelist>
1019
1020      <variablelist>
1021        <varlistentry>
1022          <term></term>
1023
1024          <listitem>
1025            <para></para>
1026          </listitem>
1027        </varlistentry>
1028      </variablelist>
1029    </section>
1030
1031    <section>
1032      <title>Extract</title>
1033
1034      <para>Extract phase keywords.</para>
1035
1036      <variablelist>
1037        <varlistentry>
1038          <term>extract.keyword1</term>
1039
1040          <listitem>
1041            <para>Description extract keyword 1.</para>
1042          </listitem>
1043        </varlistentry>
1044      </variablelist>
1045
1046      <variablelist>
1047        <varlistentry>
1048          <term></term>
1049
1050          <listitem>
1051            <para></para>
1052          </listitem>
1053        </varlistentry>
1054      </variablelist>
1055
1056      <variablelist>
1057        <varlistentry>
1058          <term></term>
1059
1060          <listitem>
1061            <para></para>
1062          </listitem>
1063        </varlistentry>
1064      </variablelist>
1065
1066      <variablelist>
1067        <varlistentry>
1068          <term></term>
1069
1070          <listitem>
1071            <para></para>
1072          </listitem>
1073        </varlistentry>
1074      </variablelist>
1075
1076      <variablelist>
1077        <varlistentry>
1078          <term></term>
1079
1080          <listitem>
1081            <para></para>
1082          </listitem>
1083        </varlistentry>
1084      </variablelist>
1085    </section>
1086
1087    <section>
1088      <title>Patch</title>
1089
1090      <para>Patch phase keywords.</para>
1091
1092      <variablelist>
1093        <varlistentry>
1094          <term>patch.keyword1</term>
1095
1096          <listitem>
1097            <para>Description patch keyword1.</para>
1098          </listitem>
1099        </varlistentry>
1100      </variablelist>
1101
1102      <variablelist>
1103        <varlistentry>
1104          <term></term>
1105
1106          <listitem>
1107            <para></para>
1108          </listitem>
1109        </varlistentry>
1110      </variablelist>
1111
1112      <variablelist>
1113        <varlistentry>
1114          <term></term>
1115
1116          <listitem>
1117            <para></para>
1118          </listitem>
1119        </varlistentry>
1120      </variablelist>
1121
1122      <variablelist>
1123        <varlistentry>
1124          <term></term>
1125
1126          <listitem>
1127            <para></para>
1128          </listitem>
1129        </varlistentry>
1130      </variablelist>
1131    </section>
1132
1133    <section>
1134      <title>Configuration</title>
1135
1136      <para>Configuration phase keywords. Avoid using keywords with defaults
1137      defined or you will overwrite the default variables.</para>
1138
1139      <variablelist>
1140        <varlistentry>
1141          <term>configure.env</term>
1142
1143          <listitem>
1144            <para>Configure environment variables.</para>
1145
1146            <para>Defaults: CFLAGS=-I<filename>${prefix}/include</filename>
1147            LDFLAGS=-L<filename>${prefix}/lib</filename></para>
1148          </listitem>
1149        </varlistentry>
1150      </variablelist>
1151
1152      <variablelist>
1153        <varlistentry>
1154          <term>configure.cflags-append</term>
1155
1156          <listitem>
1157            <para>Set additional CFLAGS to be added to the variable
1158            defaults.</para>
1159          </listitem>
1160        </varlistentry>
1161      </variablelist>
1162
1163      <variablelist>
1164        <varlistentry>
1165          <term>configure.ldflags-append</term>
1166
1167          <listitem>
1168            <para>Set additional LDFLAGS to be added to the variable
1169            defaults.</para>
1170          </listitem>
1171        </varlistentry>
1172      </variablelist>
1173
1174      <variablelist>
1175        <varlistentry>
1176          <term></term>
1177
1178          <listitem>
1179            <para></para>
1180          </listitem>
1181        </varlistentry>
1182      </variablelist>
1183
1184      <variablelist>
1185        <varlistentry>
1186          <term></term>
1187
1188          <listitem>
1189            <para></para>
1190          </listitem>
1191        </varlistentry>
1192      </variablelist>
1193
1194      <variablelist>
1195        <varlistentry>
1196          <term></term>
1197
1198          <listitem>
1199            <para></para>
1200          </listitem>
1201        </varlistentry>
1202      </variablelist>
1203
1204      <variablelist>
1205        <varlistentry>
1206          <term></term>
1207
1208          <listitem>
1209            <para></para>
1210          </listitem>
1211        </varlistentry>
1212      </variablelist>
1213
1214      <variablelist>
1215        <varlistentry>
1216          <term></term>
1217
1218          <listitem>
1219            <para></para>
1220          </listitem>
1221        </varlistentry>
1222      </variablelist>
1223
1224      <variablelist>
1225        <varlistentry>
1226          <term></term>
1227
1228          <listitem>
1229            <para></para>
1230          </listitem>
1231        </varlistentry>
1232      </variablelist>
1233
1234      <variablelist>
1235        <varlistentry>
1236          <term></term>
1237
1238          <listitem>
1239            <para></para>
1240          </listitem>
1241        </varlistentry>
1242      </variablelist>
1243
1244      <variablelist>
1245        <varlistentry>
1246          <term></term>
1247
1248          <listitem>
1249            <para></para>
1250          </listitem>
1251        </varlistentry>
1252      </variablelist>
1253
1254      <variablelist>
1255        <varlistentry>
1256          <term></term>
1257
1258          <listitem>
1259            <para></para>
1260          </listitem>
1261        </varlistentry>
1262      </variablelist>
1263
1264      <variablelist>
1265        <varlistentry>
1266          <term></term>
1267
1268          <listitem>
1269            <para></para>
1270          </listitem>
1271        </varlistentry>
1272      </variablelist>
1273
1274      <variablelist>
1275        <varlistentry>
1276          <term></term>
1277
1278          <listitem>
1279            <para></para>
1280          </listitem>
1281        </varlistentry>
1282      </variablelist>
1283
1284      <variablelist>
1285        <varlistentry>
1286          <term></term>
1287
1288          <listitem>
1289            <para></para>
1290          </listitem>
1291        </varlistentry>
1292      </variablelist>
1293
1294      <variablelist>
1295        <varlistentry>
1296          <term></term>
1297
1298          <listitem>
1299            <para></para>
1300          </listitem>
1301        </varlistentry>
1302      </variablelist>
1303
1304      <variablelist>
1305        <varlistentry>
1306          <term></term>
1307
1308          <listitem>
1309            <para></para>
1310          </listitem>
1311        </varlistentry>
1312      </variablelist>
1313    </section>
1314
1315    <section>
1316      <title>Build</title>
1317
1318      <para>Build phase keywords.</para>
1319
1320      <variablelist>
1321        <varlistentry>
1322          <term>build.keyword1</term>
1323
1324          <listitem>
1325            <para>Description build.keyword 1.</para>
1326          </listitem>
1327        </varlistentry>
1328      </variablelist>
1329
1330      <variablelist>
1331        <varlistentry>
1332          <term></term>
1333
1334          <listitem>
1335            <para></para>
1336          </listitem>
1337        </varlistentry>
1338      </variablelist>
1339
1340      <variablelist>
1341        <varlistentry>
1342          <term></term>
1343
1344          <listitem>
1345            <para></para>
1346          </listitem>
1347        </varlistentry>
1348      </variablelist>
1349
1350      <variablelist>
1351        <varlistentry>
1352          <term></term>
1353
1354          <listitem>
1355            <para></para>
1356          </listitem>
1357        </varlistentry>
1358      </variablelist>
1359
1360      <variablelist>
1361        <varlistentry>
1362          <term></term>
1363
1364          <listitem>
1365            <para></para>
1366          </listitem>
1367        </varlistentry>
1368      </variablelist>
1369
1370      <variablelist>
1371        <varlistentry>
1372          <term></term>
1373
1374          <listitem>
1375            <para></para>
1376          </listitem>
1377        </varlistentry>
1378      </variablelist>
1379
1380      <variablelist>
1381        <varlistentry>
1382          <term></term>
1383
1384          <listitem>
1385            <para></para>
1386          </listitem>
1387        </varlistentry>
1388      </variablelist>
1389
1390      <variablelist>
1391        <varlistentry>
1392          <term></term>
1393
1394          <listitem>
1395            <para></para>
1396          </listitem>
1397        </varlistentry>
1398      </variablelist>
1399    </section>
1400
1401    <section>
1402      <title>Destroot</title>
1403
1404      <para>Destroot phase keywords.</para>
1405
1406      <variablelist>
1407        <varlistentry>
1408          <term>destroot.keyword1</term>
1409
1410          <listitem>
1411            <para>Description destroot keyword1.</para>
1412          </listitem>
1413        </varlistentry>
1414      </variablelist>
1415
1416      <variablelist>
1417        <varlistentry>
1418          <term></term>
1419
1420          <listitem>
1421            <para></para>
1422          </listitem>
1423        </varlistentry>
1424      </variablelist>
1425
1426      <variablelist>
1427        <varlistentry>
1428          <term></term>
1429
1430          <listitem>
1431            <para></para>
1432          </listitem>
1433        </varlistentry>
1434      </variablelist>
1435
1436      <variablelist>
1437        <varlistentry>
1438          <term></term>
1439
1440          <listitem>
1441            <para></para>
1442          </listitem>
1443        </varlistentry>
1444      </variablelist>
1445
1446      <variablelist>
1447        <varlistentry>
1448          <term></term>
1449
1450          <listitem>
1451            <para></para>
1452          </listitem>
1453        </varlistentry>
1454      </variablelist>
1455
1456      <variablelist>
1457        <varlistentry>
1458          <term></term>
1459
1460          <listitem>
1461            <para></para>
1462          </listitem>
1463        </varlistentry>
1464      </variablelist>
1465
1466      <variablelist>
1467        <varlistentry>
1468          <term></term>
1469
1470          <listitem>
1471            <para></para>
1472          </listitem>
1473        </varlistentry>
1474      </variablelist>
1475
1476      <variablelist>
1477        <varlistentry>
1478          <term></term>
1479
1480          <listitem>
1481            <para></para>
1482          </listitem>
1483        </varlistentry>
1484      </variablelist>
1485
1486      <variablelist>
1487        <varlistentry>
1488          <term></term>
1489
1490          <listitem>
1491            <para></para>
1492          </listitem>
1493        </varlistentry>
1494      </variablelist>
1495    </section>
1496
1497    <section>
1498      <title>Install</title>
1499
1500      <para>Install phase keywords.</para>
1501
1502      <variablelist>
1503        <varlistentry>
1504          <term>install.keyword1</term>
1505
1506          <listitem>
1507            <para>Description install.keyword 1.</para>
1508          </listitem>
1509        </varlistentry>
1510      </variablelist>
1511
1512      <variablelist>
1513        <varlistentry>
1514          <term></term>
1515
1516          <listitem>
1517            <para></para>
1518          </listitem>
1519        </varlistentry>
1520      </variablelist>
1521
1522      <variablelist>
1523        <varlistentry>
1524          <term></term>
1525
1526          <listitem>
1527            <para></para>
1528          </listitem>
1529        </varlistentry>
1530      </variablelist>
1531
1532      <variablelist>
1533        <varlistentry>
1534          <term></term>
1535
1536          <listitem>
1537            <para></para>
1538          </listitem>
1539        </varlistentry>
1540      </variablelist>
1541    </section>
1542  </section>
1543
1544  <section>
1545    <title>Tcl Primitives</title>
1546
1547    <para>A MacPorts <filename>Portfile</filename> is a Tcl script, so it may
1548    contain Tcl code anywhere within it, whether in the global section or a
1549    phase. The Tcl primitives listed below are defined within the MacPorts
1550    base code for use in Portfiles.</para>
1551
1552    <variablelist>
1553      <varlistentry>
1554        <term>reinplace</term>
1555
1556        <listitem>
1557          <para>Description reinplace.</para>
1558        </listitem>
1559      </varlistentry>
1560    </variablelist>
1561
1562    <variablelist>
1563      <varlistentry>
1564        <term>xinstall</term>
1565
1566        <listitem>
1567          <para>Description xinstall.</para>
1568        </listitem>
1569      </varlistentry>
1570    </variablelist>
1571
1572    <variablelist>
1573      <varlistentry>
1574        <term>file copy</term>
1575
1576        <listitem>
1577          <para>Description file copy.</para>
1578        </listitem>
1579      </varlistentry>
1580    </variablelist>
1581
1582    <variablelist>
1583      <varlistentry>
1584        <term>file delete</term>
1585
1586        <listitem>
1587          <para>Description file delete.</para>
1588        </listitem>
1589      </varlistentry>
1590    </variablelist>
1591
1592    <variablelist>
1593      <varlistentry>
1594        <term></term>
1595
1596        <listitem>
1597          <para></para>
1598        </listitem>
1599      </varlistentry>
1600    </variablelist>
1601
1602    <variablelist>
1603      <varlistentry>
1604        <term></term>
1605
1606        <listitem>
1607          <para></para>
1608        </listitem>
1609      </varlistentry>
1610    </variablelist>
1611
1612    <variablelist>
1613      <varlistentry>
1614        <term></term>
1615
1616        <listitem>
1617          <para></para>
1618        </listitem>
1619      </varlistentry>
1620    </variablelist>
1621
1622    <variablelist>
1623      <varlistentry>
1624        <term></term>
1625
1626        <listitem>
1627          <para></para>
1628        </listitem>
1629      </varlistentry>
1630    </variablelist>
1631
1632    <variablelist>
1633      <varlistentry>
1634        <term></term>
1635
1636        <listitem>
1637          <para></para>
1638        </listitem>
1639      </varlistentry>
1640    </variablelist>
1641
1642    <variablelist>
1643      <varlistentry>
1644        <term></term>
1645
1646        <listitem>
1647          <para></para>
1648        </listitem>
1649      </varlistentry>
1650    </variablelist>
1651
1652    <variablelist>
1653      <varlistentry>
1654        <term></term>
1655
1656        <listitem>
1657          <para></para>
1658        </listitem>
1659      </varlistentry>
1660    </variablelist>
1661  </section>
1662</chapter>
Note: See TracBrowser for help on using the repository browser.