# `debug`: unoptimised build with debuginfo. output: `sink-debug`
# `clean`: remove all previous object and binary output files
#
# Environment variables:
# * `SHARED` - set to "yes" to prevent passing `--static` to cc
# * `TARGET_ARCH` - target arch (`-march=`), or set `TARGET_ARCH=` to force set to generic target. (default [release only]: `native`)
# * `CFLAGS`, `COMMON_FLAGS` - passthrough to cc
# * `LDFLAGS` - passthrough to ld
# * `DEBUG_CFLAGS`, `DEBUG_LDFLAGS` - passthrough to cc / ld on target `debug`
# * `RELEASE_CFLAGS`, `RELEASE_LDFLAGS` - passthrough to cc / ld on target `release`
#
# Make overridable only:
# * `STRIP` - Strip command for default output (stripped release) target (`make sink`). set `make STRIP=:` to prevent stripping entirely. (NOTE: When using `make install`, `STRIP=:` will not work, instead, paradoxically, set `STRIP=true`, they have the same effect for all targets)