gen_links.sh: auto-generate .gitignore files to ignore symlinks

In each subdir that is a target for symlinks, automatically ignore the results
of gen_links():

- At the top of gen_links.sh.inc, clear the .gitignore.
- In the loop, add each link name to the local .gitignore.
- In selected gen_links.sh, there is also a "manual" link creationg. So that
  this also ends up in the local .gitignore, have the link creation as separate
  gen_link() macro which at the same time adds to ./.gitignore.
- in the root .gitignore, ignore all the subdirs' generated */.gitignore files.

Change-Id: I73c11fe8362358bf7e1bdf0e1be53399b5d3351b
diff --git a/gen_links.sh.inc b/gen_links.sh.inc
index 2fcb9d1..aba8ca1 100644
--- a/gen_links.sh.inc
+++ b/gen_links.sh.inc
@@ -1,12 +1,21 @@
 #!dont_run_this
 # This file is sourced by */gen_links.sh
 
+rm -f .gitignore
+
+gen_link() {
+	src="$1"
+	f="$2"
+	echo "Linking $f"
+	ln -sf "$src" "$f"
+	echo "$f" >> .gitignore
+}
+
 gen_links() {
 	DIR=$1
 	shift
 	FILES=$*
 	for f in $FILES; do
-		echo "Linking $f"
-		ln -sf $DIR/$f $f
+		gen_link "$DIR/$f" "$f"
 	done
 }