makers-0.4.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
TODOfor a list) - builtin macro
MAKEis defined asmakers - specifying the
.POSIXspecial target doesn't opt out of extensions (but you can install with--no-default-featuresto get only POSIX behavior)
status
i haven't written unit tests for most of makers, but there are integration tests that try to build various make-based projects with makers.
specific projects tested:
list of features that are needed for version 1.0:
- tested with CPython
- tested with Linux
- unit tests for most of the things
- no TODOs left
changelog
v0.4.0 - 2021-04-03
- fix newline handling so escaped newlines & conditional lines work the way they're supposed to
- implement GNU-style
%-matching inference rules - dependencies of
.PHONYspecial target are now always assumed out-of-date until rebuilt, regardless of filesystem status - give user-defined inference rules priority over built-in ones
v0.3.0 - 2021-04-03
- allow installing with
--no-default-featuresfor pure-POSIX compatibility - implement GNU-style functions
if,origin,shell(doesn't set.SHELLSTATUS),eval - implement GNU-style
defineblocks - 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 (code)
- @Lucretiel (code)
- you, if you'd like! email melody@boringcactus.com if you've got something (not just code!) to contribute
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).