Run 'make distclean', and GNUmakefile is removed. But, GNUmakefile is where we cd to build/. Run 'make distclean' or 'make clean' again, and Makefile applies the clean actions, such as this one, at the top level of the tree:
find . \( -name '*.so' -o -name '*.dll' -o \ -name '*.[oda]' -o -name '*.gcno' \) -type f \ ! -path ./roms/edk2/ArmPkg/Library/GccLto/liblto-aarch64.a \ ! -path ./roms/edk2/ArmPkg/Library/GccLto/liblto-arm.a \ -exec rm {} + For example, it removes the .d source files in 'meson/test cases/d/*/*.d'. The damage could be worse in the future if more suffixes are cleaned. I don't have a suggested fix. Recursion and the GNUmakefile bootstrap make it non-trivial. - Steve