diff --git a/src/MAKE_ETAGS b/src/MAKE_ETAGS
new file mode 100644
index 0000000000000000000000000000000000000000..94b9597aa401be529e3572206053d46d317aa225
--- /dev/null
+++ b/src/MAKE_ETAGS
@@ -0,0 +1,10 @@
+#!/bin/sh
+trap "rm -f /tmp/$$" 0 1 2 3 15
+rm -f ./TAGS
+find `pwd`/ -type f -name '*.[chyl]' -print | \
+  xargs etags --append --output=TAGS
+
+find . -type d -print | \
+while read DIR; do
+  [ "$DIR" != "." ] && ln -f -s `pwd`/TAGS $DIR
+done