source: trunk/doc-new/man/xml/portgroup.7.xml @ 31953

Last change on this file since 31953 was 31953, checked in by simon@…, 10 years ago

doc-new: Added filename tags around two paths.

File size: 22.1 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
4<refentry id="portgroup">
5  <refmeta>
6    <refentrytitle>PORTGROUP</refentrytitle>
7
8    <manvolnum>7</manvolnum>
9  </refmeta>
10
11  <refnamediv>
12    <refname>portgroup</refname>
13
14    <refpurpose>MacPorts PortGroup reference</refpurpose>
15  </refnamediv>
16
17  <refsynopsisdiv>
18    <para>PortGroup gnustep 1.0</para>
19
20    <para>PortGroup perl5 1.0</para>
21
22    <para>PortGroup python 1.0</para>
23
24    <para>PortGroup python24 1.0</para>
25
26    <para>PortGroup python25 1.0</para>
27
28    <para>PortGroup ruby 1.0</para>
29
30    <para>PortGroup xcode 1.0</para>
31  </refsynopsisdiv>
32
33  <refsection>
34    <title>Description</title>
35
36    <para>MacPorts defines PortGroup classes so common default values and
37    installation behavior are provided for similar ports. PortGroups are
38    optional; they are declared within the global section of a Portfile. See
39    <citerefentry>
40        <refentrytitle>portfile-global</refentrytitle>
41
42        <manvolnum>7</manvolnum>
43      </citerefentry></para>
44  </refsection>
45
46  <refsection>
47    <title>PortGroup gnustep</title>
48
49    <para>PortGroup gnustep allows for efficient porting of GNUstep-based open
50    source software using the GNU objective-C runtime that defines options for
51    the configuration, build, and destroot phases, and also defines some
52    values for GNUstep-based software. A minimum Portfile using the gnustep
53    PortGroup class need only define the fetch and the checksum phases.</para>
54
55    <refsection>
56      <title>gnustep PortGroup Specific Keywords</title>
57
58      <para>Portfiles using the gnustep PortGroup allow for port authors to
59      set the following keywords in addition to the general Portfile
60      keywords.</para>
61
62      <variablelist>
63        <varlistentry>
64          <term>gnustep.post_flags</term>
65
66          <listitem>
67            <para>An associative array which specifies the sub-directories
68            relative to ${worksrcpath} and the SHARED_LD_POSTFLAGS variables
69            to be added to GNUmakefile.preamble in those sub-directories. This
70            helps making the patching process easier on Darwin.</para>
71
72            <itemizedlist>
73              <listitem>
74                <para>Type: optional</para>
75              </listitem>
76
77              <listitem>
78                <para>Default: none</para>
79              </listitem>
80
81              <listitem>
82                <para>Example:</para>
83
84                <programlisting>platform darwin {
85                    array set gnustep.post_flags {
86                         BundleSubDir "-lfoo -lbar"
87                    }
88               }</programlisting>
89              </listitem>
90            </itemizedlist>
91          </listitem>
92        </varlistentry>
93
94        <varlistentry>
95          <term>gnustep.cc</term>
96
97          <listitem>
98            <para>Define the gcc compiler to use when compiling a port.</para>
99
100            <itemizedlist>
101              <listitem>
102                <para>Type: optional</para>
103              </listitem>
104
105              <listitem>
106                <para>Default: gcc-mp-4.2</para>
107              </listitem>
108
109              <listitem>
110                <para>Example:</para>
111
112                <programlisting>gnustep.cc gcc-mp-4.3</programlisting>
113              </listitem>
114            </itemizedlist>
115          </listitem>
116        </varlistentry>
117
118        <varlistentry>
119          <term>variant with_docs</term>
120
121          <listitem>
122            <para>Many GNUstep packages include a Documentation sub-directory
123            that is not built by default. Enabling this variant builds and
124            installs the included documentation.</para>
125
126            <itemizedlist>
127              <listitem>
128                <para>Type: optional</para>
129              </listitem>
130
131              <listitem>
132                <para>Example:</para>
133
134                <programlisting><prompt>%%</prompt> <userinput>port install gnustep-gui +with_docs</userinput></programlisting>
135              </listitem>
136            </itemizedlist>
137          </listitem>
138        </varlistentry>
139      </variablelist>
140    </refsection>
141
142    <refsection>
143      <title>gnustep FilesystemLayout Keywords</title>
144
145      <para>PortGroup gnustep supports both the traditional gnustep file
146      layout and the new fhs file layout. However, a given ported application
147      does not necessarily support both. The Portfiles have access to many
148      procedures to handle these two layouts:</para>
149
150      <variablelist>
151        <varlistentry>
152          <term>set_gnustep_make</term>
153
154          <listitem>
155            <para>Sets GNUSTEP_MAKEFILES according to the
156            FilesystemLayout</para>
157          </listitem>
158        </varlistentry>
159
160        <varlistentry>
161          <term>set_gnustep_env</term>
162
163          <listitem>
164            <para>Sets DYLD_LIBRARY_PATH and PATH for the gnustep
165            FilesystemLayout</para>
166          </listitem>
167        </varlistentry>
168
169        <varlistentry>
170          <term>gnustep_layout</term>
171
172          <listitem>
173            <para>Returns true (1) if current file layout is gnustep</para>
174          </listitem>
175        </varlistentry>
176
177        <varlistentry>
178          <term>set_system_library</term>
179
180          <listitem>
181            <para>Sets GNUSTEP_SYSTEM_LIBRARY according to the
182            FilesystemLayout</para>
183          </listitem>
184        </varlistentry>
185
186        <varlistentry>
187          <term>set_local_library</term>
188
189          <listitem>
190            <para>Sets GNUSTEP_LOCAL_LIBRARY according to the
191            FilesystemLayout</para>
192          </listitem>
193        </varlistentry>
194      </variablelist>
195    </refsection>
196
197    <refsection>
198      <title>gnustep PortGroup Sugar</title>
199
200      <para>Portfiles using PortGroup gnustep do not need to define the
201      following variables:</para>
202
203      <variablelist>
204        <varlistentry>
205          <term>categories</term>
206
207          <listitem>
208            <para>Default: gnustep</para>
209          </listitem>
210        </varlistentry>
211
212        <varlistentry>
213          <term>homepage</term>
214
215          <listitem>
216            <para>Default: http://www.gnustep.org/</para>
217          </listitem>
218        </varlistentry>
219
220        <varlistentry>
221          <term>master_sites</term>
222
223          <listitem>
224            <para>Default: gnustep:core</para>
225          </listitem>
226        </varlistentry>
227
228        <varlistentry>
229          <term>depends_lib</term>
230
231          <listitem>
232            <para>Default: gnustep-core</para>
233          </listitem>
234        </varlistentry>
235
236        <varlistentry>
237          <term>use_configure</term>
238
239          <listitem>
240            <para>Default: no</para>
241          </listitem>
242        </varlistentry>
243
244        <varlistentry>
245          <term>configure.env</term>
246
247          <listitem>
248            <para>Default: DYLD_LIBRARY_PATH PATH</para>
249          </listitem>
250        </varlistentry>
251
252        <varlistentry>
253          <term>configure.pre_args-append</term>
254
255          <listitem>
256            <para>Default: CC=gcc-mp-4.2 GNUSTEP_MAKEFILES</para>
257          </listitem>
258        </varlistentry>
259
260        <varlistentry>
261          <term>build.type</term>
262
263          <listitem>
264            <para>Default: gnu</para>
265          </listitem>
266        </varlistentry>
267
268        <varlistentry>
269          <term>build.env</term>
270
271          <listitem>
272            <para>Default: DYLD_LIBRARY_PATH PATH</para>
273          </listitem>
274        </varlistentry>
275
276        <varlistentry>
277          <term>build.pre_args-append</term>
278
279          <listitem>
280            <para>Default: messages=yes</para>
281          </listitem>
282        </varlistentry>
283
284        <varlistentry>
285          <term>destroot.env</term>
286
287          <listitem>
288            <para>Default: DYLD_LIBRARY_PATH PATH</para>
289          </listitem>
290        </varlistentry>
291
292        <varlistentry>
293          <term>destroot.pre_args-append</term>
294
295          <listitem>
296            <para>Default: messages=yes</para>
297          </listitem>
298        </varlistentry>
299      </variablelist>
300    </refsection>
301  </refsection>
302
303  <refsection>
304    <title>PortGroup perl5</title>
305
306    <para>PortGroup perl5 allows for efficient porting of perl modules and
307    other perl open source software.</para>
308
309    <refsection>
310      <title>perl5 PortGroup Specific Keywords</title>
311
312      <para>Portfiles using the perl5 PortGroup allow for port authors to set
313      the following keywords in addition to the general Portfile
314      keywords.</para>
315
316      <variablelist>
317        <varlistentry>
318          <term>perl5.setup</term>
319
320          <listitem>
321            <para>This keyword sets the ${distfile} and ${version}.</para>
322
323            <itemizedlist>
324              <listitem>
325                <para>Type: required</para>
326              </listitem>
327
328              <listitem>
329                <para>Example:</para>
330
331                <programlisting>perl5.setup          Net-Telnet 3.03</programlisting>
332              </listitem>
333            </itemizedlist>
334          </listitem>
335        </varlistentry>
336      </variablelist>
337    </refsection>
338
339    <refsection>
340      <title>perl5 PortGroup Sugar</title>
341
342      <para>Portfiles using PortGroup perl5 do not need to define the
343      following variables:</para>
344
345      <variablelist>
346        <varlistentry>
347          <term>categories</term>
348
349          <listitem>
350            <para>Default: perl</para>
351          </listitem>
352        </varlistentry>
353
354        <varlistentry>
355          <term>master_sites</term>
356
357          <listitem>
358            <para>Default: http://search.cpan.org/dist/${distname}</para>
359          </listitem>
360        </varlistentry>
361
362        <varlistentry>
363          <term>depends_lib</term>
364
365          <listitem>
366            <para>Default: perl5.8</para>
367          </listitem>
368        </varlistentry>
369
370        <varlistentry>
371          <term>use_configure</term>
372
373          <listitem>
374            <para>Default: no</para>
375          </listitem>
376        </varlistentry>
377      </variablelist>
378    </refsection>
379
380    <refsection>
381      <title>perl5 PortGroup Specific Variables</title>
382
383      <para>When the perl5 PortGroup is declared within a Portfile, the
384      following variables are provided during port install.</para>
385
386      <variablelist>
387        <varlistentry>
388          <term>perl5.version</term>
389
390          <listitem>
391            <para>The MacPorts Perl version.</para>
392          </listitem>
393        </varlistentry>
394
395        <varlistentry>
396          <term>perl5.bin</term>
397
398          <listitem>
399            <para>The Perl binary path (ie,
400            <filename>${prefix}/bin/perl</filename>).</para>
401          </listitem>
402        </varlistentry>
403
404        <varlistentry>
405          <term>perl5.lib</term>
406
407          <listitem>
408            <para>Path to the Perl vendor directory.</para>
409          </listitem>
410        </varlistentry>
411
412        <varlistentry>
413          <term>perl5.archlib</term>
414
415          <listitem>
416            <para>Path to the Perl architecture-dependent modules
417            directory.</para>
418          </listitem>
419        </varlistentry>
420      </variablelist>
421    </refsection>
422  </refsection>
423
424  <refsection>
425    <title>PortGroup python &amp; python2x</title>
426
427    <para>PortGroup python allows for efficient porting of python-based open
428    source software.</para>
429
430    <refsection>
431      <title>python PortGroup Specific Variables</title>
432
433      <para>When the python PortGroup is declared within a Portfile, the
434      following variables are provided during port install.</para>
435
436      <variablelist>
437        <varlistentry>
438          <term>python.bin</term>
439
440          <listitem>
441            <para>The MacPorts Python binary location.</para>
442          </listitem>
443        </varlistentry>
444
445        <varlistentry>
446          <term>python.lib</term>
447
448          <listitem>
449            <para>The Python dynamic library and path (ie,
450            <filename>${prefix}/lib/libpython2.x.dylib</filename>).</para>
451          </listitem>
452        </varlistentry>
453
454        <varlistentry>
455          <term>python.include</term>
456
457          <listitem>
458            <para>Path to the Python include directory.</para>
459          </listitem>
460        </varlistentry>
461
462        <varlistentry>
463          <term>python.pkgd</term>
464
465          <listitem>
466            <para>Path to the Python site-packages directory. (ie,
467            <filename>${prefix}/lib/python2.4/site-packages</filename>).</para>
468          </listitem>
469        </varlistentry>
470      </variablelist>
471    </refsection>
472  </refsection>
473
474  <refsection>
475    <title>PortGroup ruby</title>
476
477    <para>PortGroup ruby allows for efficient porting of ruby-based open
478    source software.</para>
479
480    <refsection>
481      <title>ruby PortGroup Specific Variables</title>
482
483      <para>When the ruby PortGroup is declared within a Portfile, the
484      following variables are provided during port install.</para>
485
486      <variablelist>
487        <varlistentry>
488          <term>ruby.version</term>
489
490          <listitem>
491            <para>The MacPorts Ruby version.</para>
492          </listitem>
493        </varlistentry>
494
495        <varlistentry>
496          <term>ruby.bin</term>
497
498          <listitem>
499            <para>The Ruby binary location.</para>
500          </listitem>
501        </varlistentry>
502
503        <varlistentry>
504          <term>ruby.lib</term>
505
506          <listitem>
507            <para>Path to the Ruby vendorlibdir directory (ie,
508            <filename>${prefix}/lib/ruby/vendor_ruby/${ruby.version}</filename>)</para>
509          </listitem>
510        </varlistentry>
511
512        <varlistentry>
513          <term>ruby.arch</term>
514
515          <listitem>
516            <para>The name for the Ruby architecture-dependent directory name
517            (ie, <literal>i686-darwin8.10.1</literal>).</para>
518          </listitem>
519        </varlistentry>
520
521        <varlistentry>
522          <term>ruby.archlib</term>
523
524          <listitem>
525            <para>Path to the Ruby vendor archdir (ie,
526            <filename>${ruby.lib}/${ruby.arch}</filename>).</para>
527          </listitem>
528        </varlistentry>
529      </variablelist>
530    </refsection>
531  </refsection>
532
533  <refsection>
534    <title>PortGroup xcode</title>
535
536    <para>PortGroup xcode allows for efficient porting of Xcode-based
537    opensource software. It handles configuration, build, and destroot phases.
538    It also defines some values for Xcode-based software. A minimum Portfile
539    using the xcode PortGroup class only defines the fetch and the checksum
540    phases.</para>
541
542    <para>Using PortGroup xcode is a way to make your port able to tolerate
543    Xcode version updates because the PortGroup is tested against all
544    supported Mac OS X and Xcode versions.</para>
545
546    <refsection>
547      <title>xcode PortGroup Specific Keywords</title>
548
549      <para>Portfiles using the xcode PortGroup allow for port authors to set
550      the following keywords in addition to the general Portfile
551      keywords.</para>
552
553      <variablelist>
554        <varlistentry>
555          <term>xcode.project</term>
556
557          <listitem>
558            <para>The path relative to ${build.dir} and ${destroot.dir} of the
559            Xcode project. If unset, let xcode tool figure it out. It usually
560            succeeds if there is a single project in the directory.</para>
561
562            <itemizedlist>
563              <listitem>
564                <para>Type: optional</para>
565              </listitem>
566
567              <listitem>
568                <para>Example:</para>
569
570                <programlisting>xcode.project ${name}.xcode</programlisting>
571              </listitem>
572            </itemizedlist>
573          </listitem>
574        </varlistentry>
575
576        <varlistentry>
577          <term>xcode.configuration</term>
578
579          <listitem>
580            <para>Project configuration/buildstyle to use.</para>
581
582            <itemizedlist>
583              <listitem>
584                <para>Type: optional</para>
585              </listitem>
586
587              <listitem>
588                <para>Default: Deployment</para>
589              </listitem>
590
591              <listitem>
592                <para>Example:</para>
593
594                <programlisting>xcode.configuration Main</programlisting>
595              </listitem>
596            </itemizedlist>
597          </listitem>
598        </varlistentry>
599
600        <varlistentry>
601          <term>xcode.target</term>
602
603          <listitem>
604            <para>If present, it overrides build.target and
605            destroot.target.</para>
606
607            <itemizedlist>
608              <listitem>
609                <para>Type: optional</para>
610              </listitem>
611
612              <listitem>
613                <para>Example:</para>
614
615                <programlisting>xcode.target ${name}</programlisting>
616              </listitem>
617            </itemizedlist>
618          </listitem>
619        </varlistentry>
620
621        <varlistentry>
622          <term>xcode.build.settings</term>
623
624          <listitem>
625            <para>Additional settings passed to the xcode build tool during
626            the build phase. These settings should be in the X=Y form.</para>
627
628            <itemizedlist>
629              <listitem>
630                <para>Type: optional</para>
631              </listitem>
632
633              <listitem>
634                <para>Example:</para>
635
636                <programlisting>xcode.build.settings FRAMEWORK_SEARCH_PATHS=${prefix}/Library/Frameworks</programlisting>
637              </listitem>
638            </itemizedlist>
639          </listitem>
640        </varlistentry>
641
642        <varlistentry>
643          <term>xcode.destroot.type</term>
644
645          <listitem>
646            <para>Type of project that will be installed. This tells the xcode
647            PortGroup how to destroot the project. Correct values are
648            application and framework.</para>
649
650            <itemizedlist>
651              <listitem>
652                <para>Type: optional</para>
653              </listitem>
654
655              <listitem>
656                <para>Default: application</para>
657              </listitem>
658
659              <listitem>
660                <para>Example:</para>
661
662                <programlisting>xcode.destroot.type framework</programlisting>
663              </listitem>
664            </itemizedlist>
665          </listitem>
666        </varlistentry>
667
668        <varlistentry>
669          <term>xcode.destroot.path</term>
670
671          <listitem>
672            <para>Where to install the build product.</para>
673
674            <itemizedlist>
675              <listitem>
676                <para>Type: optional</para>
677              </listitem>
678
679              <listitem>
680                <para>Default: <filename>/Library/Frameworks</filename> or
681                <filename>/Applications/MacPorts</filename> depending on
682                xcode.destroot.type.</para>
683              </listitem>
684            </itemizedlist>
685          </listitem>
686        </varlistentry>
687
688        <varlistentry>
689          <term>xcode.destroot.settings</term>
690
691          <listitem>
692            <para>Additional settings passed to the xcode build tool during
693            the destroot phase. These settings should be in the X=Y
694            form.</para>
695
696            <itemizedlist>
697              <listitem>
698                <para>Type: optional</para>
699              </listitem>
700
701              <listitem>
702                <para>Example:</para>
703
704                <programlisting>xcode.destroot.settings SKIP_INSTALL=NO</programlisting>
705              </listitem>
706            </itemizedlist>
707          </listitem>
708        </varlistentry>
709      </variablelist>
710    </refsection>
711
712    <refsection>
713      <title>xcode PortGroup Sugar</title>
714
715      <para>Portfiles using the xcode PortGroup do not need to define the
716      following variables:</para>
717
718      <variablelist>
719        <varlistentry>
720          <term>categories</term>
721
722          <listitem>
723            <para>Default: aqua</para>
724          </listitem>
725        </varlistentry>
726
727        <varlistentry>
728          <term>platforms</term>
729
730          <listitem>
731            <para>Default: macosx</para>
732          </listitem>
733        </varlistentry>
734
735        <varlistentry>
736          <term>use_configure</term>
737
738          <listitem>
739            <para>Default: no</para>
740          </listitem>
741        </varlistentry>
742      </variablelist>
743    </refsection>
744
745    <refsection>
746      <title>Portfile-Phase Keywords Affecting the xcode PortGroup</title>
747
748      <para>The following Portfile phase keywords affect the xcode PortGroup
749      in a unique way. In most cases, you will not need to set any of these
750      keywords in the Portfile. See <citerefentry>
751          <refentrytitle>portfile-phase</refentrytitle>
752
753          <manvolnum>7</manvolnum>
754        </citerefentry></para>
755
756      <variablelist>
757        <varlistentry>
758          <term>build.cmd</term>
759
760          <listitem>
761            <para>Default: <varname>${xcodebuildcmd}</varname>.</para>
762          </listitem>
763        </varlistentry>
764
765        <varlistentry>
766          <term>build.target</term>
767
768          <listitem>
769            <para>Default: ""</para>
770
771            <para>This variable will be ignored if xcode.target is set.</para>
772          </listitem>
773        </varlistentry>
774
775        <varlistentry>
776          <term>build.args</term>
777
778          <listitem>
779            <para>Default: <code>build</code></para>
780          </listitem>
781        </varlistentry>
782
783        <varlistentry>
784          <term>destroot.cmd</term>
785
786          <listitem>
787            <para>Default: <varname>${xcodebuildcmd}</varname></para>
788          </listitem>
789        </varlistentry>
790
791        <varlistentry>
792          <term>destroot.target</term>
793
794          <listitem>
795            <para>Default: ""</para>
796
797            <para>This variable will be ignored if xcode.target is set.</para>
798          </listitem>
799        </varlistentry>
800      </variablelist>
801    </refsection>
802  </refsection>
803
804  <refsection>
805    <title>SEE ALSO</title>
806
807    <para><citerefentry>
808        <refentrytitle>port</refentrytitle>
809
810        <manvolnum>1</manvolnum>
811      </citerefentry>, <citerefentry>
812        <refentrytitle>macports.conf</refentrytitle>
813
814        <manvolnum>5</manvolnum>
815      </citerefentry>, <citerefentry>
816        <refentrytitle>portfile</refentrytitle>
817
818        <manvolnum>7</manvolnum>
819      </citerefentry>, <citerefentry>
820        <refentrytitle>porthier</refentrytitle>
821
822        <manvolnum>7</manvolnum>
823      </citerefentry><citerefentry></citerefentry></para>
824  </refsection>
825
826  <refsection>
827    <title>AUTHORS</title>
828
829    <para>Paul Guyot <email>pguyot@kallisys.net</email></para>
830
831    <para>Yves de Champlain <email>yves@macports.org</email></para>
832  </refsection>
833</refentry>
Note: See TracBrowser for help on using the repository browser.