# Install bmake with Homebrew, apk, apt, dnf, MacPorts, Nix, pacman, zypper

Portable version of NetBSD make(1). Version 20260714 via Homebrew; verified 2026-07-25. Also installable with debian: sudo apt install bmake.

## Install

```sh
sudo av install brew:bmake
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install bmake
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install bmake
```

  Evidence: MacPorts ports tree: devel/bmake/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add bmake
```

  Evidence: Alpine Linux edge package indexes: bmake from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install bmake
```

  Evidence: Debian stable package indexes: bmake from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- dnf (92%):

```sh
sudo dnf install bmake
```

  Evidence: Fedora Rawhide package metadata: bmake from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#bmake
```

  Evidence: nixpkgs package indexes: pkgs/by-name/bm/bmake/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- pacman (92%):

```sh
sudo pacman -S bmake
```

  Evidence: Arch Linux sync databases: bmake from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

- zypper (92%):

```sh
sudo zypper install bmake
```

  Evidence: openSUSE Tumbleweed package metadata: bmake from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst

## Package facts

- **Package key:** brew:bmake
- **Package manager:** Homebrew
- **Version:** 20260714
- **Source summary:** Portable version of NetBSD make(1)
- **Homepage:** <https://www.crufty.net/help/sjg/bmake.html>
- **Last updated:** 2026-07-25T12:24:53Z
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- bmake (alias)

## Install behavior

- Bottle: not available

## Freshness

- Page generated: 2026-08-03
- Package-manager version: 20260714
## Project history and usage

bmake is Simon J. Gerraty's portable distribution of NetBSD make, packaged so systems outside NetBSD can use the BSD make dialect and the /usr/share/mk-style build framework.

### Project history

NetBSD make descends from the BSD make family rather than GNU make. bmake packages that implementation for other Unix-like systems, preserving the conditionals, variable modifiers, include behavior, and .mk conventions expected by BSD makefiles.

The bmake documentation describes a portable build that tracks NetBSD make while being installable as a separate command. The separate name matters because many systems already reserve make for GNU make, vendor make, or another platform make.

The tool is maintained by Simon J. Gerraty, who has long maintained the portable bmake distribution and related mk files used to bring NetBSD-style builds to non-NetBSD hosts.

### Adoption history

bmake's biggest adoption channel is pkgsrc. The official pkgsrc guide tells users on systems other than NetBSD to use bmake after bootstrapping, and NetBSD's package documentation says bmake is required for correct pkgsrc operation on non-NetBSD systems.

Because pkgsrc targets many Unix-like systems, bmake became a quiet portability layer for package builds on Linux, macOS, Solaris/illumos, the BSDs, and other platforms where /usr/bin/make is not NetBSD make.

It is also packaged directly by Homebrew, MacPorts, Debian/Ubuntu, Fedora, Arch, Alpine, openSUSE, and Nix, which makes it easy to test BSD makefiles without installing a full pkgsrc tree.

### How it is used

Typical direct use is simply bmake in a source tree whose Makefile expects BSD make semantics. In pkgsrc workflows, users run bmake install, bmake clean, and related package targets after bootstrap.

bmake reads local makefile/Makefile inputs and system .mk includes such as sys.mk, so it is both a build command and an interpreter for a particular makefile language.

### Why package nerds care

bmake is package-nerd-significant because it explains why portable packaging systems do not all standardize on GNU make. pkgsrc needs one make dialect everywhere, so it carries the make implementation with the packaging framework.

It is also a reminder that make is not one language. Subtle differences in conditionals, suffix rules, includes, variable expansion, and predefined .mk files can decide whether a cross-platform package build is reproducible or mysterious.

For Homebrew users, bmake is mostly a compatibility and archaeology tool: it lets macOS users build or inspect software written for NetBSD/pkgsrc conventions without repointing the system make.

### Timeline

- 1990s: NetBSD continues the BSD make lineage as part of the base system.
- 1998: pkgsrc ships with NetBSD 1.3 and later becomes a major driver for portable NetBSD make usage.
- 2000s: bmake is distributed as a portable form of NetBSD make for non-NetBSD pkgsrc and standalone builds.
- 2010s-2020s: pkgsrc documentation continues to direct non-NetBSD users to the bootstrapped bmake command.

### Related projects

- NetBSD make: the upstream make implementation bmake packages for portable use.
- pkgsrc: the NetBSD packages collection and bmake's most important adoption path.
- BSD make and FreeBSD make: related BSD make dialects with overlapping history but different platform defaults.
- GNU make: the dominant make implementation on many Linux systems and the tool bmake commonly coexists with.

### Sources

- <https://www.crufty.net/help/sjg/bmake.html>
- <https://www.crufty.net/help/sjg/bmake_1.htm>
- <https://www.netbsd.org/docs/pkgsrc/platforms.html>
- <https://www.netbsd.org/docs/software/packages.html>
- <https://www.pkgsrc.org/>
- source_facts.package-manager


## Security Notes

No matching local secret-handling manifest was found for bmake. Nucleus package metadata is still published here so future coverage has a stable package URL.



## Configuration and credential file locations

These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.


## Configuration files

- Unix: ./makefile, ./Makefile, /usr/share/mk/sys.mk
## Other Package-Manager Records

- Debian apt - bmake - 20200710-17: normalized package name match | Debian stable package indexes: bmake from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | NetBSD make | https://www.crufty.net/help/sjg/bmake.html
- Nix - bmake: normalized package name match | nixpkgs package indexes: pkgs/by-name/bm/bmake/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - bmake - 20200710-16: normalized package name match | Ubuntu 24.04 LTS package indexes: bmake from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | NetBSD make | https://www.crufty.net/help/sjg/bmake.html
- apk - bmake - 20260714-r0: normalized package name match | Alpine Linux edge package indexes: bmake from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Portable version of the NetBSD make build tool | https://www.crufty.net/help/sjg/bmake.html
- apk - bmake-doc - 20260714-r0: normalized package name match | Alpine Linux edge package indexes: bmake-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Portable version of the NetBSD make build tool (documentation) | https://www.crufty.net/help/sjg/bmake.html
- dnf - bmake - 20230711-11.fc45: normalized package name match | Fedora Rawhide package metadata: bmake from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst | The NetBSD make(1) tool | https://ftp.netbsd.org/pub/NetBSD/misc/sjg/
- dnf - mk-files - 20230711-11.fc45: normalized package name match | Fedora Rawhide package metadata: mk-files from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst | Support files for bmake, the NetBSD make(1) tool | https://ftp.netbsd.org/pub/NetBSD/misc/sjg/
- pacman - bmake - 20260714-1: normalized package name match | Arch Linux sync databases: bmake from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | Portable version of the NetBSD make build tool | https://www.crufty.net/help/sjg/bmake.html
- zypper - bmake - 20230723-1.11: normalized package name match | openSUSE Tumbleweed package metadata: bmake from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | The NetBSD make(1) tool | https://ftp.NetBSD.org/pub/NetBSD/misc/sjg/
- MacPorts - bmake: normalized package name match | MacPorts ports tree: devel/bmake/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1


## Combined YAML source

View the package source record on GitHub. [combined/bmake.yml](https://github.com/mxcl/pkgdb/blob/main/combined/bmake.yml)


## Sources

- pkg.so package database
- Geiger risk classifier
- curated configuration and credential file locations
- curated package history
- pkgdb category and tag curation
- external package-manager database matches
- cross-ecosystem install command graph
