wml::mod::MakeMaker(3)
π wml::mod::MakeMaker(3) π
okay so bestie, welcome to the EN Tools manual page for wml::mod::MakeMaker and honestly? it's giving "makefile generator that actually gets you". let's go π¦
β¨ NAME β¨
wml::mod::MakeMaker β a Makefile generator π
β¨ SYNOPSIS β¨
#!wml -o Makefile
#use wml::mod::MakeMaker
<write-makefile [attributes]>
πΈ DESCRIPTION πΈ
So this include file is literally your bestie for writing a Makefile that distributes your own WML modules. no cap, it makes it so easy. it's inspired by the Perl module ExtUtils::MakeMaker, if you know her π
π Default targets π
make allβ the default target, bestie. it builds all the include files and their documentation. main character behaviour fr.make installβ installs the include files and the documentation into the locations thatwml -V2tells you about. periodt.make cleanβ removes the files thatmakegenerated. bye πmake distcleanβ same energy asmake clean, except it also removes theMakefileitself. she's thorough.make distβ builds a distribution. β οΈ this one should only be used by the module maintainer, okay? if there's aMANIFESTfile, then the list of files to include gets taken from that file. otherwise the tarball contains all source files, plusMakeMaker.wml,Makefile.wml,shtoolandREADMEif those files exist. no extra guessing, that's just the rules.
π« Overriding default targets π«
To build the Makefile, all the targets get put into separate buffers during pass 3, and then those buffers get diverted by pass 5. so if you wanna override a default target, you just redefine the buffer contents. the buffer names are super explicit, no detective work needed:
MK_ALL MK_INSTALL MK_CLEAN MK_DISTCLEAN MK_CONFIG MK_RELEASE
π§ Defining new targets π§
MK_USER is empty and it is devoted to this task. she's just sitting there waiting for you to make her iconic β¨
π ATTRIBUTES π
π¨ bestie listen up: the first three attributes are mandatory. not optional. mandatory mandatory.
packageβ the name of the package πversionβ its version number βmodulesβ list of modules to build and install. it's a space separated list of filenames. modules should live in a sub-directory to be compliant with the actual file hierarchy. for instance, the declaration
modules="math/log.tmpl math/exp.tmpl"
tells you that after compilation there are two modules, which are math/log.tmpl and math/exp.tmpl. these modules will be installed to LibDir/include/math/log.tmpl and LibDir/include/math/exp.tmpl.
these modules then get called in a WML file by
#use tmpl::math::log
#use tmpl::math::exp
source files for these modules are obtained by replacing the suffix with .src.
src-extβ defines an alternate suffix for the source files πman-extβ section number of the manual in which man files get put. default is3.extradistfilesβ space separated list of files to include in a distribution. by default, all source files plusMakeMaker.wml,Makefile.wml,READMEandshtoolare included in a distribution.
π EXAMPLE π
<write-makefile
package="log"
version="3.14"
modules="math/log.tmpl"
source-ext="exp"
>
this will build the tmpl::math::log include module from the math/log.exp source file. this source file will also produce the tmpl::math::log(3) manpage. ate. π
π₯ NOTES π₯
please do not use a .wml suffix for your modules, bestie π those should be reserved for the official WML modules shipped with WML. you may instead put your initials or anything else. iykyk π
π«Ά AUTHOR π«Ά
Denis Barbier
barbier@engelschall.com
β REQUIRES β
Internal: P1, P2, P3, P5
External: --
and that's the whole page, babe π this was wml::mod::MakeMaker(3) from EN Tools, dated 2020-11-29. go build something iconic with it, ily, bye πβ¨π¦
π¦ where this page comes from
- debian bookworm: wml 2.32.0~ds1-1 Β· GPL-2.0-or-later
- debian trixie: wml 2.32.0~ds1-1 Β· GPL-2.0-or-later
- ubuntu jammy: wml 2.32.0~ds1-1 Β· GPL-2.0-or-later
- ubuntu noble: wml 2.32.0~ds1-1 Β· GPL-2.0-or-later
- ubuntu questing: wml 2.32.0~ds1-1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms