MAKEFILE(8)
๐ MAKEFILE(8) ๐
okay so bestie, plot twist: this is not a manpage about a command, it's the actual NetBSD Makefile that builds the sectionโ8 manpages. It's the girl behind the girl. The mainโcharacter energy behind every .8 file you've ever read. Periodt.
It struts in with its RCS header, like:
# $NetBSD: Makefile,v 1.112 2024/12/07 18:45:20 martin Exp
$ # from: @(#)Makefile 8.1 (Berkeley) 6/5/93
Yes she's on version 1.112, dated 2024/12/07 18:45:20, by martin, and she traces her whole lineage back to @(#)Makefile 8.1 (Berkeley) 6/5/93. Legacy. Iconic. ๐
โจ MAN โ the pages this thing actually ships โจ
Here's the assignment exactly as she wrote it:
MAN= MAKEDEV.8 MAKEDEV.local.8 afterboot.8 boot.8 compat_30.8
compat_bsdos.8 compat_freebsd.8 compat_linux.8 compat_netbsd32.8 compat_sunos.8 compat_ultrix.8
creds_msdos.8 diskless.8 hpcboot.8 intro.8
nis.8 pam.8 rc.8 rc.subr.8 rescue.8 veriexec.8
wizd.8
(she actually lineโbreaks compat_netbsd32.8 midโword as comโ pat_netbsd32.8 in the raw file โ that's just a wrap, bestie, the page is fine, don't panic ๐ญ)
So MAN= is literally these 22 pages, and I'm listing every single one because we do not skip entries in this house ๐ซถ:
MAKEDEV.8๐MAKEDEV.local.8๐afterboot.8โจboot.8โจcompat_30.8๐ฆcompat_bsdos.8๐ฆcompat_freebsd.8๐ฆcompat_linux.8๐ฆcompat_netbsd32.8๐ฆcompat_sunos.8๐ฆcompat_ultrix.8๐ฆcreds_msdos.8๐ธdiskless.8๐ธhpcboot.8๐ธintro.8๐nis.8๐pam.8๐rc.8๐rc.subr.8๐rescue.8๐ฅveriexec.8๐ฅwizd.8๐
๐ฆ MLINKS โ the alias glowโups ๐ฆ
Every one of these is an MLINKS+= line, and every one means "this page also answers to this other name." The alias serve, honestly. ๐
MAKEDEV.8โmakedev.8MAKEDEV.local.8โmakedev.local.8compat_netbsd32.8โnetbsd32.8nis.8โyp.8rc.8โrc.d.8rc.8โrc.local.8rc.8โrc.shutdown.8rc.8โrc.shutdown.final.8
Look at rc.8 with four whole aliases. Main character behaviour, lowkey. ๐
๐ SUBDIR โ the perโarchitecture folders ๐
Then SUBDIR= sends the build into one folder per architecture, and yes, all 28 are invited to the party:
man8.acorn32man8.alphaman8.amigaman8.atariman8.cobaltman8.dreamcastman8.emipsman8.evbarmman8.hp300man8.hpcarmman8.hpcmipsman8.hpcshman8.hppaman8.mac68kman8.macppcman8.mvme68kman8.next68kman8.pmaxman8.prepman8.sandpointman8.sgimipsman8.sparcman8.sparc64man8.sun2man8.sun3man8.vaxman8.x68kman8.x86
๐ฅ the makedevs rule โ where the magic happens ๐ฅ
The comment above it says "create MAKEDEV.8 from ../../etc/MAKEDEV.tmpl", and the target is makedevs:. Verbatim, because I would never edit a queen's homework:
# create MAKEDEV.8 from ../../etc/MAKEDEV.tmpl makedevs:
cd ${.CURDIR} && ${HOST_SH} MAKEDEV2manpage.sh
So she cds into ${.CURDIR} (&& because we're not animals) and runs MAKEDEV2manpage.sh with ${HOST_SH}. That's the whole recipe. Simple, slay, done. โจ
๐ซถ the signโoff ๐ซถ
So anyway, this page is brought to you by $NetBSD: Makefile,v 1.112 2024/12/07 18:45:20 martin Exp, descended from from: @(#)Makefile 8.1 (Berkeley) 6/5/93, and it ends with the final line MANPAGE โ literally the goodbye kiss at the bottom of the file. mwah. ๐ go read some section 8 pages, bestie, you earned it ๐ธ๐ฆ๐
๐ฆ where this page comes from
- nixpkgs unstable: netbsd-source 11.0
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms