Ticket #11331: portgroup.7

File portgroup.7, 9.0 KB (added by yves@…, 17 years ago)

portgroup.7 -- thanks for reviewing a bit

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 August 31, 2005
31.Dt XCODE 7 "Darwinports"
32.Os
33.Sh NAME
34.Nm PortGroup
35.Nd Darwinports 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 ruby 1.0
42.Nm PortGroup xcode 1.0
43.Sh DESCRIPTION
44Darwinports defines the notion of PortGroup classes with the PortGroup command.
45These classes factorize the work for similar ports.  Port maintainers willing to
46use
47.Nm PortGroup
48need to have some notion of Portfiles. See
49.Xr portfile 7
50.Pp
51.Sh XCODE PORTGROUP
52.Nm PortGroup xcode
53is here to easily port Xcode-based opensource software. It handles
54configuration, build and destroot phases. It also defines some values
55for Xcode-based software. A minimum Portfile using the xcode PortGroup class
56only defines the fetch and the checksum phases.
57.Pp
58Using
59.Nm PortGroup xcode
60is a way to make your port more robust to Xcode version updates as the PortGroup
61is tested against all supported MacOS X and Xcode versions.
62.Sh XCODE PORTGROUP SUGAR
63Portfiles using xcode PortGroup do not need to define the following variables:
64.Bl -tag -width lc
65.It Ic categories
66.Sy Default:
67.Em aqua
68.br
69.It Ic platforms
70.Sy Default:
71.Em macosx
72.br
73.It Ic use_configure
74.Sy Default:
75.Em no
76.El
77.br
78Moreover, Portfiles using
79.Nm PortGroup xcode
80do not need to define any build or destroot phase.  Some options are provided
81for tailoring these phases to what the software requires.
82.Sh XCODE PORTGROUP SPECIFIC VARIABLES
83Portfiles using xcode PortGroup may define the following variables:
84.Bl -tag -width lc
85.It Ic xcode.project
86path (relative to ${build.dir} and ${destroot.dir}) of the Xcode project. If
87unset, let xcode tool figure it out. It usually succeeds if there is a single
88project in the directory.
89.br
90.Sy Type:
91.Em optional
92.br
93.Sy Example:
94.Dl xcode.project ${name}.xcode
95.br
96.It Ic xcode.configuration
97Project configuration/buildstyle to use.
98.br
99.Sy Type:
100.Em optional
101.br
102.Sy Default:
103.Em Deployment
104.br
105.Sy Example:
106.Dl xcode.configuration Main
107.br
108.It Ic xcode.target
109If present, overrides build.target and destroot.target.
110.br
111.Sy Type:
112.Em optional
113.br
114.It Ic xcode.build.settings
115Additional settings passed to the xcode build tool during the build phase.
116These settings should be in the X=Y form.
117.br
118.Sy Type:
119.Em optional
120.br
121.Sy Example:
122.Bd -literal -offset indent -compact
123xcode.build.settings FRAMEWORK_SEARCH_PATHS=${prefix}/Library/Frameworks
124.Ed
125.It Ic xcode.destroot.type
126Type of project that will be installed. This tells Xcode PortGroup how to
127destroot the project. Correct values are application and framework.
128.br
129.Sy Type:
130.Em optional
131.br
132.Sy Default:
133.Em application
134.br
135.Sy Example:
136.Dl xcode.destroot.type framework
137.It Ic xcode.destroot.path
138Where to install the build product.
139.br
140.Sy Type:
141.Em optional
142.br
143.Sy Default:
144.Em /Library/Frameworks
145or
146.Em /Application/DarwinPorts depending on xcode.destroot.type
147.br
148.It Ic xcode.destroot.settings
149Additional settings passed to the xcode build tool during the destroot phase.
150These settings should be in the X=Y form.
151.br
152.Sy Type:
153.Em optional
154.br
155.Sy Example:
156.Bd -literal -offset indent -compact
157xcode.destroot.settings SKIP_INSTALL=NO
158.Ed
159.El
160.Sh STANDARD PORTFILE VARIABLES AFFECTING XCODE PORTGROUP
161The following standard Portfile variables actually affect
162.Nm xcode PortGroup.
163In most cases, you will not need to set any of these variables in the Portfile.
164.Bl -tag -width lc
165.It Ic destroot
166Where to destroot the project.
167.br
168.It Ic build.cmd
169The command to invoke to build the project.
170.Nm xcode PortGroup
171sets this variable to ${xcodebuildcmd}.
172.br
173.It Ic build.target
174The Xcode target to build.
175.Nm xcode PortGroup
176sets this variable to "", thus building all targets. This variable will be
177ignored if xcode.target is set.
178.br
179.It Ic build.pre_args
180Additional parameters for ${build.cmd}.
181.br
182.Sy Default:
183none
184.br
185.It Ic build.args
186Main parameters for ${build.cmd}.
187.br
188.Sy Default:
189.Em build
190.br
191.It Ic build.post_args
192Additional parameters for ${build.cmd}.
193.br
194.Sy Default:
195none
196.br
197.It Ic build.dir
198Where to build the project from (i.e. where the Xcode project is).
199.br
200.Sy Default:
201${worksrcpath}
202.br
203.It Ic destroot.cmd
204The command to invoke to destroot the project.
205.Nm xcode PortGroup
206sets this variable to xcodebuildcmd.
207.br
208.It Ic destroot.target
209The Xcode target to install.
210.Nm xcode PortGroup
211sets this variable to "", thus installing all targets. This variable will be
212ignored if xcode.target is set.
213.br
214.It Ic destroot.pre_args
215Additional parameters for ${destroot.cmd}.
216.br
217.Sy Default:
218none
219.br
220.It Ic destroot.args
221Main parameters for ${destroot.cmd}.
222.br
223.Sy Default:
224.Em install
225.br
226.It Ic destroot.post_args
227Additional parameters for ${destroot.cmd}.
228.br
229.Sy Default:
230none
231.br
232.It Ic destroot.dir
233Where to destroot the project from (i.e. where the Xcode project is).
234.br
235.Sy Default:
236${worksrcpath}
237.br
238.Sh GNUSTEP PORTGROUP
239.Nm PortGroup gnustep
240is here to easily port GNUstep-based opensource software using the GNU
241objective-C runtime. It handles configuration, build and destroot phases.
242It also defines some values for GNUstep-based software. A minimum Portfile
243using the gnustep PortGroup class only defines the fetch and the checksum phases.
244.Pp
245.Sh GNUSTEP PORTGROUP SUGAR
246Portfiles using gnustep PortGroup do not need to define the following variables:
247.Bl -tag -width lc
248.It Ic categories
249.Sy Default:
250.Em gnustep
251.br
252.It Ic homepage
253.Sy Default:
254.Em http://www.gnustep.org/
255.br
256.It Ic master_sites
257.Sy Default:
258.Em gnustep:core
259.br
260.It Ic depends_build
261.Sy Default:
262.Em port:gnustep-make
263.br
264.It Ic depends_lib
265.Sy Default:
266.Em gnustep-back
267.br
268.It Ic use_configure
269.Sy Default:
270.Em no
271.It Ic configure.args
272.Sy Default:
273.Em CC=gcc-dp-4.1
274.br
275.It Ic build.type
276.Sy Default:
277.Em gnu
278.br
279.It Ic build.args
280.Sy Default:
281.Em messages=yes
282.br
283.It Ic destroot.args
284.Sy Default:
285.Em messages=yes
286.br
287.It Ic destroot.destdir
288.Sy Default:
289.Em GNUSTEP_INSTALLATION_DIR=${destroot}${prefix}/GNUstep/$gnustep.domain
290.br
291.br
292.El
293.br
294Moreover, Portfiles using
295.Nm PortGroup gnustep
296do not need to define any build or destroot phase.  Some options are provided
297for tailoring these phases to what the software requires.  A mechanism is also
298provided to ease the patch process.
299.Sh GNUSTEP PORTGROUP SPECIFIC VARIABLES
300Portfiles using
301.Nm gnustep PortGroup
302may define the following variables:
303.Bl -tag -width lc
304.It Ic gnustep.post_flags
305an associative array which specifies the sub-directories relative to ${worksrcpath}
306and the SHARED_LD_POSTFLAGS variables to be added to GNUmakefile.preamble in those
307sub-directories.  This helps making the patching process easier on Darwin.
308.br
309.Sy Type:
310.Em optional
311.br
312.Sy Example:
313.Dl platform darwin {
314.Dl             array set gnustep.post_flags {
315.Dl                     BundleSubDir  """-lfoo -lbar""
316.Dl             }
317.Dl }
318.br
319.It Ic gnustep.domain
320can be System or Local.  It is usually guessed by the
321.Nm gnustep PortGroup
322but it is sometimes necessary to force the installation directory. 
323.br
324.Sy Type:
325.Em optional
326.br
327.Sy Default:
328.Em Local
329.br
330.Sy Example:
331.Dl gnustep.domain System
332.br
333.It Ic variant with_docs
334Many GNUstep packages include a Documentation sub-directory that is not
335built by default.  Enabling this variant builds and installs the included
336documentation.
337.br
338.Sy Type:
339.Em optional
340.br
341.Sy Example:
342.Dl port install gnustep-gui +with_docs
343.br
344.El
345.El
346.Sh SEE ALSO
347.Xr port 1 ,
348.Xr ports.conf 5 ,
349.Xr portfile 7 ,
350.Xr portstyle 7 ,
351.Xr porthier 7
352.Sh AUTHORS
353.An "Paul Guyot" Aq pguyot@kallisys.net