makers 0.3.0

a POSIX-compatible make implemented in Rust
makers-0.3.0 is not a library.

makers

A (mostly) POSIX-compatible make implemented in Rust. Not explicitly aiming for full support for every GNU make feature, 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:

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

license

Released under the Indie Code Catalog Standard Deal, version 3.0.0 or later.

Commercial licenses are available for purchase through Indie Code Catalog.

minuteæ

Canonically pronounced /ˈmeɪ.kɹɪz/ (as though saying "make risotto" but giving up halfway through).