BUILD.PROJ.MK(5)

πŸ“¦ version 3.1, in nixos 26.05, nixpkgs unstable

πŸŽ€ 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 up
  • windows-xp β€” Windows XP and up
  • windows-xp-x64 β€” Windows XP and up (64-bit)
  • windows-vista β€” Windows Vista and up
  • windows-vista-x64 β€” Windows Vista and up (64-bit)
  • windows-7 β€” Windows 7 and up
  • windows-7-x64 β€” Windows 7 and up (64-bit)
Note: Premake does support other targets (bsd, linux and macosx), 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 gcc
  • vs6 β€” Visual Studio 6
  • vs2002 β€” Visual Studio 2002
  • vs2003 β€” Visual Studio 2003
  • vs2005 β€” Visual Studio 2005
  • monodev β€” MonoDevelop
  • sharpdev β€” ICSharpCode SharpDevelop

πŸ”₯ TARGETS πŸ”₯

  • proj β€” If PROJECT is defined, generate the project files. Otherwise, only generate PREMAKEOUT in 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 to premake(1) utility.
  • ZIP β€” Path to zip(1) utility.
  • ZIPFLAGS β€” Flags to zip(1).
  • MKPROJFILES β€” Path to mkprojfiles(1) utility (which is part of BSDBuild).
  • PREMAKEOUT β€” Filename of premake input generated by BSDBuild (defaults to premake.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