source: branches/gsoc09-logging/base/doc/portgroup.7 @ 140300

Last change on this file since 140300 was 52218, checked in by enl@…, 11 years ago

Merge from trunk

  • 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 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.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.El
269.Pp
270.Sh GNUSTEP PORTGROUP SUGAR
271Portfiles using gnustep PortGroup do not need to define the following variables:
272.Bl -tag -width lc
273.It Ic categories
274.Sy Default:
275.Em gnustep
276.br
277.It Ic homepage
278.Sy Default:
279.Em http://www.gnustep.org/
280.br
281.It Ic master_sites
282.Sy Default:
283.Em gnustep:core
284.br
285.It Ic depends_lib
286.Sy Default:
287.Em gnustep-core
288.br
289.It Ic use_configure
290.Sy Default:
291.Em no
292.It Ic configure.env
293.Sy Default:
294.Em DYLD_LIBRARY_PATH PATH
295.It Ic configure.pre_args-append
296.Sy Default:
297.Em CC=gcc-mp-4.2 GNUSTEP_MAKEFILES
298.br
299.It Ic build.type
300.Sy Default:
301.Em gnu
302.br
303.It Ic build.env
304.Sy Default:
305.Em DYLD_LIBRARY_PATH PATH
306.It Ic build.pre_args-append
307.Sy Default:
308.Em messages=yes
309.br
310.It Ic destroot.env
311.Sy Default:
312.Em DYLD_LIBRARY_PATH PATH
313.It Ic destroot.pre_args-append
314.Sy Default:
315.Em messages=yes
316.br
317.br
318.El
319.br
320Moreover, Portfiles using
321.Nm PortGroup gnustep
322do not need to define any build or destroot phase.  Some options are provided
323for tailoring these phases to what the software requires.  A mechanism is also
324provided to ease the patch process.
325.Sh GNUSTEP PORTGROUP SPECIFIC VARIABLES
326Portfiles using
327.Nm gnustep PortGroup
328may define the following variables:
329.Bl -tag -width lc
330.It Ic gnustep.post_flags
331an associative array which specifies the sub-directories relative to ${worksrcpath}
332and the SHARED_LD_POSTFLAGS variables to be added to GNUmakefile.preamble in those
333sub-directories.  This helps making the patching process easier on Darwin.
334.br
335.Sy Type:
336.Em optional
337.br
338.Sy Example:
339.Dl platform darwin {
340.Dl             array set gnustep.post_flags {
341.Dl                     BundleSubDir  """-lfoo -lbar""
342.Dl             }
343.Dl }
344.br
345.It Ic gnustep.cc
346.br
347.Sy Type:
348.Em optional
349.br
350.Sy Default:
351.Em gcc-mp-4.2
352.br
353.Sy Example:
354.Dl gnustep.cc gcc-mp-4.3
355.br
356.It Ic variant with_docs
357Many GNUstep packages include a Documentation sub-directory that is not
358built by default.  Enabling this variant builds and installs the included
359documentation.
360.br
361.Sy Type:
362.Em optional
363.br
364.Sy Example:
365.Dl port install gnustep-gui +with_docs
366.br
367.El
368.Sh SEE ALSO
369.Xr port 1 ,
370.Xr macports.conf 5 ,
371.Xr portfile 7 ,
372.Xr portstyle 7 ,
373.Xr porthier 7
374.Sh AUTHORS
375.An "Paul Guyot" Aq pguyot@kallisys.net
376.An "Yves de Champlain" Aq yves@macports.org
Note: See TracBrowser for help on using the repository browser.