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

Last change on this file since 51890 was 51890, checked in by toby@…, 11 years ago

Remove docs for xcode.universal.settings, also fix minor markup issue

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 9.9 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 python24 1.0
40.Nm PortGroup python25 1.0
41.Nm PortGroup python30 1.0
42.Nm PortGroup ruby 1.0
43.Nm PortGroup xcode 1.0
44.Sh DESCRIPTION
45MacPorts defines the notion of PortGroup classes with the PortGroup command.
46These classes factorize the work for similar ports.  Port maintainers willing to
47use
48.Nm PortGroup
49need to have some notion of Portfiles. See
50.Xr portfile 7
51.Pp
52.Sh XCODE PORTGROUP
53.Nm PortGroup xcode
54is here to easily port Xcode-based opensource software. It handles
55configuration, build and destroot phases. It also defines some values
56for Xcode-based software. A minimum Portfile using the xcode PortGroup class
57only defines the fetch and the checksum phases.
58.Pp
59Using
60.Nm PortGroup xcode
61is a way to make your port more robust to Xcode version updates as the PortGroup
62is tested against all supported Mac OS X and Xcode versions.
63.Sh XCODE PORTGROUP SUGAR
64Portfiles using xcode PortGroup do not need to define the following variables:
65.Bl -tag -width lc
66.It Ic categories
67.Sy Default:
68.Em aqua
69.br
70.It Ic platforms
71.Sy Default:
72.Em macosx
73.br
74.It Ic use_configure
75.Sy Default:
76.Em no
77.El
78.br
79Moreover, Portfiles using
80.Nm PortGroup xcode
81do not need to define any build or destroot phase.  Some options are provided
82for tailoring these phases to what the software requires.
83.Sh XCODE PORTGROUP SPECIFIC VARIABLES
84Portfiles using xcode PortGroup may define the following variables:
85.Bl -tag -width lc
86.It Ic xcode.project
87path (relative to ${build.dir} and ${destroot.dir}) of the Xcode project. If
88unset, let xcode tool figure it out. It usually succeeds if there is a single
89project in the directory.
90.br
91.Sy Type:
92.Em optional
93.br
94.Sy Example:
95.Dl xcode.project ${name}.xcode
96.br
97.It Ic xcode.configuration
98Project configuration/buildstyle to use.
99.br
100.Sy Type:
101.Em optional
102.br
103.Sy Default:
104.Em Deployment
105.br
106.Sy Example:
107.Dl xcode.configuration Main
108.br
109.It Ic xcode.target
110If present, overrides build.target and destroot.target.
111.br
112.Sy Type:
113.Em optional
114.br
115.It Ic xcode.build.settings
116Additional settings passed to the xcode build tool during the build phase.
117These settings should be in the X=Y form.
118.br
119.Sy Type:
120.Em optional
121.br
122.Sy Example:
123.Bd -literal -offset indent -compact
124xcode.build.settings FRAMEWORK_SEARCH_PATHS=${prefix}/Library/Frameworks
125.Ed
126.It Ic xcode.destroot.type
127Type of project that will be installed. This tells Xcode PortGroup how to
128destroot the project. Correct values are application and framework.
129.br
130.Sy Type:
131.Em optional
132.br
133.Sy Default:
134.Em application
135.br
136.Sy Example:
137.Dl xcode.destroot.type framework
138.br
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 ${prefix}/Library/Frameworks
147or
148.Em /Applications/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.It Ic xcode.universal.sdk
162SDK to use when the +universal variant is selected. The argument may be an absolute path to an SDK, or the canonical name of an SDK.
163.br
164.Sy Type:
165.Em optional
166.br
167.Sy Default:
168.Bd -literal -offset indent -compact
169${universal_sysroot}
170.Ed
171.El
172.Sh STANDARD PORTFILE VARIABLES AFFECTING XCODE PORTGROUP
173The following standard Portfile variables actually affect
174.Nm xcode PortGroup.
175In most cases, you will not need to set any of these variables in the Portfile.
176.Bl -tag -width lc
177.It Ic destroot
178Where to destroot the project.
179.br
180.It Ic build.cmd
181The command to invoke to build the project.
182.Nm xcode PortGroup
183sets this variable to ${xcodebuildcmd}.
184.br
185.It Ic build.target
186The Xcode target to build.
187.Nm xcode PortGroup
188sets this variable to "", thus building all targets. This variable will be
189ignored if xcode.target is set.
190.br
191.It Ic build.pre_args
192Additional parameters for ${build.cmd}.
193.br
194.Sy Default:
195none
196.br
197.It Ic build.args
198Main parameters for ${build.cmd}.
199.br
200.Sy Default:
201.Em build
202.br
203.It Ic build.post_args
204Additional parameters for ${build.cmd}.
205.br
206.Sy Default:
207none
208.br
209.It Ic build.dir
210Where to build the project from (i.e. where the Xcode project is).
211.br
212.Sy Default:
213${worksrcpath}
214.br
215.It Ic destroot.cmd
216The command to invoke to destroot the project.
217.Nm xcode PortGroup
218sets this variable to xcodebuildcmd.
219.br
220.It Ic destroot.target
221The Xcode target to install.
222.Nm xcode PortGroup
223sets this variable to "", thus installing all targets. This variable will be
224ignored if xcode.target is set.
225.br
226.It Ic destroot.pre_args
227Additional parameters for ${destroot.cmd}.
228.br
229.Sy Default:
230none
231.br
232.It Ic destroot.args
233Main parameters for ${destroot.cmd}.
234.br
235.Sy Default:
236.Em install
237.br
238.It Ic destroot.post_args
239Additional parameters for ${destroot.cmd}.
240.br
241.Sy Default:
242none
243.br
244.It Ic destroot.dir
245Where to destroot the project from (i.e. where the Xcode project is).
246.br
247.Sy Default:
248${worksrcpath}
249.br
250.El
251.Sh GNUSTEP PORTGROUP
252.Nm PortGroup gnustep
253is here to easily port GNUstep-based opensource software using the GNU
254objective-C runtime. It handles configuration, build and destroot phases.
255It also defines some values for GNUstep-based software. A minimum Portfile
256using the gnustep PortGroup class only defines the fetch and the checksum phases.
257.Sh GNUSTEP FILESYSTEM LAYOUTS
258.Nm PortGroup gnustep
259also supports both the traditionnal gnustep file layout and the new fhs file layout.
260However, the ports themselves do not necessarily support both.
261The Portfiles have access to many procedures in dealing with these two layouts :
262.Bl -tag -width lc
263.It Ic set_gnustep_make
264Sets GNUSTEP_MAKEFILES according to the FilesystemLayout
265.br
266.It Ic set_gnustep_env
267Sets DYLD_LIBRARY_PATH and PATH for the gnustep FilesystemLayout
268.br
269.It Ic gnustep_layout
270Returns true (1) if current file layout is gnustep
271.br
272.It Ic set_system_library
273Sets GNUSTEP_SYSTEM_LIBRARY according to the FilesystemLayout
274.br
275.It Ic set_local_library
276Sets GNUSTEP_LOCAL_LIBRARY according to the FilesystemLayout
277.br
278.El
279.Pp
280.Sh GNUSTEP PORTGROUP SUGAR
281Portfiles using gnustep PortGroup do not need to define the following variables:
282.Bl -tag -width lc
283.It Ic categories
284.Sy Default:
285.Em gnustep
286.br
287.It Ic homepage
288.Sy Default:
289.Em http://www.gnustep.org/
290.br
291.It Ic master_sites
292.Sy Default:
293.Em gnustep:core
294.br
295.It Ic depends_lib
296.Sy Default:
297.Em gnustep-core
298.br
299.It Ic use_configure
300.Sy Default:
301.Em no
302.It Ic configure.env
303.Sy Default:
304.Em DYLD_LIBRARY_PATH PATH
305.It Ic configure.pre_args-append
306.Sy Default:
307.Em CC=gcc-mp-4.2 GNUSTEP_MAKEFILES
308.br
309.It Ic build.type
310.Sy Default:
311.Em gnu
312.br
313.It Ic build.env
314.Sy Default:
315.Em DYLD_LIBRARY_PATH PATH
316.It Ic build.pre_args-append
317.Sy Default:
318.Em messages=yes
319.br
320.It Ic destroot.env
321.Sy Default:
322.Em DYLD_LIBRARY_PATH PATH
323.It Ic destroot.pre_args-append
324.Sy Default:
325.Em messages=yes
326.br
327.br
328.El
329.br
330Moreover, Portfiles using
331.Nm PortGroup gnustep
332do not need to define any build or destroot phase.  Some options are provided
333for tailoring these phases to what the software requires.  A mechanism is also
334provided to ease the patch process.
335.Sh GNUSTEP PORTGROUP SPECIFIC VARIABLES
336Portfiles using
337.Nm gnustep PortGroup
338may define the following variables:
339.Bl -tag -width lc
340.It Ic gnustep.post_flags
341an associative array which specifies the sub-directories relative to ${worksrcpath}
342and the SHARED_LD_POSTFLAGS variables to be added to GNUmakefile.preamble in those
343sub-directories.  This helps making the patching process easier on Darwin.
344.br
345.Sy Type:
346.Em optional
347.br
348.Sy Example:
349.Dl platform darwin {
350.Dl             array set gnustep.post_flags {
351.Dl                     BundleSubDir  """-lfoo -lbar""
352.Dl             }
353.Dl }
354.br
355.It Ic gnustep.cc
356.br
357.Sy Type:
358.Em optional
359.br
360.Sy Default:
361.Em gcc-mp-4.2
362.br
363.Sy Example:
364.Dl gnustep.cc gcc-mp-4.3
365.br
366.It Ic variant with_docs
367Many GNUstep packages include a Documentation sub-directory that is not
368built by default.  Enabling this variant builds and installs the included
369documentation.
370.br
371.Sy Type:
372.Em optional
373.br
374.Sy Example:
375.Dl port install gnustep-gui +with_docs
376.br
377.El
378.Sh SEE ALSO
379.Xr port 1 ,
380.Xr macports.conf 5 ,
381.Xr portfile 7 ,
382.Xr portstyle 7 ,
383.Xr porthier 7
384.Sh AUTHORS
385.An "Paul Guyot" Aq pguyot@kallisys.net
386.An "Yves de Champlain" Aq yves@macports.org
Note: See TracBrowser for help on using the repository browser.