source: trunk/base/doc/portgroup.7 @ 28464

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

document python30 group code

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 9.7 KB
Line 
1.\" portgroup.7
2.\"
3.\" Copyright (c) 2005 Paul Guyot <pguyot@kallisys.net>
4.\" All rights reserved.
5.\"
6.\" Redistribution and use in source and binary forms, with or without
7.\" modification, are permitted provided that the following conditions
8.\" are met:
9.\" 1. Redistributions of source code must retain the above copyright
10.\"    notice, this list of conditions and the following disclaimer.
11.\" 2. Redistributions in binary form must reproduce the above copyright
12.\"    notice, this list of conditions and the following disclaimer in the
13.\"    documentation and/or other materials provided with the distribution.
14.\" 3. Neither the name of Apple Computer, Inc. nor the names of its
15.\"    contributors may be used to endorse or promote products derived from
16.\"    this software without specific prior written permission.
17.\"
18.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21.\" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
22.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28.\" POSSIBILITY OF SUCH DAMAGE.
29.\"
30.Dd February 5, 2007
31.Dt XCODE 7 "MacPorts"
32.Os
33.Sh NAME
34.Nm PortGroup
35.Nd MacPorts PortGroup command reference
36.Sh SYNOPSIS
37.Nm PortGroup gnustep 1.0
38.Nm PortGroup perl5 1.0
39.Nm PortGroup python 1.0
40.Nm PortGroup python24 1.0
41.Nm PortGroup python25 1.0
42.Nm PortGroup python30 1.0
43.Nm PortGroup ruby 1.0
44.Nm PortGroup xcode 1.0
45.Sh DESCRIPTION
46MacPorts defines the notion of PortGroup classes with the PortGroup command.
47These classes factorize the work for similar ports.  Port maintainers willing to
48use
49.Nm PortGroup
50need to have some notion of Portfiles. See
51.Xr portfile 7
52.Pp
53.Sh XCODE PORTGROUP
54.Nm PortGroup xcode
55is here to easily port Xcode-based opensource software. It handles
56configuration, build and destroot phases. It also defines some values
57for Xcode-based software. A minimum Portfile using the xcode PortGroup class
58only defines the fetch and the checksum phases.
59.Pp
60Using
61.Nm PortGroup xcode
62is a way to make your port more robust to Xcode version updates as the PortGroup
63is tested against all supported Mac OS X and Xcode versions.
64.Sh XCODE PORTGROUP SUGAR
65Portfiles using xcode PortGroup do not need to define the following variables:
66.Bl -tag -width lc
67.It Ic categories
68.Sy Default:
69.Em aqua
70.br
71.It Ic platforms
72.Sy Default:
73.Em macosx
74.br
75.It Ic use_configure
76.Sy Default:
77.Em no
78.El
79.br
80Moreover, Portfiles using
81.Nm PortGroup xcode
82do not need to define any build or destroot phase.  Some options are provided
83for tailoring these phases to what the software requires.
84.Sh XCODE PORTGROUP SPECIFIC VARIABLES
85Portfiles using xcode PortGroup may define the following variables:
86.Bl -tag -width lc
87.It Ic xcode.project
88path (relative to ${build.dir} and ${destroot.dir}) of the Xcode project. If
89unset, let xcode tool figure it out. It usually succeeds if there is a single
90project in the directory.
91.br
92.Sy Type:
93.Em optional
94.br
95.Sy Example:
96.Dl xcode.project ${name}.xcode
97.br
98.It Ic xcode.configuration
99Project configuration/buildstyle to use.
100.br
101.Sy Type:
102.Em optional
103.br
104.Sy Default:
105.Em Deployment
106.br
107.Sy Example:
108.Dl xcode.configuration Main
109.br
110.It Ic xcode.target
111If present, overrides build.target and destroot.target.
112.br
113.Sy Type:
114.Em optional
115.br
116.It Ic xcode.build.settings
117Additional settings passed to the xcode build tool during the build phase.
118These settings should be in the X=Y form.
119.br
120.Sy Type:
121.Em optional
122.br
123.Sy Example:
124.Bd -literal -offset indent -compact
125xcode.build.settings FRAMEWORK_SEARCH_PATHS=${prefix}/Library/Frameworks
126.Ed
127.It Ic xcode.destroot.type
128Type of project that will be installed. This tells Xcode PortGroup how to
129destroot the project. Correct values are application and framework.
130.br
131.Sy Type:
132.Em optional
133.br
134.Sy Default:
135.Em application
136.br
137.Sy Example:
138.Dl xcode.destroot.type framework
139.It Ic xcode.destroot.path
140Where to install the build product.
141.br
142.Sy Type:
143.Em optional
144.br
145.Sy Default:
146.Em /Library/Frameworks
147or
148.Em /Application/MacPorts depending on xcode.destroot.type
149.br
150.It Ic xcode.destroot.settings
151Additional settings passed to the xcode build tool during the destroot phase.
152These settings should be in the X=Y form.
153.br
154.Sy Type:
155.Em optional
156.br
157.Sy Example:
158.Bd -literal -offset indent -compact
159xcode.destroot.settings SKIP_INSTALL=NO
160.Ed
161.El
162.Sh STANDARD PORTFILE VARIABLES AFFECTING XCODE PORTGROUP
163The following standard Portfile variables actually affect
164.Nm xcode PortGroup.
165In most cases, you will not need to set any of these variables in the Portfile.
166.Bl -tag -width lc
167.It Ic destroot
168Where to destroot the project.
169.br
170.It Ic build.cmd
171The command to invoke to build the project.
172.Nm xcode PortGroup
173sets this variable to ${xcodebuildcmd}.
174.br
175.It Ic build.target
176The Xcode target to build.
177.Nm xcode PortGroup
178sets this variable to "", thus building all targets. This variable will be
179ignored if xcode.target is set.
180.br
181.It Ic build.pre_args
182Additional parameters for ${build.cmd}.
183.br
184.Sy Default:
185none
186.br
187.It Ic build.args
188Main parameters for ${build.cmd}.
189.br
190.Sy Default:
191.Em build
192.br
193.It Ic build.post_args
194Additional parameters for ${build.cmd}.
195.br
196.Sy Default:
197none
198.br
199.It Ic build.dir
200Where to build the project from (i.e. where the Xcode project is).
201.br
202.Sy Default:
203${worksrcpath}
204.br
205.It Ic destroot.cmd
206The command to invoke to destroot the project.
207.Nm xcode PortGroup
208sets this variable to xcodebuildcmd.
209.br
210.It Ic destroot.target
211The Xcode target to install.
212.Nm xcode PortGroup
213sets this variable to "", thus installing all targets. This variable will be
214ignored if xcode.target is set.
215.br
216.It Ic destroot.pre_args
217Additional parameters for ${destroot.cmd}.
218.br
219.Sy Default:
220none
221.br
222.It Ic destroot.args
223Main parameters for ${destroot.cmd}.
224.br
225.Sy Default:
226.Em install
227.br
228.It Ic destroot.post_args
229Additional parameters for ${destroot.cmd}.
230.br
231.Sy Default:
232none
233.br
234.It Ic destroot.dir
235Where to destroot the project from (i.e. where the Xcode project is).
236.br
237.Sy Default:
238${worksrcpath}
239.br
240.El
241.Sh GNUSTEP PORTGROUP
242.Nm PortGroup gnustep
243is here to easily port GNUstep-based opensource software using the GNU
244objective-C runtime. It handles configuration, build and destroot phases.
245It also defines some values for GNUstep-based software. A minimum Portfile
246using the gnustep PortGroup class only defines the fetch and the checksum phases.
247.Sh GNUSTEP FILESYSTEM LAYOUTS
248.Nm PortGroup gnustep
249also supports both the traditionnal gnustep file layout and the new fhs file layout.
250However, the ports themselves do not necessarily support both.
251The Portfiles have access to many procedures in dealing with these two layouts :
252.Bl -tag -width lc
253.It Ic set_gnustep_make
254Sets GNUSTEP_MAKEFILES according to the FilesystemLayout
255.br
256.It Ic set_gnustep_env
257Sets DYLD_LIBRARY_PATH and PATH for the gnustep FilesystemLayout
258.br
259.It Ic gnustep_layout
260Returns true (1) if current file layout is gnustep
261.br
262.It Ic set_system_library
263Sets GNUSTEP_SYSTEM_LIBRARY according to the FilesystemLayout
264.br
265.It Ic set_local_library
266Sets GNUSTEP_LOCAL_LIBRARY according to the FilesystemLayout
267.br
268.Pp
269.Sh GNUSTEP PORTGROUP SUGAR
270Portfiles using gnustep PortGroup do not need to define the following variables:
271.Bl -tag -width lc
272.It Ic categories
273.Sy Default:
274.Em gnustep
275.br
276.It Ic homepage
277.Sy Default:
278.Em http://www.gnustep.org/
279.br
280.It Ic master_sites
281.Sy Default:
282.Em gnustep:core
283.br
284.It Ic depends_lib
285.Sy Default:
286.Em gnustep-core
287.br
288.It Ic use_configure
289.Sy Default:
290.Em no
291.It Ic configure.env
292.Sy Default:
293.Em DYLD_LIBRARY_PATH PATH
294.It Ic configure.pre_args-append
295.Sy Default:
296.Em CC=gcc-mp-4.2 GNUSTEP_MAKEFILES
297.br
298.It Ic build.type
299.Sy Default:
300.Em gnu
301.br
302.It Ic build.env
303.Sy Default:
304.Em DYLD_LIBRARY_PATH PATH
305.It Ic build.pre_args-append
306.Sy Default:
307.Em messages=yes
308.br
309.It Ic destroot.env
310.Sy Default:
311.Em DYLD_LIBRARY_PATH PATH
312.It Ic destroot.pre_args-append
313.Sy Default:
314.Em messages=yes
315.br
316.br
317.El
318.br
319Moreover, Portfiles using
320.Nm PortGroup gnustep
321do not need to define any build or destroot phase.  Some options are provided
322for tailoring these phases to what the software requires.  A mechanism is also
323provided to ease the patch process.
324.Sh GNUSTEP PORTGROUP SPECIFIC VARIABLES
325Portfiles using
326.Nm gnustep PortGroup
327may define the following variables:
328.Bl -tag -width lc
329.It Ic gnustep.post_flags
330an associative array which specifies the sub-directories relative to ${worksrcpath}
331and the SHARED_LD_POSTFLAGS variables to be added to GNUmakefile.preamble in those
332sub-directories.  This helps making the patching process easier on Darwin.
333.br
334.Sy Type:
335.Em optional
336.br
337.Sy Example:
338.Dl platform darwin {
339.Dl             array set gnustep.post_flags {
340.Dl                     BundleSubDir  """-lfoo -lbar""
341.Dl             }
342.Dl }
343.br
344.It Ic gnustep.cc
345.br
346.Sy Type:
347.Em optional
348.br
349.Sy Default:
350.Em gcc-mp-4.2
351.br
352.Sy Example:
353.Dl gnustep.cc gcc-mp-4.3
354.br
355.It Ic variant with_docs
356Many GNUstep packages include a Documentation sub-directory that is not
357built by default.  Enabling this variant builds and installs the included
358documentation.
359.br
360.Sy Type:
361.Em optional
362.br
363.Sy Example:
364.Dl port install gnustep-gui +with_docs
365.br
366.El
367.Sh SEE ALSO
368.Xr port 1 ,
369.Xr macports.conf 5 ,
370.Xr portfile 7 ,
371.Xr portstyle 7 ,
372.Xr porthier 7
373.Sh AUTHORS
374.An "Paul Guyot" Aq pguyot@kallisys.net
375.An "Yves de Champlain" Aq yves@macports.org
Note: See TracBrowser for help on using the repository browser.