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