BUILD.PROJ.MK(5)
π BUILD.PROJ.MK π
ok so this is the build.proj.mk page from the File Formats Manual bestie, and it's literally all about bsdbuild and how it compiles IDE project files. sit down, grab a strawberry drink π, we're doing this.
β¨ NAME β¨
build.proj.mk β bsdbuild, but make it about compilation of IDE project files π
πΈ SYNOPSIS πΈ
.include <bsd.proj.mk>
that's it. that's the whole vibe. one line. iconic.
π¦ DESCRIPTION π¦
okay so the build.proj.mk module is out here using the premake(1) utility to generate "project files", so that BSDBuild projects can be opened by various IDEs (Integrated Development Environments). no cap, that's the whole point.
This module adds the target proj, so that make proj will compile the project files, and pack them into sets of archive files (under PROJDIR, which defaults to ./ProjectFiles). cute, right? π
The various profiles are defined by the space-separated list PROJFILES. Each entry in PROJFILES has the format:
<OS>:<IDE>:<FLAVOR>:<OPTIONS>
so like β <OS> specifies the operating system and <IDE> is the target IDE name. The <FLAVOR> argument is a flavor or variant identifier (e.g., nothreads), and <OPTIONS> is a comma-separated list of ./configure options (e.g., --disable-threads). periodt. π
π Valid <OS> values include:
windowsβ Windows 95 and upwindows-xpβ Windows XP and upwindows-xp-x64β Windows XP and up (64-bit)windows-vistaβ Windows Vista and upwindows-vista-x64β Windows Vista and up (64-bit)windows-7β Windows 7 and upwindows-7-x64β Windows 7 and up (64-bit)
Note: Premake does support other targets (bsd,linuxandmacosx), but it rarely if ever necessary to generate project files for those targets since they already provide a proper compilation environment (i.e., BSDBuild can be used directly on them). so likeβ¦ don't bother, bestie π
π§ Valid <IDE> target names include:
cb-gccβ Code::Blocks with gccvs6β Visual Studio 6vs2002β Visual Studio 2002vs2003β Visual Studio 2003vs2005β Visual Studio 2005monodevβ MonoDevelopsharpdevβ ICSharpCode SharpDevelop
π₯ TARGETS π₯
projβ IfPROJECTis defined, generate the project files. Otherwise, only generatePREMAKEOUTin the current directory. main character target fr fr π
π VARIABLES π
PROJECTβ Name of project. If a project has multiple subdirectories, this should only be defined in the top-level directory. don't be out here defining it everywhere, it's giving messy πPROJFILESβ List of project files to generate (see DESCRIPTION above).PROJDIRβ Directory to hold generated project file archives.PROJFILESEXTRAβ List of additional files to include in all project file archives.PROJINCLUDESβ List of additional premake scripts to include everywhere.PREMAKEβ Path topremake(1)utility.ZIPβ Path tozip(1)utility.ZIPFLAGSβ Flags tozip(1).MKPROJFILESβ Path tomkprojfiles(1)utility (which is part of BSDBuild).PREMAKEOUTβ Filename of premake input generated by BSDBuild (defaults topremake.lua).PREMAKEFLAGSβ Flags to premake utility.
π SEE ALSO π
go read those too, iykyk π
β HISTORY β
build.proj.mk first appeared in BSDBuild 2.2 β¨
BSDBuild is based on the 4.4BSD build system. the lore is real π«Ά
and that's the whole page bestie π
this was the Debian version from November 24, 2007 β yes, 2007, she's vintage and she ATE ππ see u in the next manpage, mwah π
π¦ where this page comes from
- nixos 26.05: bsdbuild 3.1
- nixpkgs unstable: bsdbuild 3.1
- Copyright (c) 2007 Hypertriton, Inc. <http://www.hypertriton.com/>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms