We're currently using <https://github.com/status-im/nimbus-build-system> which organizses a collection of utilities around `make` and friends - it lets us control a number of things that are important for project of our size:
* reproducible builds such that two developers working on the project can expect the build to work * control over dependencies so as to avoid supply chain attacks * parallelization of compilation across nim files (ie when compiling multiple binaries, the compilation should happen in parallel) * common build options (like LTO) Compared to autotools, you'll notice that there's no well-established workflow for compile-time feature detection (which headers are installed etc) - the easiest option, if you're keeping the C code, might actually be to let autotools and friends do its job, compile the code to a static library and then import that. If your project is small, using `nim` itself without extras might be enough - see for example <https://github.com/arnetheduck/nim-sqlite3-abi> which uses `{.compile.}` directives which ends up being a crude build system of its own.