When the directory is created during the build process, it is as root.
This prevents us deleting root-owned files inside the directory during make clean.
In client/build/, we get around this because the directory contains a tracked file,
so it's created during git checkout.
We make this the case for build-external by adding a hidden, empty file to track.
This won't fix existing checkouts though, so we also add a fix-up step to make clean.
The use of .gitignore as the empty file to track is taken from
https://git.wiki.kernel.org/index.php/GitFaq#Can_I_add_empty_directories.3F
Specifically:
"If you really need a directory to exist in checkouts you should create a file in it.
.gitignore works well for this purpose"