i’ve solved the problem of building a single project in the core-firmware/sketchbook/ directory
first you can either have a core-firmware/sketchbook/build.mk containing PROJECT=blink (and whatever other global variables you want to set in all your programs, e.g. PATH) which you change based on what program you want to compile, or you can pass it as a variable to make like:
make clean all PROJECT=blink
then in each program directory (e.g. core-firmware/sketchbook/blink/) the build.mk looks like this - with the paths all enclosed in an ifeq-endif string match:
ifeq ($(PROJECT),blink)
# look for includes in cwd
INCLUDE_DIRS += sketchbook/blink
# list c++ files here
CPPSRC += sketchbook/blink/blink.cpp
CPPSRC += sketchbook/blink/mylib.cpp
endif