xref: /openbsd-src/share/man/man5/port-modules.5 (revision 49a76b29fa802b9324308924fa603e518b414915)
1*49a76b29Sbentley.\"	$OpenBSD: port-modules.5,v 1.270 2024/07/11 12:55:33 bentley Exp $
2d923b0aeSespie.\"
3d923b0aeSespie.\" Copyright (c) 2008 Marc Espie
4d923b0aeSespie.\"
5d923b0aeSespie.\" All rights reserved.
6d923b0aeSespie.\"
7d923b0aeSespie.\" Redistribution and use in source and binary forms, with or without
8d923b0aeSespie.\" modification, are permitted provided that the following conditions
9d923b0aeSespie.\" are met:
10d923b0aeSespie.\" 1. Redistributions of source code must retain the above copyright
11d923b0aeSespie.\"    notice, this list of conditions and the following disclaimer.
12d923b0aeSespie.\" 2. Redistributions in binary form must reproduce the above copyright
13d923b0aeSespie.\"    notice, this list of conditions and the following disclaimer in the
14d923b0aeSespie.\"    documentation and/or other materials provided with the distribution.
15d923b0aeSespie.\"
16d923b0aeSespie.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
17d923b0aeSespie.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18d923b0aeSespie.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19d923b0aeSespie.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
20d923b0aeSespie.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21d923b0aeSespie.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22d923b0aeSespie.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23d923b0aeSespie.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24d923b0aeSespie.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25d923b0aeSespie.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26d923b0aeSespie.\"
27*49a76b29Sbentley.Dd $Mdocdate: July 11 2024 $
28d923b0aeSespie.Dt PORT-MODULES 5
29d923b0aeSespie.Os
30d923b0aeSespie.Sh NAME
31d923b0aeSespie.Nm port-modules
3282e83c76Sespie.Nd documentation and conventions used in port modules
33d923b0aeSespie.Sh DESCRIPTION
34d923b0aeSespieThe
35d923b0aeSespie.Ox
36d923b0aeSespiePorts framework is based on a gigantic makefile named
37d923b0aeSespie.Xr bsd.port.mk 5 .
38d923b0aeSespie.Pp
39d923b0aeSespieIn order to curb unwieldy growth, parts of the framework
40d923b0aeSespiethat are not always needed have been set apart in optional
41d923b0aeSespiefiles called
42d923b0aeSespie.Nm port modules ,
43d923b0aeSespiewhich are retrieved as needed through the
44d923b0aeSespie.Ev MODULES
45d923b0aeSespievariable of
46d923b0aeSespie.Xr bsd.port.mk 5 .
47d923b0aeSespie.Pp
48d923b0aeSespieSome of these modules correspond to basic mechanisms which are not
49d923b0aeSespiealways needed, such as GNU autoconf, or perl5.
50d923b0aeSespie.Pp
5119847f2eSespieFor convenience, setting
5219847f2eSespie.Ev CONFIGURE_STYLE
5319847f2eSespiein a port's main Makefile is enough to get perl5 or autoconf support, but
5419847f2eSespie.Ar gnu ,
5519847f2eSespie.Ar imake
5619847f2eSespieand
5719847f2eSespie.Ar perl5
5819847f2eSespieare actually modules, and there is some glue in
5919847f2eSespie.Xr bsd.port.mk 5
6019847f2eSespiethat magically adds the required module in that case.
6119847f2eSespieThis doesn't work when parsing modules.
6219847f2eSespieFor instance, if you set
6319847f2eSespie.Li CONFIGURE_STYLE=gnu
6419847f2eSespiein a module, you also need to
6519847f2eSespie.Li MODULES += gnu .
6619847f2eSespie.Pp
67d923b0aeSespieOther modules correspond to shortcuts for using some other ports as
687d0c721bSnaddydependencies without needing to hardcode too much, such as
69d923b0aeSespiethe qt ports.
70d923b0aeSespie.Sh THE MODULES LOOK-UP MECHANISM
71d923b0aeSespieThe variable
72d923b0aeSespie.Ev MODULES
73d923b0aeSespieshould contain a list of module names.
74d923b0aeSespieSome core modules are a single word, all other modules should be
75d923b0aeSespie${PKGPATH}.
76d923b0aeSespieIf the module is
77d923b0aeSespie.Pa some/dir/portname ,
78d923b0aeSespiethe ports framework will look for a file named
799111c1ceSespie.Pa ${PORTSDIR}/some/dir/portname/portname.port.mk
80d923b0aeSespieand include it.
81d923b0aeSespie.Pp
82d923b0aeSespieMost modules should conform to this syntax.
83d923b0aeSespieThe historic practice of having a redirection file directly under
84d923b0aeSespie.Pa ${PORTSDIR}/infrastructure/mk
85d923b0aeSespieis deprecated for new modules.
86d923b0aeSespie.Pp
87d923b0aeSespieModules may refer to each other.
88d923b0aeSespieThe modules mechanism has specific recursion handling such that
89d923b0aeSespieadding
90d923b0aeSespie.Li MODULES += foo/bar
91d923b0aeSespieto a module will work as expected.
92d923b0aeSespie.Sh NAMING CONVENTIONS
93d923b0aeSespieSince there is no actual scope in makefiles, everything defined within
94d923b0aeSespiea module will be global to the ports framework, and thus may interfere
95d923b0aeSespiewith other ports.
96d923b0aeSespie.Pp
97d923b0aeSespieAs far as possible, all variables and targets belonging to a module named
98d923b0aeSespie.Pa some/dir/foo
99d923b0aeSespieshould be named
100d923b0aeSespie.Ev MODFOO_*
101d923b0aeSespieand
102d923b0aeSespie.Ar modfoo_* .
103d923b0aeSespie.Pp
104d923b0aeSespieFollowing the same conventions as
105d923b0aeSespie.Xr bsd.port.mk 5 ,
106d923b0aeSespieinternal variables and targets not intended for user consumption should be
107d923b0aeSespienamed
108d923b0aeSespie.Ev _MODFOO_*
109d923b0aeSespieand
110d923b0aeSespie.Ar _modfoo_* .
111d923b0aeSespie.Pp
112d923b0aeSespieFor instance, if a module wants some value to be available for the rest
113d923b0aeSespieof the world, it should define
114d923b0aeSespie.Ev MODFOO_VARNAME ,
115d923b0aeSespiewith a name matching the basic infrastructure as far as possible.
116d923b0aeSespieThat is, a port that defines specific dependencies will usually
117d923b0aeSespiedefine
118d923b0aeSespie.Ev MODFOO_WANTLIB ,
119d923b0aeSespie.Ev MODFOO_LIB_DEPENDS ,
120d923b0aeSespieand
121d923b0aeSespie.Ev MODFOO_RUN_DEPENDS ,
122d923b0aeSespieas appropriate.
123d923b0aeSespie.Pp
124d923b0aeSespieAs an exception to the naming mechanism, some ports have several distinct
125d923b0aeSespieversions in the ports tree, say
1269486d303Srsadowski.Pa x11/qt5
127d923b0aeSespieand
1289486d303Srsadowski.Pa x11/qt6 .
129d923b0aeSespieInstead of using the namespace
1309486d303Srsadowski.Ev MODQT5* ,
131d923b0aeSespievariables will usually drop the version suffix and be simply called
132d923b0aeSespie.Ev MODQT_*
133d923b0aeSespieso that a port using the module can be switched from version to version
134d923b0aeSespiewithout needing to change everything.
135d923b0aeSespie.Pp
136d923b0aeSespieIt is highly desirable to define names in both namespaces for such ports,
137d923b0aeSespiefor example to define both
1385f0edf1dStracey.Ev MODQT4_LIB_DEPENDS
139d923b0aeSespieand
140d923b0aeSespie.Ev MODQT_LIB_DEPENDS .
141d923b0aeSespieNormal client ports will use
142d923b0aeSespie.Ev MODQT_LIB_DEPENDS ,
143d923b0aeSespiebut a port may exceptionally import both modules with
1449486d303Srsadowski.Li MODULES += x11/qt5 x11/qt6
1459486d303Srsadowskiand differentiate between qt5 and qt6 needs with
1469486d303Srsadowski.Ev MODQT5_LIB_DEPENDS
147d923b0aeSespieand
1489486d303Srsadowski.Ev MODQT6_LIB_DEPENDS .
149d923b0aeSespieSee
150d923b0aeSespie.Pa print/poppler
151d923b0aeSespiefor an example.
152d923b0aeSespie.Sh OVERRIDING TARGET BEHAVIOR
153d923b0aeSespieThe main framework contains several hooks that allow ports to override
154d923b0aeSespienormal behavior.
155d923b0aeSespieThis evolved as an ad-hoc framework, where only hooks that turned out
156d923b0aeSespieto be needed were added.
157d923b0aeSespieIf several modules define the same hook, hook behaviors will be
158d923b0aeSespieinvoked in sequence.
159d923b0aeSespie.Bl -tag -width do-configure
160fcbc540cSlandry.It Cm extract
161fcbc540cSlandryThere is a
162fcbc540cSlandry.Cm post-extract
163fcbc540cSlandryhook that can be activated by defining
164fcbc540cSlandry.Ev MODFOO_post-extract .
165fcbc540cSlandryIt will be run right after
166fcbc540cSlandry.Cm post-extract .
167919882e8Sschwarze.It Cm patch
168d923b0aeSespieThere is a
169919882e8Sschwarze.Cm post-patch
170d923b0aeSespiehook that can be activated by defining
171d923b0aeSespie.Ev MODFOO_post-patch .
172d923b0aeSespieIt will be run right after
173fe4bf909Sespie.Cm post-patch .
174fe4bf909Sespie.It Cm gen
175fe4bf909SespieThere is a
176fe4bf909Sespie.Cm gen
177fe4bf909Sespiehook that can be activated by defining
178fe4bf909Sespie.Ev MODFOO_gen .
179fe4bf909SespieIt will be run right after
180fe4bf909Sespie.Cm do-gen
181d923b0aeSespieand before
182d923b0aeSespie.Ev REORDER_DEPENDENCIES
183d923b0aeSespietouches things.
184919882e8Sschwarze.It Cm configure
185c63a038cSajacoutotThere is a
186919882e8Sschwarze.Cm pre-configure
187c63a038cSajacoutothook that can be activated by defining
188c63a038cSajacoutot.Ev MODFOO_pre-configure .
189c63a038cSajacoutotIt will be run right after
190919882e8Sschwarze.Cm pre-configure .
191d923b0aeSespieThe normal
192919882e8Sschwarze.Cm do-configure
193d923b0aeSespiebehavior is to invoke all
194d923b0aeSespie.Ev MODFOO_configure
195d923b0aeSespiecontents that are defined in
196d923b0aeSespie.Ev CONFIGURE_STYLE .
197d923b0aeSespieBy default,
198919882e8Sschwarze.Cm configure
199d923b0aeSespiewill do nothing.
200df5d321eSespie.Pp
201d923b0aeSespieSome
202d923b0aeSespie.Ev CONFIGURE_STYLE
203c62163f4Snaddyvalues, namely perl, gnu, imake, and autoconf,
204d923b0aeSespiewill automatically import the correct module.
205d923b0aeSespieUser-defined modules must both add to
206d923b0aeSespie.Ev CONFIGURE_STYLE
207d923b0aeSespieand import the correct module to override behavior.
208df5d321eSespie.Pp
209d923b0aeSespieContrary to other hooks, module behavior is not invoked in
210d923b0aeSespieaddition to
211919882e8Sschwarze.Cm do-configure ,
212d923b0aeSespiebut as the normal configure process.
213d923b0aeSespieIf
214919882e8Sschwarze.Cm do-configure
21590b8806fSstevenis overridden, normal hook processing will not happen.
216919882e8Sschwarze.It Cm fake
217d923b0aeSespieThere is a
218919882e8Sschwarze.Cm pre-fake
219d923b0aeSespiehook that can be activated by defining
220d923b0aeSespie.Ev MODFOO_pre-fake .
221d923b0aeSespieThis will be invoked right after
222d923b0aeSespie.Xr mtree 8 ,
223d923b0aeSespieand before the normal
224919882e8Sschwarze.Cm pre-fake
225d923b0aeSespiebehavior.
2267dcfc1f4Sespie.Pp
227855766a1SsobradoThis can occasionally be used for ports that require some specific
2287dcfc1f4Sespiefake installation setup that will be provided by runtime dependencies.
229919882e8Sschwarze.It Cm install
230256c568aSespieThere is a
231919882e8Sschwarze.Cm post-install
232256c568aSespiehook that can be activated by defining
2335b28d5c8Sjmc.Ev MODFOO_post-install .
234256c568aSespieThis will be invoked at the end of
235919882e8Sschwarze.Cm install ,
236256c568aSespieright after the normal
237919882e8Sschwarze.Cm post-install
238256c568aSespiebehavior.
239d923b0aeSespie.El
24014a0b723Sespie.Pp
24114a0b723SespieSome targets, such as
242919882e8Sschwarze.Cm do-build
24314a0b723Sespieor
244919882e8Sschwarze.Cm do-install ,
24514a0b723Sespiecan't be overridden simply.
24614a0b723SespieA module that, for instance, requires specific
247919882e8Sschwarze.Cm do-build
24814a0b723Sespiebehavior should do so in two steps:
24914a0b723Sespie.Bl -bullet
25014a0b723Sespie.It
25114a0b723SespieDefine a variable named
25214a0b723Sespie.Ev MODFOO_BUILD_TARGET
25314a0b723Sespiethat contains the commands necessary for
254919882e8Sschwarze.Cm do-build :
25514a0b723Sespie.Bd -literal -offset indent
25614a0b723SespieMODFOO_BUILD_TARGET = cmd1; cmd2
25714a0b723Sespie.Ed
25814a0b723Sespie.It
25914a0b723SespieOverride
260919882e8Sschwarze.Cm do-build
26114a0b723Sespieonly if it's not already defined by the port proper:
26214a0b723Sespie.Bd -literal -offset indent
26314a0b723Sespie\&.if !target(do-build)
26414a0b723Sespiedo-build:
26514a0b723Sespie	@${MODFOO_BUILD_TARGET}
26614a0b723Sespie\&.endif
26714a0b723Sespie.Ed
26814a0b723Sespie.El
26914a0b723SespieThat way, if several modules require specific actions for those targets,
27014a0b723Sespiethe end user can choose the appropriate order in which to run the actions:
27114a0b723Sespie.Bd -literal -offset indent
27214a0b723Sespiedo-build:
27314a0b723Sespie	@${MODBAR_BUILD_TARGET}
27414a0b723Sespie	@${MODFOO_BUILD_TARGET}
27514a0b723Sespie	...
27614a0b723Sespie.Ed
277d923b0aeSespie.Sh OVERRIDING VARIABLE BEHAVIOR
27890b8806fSstevenSome variables can be overridden by modules.
279d923b0aeSespieBe very cautious, as this can make the module difficult to use,
280d923b0aeSespieor interact badly with other modules.
281d923b0aeSespieAs a rule, always provide the override as:
282d923b0aeSespie.Pp
283d923b0aeSespie.Dl VARIABLE ?= value
284d923b0aeSespie.Pp
285d923b0aeSespieand provide a module-specific variable with the same value:
286d923b0aeSespie.Pp
287d923b0aeSespie.Dl MODFOO_VARIABLE = value .
288d923b0aeSespie.Pp
28990b8806fSstevenThe following variables can be overridden in a relatively safe fashion:
2902b56d0d2Sespie.Ev ALL_TARGET ,
291d923b0aeSespie.Ev CONFIGURE_SCRIPT ,
292d923b0aeSespie.Ev DESTDIRNAME ,
293d923b0aeSespie.Ev DIST_SUBDIR ,
2942b56d0d2Sespie.Ev DISTNAME ,
2952b56d0d2Sespie.Ev DISTFILES ,
296d923b0aeSespie.Ev EXTRACT_SUFX ,
297d923b0aeSespie.Ev FAKE_FLAGS ,
298d923b0aeSespie.Ev FETCH_MANUALLY ,
2992b56d0d2Sespie.Ev HOMEPAGE ,
3002b56d0d2Sespie.Ev IGNORE ,
301d923b0aeSespie.Ev IS_INTERACTIVE ,
302d923b0aeSespie.Ev LIBTOOL_FLAGS ,
3032b56d0d2Sespie.Ev MAKE_FILE ,
304d923b0aeSespie.Ev MASTER_SITES ,
3052b56d0d2Sespie.Ev MULTI_PACKAGES ,
3062b56d0d2Sespie.Ev NO_BUILD ,
307edc3c3cdSespie.Ev NO_TEST ,
3082b56d0d2Sespie.Ev PATCH_LIST ,
309d923b0aeSespie.Ev PKG_ARCH ,
3102b56d0d2Sespie.Ev PKGNAME* ,
311d923b0aeSespie.Ev PREFIX ,
312edc3c3cdSespie.Ev TEST_TARGET ,
313edc3c3cdSespie.Ev TEST_IS_INTERACTIVE ,
314d923b0aeSespie.Ev REORDER_DEPENDENCIES ,
315d923b0aeSespie.Ev SEPARATE_BUILD ,
316d923b0aeSespie.Ev USE_GMAKE ,
317cc688ee3Sjasper.Ev USE_LIBTOOL .
318d923b0aeSespie.Pp
319d923b0aeSespieThe following variables can be added to in a relatively safe fashion:
320d923b0aeSespie.Ev BUILD_DEPENDS ,
321d923b0aeSespie.Ev CATEGORIES ,
3222b56d0d2Sespie.Ev CONFIGURE_ARGS ,
3232b56d0d2Sespie.Ev CONFIGURE_ENV ,
3242b56d0d2Sespie.Ev ERRORS ,
3252b56d0d2Sespie.Ev FAKE_FLAGS ,
326d923b0aeSespie.Ev FLAVOR ,
327d923b0aeSespie.Ev FLAVORS ,
3282b56d0d2Sespie.Ev INSTALL_TARGET ,
329d923b0aeSespie.Ev LIB_DEPENDS ,
3302b56d0d2Sespie.Ev MAKE_ENV ,
3312b56d0d2Sespie.Ev MAKE_FLAGS ,
3322b56d0d2Sespie.Ev PKG_ARGS ,
333d923b0aeSespie.Ev PSEUDO_FLAVORS ,
334edc3c3cdSespie.Ev TEST_DEPENDS ,
3352b56d0d2Sespie.Ev REORDER_DEPENDENCIES ,
336d923b0aeSespie.Ev RUN_DEPENDS ,
3372b56d0d2Sespie.Ev SUBST_VARS ,
338d923b0aeSespie.Ev WANTLIB .
339d923b0aeSespie.Sh SPECIFIC MODULE INTERACTIONS
340d923b0aeSespieSome modules correspond to extra ports that will be used mostly as
341d923b0aeSespie.Ev BUILD_DEPENDS
342d923b0aeSespieor
343d923b0aeSespie.Ev RUN_DEPENDS .
344d923b0aeSespieSuch modules can safely append values directly to the
345d923b0aeSespie.Ev BUILD_DEPENDS ,
346d923b0aeSespie.Ev RUN_DEPENDS ,
347d923b0aeSespie.Ev LIB_DEPENDS ,
348d923b0aeSespieand
349d923b0aeSespie.Ev WANTLIB
350d923b0aeSespievariables, as long as they also define module-specific variables for
351d923b0aeSespieall runtime dependencies.
352d923b0aeSespie.Pp
353d923b0aeSespieSimple client ports will use the module directly, and thus inherit extra
354d923b0aeSespiebuild and runtime dependencies.
355d923b0aeSespie.Pp
356d923b0aeSespieMore sophisticated ports can use
357d923b0aeSespie.Ev MULTI_PACKAGES
358d923b0aeSespieto select specific behavior: build-time dependencies will always be
359d923b0aeSespieneeded.
360d923b0aeSespieRuntime dependencies will be selected on a subpackage basis,
361d923b0aeSespiesince runtime dependencies such as
362d923b0aeSespie.Ev LIB_DEPENDS-sub
363d923b0aeSespiedo not inherit the default
364d923b0aeSespie.Ev LIB_DEPENDS
365d923b0aeSespievalue.
366d923b0aeSespieThe client port's author must only bear in mind that external modules
367d923b0aeSespiemay add values to the default
368d923b0aeSespie.Ev WANTLIB ,
369d923b0aeSespie.Ev LIB_DEPENDS ,
370d923b0aeSespieand
371d923b0aeSespie.Ev RUN_DEPENDS ,
372d923b0aeSespieand thus that it is not safe to inherit from it blindly.
373d923b0aeSespie.Pp
374d923b0aeSespieModules are imported during
375d923b0aeSespie.Pp
376d923b0aeSespie.Dl .include <bsd.port.mk>
377d923b0aeSespie.Pp
378d923b0aeSespieThus they can be affected by user choices such as setting a variable
379d923b0aeSespieto Yes or No.
380d923b0aeSespieModules may make decisions based on documented
381d923b0aeSespie.Ev MODFOO_BEHAVIOR
382d923b0aeSespievalues.
383d923b0aeSespie.Pp
384d923b0aeSespieWhen modules are processed, only a few
385d923b0aeSespie.Xr bsd.port.mk 5
386d923b0aeSespievariables are already defined.
387d923b0aeSespieModules may depend upon the following variables already having a sane
388d923b0aeSespievalue:
3892b56d0d2Sespie.Ev DISTDIR ,
3902b56d0d2Sespie.Ev LOCALBASE ,
391d923b0aeSespie.Ev NO_DEPENDS ,
3922b56d0d2Sespie.Ev PKGPATH ,
393d923b0aeSespie.Ev PORTSDIR ,
3941caa4d11Sespie.Ev X11BASE
395dbc98a8fSnaddyand all arch-dependent constants from
3961caa4d11Sespie.Xr bsd.port.arch.mk 5 ,
3971caa4d11Sespiesuch as
3981caa4d11Sespie.Ev PROPERTIES
3991caa4d11Sespieor
400dbc98a8fSnaddy.Ev LP64_ARCHS .
401d923b0aeSespieNote that this is only relevant for tests.
402d923b0aeSespieIt is perfectly okay to define variables or targets that depend on the
403d923b0aeSespiebasic ports framework without having to care whether that variable is
404d923b0aeSespiealready defined, since
405d923b0aeSespie.Xr make 1
406d923b0aeSespieperforms lazy evaluation.
407d923b0aeSespie.Sh CORE MODULES DOCUMENTATION
408d923b0aeSespieThe following modules are available.
409d923b0aeSespie.Bl -tag -width do-configure
410900bb53fSajacoutot.It apache-module
411d923b0aeSespie.It cpan
4121246586bSespieFor perl ports coming from CPAN.
4131246586bSespieWrapper around the normal perl module that fetches the file from
414df5d321eSespiethe correct location depending on
415df5d321eSespie.Ev DISTNAME ,
416df5d321eSespieand sets a default
417df5d321eSespie.Ev PKGNAME .
418df5d321eSespieAlso affects
419edc3c3cdSespie.Ev TEST_DEPENDS ,
420df5d321eSespie.Ev CONFIGURE_STYLE ,
421df5d321eSespie.Ev PKG_ARCH ,
422df5d321eSespieand
423df5d321eSespie.Ev CATEGORIES .
4241246586bSespie.Pp
425df5d321eSespieSome CPAN modules are only indexed by author, set
426df5d321eSespie.Li CPAN_AUTHOR=ID
4271246586bSespieto locate the right directory.
4281246586bSespie.Pp
429df5d321eSespieIf no
430df5d321eSespie.Ev HOMEPAGE
431df5d321eSespieis defined, it will default to
432df5d321eSespie.Pa http://search.cpan.org/dist/${DISTNAME:C/-[^-]*$//}/
4332b38b29eSajacoutot.Pp
434df5d321eSespieUser settings: set
435df5d321eSespie.Ev CPAN_REPORT
436df5d321eSespieto Yes,
437df5d321eSespie.Ev CPAN_REPORT_DB
438df5d321eSespieto a valid directory,
439df5d321eSespieand
440df5d321eSespie.Ev CPAN_REPORT_FROM
441df5d321eSespieto a valid email address to automate the reporting
442edc3c3cdSespieof regression tests to CPAN.
4432ba3d95fSjasper.Pp
444df5d321eSespieIf
445df5d321eSespie.Ev MODCPAN_EXAMPLES
446df5d321eSespieis set, the following variables will be set.
447df5d321eSespie.Ev MODCPAN_EXAMPLES_DIST
448df5d321eSespiewill hold the default directory in the distfile with
4492ba3d95fSjasperexample scripts.
450df5d321eSespie.Ev MODCPAN_EXAMPLES_DIR
451df5d321eSespiewill be set to the standard installation directory for
4522ba3d95fSjasperexamples.
453df5d321eSespieSets the
454919882e8Sschwarze.Cm post-install
455df5d321eSespietarget if none has been defined to install the examples,
456df5d321eSespieotherwise
457df5d321eSespie.Ev MODCPAN_POST_INSTALL
458df5d321eSespieshould be used as such:
4592ba3d95fSjasper.Bd -literal
4602ba3d95fSjasperpost-install:
4612ba3d95fSjasper	...
4622ba3d95fSjasper	${MODCPAN_POST_INSTALL}
4632ba3d95fSjasper.Ed
4646cc276e2Szhuk.It databases/mariadb
4656cc276e2SzhukAdds small framework for testing ports that require running MariaDB.
4666cc276e2SzhukDefines
4676cc276e2Szhuk.Ev MODMARIADB_TEST_TARGET
4686cc276e2Szhukwhich consists actual commands to run in
469919882e8Sschwarze.Cm do-test
4706cc276e2Szhuktarget.
4716cc276e2SzhukIf this target isn't defined, it will be added automatically.
4726cc276e2Szhuk.Pp
4736cc276e2SzhukThe actual test command to be run could be specified in the
4746cc276e2Szhuk.Ev MODMARIADB_TEST_CMD .
4756cc276e2SzhukDefault is similar to what
4766cc276e2Szhuk.Xr bsd.port.mk 5
4776cc276e2Szhukruns itself.
4786cc276e2Szhuk.Pp
4796cc276e2SzhukThe MariaDB server being started will listen on UNIX domain socket
4806cc276e2Szhukonly, minimizing impact on running system.
4816cc276e2SzhukThe path to socket is recorded in
4826cc276e2Szhuk.Ev MODMARIADB_TEST_SOCKET .
4836cc276e2SzhukAny local user will be able to connect without password.
4846cc276e2Szhuk.Pp
4856cc276e2SzhukIf the
4866cc276e2Szhuk.Ev MODMARIADB_TEST_DBNAME
4876cc276e2Szhukvariable is set, the database with such name will be set up before
4886cc276e2Szhukrunning actual test command.
4896cc276e2SzhukOtherwise (default), the test is responsible to call
4906cc276e2Szhuk.Xr mysqladmin 1
4916cc276e2Szhukitself, if needed.
4926cc276e2Szhuk.Pp
4936cc276e2SzhukThe
4946cc276e2Szhuk.Pa databases/mariadb,-server
4956cc276e2Szhukwill get added to
4966cc276e2Szhuk.Ev TEST_DEPENDS ,
4976cc276e2Szhukbut not to any other
4986cc276e2Szhuk.Ev *_DEPENDS .
4996cc276e2SzhukThe
5006cc276e2Szhuk.Ev MODMARIADB_CLIENT_ARGS
5016cc276e2Szhukand
5026cc276e2Szhuk.Ev MODMARIADB_ADMIN_ARGS
5036cc276e2Szhukvariables hold arguments for
5046cc276e2Szhuk.Xr mysql 1
5056cc276e2Szhukand
5066cc276e2Szhuk.Xr mysqladmin 1 ,
5076cc276e2Szhukrespectively; those argument lists could be used in test scripts
50881c368e9Sjmcfor connecting to test server, if they aren't satisfied by environment.
509be20f0acSzhuk.It databases/postgresql
510be20f0acSzhukAdds small framework for testing ports that require running Postgres.
511be20f0acSzhukDefines
512be20f0acSzhuk.Ev MODPOSTGRESQL_TEST_TARGET
513be20f0acSzhukwhich consists actual commands to run in
514919882e8Sschwarze.Cm do-test
515be20f0acSzhuktarget.
516be20f0acSzhukIf this target isn't defined, it will be added automatically.
517be20f0acSzhuk.Pp
518be20f0acSzhukThe actual test command to be run could be specified in the
519be20f0acSzhuk.Ev MODPOSTGRESQL_TEST_CMD .
520be20f0acSzhukDefault is similar to what
521be20f0acSzhuk.Xr bsd.port.mk 5
522be20f0acSzhukruns itself.
523be20f0acSzhuk.Pp
524be20f0acSzhukThe Postgres server being started will listen on UNIX domain socket
525be20f0acSzhukonly, minimizing impact on running system.
526be20f0acSzhukThe path to directory where socket will be created is set by
527be20f0acSzhuk.Ev MODPOSTGRESQL_TEST_PGHOST ,
528be20f0acSzhukdefaulting to
529be20f0acSzhuk.Pa ${WRKDIR} .
530be20f0acSzhukAny local user will be able to connect without password.
531be20f0acSzhuk.Pp
532be20f0acSzhukIf the
533be20f0acSzhuk.Ev MODPOSTGRESQL_TEST_DBNAME
534be20f0acSzhukvariable is set, the database with such name will be set up before
535be20f0acSzhukrunning actual test command.
536be20f0acSzhukOtherwise (default), the test is responsible to call
537be20f0acSzhuk.Xr initdb 1
538be20f0acSzhukitself.
539be20f0acSzhuk.Pp
540be20f0acSzhukThe
541be20f0acSzhuk.Pa databases/postgresql,-server
542be20f0acSzhukwill get added to
543be20f0acSzhuk.Ev TEST_DEPENDS ,
544be20f0acSzhukbut not to any other
545be20f0acSzhuk.Ev *_DEPENDS .
546900bb53fSajacoutot.It devel/cmake
5470d19cc18SzhukAdds
5480d19cc18Szhuk.Pa devel/cmake
5490d19cc18Szhukto
5500d19cc18Szhuk.Ev BUILD_DEPENDS
5510d19cc18Szhukand fills up
5520d19cc18Szhuk.Ev CONFIGURE_ARGS ,
5530d19cc18Szhuk.Ev CONFIGURE_ENV
5540d19cc18Szhukand
5550d19cc18Szhuk.Ev MAKE_ENV .
5560d19cc18SzhukSets up
557919882e8Sschwarze.Cm configure
5580d19cc18Szhuktarget.
5590d19cc18SzhukIf
5600d19cc18Szhuk.Ev CONFIGURE_STYLE
5610d19cc18Szhukwas not set before, sets its value to `cmake'.
5620d19cc18SzhukChanges default value of
5630d19cc18Szhuk.Ev SEPARATE_BUILD
5640d19cc18Szhukto `Yes' because modern CMake requires out-of-source build anyway.
5650d19cc18SzhukChanges
566647db07eSbluhm.Ev TEST_TARGET
5670d19cc18Szhukto `test' as this is standard for CMake projects.
568426f0cf5SjasperAlso this module has the following knobs:
5690d19cc18Szhuk.Bl -tag -width Ds
5700d19cc18Szhuk.It MODCMAKE_WANTCOLOR
5710d19cc18SzhukIf set to `Yes', CMake will colorize its output.
5720d19cc18SzhukShould not be used in ports Makefiles.
5730d19cc18SzhukDefault value is `No'.
5740d19cc18Szhuk.It MODCMAKE_VERBOSE
5750d19cc18SzhukIf set to `Yes', CMake will print details during configure and build
5760d19cc18Szhukstages about exact command being run, etc.
5770d19cc18SzhukShould not be used in ports Makefiles.
5780d19cc18SzhukDefault value is `Yes'.
579ee40ca2fSjca.It MODCMAKE_DEBUG
580ee40ca2fSjcaIf set to `Yes', CMake will produce a debug build instead of a release
581ee40ca2fSjcabuild.
582ee40ca2fSjcaThe exact effects on the build process depend on settings specified in
583ee40ca2fSjcathe CMake config files.
584ee40ca2fSjcaDefault value is `No'.
5850d19cc18Szhuk.El
5860d19cc18SzhukAlso,
5870d19cc18Szhuk.Sq nojunk
5880d19cc18Szhukis added to DPB_PROPERTIES because CMake's include files parser cheats
5890d19cc18Szhuktoo much.
59065872839Sgnezdo.It devel/cabal
59165872839SgnezdoSee
592647126f0Sjmc.Xr cabal-module 5
593647126f0Sjmcfor porting Haskell applications.
594c8346f19Sdanj.It devel/cargo
595be30614aSespieSee
596be30614aSespie.Xr cargo-module 5 .
5974a028158Sajacoutot.It devel/dconf
598df5d321eSespieSets
599df5d321eSespie.Ev CONFIGURE_ARGS ,
600df5d321eSespie.Ev BUILD_DEPENDS
601df5d321eSespieand
602df5d321eSespie.Ev RUN_DEPENDS .
6034a028158SajacoutotThis module is used by ports installing gsettings schemas under
6044a028158Sajacoutot.Pa ${PREFIX}/share/glib-2.0/schemas/ .
60513c73509SajacoutotIt requires the following goo in the PLIST:
6064a028158Sajacoutot.Bd -literal -offset indent
607db8751abSajacoutot@exec %D/bin/glib-compile-schemas %D/share/glib-2.0/schemas >/dev/null
608db8751abSajacoutot@unexec-delete %D/bin/glib-compile-schemas %D/share/glib-2.0/schemas >/dev/null
6094a028158Sajacoutot.Ed
61083e144ffSajacoutot.It devel/gconf2
6114c1f9bb6SajacoutotA link from
6124c1f9bb6Sajacoutot.Xr gconftool-2 1
6134c1f9bb6Sajacoutotto
6144c1f9bb6Sajacoutot.Xr true 1
6151b8c779aSajacoutotwill be put at the front of the
6161b8c779aSajacoutot.Ev PATH .
617df5d321eSespieSets
618df5d321eSespie.Ev CONFIGURE_ARGS ,
619df5d321eSespie.Ev BUILD_DEPENDS
620df5d321eSespieand
621df5d321eSespie.Ev RUN_DEPENDS .
622df5d321eSespieAccording to the values of
623df5d321eSespie.Ev MODGCONF2_LIBDEP ,
624df5d321eSespiesets
625df5d321eSespie.Ev LIB_DEPENDS .
626df5d321eSespieUser settings: set
627df5d321eSespie.Ev MODGCONF2_SCHEMAS_DIR
628df5d321eSespieto the directory name under
629df5d321eSespie.Pa ${LOCALBASE}/share/schemas/
630df5d321eSespiewhere schemas files will be installed.
631ebb46d9cSajacoutot.It devel/meson
632ebb46d9cSajacoutotAdds
633ebb46d9cSajacoutot.Pa devel/meson
634ebb46d9cSajacoutotand
635ebb46d9cSajacoutot.Pa devel/ninja
636ebb46d9cSajacoutotto
637ebb46d9cSajacoutot.Ev BUILD_DEPENDS .
638ebb46d9cSajacoutotSets up
639ebb46d9cSajacoutot.Cm configure
640ebb46d9cSajacoutottarget.
641ebb46d9cSajacoutotIf
642ebb46d9cSajacoutot.Ev CONFIGURE_STYLE
643ebb46d9cSajacoutotwas not set before, sets its value to `meson'.
644ebb46d9cSajacoutotChanges default value of
645ebb46d9cSajacoutot.Ev SEPARATE_BUILD
646ebb46d9cSajacoutotto `Yes' because meson requires out-of-source build.
6473dea7a07SajacoutotIf
6483dea7a07Sajacoutot.Ev CONFIGURE_STYLE
6493dea7a07Sajacoutotis 'meson',
6503dea7a07Sajacoutot.Ev MODMESON_CONFIGURE_ARGS
6513dea7a07Sajacoutotand
6523dea7a07Sajacoutot.Ev MODMESON_CONFIGURE_ENV
6533dea7a07Sajacoutotwill add default values to
6543dea7a07Sajacoutot.Ev CONFIGURE_ARGS
6553dea7a07Sajacoutotand
6563dea7a07Sajacoutot.Ev CONFIGURE_ENV .
657426f0cf5SjasperAlso this module has the following knob:
658ebb46d9cSajacoutot.Bl -tag -width Ds
659ebb46d9cSajacoutot.It MODMESON_WANTCOLOR
660ebb46d9cSajacoutotIf set to `Yes', meson will colorize its output.
661ebb46d9cSajacoutotShould not be used in ports Makefiles.
662ebb46d9cSajacoutotDefault value is `No'.
663ebb46d9cSajacoutot.El
664e907e645Szhuk.It devel/qmake
665be30614aSespieSee
666be30614aSespie.Xr qmake-module 5 .
667900bb53fSajacoutot.It devel/scons
66809b33ea3SjasperAdds
66909b33ea3Sjasper.Pa devel/scons
670df5d321eSespieto
671df5d321eSespie.Ev BUILD_DEPENDS .
672df5d321eSespieSets
673df5d321eSespie.Ev MODSCONS_BIN
674df5d321eSespieand
675df5d321eSespie.Ev MODSCONS_ENV .
676df5d321eSespieAlso defines an overridable
677df5d321eSespie.Ev MODSCONS_FLAGS .
678df5d321eSespieIt provides a
679919882e8Sschwarze.Cm do-build
680df5d321eSespieand
681919882e8Sschwarze.Cm do-install
682df5d321eSespietargets that can be overridden in the port Makefile.
68330df431cSjasper.It font
684619e5f4fSjasperUsed for ports which primarily install fonts.
685619e5f4fSjasperAffects
686619e5f4fSjasper.Ev PKG_ARCH
687619e5f4fSjasperand
688619e5f4fSjasper.Ev EXTRACT_SUFX .
689619e5f4fSjasperAppends to
690619e5f4fSjasper.Ev CATEGORIES .
691619e5f4fSjasperWhen
6922ab4c1beSbentley.Ev MODFONT_FAMILY
693619e5f4fSjasperis set in combination with
6942ab4c1beSbentley.Ev MODFONT_VERSION ,
695619e5f4fSjasperit sets
696619e5f4fSjasper.Ev PKGNAME .
6972ab4c1beSbentley.Ev MODFONT_FAMILY
6982ab4c1beSbentleyshould be set to the name of the font family.
699355d9cb6SjasperThis sets
700*49a76b29Sbentley.Ev MODFONT_FONTDIR
7015777b8e9Sbentleyand
7025777b8e9Sbentley.Ev MODFONT_DOCDIR
7032ab4c1beSbentleyusing said family name.
704619e5f4fSjasperA
705619e5f4fSjasper.Cm do-install
7063e6bf5f9Ssthentarget is provided if the port itself does not provide it.
7073e6bf5f9SsthenThis installs fonts from
708f50a451dSbentley.Ev WRKSRC
709b8fbdba0Sjmcin the distribution.
710*49a76b29SbentleyIf one or more filenames (relative to
711*49a76b29Sbentley.Ev WRKSRC )
712*49a76b29Sbentleyare listed in
713*49a76b29Sbentley.Ev MODFONT_FONTFILES ,
714*49a76b29Sbentleythey will be installed to
715*49a76b29Sbentley.Ev MODFONT_FONTDIR .
716*49a76b29SbentleyOtherwise, otf files in
717*49a76b29Sbentley.Ev WRKSRC
718*49a76b29Sbentleywill be installed, with a fallback to ttf.
7195777b8e9SbentleyIf filenames (relative to
7205777b8e9Sbentley.Ev WRKSRC )
7215777b8e9Sbentleyare listed in
7225777b8e9Sbentley.Ev MODFONT_DOCFILES ,
7235777b8e9Sbentleythey will be installed to
7245777b8e9Sbentley.Ev MODFONT_DOCDIR .
725dbb2178fSajacoutot.It fortran
726df5d321eSespieSets
727df5d321eSespie.Ev MODFORTRAN_LIB_DEPENDS ,
728df5d321eSespie.Ev MODFORTRAN_WANTLIB ,
729df5d321eSespie.Ev MODFORTRAN_BUILD_DEPENDS .
730df5d321eSespieSet
731df5d321eSespie.Ev MODFORTRAN_COMPILER
732c6cc286fSjcato `gfortran', or `flang', depending on what the port requires.
733c6cc286fSjcaThe default is `gfortran'.
734df5d321eSespieThe dependencies are chosen according to
735df5d321eSespie.Ev MODFORTRAN_COMPILER .
736d923b0aeSespie.It gcc4
737df5d321eSespieIf
738df5d321eSespie.Ev COMPILER_VERSION
739df5d321eSespieis not gcc4 (defined by
740e53ca8efSsteven.Pa /usr/share/mk/bsd.own.mk ) ,
741df5d321eSespieand architecture is in
742df5d321eSespie.Ev MODGCC4_ARCHS ,
74301d0ee3cSpascalthen the gcc4 compilers will be put at the front of the path.
74460a8d3bdSstevenBy default, only C language support is included by this module.
745df5d321eSespieIf other languages are needed, they must be listed in
746df5d321eSespie.Ev MODGCC4_LANGS
747ff390f16Ssteven(e.g. c++, fortran).
748f7f99e6eSrobertThe
749f7f99e6eSrobert.Ev MODGCC4_VERSION
750f7f99e6eSrobertvariable can be used to change the version of gcc.
75134a2f480SbentleyBy default gcc 4.9 is used.
7521b264941SpascalIf
7531b264941Spascal.Ev MODGCC4_LANGS
7541b264941Spascalcontains c++, this module provides
7551b264941Spascal.Ev MODGCC4_CPPLIBDEP
7561b264941Spascaland
7571b264941Spascal.Ev MODGCC4_CPPWANTLIB .
758d923b0aeSespie.It gnu
7591246586bSespieThis module is documented in the main
7601246586bSespie.Xr bsd.port.mk 5
7611246586bSespiemanpage.
762d923b0aeSespie.It imake
7631246586bSespieThis module is documented in the main
7641246586bSespie.Xr bsd.port.mk 5
7651246586bSespiemanpage.
766d923b0aeSespie.It java
767df5d321eSespieSet
768df5d321eSespie.Li MODJAVA_VER=x.y
769df5d321eSespieto use exactly the JDK x.y,
770df5d321eSespie.Li MODJAVA_VER=x.y+
771df5d321eSespieto use any x.y or higher version.
772df5d321eSespieSet
773df5d321eSespie.Li MODJAVA_JRERUN=Yes
774df5d321eSespieif the port only needs the JRE at runtime.
775df5d321eSespieThe module sets
776df5d321eSespie.Ev JAVA_HOME ,
777df5d321eSespie.Ev ONLY_FOR_ARCHS ,
778df5d321eSespie.Ev MODJAVA_RUN_DEPENDS ,
779df5d321eSespie.Ev MODJAVA_SHARE_DIR ,
780df5d321eSespie.Ev MODJAVA_JAR_DIR ,
781df5d321eSespie.Ev MODJAVA_EXAMPLE_DIR
782df5d321eSespieand
783df5d321eSespie.Ev MODJAVA_DOC_DIR .
784df5d321eSespieIt appends to
785df5d321eSespie.Ev BUILD_DEPENDS ,
7862acf0d49Sjasper.Ev RUN_DEPENDS ,
7872acf0d49Sjasper.Ev CATEGORIES
788df5d321eSespieand
7892acf0d49Sjasper.Ev SUBST_VARS .
790df5d321eSespieIf
791df5d321eSespie.Li MODJAVA_BUILD=ant
792df5d321eSespiethen this module provides
793df5d321eSespie.Ev MODJAVA_BUILD_DIR ,
794df5d321eSespie.Ev MODJAVA_BUILD_FILE
795df5d321eSespieand
7966a0bef42Sespie.Ev MODJAVA_BUILD_TARGET_NAME ,
797df5d321eSespieas well as a
798919882e8Sschwarze.Cm do-build
799b2b1cd97Sjaspertarget (if not already defined).
800df5d321eSespieIt heeds
801df5d321eSespie.Ev NO_BUILD .
802e303fde7Ssthen.It lang/clang
803b2d2492fSsthenSimilar to gcc4 module.
8045f9b8b51SjsgIf architecture is in MODCLANG_ARCHS, the Clang compilers will be
805e303fde7Ssthenput at the front of the path.
806e303fde7SsthenBy default, only C language support is included by this module.
807e303fde7SsthenIf other languages are needed, they must be listed in
808e303fde7Ssthen.Ev MODCLANG_LANGS
809e303fde7Ssthen(e.g. c++).
81049133cc4SjasperSets
81149133cc4Sjasper.Ev MODCLANG_VERSION
81249133cc4Sjasperwhich is also appended to
81349133cc4Sjasper.Ev SUBST_VARS .
814cbe5ab7dSjasper.It lang/erlang
8153dcbfd30Sczarkoff.It lang/go
816be30614aSespieSee
817be30614aSespie.Xr go-module 5 .
818a9420fc2Slandry.It lang/lua
81959066096SespieSets
820a5788ca5Sjasper.Ev MODLUA_BIN ,
82115f5c4b5Sjasper.Ev MODLUA_DATADIR ,
822a5788ca5Sjasper.Ev MODLUA_DEP ,
823a5788ca5Sjasper.Ev MODLUA_DEP_VERSION ,
82415f5c4b5Sjasper.Ev MODLUA_DOCDIR ,
82578d1f5a9Sjasper.Ev MODLUA_EXAMPLEDIR ,
826a5788ca5Sjasper.Ev MODLUA_INCL_DIR ,
827a5788ca5Sjasper.Ev MODLUA_LIB ,
82859066096Sespie.Ev MODLUA_LIBDIR ,
829a5788ca5Sjasper.Ev MODLUA_VERSION ,
830a5788ca5Sjasper.Ev MODLUA_WANTLIB .
83159066096SespieAppends to
83259066096Sespie.Ev CATEGORIES .
83359066096SespieAlso appends to
83459066096Sespie.Ev BUILD_DEPENDS ,
83559066096Sespieunless
83659066096Sespie.Ev NO_BUILD
83759066096Sespiehas been set to Yes.
83859066096SespieAlso appends to
83959066096Sespie.Ev RUN_DEPENDS ,
84059066096Sespieunless
84159066096Sespie.Ev MODLUA_RUNDEP
84259066096Sespieis set to No.
8439b18d18dSjasperAppends
844a5788ca5Sjasper.Ev MODLUA_VERSION ,
845a5788ca5Sjasper.Ev MODLUA_LIB ,
846a5788ca5Sjasper.Ev MODLUA_INCL_DIR ,
847a5788ca5Sjasper.Ev MODLUA_EXAMPLEDIR ,
848a5788ca5Sjasper.Ev MODLUA_DOCDIR ,
849a5788ca5Sjasper.Ev MODLUA_LIBDIR ,
850a5788ca5Sjasper.Ev MODLUA_DATADIR ,
8519add13bbSjasper.Ev MODLUA_DEP ,
852bcd26d04Sgsoares.Ev MODLUA_DEP_VERSION ,
853bcd26d04Sgsoares.Ev MODLUA_BIN
8549b18d18dSjasperto
8559b18d18dSjasper.Ev SUBST_VARS .
856a5788ca5Sjasper.Ev MODLUA_DEFAULT_VERSION
857a5788ca5Sjasperis set to 5.1.
858a5788ca5Sjasper.Ev MODLUA_VERSION is set to
859a5788ca5Sjasper.Ev MODLUA_DEFAULT_VERSION
860a5788ca5Sjasperby default.
861f862abfcSjcaPorts can be built with several lua versions.
86241ce3b17SnaddyIf no FLAVOR is set, it defaults to MODLUA_DEFAULT_VERSION.
863a5788ca5SjasperOtherwise the FULLPKGNAME is adjusted, if MODLUA_SA is not set.
864edc3c3cdSespieIn order to set a build, run or test dependency on a lua port,
865a5788ca5Sjasperuse the following, which will propagate the currently used flavor:
866a5788ca5Sjasper.Ev MODLUA_BUILD_DEPENDS ,
867edc3c3cdSespie.Ev MODLUA_TEST_DEPENDS ,
868a5788ca5Sjasper.Ev MODLUA_RUN_DEPENDS .
8694fc0eca2Ssteven.It lang/mono
87059066096SespieSets
87159066096Sespie.Ev MODMONO_ONLY_FOR_ARCHS ,
87259066096Sespie.Ev CONFIGURE_ENV ,
87359066096Sespie.Ev MAKE_FLAGS ,
87459066096Sespie.Ev MODMONO_BUILD_DEPENDS
87559066096Sespieand
87659066096Sespie.Ev MODMONO_RUN_DEPENDS .
87759066096SespieIf
87859066096Sespie.Ev MODMONO_DEPS
87959066096Sespieis set to Yes,
880c5dc4891Sajacoutot.Pa lang/mono
88159066096Sespieis appended to
88259066096Sespie.Ev BUILD_DEPENDS
88359066096Sespieand
88459066096Sespie.Ev RUN_DEPENDS .
88559066096Sespie.Ev DLLMAP_FILES
88659066096Sespiedefines in which files the module will substitute hardcoded
88759066096Sespieshared library versions using a
888919882e8Sschwarze.Cm post-configure
88959066096Sespietarget.
89099e396e4Sespie.It lang/ocaml
89159066096SespieAppends to
89259066096Sespie.Ev BUILD_DEPENDS
89359066096Sespieand
89459066096Sespie.Ev MAKE_ENV .
8955634c1deSjcaAppends to
8965634c1deSjca.Ev RUN_DEPENDS
8975634c1deSjcaunless
8985634c1deSjca.Ev MODOCAML_RUNDEP
8995634c1deSjcais set to No, or set to if-not-native and native compilation
9005634c1deSjcais supported on this architecture.
9015634c1deSjcaIncluding this module selects a %%native%% plist fragment and
90293c8b41cSavsm.Ev ocaml_native
90393c8b41cSavsmproperty depending on whether the architecture supports native
90493c8b41cSavsmcompilation.
90593c8b41cSavsmIf dynamic linking is supported on the native architecture,
90693c8b41cSavsmthe %%dynlink%% plist fragment and
90793c8b41cSavsm.Ev ocaml_native_dynlink
90893c8b41cSavsmproperty is set.
9099b23ba2fSchriszWhen
910e1aebd2fSjmc.Ev CONFIGURE_STYLE
911e1aebd2fSjmcis set to `oasis',
912919882e8Sschwarzeoverrides for the
913919882e8Sschwarze.Cm do-build ,
914919882e8Sschwarze.Cm do-install ,
915919882e8Sschwarzeand
916919882e8Sschwarze.Cm do-test
917919882e8Sschwarzetargets are added.
918bce7d94fSajacoutot.It lang/php
9191a6f0e68SsthenUsed for ports using PHP in some way:
9201a6f0e68Sstheneither extensions to PHP, or software written in PHP.
9211a6f0e68SsthenSets
9221a6f0e68Ssthen.Ev MODPHP_RUN_DEPENDS ,
9231a6f0e68Ssthen.Ev MODPHP_LIB_DEPENDS ,
9241a6f0e68Ssthen.Ev MODPHP_WANTLIB ,
9251a6f0e68Ssthen.Ev MODPHP_BIN ,
9261a6f0e68Ssthen.Ev MODPHP_PHPIZE ,
9271a6f0e68Ssthen.Ev MODPHP_PHP_CONFIG ,
9281a6f0e68Ssthen.Ev MODPHP_INCDIR
9291a6f0e68Ssthenand
9301a6f0e68Ssthen.Ev MODPHP_LIBDIR .
9311a6f0e68SsthenAdds to
9321a6f0e68Ssthen.Ev RUN_DEPENDS
9331a6f0e68Ssthenunless
9341a6f0e68Ssthen.Ev MODPHP_RUNDEP
935074482abSsthenis set to No.
936074482abSsthenAdds to
937074482abSsthen.Ev BUILD_DEPENDS
938074482abSsthenif
9391a6f0e68Ssthen.Ev MODPHP_BUILDDEP
940074482abSsthenis set to Yes.
9411a6f0e68SsthenIf
9421a6f0e68Ssthen.Ev MODPHP_DO_PHPIZE
9431a6f0e68Ssthenis set, prepares a build environment for extensions that use phpize.
9441a6f0e68Ssthen.Pp
9451a6f0e68SsthenPorts using PDO for database connectivity often have a choice of
9461a6f0e68Ssthendependencies (pdo_sqlite, pdo_mysql, pdo_pgsql and others).
9471a6f0e68SsthenThe module constructs
9481a6f0e68Ssthen.Ev MODPHP_PDO_DEPENDS
9491a6f0e68Ssthenfrom the PDO types listed in
9501a6f0e68Ssthen.Ev MODPHP_PDO_ALLOWED
9511a6f0e68Ssthen(defaulting to "sqlite mysql pgsql").
9521a6f0e68SsthenThis can be added to
9531a6f0e68Ssthen.Ev RUN_DEPENDS
9541a6f0e68Ssthenand allows any of these PDO packages to satisfy the dependency, with
9551a6f0e68Ssthen.Ev MODPHP_PDO_PREF
9561a6f0e68Ssthen(sqlite by default) chosen if none are installed.
9578a4529a6Ssthen.It lang/php/pecl
9588a4529a6SsthenUsed for ports for PHP PECL extensions.
9598a4529a6SsthenSets default
9608a4529a6Ssthen.Ev MASTER_SITES ,
9618a4529a6Ssthen.Ev HOMEPAGE ,
9628a4529a6Ssthen.Ev EXTRACT_SUFX ,
9638a4529a6Ssthen.Ev DESTDIRNAME ,
9648a4529a6Ssthen.Ev MODPHP_DO_SAMPLE ,
9658a4529a6Ssthen.Ev MODPHP_DO_PHPIZE ,
9668a4529a6Ssthen.Ev AUTOCONF_VERSION ,
9678a4529a6Ssthen.Ev AUTOMAKE_VERSION ,
9688a4529a6Ssthen.Ev LIBTOOL_FLAGS .
9698a4529a6SsthenProvides a default
970edc3c3cdSespie.Ev TEST_TARGET
9718a4529a6Ssthenand
972edc3c3cdSespie.Ev TEST_FLAGS
9738a4529a6Ssthenunless
974edc3c3cdSespie.Ev NO_TEST
9758a4529a6Ssthenor a
976919882e8Sschwarze.Cm do-test
9778a4529a6Ssthentarget is defined.
9788a4529a6SsthenAdds common dependencies to
9798a4529a6Ssthen.Ev RUN_DEPENDS
9808a4529a6Ssthenand
9818a4529a6Ssthen.Ev BUILD_DEPENDS .
9828a4529a6SsthenSets a default
9838a4529a6Ssthen.Ev PKGNAME
9848a4529a6Ssthenand appends to
9858a4529a6Ssthen.Ev CATEGORIES .
98699e396e4Sespie.It lang/python
987be30614aSespieSee
988be30614aSespie.Xr python-module 5 .
98999e396e4Sespie.It lang/ruby
990de9e3489SespieSee
991de9e3489Sespie.Xr ruby-module 5 .
992eca194edSsemarie.It lang/rust
993eca194edSsemariePorts using Rust must use this module so a rebuild can be triggered via
994eca194edSsemarie.Ev SYSTEM_VERSION-rust
995eca194edSsemarieon updates of the lang/rust port or changes to the Rust standard library.
996eca194edSsemarieSets
997eca194edSsemarie.Ev MODRUST_WANTLIB
998eca194edSsemarieas appropriate for the architecture so it can be added to
999eca194edSsemarie.Ev WANTLIB .
1000eca194edSsemarieIt adds lang/rust to the
1001eca194edSsemarie.Ev BUILD_DEPENDS
1002eca194edSsemarieunless
1003eca194edSsemarie.Ev MODRUST_BUILDDEP
1004eca194edSsemarieis set to anything but
1005eca194edSsemarie.Dq yes .
100666e522d8Sdeanna.It lang/tcl
100759066096SespieSets
100859066096Sespie.Ev MODTCL_VERSION ,
100959066096Sespie.Ev MODTCL_BIN ,
101059066096Sespie.Ev MODTCL_INCDIR ,
101159066096Sespie.Ev MODTCL_LIBDIR ,
101259066096Sespie.Ev MODTCL_BUILD_DEPENDS ,
101359066096Sespie.Ev MODTCL_RUN_DEPENDS ,
101459066096Sespie.Ev MODTCL_LIB ,
101559066096Sespie.Ev MODTCL_LIB_DEPENDS ,
101659066096Sespieand
101759066096Sespie.Ev MODTCL_CONFIG .
101859066096Sespie.Ev MODTCL_VERSION
101959066096Sespieis the default version used by all Tcl ports and may be overridden.
102059066096SespieProvides
102159066096Sespie.Ev MODTCL_TCLSH_ADJ
102259066096Sespieand
102359066096Sespie.Ev MODTCL_WISH_ADJ
102459066096Sespieshell fragments to patch the interpreter path in executable scripts.
102559066096SespieAlso affects
102659066096Sespie.Ev CATEGORIES
102759066096Sespieand
102859066096Sespie.Ev SUBST_VARS .
1029d923b0aeSespie.It perl
10301246586bSespieThis module is documented in the main
10311246586bSespie.Xr bsd.port.mk 5
10321246586bSespiemanpage.
10331b8c779aSajacoutot.It security/heimdal
10341b8c779aSajacoutotA link from ${LOCALBASE}/heimdal/bin/krb5-config
10351b8c779aSajacoutotto
10361b8c779aSajacoutot.Xr krb5-config 1
10371b8c779aSajacoutotwill be put at the front of the path.
10381b8c779aSajacoutotSets
10391b8c779aSajacoutot.Ev LIB_DEPENDS
10401b8c779aSajacoutotand
10411b8c779aSajacoutot.Ev WANTLIB
10421b8c779aSajacoutotaccording to the values of
10431b8c779aSajacoutot.Ev MODHEIMDAL_LIB_DEPENDS ,
10441b8c779aSajacoutotand
10451b8c779aSajacoutot.Ev MODHEIMDAL_WANTLIB .
1046900bb53fSajacoutot.It textproc/intltool
104759066096SespieSets
104859066096Sespie.Ev MODINTLTOOL_OVERRIDE .
104935be8be3Sjasper.Pa textproc/intltool
105059066096Sespieis added to
105159066096Sespie.Ev BUILD_DEPENDS .
105259066096Sespie.Ev MODINTLTOOL_OVERRIDE
105359066096Sespiechanges the paths of
105459066096Sespie.Ev INTLTOOL_EXTRACT ,
105559066096Sespie.Ev INTLTOOL_MERGE
105659066096Sespieand
105759066096Sespie.Ev INTLTOOL_UPDATE
105859066096Sespieto use the installed versions of intltool-extract,
1059d7a923ecSjmcintltool-merge and intltool-update, instead of the version's packages into the
106035be8be3Sjasperdistfile of the port using this module.
106159066096SespieAlso affects
106259066096Sespie.Ev CONFIGURE_ENV ,
106359066096Sespie.Ev MAKE_ENV
106459066096Sespieand
106559066096Sespie.Ev MAKE_FLAGS
106659066096Sespieby appending
106759066096Sespie.Ev MODINTLTOOL_OVERRIDE
106859066096Sespieto them.
10690b5c43d7Slandry.It www/mozilla
107059066096SespieSets
107159066096Sespie.Ev PKGNAME ,
107259066096Sespie.Ev HOMEPAGE ,
107359066096Sespie.Ev MASTER_SITES ,
107459066096Sespie.Ev DISTNAME ,
107559066096Sespie.Ev USE_GMAKE ,
107659066096Sespieand
1077dbc98a8fSnaddy.Ev ONLY_FOR_ARCHS .
107859066096Sespie.Ev EXTRACT_SUFX
107959066096Sespiedefaults to .tar.bz2.
10800b5c43d7Slandry.Pp
108159066096SespieAdds common dependencies to
108259066096Sespie.Ev LIB_DEPENDS ,
108359066096Sespie.Ev WANTLIB ,
108459066096Sespie.Ev RUN_DEPENDS
108559066096Sespieand
108659066096Sespie.Ev BUILD_DEPENDS .
108759066096SespieSets common
108859066096Sespie.Ev CONFIGURE_ARGS ,
108959066096Sespie.Ev MAKE_ENV
109059066096Sespieand
109159066096Sespie.Ev CONFIGURE_ENV .
109259066096SespieSets
109359066096Sespie.Ev MOB
109459066096Sespievariable as source directory
109559066096Sespieand
109659066096Sespie.Ev MOZ
109759066096Sespieas target directory within
1098919882e8Sschwarze.Cm do-install .
10990b5c43d7Slandry.Pp
110059066096SespieIndividual port Makefile must set
110159066096Sespie.Ev MOZILLA_PROJECT ,
110259066096Sespie.Ev MOZILLA_CODENAME ,
110359066096Sespie.Ev MOZILLA_VERSION ,
110459066096Sespie.Ev MOZILLA_BRANCH ,
110559066096Sespie.Ev MOZILLA_LIBS
110659066096Sespieand
110759066096Sespie.Ev MOZILLA_DATADIRS
110859066096Sespievariables.
110959066096SespiePort can also append values to
111059066096Sespie.Ev MOZILLA_SUBST_FILES
111159066096Sespiewhich contains the list of
111259066096Sespiefiles to run
111359066096Sespie.Ev SUBST_CMD
111459066096Sespieon during
1115919882e8Sschwarze.Cm pre-configure ,
111659066096Sespieand
111759066096Sespie.Ev MOZILLA_AUTOCONF_DIRS
111859066096Sespiewhich
111959066096Sespiecontains the list of dirs where
112059066096Sespie.Ev AUTOCONF
112159066096Sespiewill be run during
1122919882e8Sschwarze.Cm pre-configure .
112399e396e4Sespie.It www/pear
11249ba6caffSsthenUsed for PHP PEAR ports.
112559066096SespieSets default
112659066096Sespie.Ev MASTER_SITES ,
112759066096Sespie.Ev EXTRACT_SUFX ,
112859066096Sespie.Ev PKGNAME .
112959066096SespieSets
113059066096Sespie.Ev PREFIX
113159066096Sespieto
113259066096Sespie.Pa /var/www .
113359066096SespieSets
1134edc3c3cdSespie.Ev NO_TEST
113559066096Sespieunless a
1136919882e8Sschwarze.Cm do-test
113759066096Sespietarget is defined.
113859066096SespieAdds common dependencies to
113959066096Sespie.Ev RUN_DEPENDS
114059066096Sespieand
114159066096Sespie.Ev BUILD_DEPENDS ,
114259066096Sespiesets
114359066096Sespie.Ev MAKE_FILE
114459066096Sespieand
114559066096Sespie.Ev FAKE_FLAGS
114659066096Sespieappropriately.
114759066096SespieMakes
114859066096Sespie.Ev PEAR_LIBDIR
114959066096Sespieand
115059066096Sespie.Ev PEAR_PHPBIN
115159066096Sespieavailable for use in the port.
115259066096SespieSets a default
115359066096Sespie.Ev PKGNAME
115459066096Sespieand appends to
115559066096Sespie.Ev CATEGORIES .
1156900bb53fSajacoutot.It x11/gnome
1157be30614aSespieSee
1158be30614aSespie.Xr gnome-module 5 .
1159900bb53fSajacoutot.It x11/gnustep
11609486d303Srsadowski.It x11/qt5 and x11/qt6
1161e907e645SzhukAll qt* modules share a common
11628cb61fe7Sespie.Ev MODQT_*
11638cb61fe7Sespienamespace for simple ports.
11649486d303SrsadowskiThe qt5 module also defines the same variables under
11659486d303Srsadowski.Ev MODQT5_*
11669486d303Srsadowskiand the qt6 module also defines the same variables under
11679486d303Srsadowski.Ev MODQT6_* ,
11688cb61fe7Sespieto allow ports to use both modules, such as
11698cb61fe7Sespie.Pa print/poppler .
11708cb61fe7Sespie.Pp
11718cb61fe7SespieThose modules define
11728cb61fe7Sespie.Ev MODQT*_LIBDIR
11738cb61fe7Sespieas the libraries location,
11748cb61fe7Sespie.Ev MODQT*_INCDIR
11758cb61fe7Sespieas the include files location,
11768cb61fe7Sespie.Ev MODQT*_QTDIR
11778cb61fe7Sespieas the global qt directory location,
11788cb61fe7Sespie.Ev MODQT*_CONFIGURE_ARGS
11798cb61fe7Sespieas standard GNU configure-style parameters to locate the include and libraries.
11808cb61fe7Sespie.Pp
118173308c70SzhukThe location of Qt-specific tools
118210501001Sjca.Nm lrelease ,
1183e907e645Szhuk.Nm moc ,
1184e907e645Szhuk.Nm qmake
11858cb61fe7Sespieand
11868cb61fe7Sespie.Nm uic
11878cb61fe7Sespieis available through
118810501001Sjca.Ev MODQT*_LRELEASE ,
1189e907e645Szhuk.Ev MODQT*_MOC ,
1190e907e645Szhuk.Ev MODQT*_QMAKE
11918cb61fe7Sespieand
11928cb61fe7Sespie.Ev MODQT*_UIC .
11938cb61fe7Sespie.Ev MODQT*_OVERRIDE_UIC
11948cb61fe7Sespiecontrols whether the default setup will force a value of
11958cb61fe7Sespie.Ev UIC
11968cb61fe7Sespieor not.
11978cb61fe7SespieThe value of
11988cb61fe7Sespie.Ev MOC
11998cb61fe7Sespieis always forced to ${MODQT*_MOC}.
1200e907e645Szhuk.Pp
1201e907e645SzhukIn most cases the
1202e907e645Szhuk.Pa devel/qmake
1203e907e645Szhukmodule should be used instead of using
1204e907e645Szhuk.Ev MODQT*_QMAKE
1205e907e645Szhukdirectly.
1206e907e645Szhuk.Pp
12078cb61fe7SespieThe modules add to
12088cb61fe7Sespie.Ev CONFIGURE_ENV , MAKE_ENV
12098cb61fe7Sespieand
12108cb61fe7Sespie.Ev MAKE_FLAGS .
12118cb61fe7SespieThey define appropriate
12128cb61fe7Sespie.Ev MODQT*_LIB_DEPENDS
12138cb61fe7Sespieand
12148cb61fe7Sespie.Ev MODQT*_WANTLIB .
121573308c70Szhuk.Pp
12169486d303SrsadowskiNote that Qt5 and Qt6 have their code split over several libraries.
12179486d303SrsadowskiBoth modules qt5 and qt6 doesn't set
1218e907e645Szhuk.Ev MODQT*_WANTLIB
1219e907e645Szhukat all.
12209486d303SrsadowskiQt5 and Qt6 consist of many so called Qt modules, these Qt modules should be
12219486d303Srsadowskiadded to
122273308c70Szhuk.Ev LIB_DEPENDS ,
122373308c70Szhuk.Ev BUILD_DEPENDS
122473308c70Szhukor
122573308c70Szhuk.Ev RUN_DEPENDS
122673308c70Szhukmanually.
122766e522d8Sdeanna.It x11/tk
122859066096SespieSets
122959066096Sespie.Ev MODTK_VERSION ,
123059066096Sespie.Ev MODTK_BIN ,
123159066096Sespie.Ev MODTK_INCDIR ,
123259066096Sespie.Ev MODTK_LIBDIR ,
123359066096Sespie.Ev MODTK_BUILD_DEPENDS ,
123459066096Sespie.Ev MODTK_RUN_DEPENDS ,
123559066096Sespie.Ev MODTK_LIB ,
123659066096Sespie.Ev MODTK_LIB_DEPENDS ,
123759066096Sespieand
123859066096Sespie.Ev MODTK_CONFIG .
123959066096Sespie.Ev MODTK_VERSION
124059066096Sespieis the default version used by all Tk ports and
124131155940Ssthenmay be overridden.
124259066096SespieAutomatically adds the
124359066096Sespie.Pa lang/tcl
124459066096Sespiemodule, provides a default
124559066096Sespie.Ev MODTCL_VERSION
124659066096Sespieto match
124759066096Sespie.Ev MODTK_VERSION ,
124859066096Sespieand affects
124959066096Sespie.Ev CATEGORIES
125059066096Sespieand
125159066096Sespie.Ev SUBST_VARS .
125259066096SespieNote the
125359066096Sespie.Ev MODTCL_WISH_ADJ
125459066096Sespieshell fragment in the
125559066096Sespie.Pa lang/tcl
125659066096Sespiemodule.
1257534c0457Slandry.It x11/xfce4
125859066096SespieSets
125959066096Sespie.Ev DIST_SUBDIR ,
126059066096Sespie.Ev EXTRACT_SUFX ,
126159066096Sespie.Ev CONFIGURE_STYLE ,
126259066096Sespie.Ev CONFIGURE_ENV
126359066096Sespieand
126459066096Sespie.Ev USE_GMAKE .
126559066096SespieIf
126659066096Sespie.Ev MODXFCE_ICON_CACHE
126759066096Sespieis set to yes, it adds
1268b2eb583eSajacoutot.Pa x11/gtk+4,-guic
126959066096Sespieto
127059066096Sespie.Ev RUN_DEPENDS .
127159066096SespieUnless
127259066096Sespie.Ev XFCE_NO_SRC
127359066096Sespieis set,
1274534c0457Slandry.Pa textproc/intltool
1275bd5b9a7cSnaddyis added to
127659066096Sespie.Ev MODULES .
127759066096SespieAlso affects
127859066096Sespie.Ev CATEGORIES .
1279534c0457Slandry.Pp
1280d2d042acSlandryXfce ports can be divided into five categories: core libraries and
1281d2d042acSlandryapplications, goodies, artwork, thunar plugins, and panel plugins.
128259066096Sespie.Ev HOMEPAGE ,
128359066096Sespie.Ev MASTER_SITES
128459066096Sespieand
128559066096Sespie.Ev DISTNAME
128659066096Sespieare built using
128759066096Sespie.Ev XFCE_VERSION
128859066096Sespie(which defaults to
128959066096Sespie.Ev XFCE_DESKTOP_VERSION
129059066096Sespieif not set) and either
129159066096Sespie.Ev XFCE_PROJECT ,
129259066096Sespie.Ev XFCE_GOODIE ,
129359066096Sespie.Ev XFCE_ARTWORK ,
129459066096Sespie.Ev THUNAR_PLUGIN
129559066096Sespieor
129659066096Sespie.Ev XFCE_PLUGIN .
1297534c0457SlandryOne of the latter has to be provided by the port Makefile.
1298d923b0aeSespie.El
1299d923b0aeSespie.Sh SEE ALSO
1300d923b0aeSespie.Xr make 1 ,
1301d923b0aeSespie.Xr bsd.port.mk 5 ,
130282ad12d0Ssthen.Xr cabal-module 5 ,
130382ad12d0Ssthen.Xr cargo-module 5 ,
130482ad12d0Ssthen.Xr gnome-module 5 ,
130582ad12d0Ssthen.Xr go-module 5 ,
130682ad12d0Ssthen.Xr python-module 5 ,
130782ad12d0Ssthen.Xr qmake-module 5 ,
13083d0ee1c7Skmos.Xr ruby-module 5 ,
1309d923b0aeSespie.Xr ports 7
1310