bug fix: `make clean` will not remove non-existing .o files