ExtUtil...ls::Base(3)
π ExtUtils::Builder::BuildTools::Base(3) β the perl one, user contributed, you're welcome
okay so bestie, welcome to ExtUtils::Builder::BuildTools::Base, a whole base class for BuildTools implementations. It's giving "mom friend of the compiler world" β it doesn't do the work itself, it just hands out the delegates that do. π«Ά
β¨ VERSION β¨
version 0.037 β yes, that's the number, memorize it for the vibe check. π
πΈ DESCRIPTION πΈ
So this is a base-class for providers of compiler configuration. That's the whole personality. It defines the following delegates, and honestly? They ate. π
π compile($source, $target, %options)
This compiles $source to $target. Simple as that. It takes these optional arguments, and no, you can't skip reading them:
typeβ the type of the final product. Must be one of:executableβ an executable to be run. This is the default, so if you don't say anything you get this one. π«static-libraryβ a static library to link against.shared-libraryβ a dynamic library to link against.loadable-objectβ a loadable extension. On most platforms this is literally the same as a dynamic library, but some (Mac) make a distinction between these two. iykyk. π
β οΈ okay this one matters, listen up: if you first compile for a static library that will later be linked into a shared library, you need to pick'shared-library'here. notstatic-library. don't do it. I'm serious. π
profilesβ a list of profile that can be used when compiling and linking. One profile comes with this distribution:'@Perl', which sets up the appropriate things to compile/link withlibperl. iconic behavior honestly. πinclude_dirsβ a list of directories to add to the include path, e.g.['include', '.'].defineβ a hash of preprocessor defines, e.g.{DEBUG => 1, HAVE_FEATURE => 0}.languageβ the language to use for compilation. Valid values areCorC++. no java bestie, sorry. πstandardβ the language standard to use, e.g.c99,c11.extra_argsβ a list of additional arguments to the compiler. go off, add whatever. π₯
π¦ link(\@sources, $target, %options)
typeβ this works the same as withcompile.profileβ this works the same as withcompile. (yes it'sprofilehere andprofilesup there, that's not a typo, that's just how it is, don't come for me π)languageβ this works the same as withcompile.librariesβ a list of libraries to link to. E.g.['z'].library_dirsβ a list of directories to find libraries in. E.g.['/opt/my-app/lib/'].extra_argsβ a list of additional arguments to the linker.
π§ the file-name girlies (all of them take $basename, $dir = undef)
object_file($basename, $dir = undef)β given a basename this will return the matching object file name. πlibrary_file($basename, $dir = undef)β given a basename this will return the matching shared library file name. πstatic_library_file($basename, $dir = undef)β given a basename this will return the matching static library file name. β¨loadable_file($basename, $dir = undef)β given a basename this will return the matching loadable library file name. πexecutable_file($basename, $dir = undef)β given a basename this will return the matching executable file name. π
they all just... tell you the file name. lowkey the most helpful siblings in the whole module. slay. π
π AUTHOR π
Leon Timmermans <fawaka@gmail.com> β shoutout to the main character who wrote this. π
π COPYRIGHT AND LICENSE π
This software is copyright (c) 2012 by Leon Timmermans.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. periodt. π«Ά
and that's the whole page bestie!! footer vibes for the record: this one's from perl v5.40.2, dated 2026-08-25, and the manpage header does the little ExtUtil...ls::Base(3) name-shortening thing because apparently even perl gets lazy with long names sometimes ππ mwah, go compile something, you've got this π¦πΈ
π¦ where this page comes from
- epel 10: perl-ExtUtils-Builder-Compiler 0.037-1.el10_3 Β· GPL-1.0-or-later OR Artistic-1.0-Perl
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms