Hello in src/emc/Submakefile and its siblings, we are copying header files from the subdirectories to a common include directory:
INCLUDES += emc
$(patsubst ./emc/%,../include/%,$(wildcard ./emc/*.h)): ../include/%.h: ./emc/%.h
cp $^ $@
$(patsubst ./emc/%,../include/%,$(wildcard ./emc/*.hh)): ../include/%.hh: ./emc/%.hh
cp $^ $@
I have not fully grasped why we are doing this. These files are truly copied, not symlinked. And I am not an ultimate fan seeing all the many header files from different parts of the source tree coming together into a single namespace.