source: trunk/doc/guide/xml/details.xml @ 2360

Last change on this file since 2360 was 2360, checked in by michaelm, 17 years ago

fixed missing close tag

  • Property svn:eol-style set to native
File size: 24.9 KB
Line 
1<?xml version="1.0" encoding="iso-8859-1" ?>
2<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
3                "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
4
5<chapter>
6    <title>Portfile Details</title>
7    <para> This Chapter describes in detail how each part of a portfile is works and is used. </para>
8    <sect1>
9        <title>General Syntax</title>
10        <para>A Portfile is a TCL script, so the syntax used must be valid TCL or the Portfile will not work. The basic syntax of the Portfile has been designed so most tasks are performed using key value&lpar;s&rpar; combinations. Many people don't realise it is TCL until they want to do something more advanced and realise all that power is there.</para>
11                <para>All key value pairs in a Portfile are single lines so line breaks must be escaped with a back solidus &lsquo;&bsol;&rsquo;. </para>
12                <para>Variables syntax is &dollar;&lcub;foo&rcub; for the foo variant.</para>
13        <sect2>
14                        <title>Special characters</title>
15                        <para>As the Portfile is a TCL script certain charachters are &ldquo;special&rdquo;. These have a special meaning in TCL and if you dont want that special meaning, they must be escaped. In general a charachter is escaped using the back solidus &lsquo;&bsol;&rsquo;. The main characters you need to be careful with are <simplelist type="inline">
16                                        <member>&dollar;</member>
17                                        <member>&lcub;</member>
18                                        <member>&rcub;</member>
19                                        <member>&lsqb;</member>
20                                        <member>&rsqb;</member>
21                                        </simplelist></para>
22                </sect2>
23                <sect2>
24                        <title>Required Keys</title>
25                        <para>There is a small set of required key/value pairs without which a Portfile cannot be correct.</para>
26                        <para>The required keys are
27                                <simplelist type="vert">
28                                        <member>PortSystem</member>
29                                        <member>name</member>
30                                        <member>version</member>
31                                        <member>platforms</member>
32                                        <member>maintainers</member>
33                                        <member>categories</member>
34                                        <member>description</member>
35                                        <member>master_sites</member>
36                                        <member>checksums</member>
37                                        <member>contents</member>
38                                </simplelist>
39                        Each of these keys is described in the following pages of the guide.
40                        </para>
41                               
42                </sect2>
43        </sect1>
44        <sect1>
45                <title>Useful Preset Variables</title>
46                <para></para>
47                <variablelist>
48                        <varlistentry id='prefix'>
49                                <term>prefix</term>
50                                <listitem>
51                                        <para>Installation prefix, set in the systemwide configuration file /etc/ports/ports.conf. Can be overridden on a per port basis. For example XFree86 needs to install in the /usr tree, or aqua applications are installed in /Applications/Ports</para>
52                                        <para><userinput>prefix /Applications/Ports</userinput></para>
53                                </listitem>
54                        </varlistentry>
55                       
56                        <varlistentry id='libpath'>
57                                <term>libpath</term>
58                                <listitem>
59                                        <para>Path to the Darwinports TCL libraries. Read only.</para>
60                                </listitem>
61                        </varlistentry>
62                       
63                        <varlistentry id='portpath'>
64                                <term>portpath</term>
65                                <listitem>
66                                        <para>Path to the directory containing the downloaded Portfiles. Read Only.</para>
67                                </listitem>
68                        </varlistentry>
69                       
70                        <varlistentry id='filedir'>
71                                <term>filedir</term>
72                                <listitem>
73                                        <para>Path to port files relative to &dollar;&lcub;portpath&rcub;. Read Only.</para>
74                                </listitem>
75                        </varlistentry>
76                       
77                        <varlistentry id='workdir'>
78                                <term>workdir</term>
79                                <listitem>
80                                        <para>Path to work directory relative to &dollar;&lcub;portpath&rcub;. Read Only</para>
81                                </listitem>
82                        </varlistentry>
83                       
84                        <varlistentry id='workpath'>
85                                <term>workpath</term>
86                                <listitem>
87                                        <para>Full path to work directory. Read only.</para>
88                                </listitem>
89                        </varlistentry>
90                                               
91                        <varlistentry id='distpath'>
92                                <term>distpath</term>
93                                <listitem>
94                                        <para>Location to store downloaded distfiles. Read Only</para>
95                                </listitem>
96                        </varlistentry>
97                       
98                        <varlistentry id='os_arch'>
99                                <term>os_arch</term>
100                                <listitem>
101                                        <para>Identifies hardware type (ie, "Power Macintosh"). Read Only</para>
102                                        <para><userinput></userinput></para>
103                                </listitem>
104                        </varlistentry>
105                       
106                        <varlistentry id='os_version'>
107                                <term>os_version</term>
108                                <listitem>
109                                        <para>Version number of operating system (ie "6.0"). Read Only.</para>
110                                </listitem>
111                        </varlistentry>
112                </variablelist>
113        </sect1>
114
115        <sect1>
116                <title>Initialization Phase</title>
117                <para>The first part of a Portfile deals with initialisation. Most of the keys (or options) in the initialisation phase  are required for all Portfiles.
118                </para>
119                <variablelist>
120                        <varlistentry id='PortSystem'>
121                                <term>PortSystem</term>
122                                <listitem>
123                                        <para>Determines which version of the portsystem the Portfile is compatible with. Darwinports supports versioning of the PortSystem so if new, backwards incompatible changes are introduced older Portfiles can continue to use the older version of the system. The PortSystem line wraps the loading of TCL libraries appropriate for that version of Darwinports. If you don't load the libraries, nothing else in the Portfile will work. Thus, the PortSystem should be the top line in the Portfile.</para>
124                                        <para>Currently Darwinports only has version 1.0 so you should put: <userinput>PortSystem 1.0</userinput> in your Portfile.
125                                        </para>
126                                </listitem>
127                        </varlistentry>
128                        <varlistentry id='name'>
129                                <term>name</term>
130                                <listitem>
131                                        <para>The name of the Port. By default this is used to build the url from which the Port is fetched. The name should be lowercase.</para>
132                                        <para><userinput>name foo</userinput></para>
133                                </listitem>
134                        </varlistentry>
135                        <varlistentry id='version'>
136                                <term>version</term>
137                                <listitem>
138                                        <para>The version of the Port. By default this is used to build the url from which the Port is fetched. </para>
139                                        <para><userinput>version 1.23.45</userinput></para>
140                                </listitem>
141                        </varlistentry>
142                        <varlistentry id='platforms'>
143                                <term>platforms</term>
144                                <listitem>
145                                        <para>The platforms on which the port has been tested. </para>
146                                        <para><userinput>platforms darwin freebsd</userinput></para>
147                                </listitem>
148                        </varlistentry>
149                        <varlistentry id='categories'>
150                                <term>categories</term>
151                                <listitem>
152                                        <para>The type of Port. The first category should be the same as the directory in which the Portfile is stored and therefore should be chosen with care. A Port may have more that one category but is not required to.</para>
153                                        <para><userinput>categories foo bar</userinput></para>
154                                </listitem>
155                        </varlistentry>
156                        <varlistentry id='description'>
157                                <term>description</term>
158                                <listitem>
159                                        <para>One sentence describing what the port is, use long_description for more detail. If you use long_description you must still use description.</para>
160                                        <para><userinput>description foo performs the transformation of bar into xml</userinput></para>
161                                </listitem>
162                        </varlistentry>
163                        <varlistentry id='long_description'>
164                                <term>long_description</term>
165                                <listitem>
166                                        <para>Description of what the port is/does. Long lines can be broken with escaped newlines. </para>
167                                        <para><programlisting><userinput>long_description foo performs the transformation of bar into xml &bsol;
168This allows users to rapidly transform documentation into multiple formats. </userinput></programlisting></para>
169                                </listitem>
170                        </varlistentry>
171                       
172                        <varlistentry id='maintainers'>
173                                <term>maintainers</term>
174                                <listitem>
175                                        <para>List the email address or addresses of the Portfile maintainer(s)</para>
176                                        <para><userinput>maintainers joeblogs@somerandom.domain.com</userinput></para>
177                                </listitem>
178                        </varlistentry>
179                        <varlistentry id='revision'>
180                                <term>revision</term>
181                                <listitem>
182                                        <para>Local revision number of portfile.  Increment for port revisions. The default for this is 0. It should be incremented for revisions that change the installed port.</para>
183                                        <para><userinput>revision 1.1</userinput></para>
184                                </listitem>
185                        </varlistentry>
186                        <varlistentry id='extract.sufx'>
187                                <term>extract.sufx</term>
188                                <listitem>
189                                        <para>By default the value of &dollar;&lcub;extract.sufx&rcub; is .tar.gz. Specifying extract.sufx is optional, only use it if the suffix is not &lsquo;tar.gz.&rsquo;. </para>
190                                        <para><userinput>extract.sufx .tgz</userinput></para>
191                                </listitem>
192                        </varlistentry>
193                        <varlistentry id='distname'>
194                                <term>distname</term>
195                                <listitem>
196                                        <para>By default distname is &dollar;&lcub;name&rcub;-&dollar;&lcub;version&rcub;. Specifying distname is optional, only use it if the file that contains the port is not &dollar;&lcub;name&rcub;-&dollar;&lcub;version&rcub; (without the extract.sufx).</para>
197                                        <para><userinput>distname &dollar;&lcub;name&rcub;_&dollar;&lcub;version&rcub;</userinput></para>
198                                </listitem>
199                        </varlistentry>
200                       
201                        <varlistentry id='distfiles'>
202                                <term>distfiles</term>
203                                <listitem>
204                                        <para>Defaults to &dollar;&lcub;distname&rcub;.&dollar;&lcub;extract.sufx&rcub;. Specifying distfiles is optional, only use it if the file that contains the port is not &dollar;&lcub;distname&rcub;.&dollar;&lcub;extract.sufx&rcub; or more than one file needs to be retirieved. </para>
205                                        <para><userinput>distfiles stable.&dollar;&lcub;extract.sufx&rcub; installer.sh</userinput></para>
206                                        <para>Some ports require multiple items to be fetched from different sites, this can be achieved using tags. The tags are then used to identify which of the master_sites to fetch the file from.see master_sites below for more information. As with long_description, long lines should be broken up with escaped newlines. </para>
207                                        <para><userinput>distfiles stable.&dollar;&lcub;extract.sufx&rcub;:source installer.sh:install</userinput></para>
208                                </listitem>
209                        </varlistentry>
210                       
211                        <varlistentry id='use_zip'>
212                                <term>use_zip</term>
213                                <listitem>
214                                        <para>Specifying use_zip is optional, only use it if the file downloades is zipped rather than tarred and gziped. use_zip set &dollar;&lcub;extract.sufx&rcub; to .zip and extract.cmd to unzip, extract.pre_args to -q and extract.post_args to &rdquo;-d &dollar;portpath/&dollar;workdir&ldquo;.</para>
215                                        <para><userinput>use_zip yes</userinput></para>
216                                </listitem>
217                        </varlistentry>
218                        <varlistentry id='use_bzip2'>
219                                <term>use_bzip2</term>
220                                <listitem>
221                                        <para>Specifying use_bzip2 is optional, only use it if the file downloades is bzipped rather than tarred and gziped. use_bzip2 set &dollar;&lcub;extract.sufx&rcub; to .bzip2 and extract.cmd to bzip2.</para>
222                                        <para><userinput>use_bzip2 yes</userinput></para>
223                                </listitem>
224                        </varlistentry>
225                       
226                </variablelist>
227        </sect1>
228        <sect1>
229                <title>Fetch Phase</title>
230                <para></para>
231                <variablelist> 
232                        <varlistentry id="master_sites">
233                                <term>master_sites</term>
234                                <listitem>
235                                        <para> A whitespace delimited list of urls from which the source of the port can be retrieved. The URL should not include the name of the file being retrieved.</para>
236                                        <para><userinput></userinput></para>
237                                        <para>If you have multiple sites you should break up long lines with escapend newlines. </para>
238                                        <para><programlisting><userinput>master_sites http://www.somesite.org/files/ &bsol;
239http://www.somemirror.org/somesite_org/files/</userinput></programlisting></para>
240                                        <tip><para>Always put the trailing forward solidus at the end of a url, and remember to not include the filename itself.</para></tip>
241                                        <para>If you need to retrieve files from different sites you can label the urls with tags.</para>
242                                        <para><programlisting><userinput>master_sites http://www.somesite.org/files/:source &bsol;
243http://www.someothersite.org/somesite_extras/:extras/</userinput></programlisting></para>
244
245                                </listitem>
246                        </varlistentry>
247                       
248                                <varlistentry id='patchsites'>
249                                        <term>patch_sites</term>
250                                        <listitem>
251                                                <para>List sites from which to download patchfiles from, syntax is the same as master_sites. See the Patch phase below for more information. </para>
252                                                <para><userinput>patch_sites    ftp://ftp.patchcityrepo.com/pub/magic/patches</userinput>
253                                                </para>
254                                        </listitem>
255                                </varlistentry>
256                               
257                </variablelist>
258        </sect1>
259        <sect1>
260                <title>Integrity Checking Phase</title>
261                <para>Each file downloaded is integrity checked using a checksum. This is used to help prevent trojaned sources being downloaded. If you do not include the checksums line, the file will be downloaded and the checksum reported as a conenience to the Portfile author.</para>
262                <variablelist>
263                        <varlistentry id='checksums'>
264                                        <term>checksums</term>
265                                        <listitem>
266                                                <para>Currently only the md5 checksum is supported. Specify the filename, the checksum type and the checksum.</para>
267                                                <para>
268                                                        <programlisting><userinput>
269&dollar;&lcub;distname&rcub;-&dollar;&lcub;extract.sufx&rcub; md5 65b89365a65dcad71d4402b48 &bsol;
270foo.tar.gz md5 65b89365a65dcad71d4402b44</userinput>
271                                                        </programlisting>
272                                                </para>
273                                                <tip><para>If you only have one file being fetched the filename can be omitted. </para>
274                                                <para><userinput>md5 65b89365a65dcad71d4402b48</userinput></para></tip>
275                                        </listitem>
276                                </varlistentry>
277                        </variablelist>
278        </sect1>
279        <sect1>
280                <title>Extract Phase</title>
281                <para></para>
282                <variablelist>
283                        <varlistentry id='extract.only'>
284                                        <term>extract.only</term>
285                                        <listitem>
286                                                <para>List of files to extract into &dollar;&lcub;workpath&rcub;, defaults to &dollar;&lcub;distfiles&rcub;. Useful when some files are not compressed. Only use extract.only if the default does not do the right thing.</para>
287                                                <para><userinput>extract.only foo.tar.gz bar.tar.gz</userinput>
288                                                </para>
289                                        </listitem>
290                                </varlistentry>
291                               
292                                <varlistentry id='extract.cmd'>
293                                        <term>extract.cmd</term>
294                                        <listitem>
295                                                <para>Command to perform extraction. Defaults to gzip. </para>
296                                                <para><userinput>extract.cmd gunzip</userinput>
297                                                </para>
298                                        </listitem>
299                                </varlistentry>
300                               
301                                <varlistentry id='extract.pre_args'>
302                                        <term>extract.pre_args</term>
303                                        <listitem>
304                                                <para>Arguments added to extract command before a file name. Defaults to -dc. </para>
305                                                <para><userinput>extract.pre_args    -cd</userinput>
306                                                </para>
307                                        </listitem>
308                                </varlistentry>
309                               
310                                <varlistentry id='extract.args'>
311                                        <term>extract.args</term>
312                                        <listitem>
313                                                <para>Arguments to extract.cmd, Read Only. The value is &dollar;&lcub;distpath&rcub;/&dollar;&lcub;distfile&rcub;
314                                                </para>
315                                        </listitem>
316                                </varlistentry>
317                               
318                                <varlistentry id='extract.post_args'>
319                                        <term>extract.post_args></term>
320                                        <listitem>
321                                                <para>Arguments added to extract command after a file name. Defaults to &ldquo;| tar -xf&rdquo;. </para>
322                                                <para><userinput>extract.post_args   | tar -xf</userinput>
323                                                </para>
324                                        </listitem>
325                                </varlistentry>
326                               
327                        </variablelist>
328        </sect1>
329        <sect1>
330                <title>Patch Phase</title>
331                <para></para>
332                        <variablelist>
333                                <varlistentry id='patchfiles'>
334                                        <term>patchfiles</term>
335                                        <listitem>
336                                                <para>List of patch files to apply to source. Patch files can be supplied in a port in a directory named files within the port directory or fetched from &dollar;&lcub;patchsites&rcub;. Each patchfile supplied by the Portfile author should patch a single file. diffs should be created with <userinput>diff -u file1 file2 >../../files/patch-file</userinput>. Patches downloaded from patchsites must have checksumes.</para>
337                                                <para><userinput>patchfiles patch-Makefile.in patch-source.c</userinput>
338                                                </para>
339                                        </listitem>
340                                </varlistentry>
341                               
342                        </variablelist>
343        </sect1>
344        <sect1>
345                <title>Configuration Phase</title>
346                <para></para>
347                       
348                        <sect2>
349                                <title> Automake and Autoconf</title>                                           
350                                        <variablelist>
351                                                <varlistentry id='use_automake'>
352                                                        <term>use_automake</term>
353                                                        <listitem>
354                                                                <para>If set to yes, use automake</para>
355                                                                <para><userinput>use_automake yes</userinput>
356                                                                </para>
357                                                        </listitem>
358                                                </varlistentry>
359                                               
360                                                <varlistentry id='automake.env'>
361                                                        <term>automake.env</term>
362                                                        <listitem>
363                                                                <para>Environmental variables to pass to automake</para>
364                                                                <para><userinput>CFLAGS=&ldquo;-I&lsquo;&dollar;&lcub;prefix&rcub;/include&rsquo;&rdquo;</userinput>
365                                                                </para>
366                                                        </listitem>
367                                                </varlistentry>
368                                               
369                                                <varlistentry id='automake.args'>
370                                                        <term>automake.args</term>
371                                                        <listitem>
372                                                                <para>Arguments to pass to automake. </para>
373                                                                <para><userinput>automake.args  --foreign</userinput>
374                                                                </para>
375                                                        </listitem>
376                                                </varlistentry>
377                                               
378                                                <varlistentry id='automake.dir'>
379                                                        <term>automake.dir</term>
380                                                        <listitem>
381                                                                <para>Directory in which to run &dollar;&lcub;automake.cmd&rcub;. Defaults to &dollar;&lcub;worksrcpath&rcub;</para>
382                                                                <para><userinput>automake.dir</userinput>
383                                                                </para>
384                                                        </listitem>
385                                                </varlistentry>
386                                               
387                                                <varlistentry id='use_autoconf'>
388                                                        <term>use_autoconf</term>
389                                                        <listitem>
390                                                                <para>If set to yes, run autoconf. </para>
391                                                                <para><userinput>use_autoconf   yes</userinput>
392                                                                </para>
393                                                        </listitem>
394                                                </varlistentry>
395                                               
396                                                <varlistentry id='autoconf.env'>
397                                                        <term>autoconf.env</term>
398                                                        <listitem>
399                                                                <para>Environmental variables to pass to autoconf</para>
400                                                                <para><userinput>autoconf.env   CFLAGS=-I&lsquo;&dollar;&lcub;prefix&rcub;/include/gtk12&rsquo;</userinput>
401                                                                </para>
402                                                        </listitem>
403                                                </varlistentry>
404                                               
405                                                <varlistentry id='autoconf.args'>
406                                                        <term>autoconf.args</term>
407                                                        <listitem>
408                                                                <para>Arguments to pass to autoconf. </para>
409                                                                <para><userinput>autoconf.args  -l src/aclocaldir</userinput>
410                                                                </para>
411                                                        </listitem>
412                                                </varlistentry>
413                                               
414                                                <varlistentry id='autoconf.dir'>
415                                                        <term>autoconf.dir</term>
416                                                        <listitem>
417                                                                <para>Directory in which to run &dollar;&lcub;autoconf.cmd&rcub;. </para>
418                                                                <para><userinput>autoconf.dir   src</userinput>
419                                                                </para>
420                                                        </listitem>
421                                                </varlistentry>
422                                               
423                                        </variablelist>
424                                </sect2>
425                                <sect2>
426                                        <title>configure</title>
427                                        <variablelist>
428                                                <varlistentry id='configure.env'>
429                                                        <term>configure.env</term>
430                                                        <listitem>
431                                                                <para>Set environment variables for configure.</para>
432                                                                <para><userinput>configure.env CFLAGS=&ldquo;-I&lsquo;&dollar;&lcub;prefix&rcub;/include&rsquo;&rdquo;</userinput>
433                                                                </para>
434                                                        </listitem>
435                                                </varlistentry>
436                                               
437                                                <varlistentry id='configure.pre_args'>
438                                                        <term>configure.pre_args</term>
439                                                        <listitem>
440                                                                <para>Arguments added to configure command before &dollar;&lcub;configure.args&rcub;. Defaults to --prefix=&dollar;&lcub;prefix&rcub;. </para>
441                                                                <para><userinput>configure.pre_args       --prefix=&ldquo;&dollar;&lcub;prefix&rcub;/apache2&rdquo;</userinput>
442                                                                </para>
443                                                        </listitem>
444                                                </varlistentry>
445                                               
446                                                <varlistentry id='configure.args'>
447                                                        <term>configure.args</term>
448                                                        <listitem>
449                                                                <para>Arguments to pass to configure.</para>
450                                                                <para><userinput>configure.args      --etcdir=&ldquo;&dollar;&lcub;prefix&rcub;/etc&rdquo;</userinput>
451                                                                </para>
452                                                        </listitem>
453                                                </varlistentry>
454                                        </variablelist>
455                                </sect2>
456                               
457        </sect1>
458        <sect1>
459                <title>Build Phase</title>
460                <para></para>
461               
462                <variablelist>
463                       
464                        <varlistentry id='build.cmd'>
465                                <term>build.cmd</term>
466                                <listitem>
467                                        <para>Make command to run relative to &dollar;&lcub;worksrcdir&rcub;. Defaults to make.</para>
468                                        <para><userinput>build.cmd pbxbuild</userinput>
469                                        </para>
470                                </listitem>
471                        </varlistentry>
472                       
473                        <varlistentry id='build.type'>
474                                <term>build.type</term>
475                                <listitem>
476                                        <para>Defines which 'make' is required, either 'gnu' or 'bsd' Sets build.cmd to either
477                                                'gnumake' or 'bsdmake' accordingly</para>
478                                        <para><userinput>build.type     gnu</userinput>
479                                        </para>
480                                </listitem>
481                        </varlistentry>
482                       
483                        <varlistentry id='build.pre_args'>
484                                <term>build.pre_args</term>
485                                <listitem>
486                                        <para>Arguments to pass to &dollar;&lcub;build.cmd&rcub; before &dollar;&lcub;build.args&rcub;. Read only. Set to  &dollar;&lcub;build.target.current&rcub;
487                                        </para>
488                                </listitem>
489                        </varlistentry>
490                       
491                        <varlistentry id='build.args'>
492                                <term>build.args</term>
493                                <listitem>
494                                        <para>Arguments to pass to &dollar;&lcub;build.cmd&rcub;</para>
495                                        <para><userinput>build.args     -DNOWARN</userinput>
496                                        </para>
497                                </listitem>
498                        </varlistentry>
499                       
500                        <varlistentry id='build.target'>
501                                <term>build.target.all</term>
502                                <listitem>
503                                        <para>Target to pass to make for building everything. Defaults to all.</para>
504                                        <para><userinput>build.target.all all-src</userinput>
505                                        </para>
506                                </listitem>
507                        </varlistentry>
508
509                </variablelist>
510        </sect1>
511        <sect1>
512                <title>Install Phase</title>
513               
514                <variablelist>
515
516                        <varlistentry id='install.cmd'>
517                                <term>install.cmd</term>
518                                <listitem>
519                                        <para>Install command to run relative to &dollar;&lcub;worksrcdir&rcub;. Defaults to &dollar;&lcub;build.cmd&rcub;.</para>
520                                        <para><userinput>install.cmd pbxbuild</userinput>
521                                        </para>
522                                </listitem>
523                        </varlistentry>
524                       
525                        <varlistentry id='install.type'>
526                                <term>install.type</term>
527                                <listitem>
528                                        <para>Defines which 'make' is required, either 'gnu' or 'bsd' Sets install.cmd to either
529                                                'gnumake' or 'bsdmake' accordingly</para>
530                                        <para><userinput>install.type     gnu</userinput>
531                                        </para>
532                                </listitem>
533                        </varlistentry>
534                       
535                        <varlistentry id='install.pre_args'>
536                                <term>install.pre_args</term>
537                                <listitem>
538                                        <para>Arguments to pass to &dollar;&lcub;install.cmd&rcub; before &dollar;&lcub;install.args&rcub;. Read only. Set to  &dollar;&lcub;install.target&rcub;
539                                        </para>
540                                </listitem>
541                        </varlistentry>
542                       
543                        <varlistentry id='install.args'>
544                                <term>install.args</term>
545                                <listitem>
546                                        <para>Arguments to pass to &dollar;&lcub;install.cmd&rcub;</para>
547                                        <para><userinput>install.args     -DNOWARN</userinput>
548                                        </para>
549                                </listitem>
550                        </varlistentry>
551                       
552                        <varlistentry id='install.target'>
553                                <term>install.target</term>
554                                <listitem>
555                                        <para>Install target to pass to ${install.cmd}.</para>
556                                        <para><userinput>install.target all-src</userinput>
557                                        </para>
558                                </listitem>
559                        </varlistentry>
560                </variablelist>
561<para></para>
562        </sect1>
563        <sect1>
564                <title>Register Phase</title>
565                <para></para>
566                <variablelist>
567                        <varlistentry id='contents'>
568                                        <term>contents</term>
569                                        <listitem>
570                                                <para>List of files to be installed by the port Files are assumed to be relative to &dollar;&lcub;prefix&rcub; unless the first character is a '/'.  </para>
571                                                <para><userinput>contents       bin/ls man/man1/ls.1.gz</userinput>
572                                                </para>
573                                                <para>All but the shortest contents lists should be included from a separate file. The other file should begin with the contents key, and have the same format as an inline contents list.</para>
574                                                <para><userinput>include contents</userinput>
575                                                </para>
576                                                <tip>
577                                                        <para>The following is very useful for partly automating the contents list creation process. The snippet assumes you are installing in the default &dollar;&lcub;prefix&rcub; /opt/local. You must only include files that your port should uninstall so leave out directories like bin or share. Also, don't include reciept or Portfile directories under &dollar;&lcub;prefix&rcub;/var/db/dports. </para>
578                                                        <programlisting>
579% find -d /opt/local &gt; /tmp/existing.files
580% sudo port install
581% find -d /opt/local &gt; /tmp/more.files
582% diff -u /tmp/existing.files /tmp/more.files | grep ^\+\/ | \
583sed -e 's|^\+/opt/local/*||g' &gt; contents
584                                                        </programlisting>
585                                                </tip>
586                                                 
587                                        </listitem>
588                                </varlistentry>
589                       
590                </variablelist>
591
592        </sect1>
593       
594
595        <sect1>
596        <title>Dependencies</title>
597        <para></para>                   
598        <sect2>
599                        <title>Principles</title>
600                        <para></para>
601                </sect2>
602                <sect2>
603                        <title>Dependency Tests</title>
604                        <para></para>
605                        <variablelist>
606                                <varlistentry>
607                                                <term> depends_fetch </term>
608                                                <listitem>
609                                                <para></para>
610                                                </listitem>
611                                </varlistentry>
612                                <varlistentry>
613                                                <term> depends_extract </term>
614                                                <listitem>
615                                                <para></para>
616                                                </listitem>
617                                </varlistentry>
618                                <varlistentry>
619                                                <term> depends_lib </term>
620                                                <listitem>
621                                                <para></para>
622                                                </listitem>
623                                </varlistentry>
624                                <varlistentry>
625                                                <term> depends_build </term>
626                                                <listitem>
627                                                <para></para>
628                                                </listitem>
629                                </varlistentry>
630                                <varlistentry>
631                                                <term> depends_run </term>
632                                                <listitem>
633                                                        <para></para>
634                                                </listitem>
635                                </varlistentry> 
636            </variablelist>
637        </sect2>
638    </sect1>
639        <sect1>
640                <title>TCL Primitives</title>
641                        <para></para>
642                <sect2>
643                        <title>reinplace</title>
644                        <para></para>
645                </sect2>
646                <sect2>
647                        <title>system</title>
648                        <para></para>
649                </sect2>               
650                <sect2>
651                        <title>file</title>
652                        <para></para>
653                </sect2>
654        </sect1>
655        <sect1>
656                <title>Other</title>
657                <para></para>
658                <sect2>
659                        <title>Pre and Post Phase Steps</title>
660                        <variablelist>
661                                <varlistentry>
662                                        <term>Pre-*</term>
663                                        <listitem>
664                                                <para></para>
665                                        </listitem>
666                                </varlistentry>
667                               
668                                <varlistentry>
669                                        <term>Post-*</term>
670                                        <listitem>
671                                                <para>
672                                                </para>
673                                        </listitem>
674                                </varlistentry>
675                        </variablelist>
676                </sect2>
677                <sect2>
678                        <title>Overriding a Phase</title>
679                        <para>
680                        </para>
681                </sect2>
682                       
683    </sect1>
684 </chapter>
685       
686
687               
688               
Note: See TracBrowser for help on using the repository browser.