# makers A (mostly) [POSIX-compatible](https://pubs.opengroup.org/onlinepubs/9699919799/utilities/make.html) make implemented in Rust. Not explicitly aiming for full support for [every GNU make feature](https://www.gnu.org/software/make/manual/html_node/index.html), but adding whichever features are strictly necessary to be compatible with existing GNUish makefiles. ## conformance - internationalization (`LANG`/`LC_ALL`/`LC_CTYPE`/`LC_MESSAGES`) not implemented - XSI conformance (SCCS integration) not implemented - signal handling not implemented - library handling not implemented - some POSIX-specified features are pending (search `TODO` for a list) - builtin macro `MAKE` is defined as `makers` - specifying the `.POSIX` special target doesn't opt out of extensions (but you can install with `--no-default-features` to get only POSIX behavior) ## status automated tests only cover a small fraction of this software, so as it stands it's not profoundly reliable. that said, I test manually on complicated projects, and these are known to work as of the last time I checked: - Tcl - [uutils coreutils](https://github.com/uutils/coreutils), but only the root makefile so far ## changelog ### v0.3.0 - 2021-04-03 - allow installing with `--no-default-features` for pure-POSIX compatibility - implement GNU-style functions `if`, `origin`, `shell` (doesn't set `.SHELLSTATUS`), `eval` - implement GNU-style `define` blocks - improve error reporting ### v0.2.0 - 2021-04-01 - partially implement GNU-style conditionals (only parentheses around arguments are supported) - implement some GNU-style functions: `filter`, `filter-out`, `sort`, `notdir`, `basename`, `addprefix`, `wildcard`, `foreach`, `call` - improve error reporting for parse errors ### v0.1.0 - 2021-03-25 - initial release ## contributors - [zseri](https://ytrizja.de/) (code) - [@Lucretiel](https://github.com/Lucretiel) (code) - you, if you'd like! email melody@boringcactus.com if you've got something ([not just code!](https://allcontributors.org/docs/en/emoji-key)) to contribute ## license Released under the [Indie Code Catalog Standard Deal](https://indiecc.com/deal/3.0.0), version 3.0.0 or later. Commercial licenses are available for purchase [through Indie Code Catalog](https://indiecc.com/~boringcactus/makers). ## minuteæ Canonically pronounced /ˈmeɪ.kɹɪz/ (as though saying "make risotto" but giving up halfway through).