ChangeLog, Makefile.in, ct_c.awk, mk_cmds.sh.in:
  ct_c.awk: Work around a bug in gawk 3.05
  mk_cmds.sh.in: Allow the build system to override the standard
  	location for finding the ct_c.* files by setting the _SS_DIR_OVERRIDE
  	environment variable.
  Makefile.in: Use _SS_DIR_OVERRIDE to make sure we get the version in
  	the source tree.
ChangeLog, Makefile.in:
  Makefile.in: Use _SS_DIR_OVERRIDE to make sure we get the
  	mk_cmds support files from the source tree.

diff --git a/lib/ss/ChangeLog b/lib/ss/ChangeLog
index 6243f1d..714a240 100644
--- a/lib/ss/ChangeLog
+++ b/lib/ss/ChangeLog
@@ -1,3 +1,14 @@
+2000-07-03    <tytso@snap.thunk.org>
+
+	* ct_c.awk: Work around a bug in gawk 3.05
+
+	* mk_cmds.sh.in: Allow the build system to override the standard
+		location for finding the ct_c.* files by setting the
+		_SS_DIR_OVERRIDE environment variable.
+
+	* Makefile.in: Use _SS_DIR_OVERRIDE to make sure we get the
+		version in the source tree.
+
 2000-05-25    <tytso@snap.thunk.org>
 
 	* Makefile: Add hack dependency rule so that parallel makes work
diff --git a/lib/ss/Makefile.in b/lib/ss/Makefile.in
index 658a7c1..6dd0f8c 100644
--- a/lib/ss/Makefile.in
+++ b/lib/ss/Makefile.in
@@ -38,7 +38,7 @@
 
 TAGS=etags
 COMPILE_ET=../et/compile_et
-MK_CMDS=./mk_cmds
+MK_CMDS=_SS_DIR_OVERRIDE=. ./mk_cmds
 
 # -I.. is so that ss/ss_err.h works
 # -I$(srcdir)/.. is so that ss/ss.h works
@@ -108,7 +108,7 @@
 
 all::	libss.a # libss_p.a lint
 
-std_rqs.c: std_rqs.ct $(MK_CMDS)
+std_rqs.c: std_rqs.ct mk_cmds
 	DIR=$(srcdir) $(MK_CMDS) $(srcdir)/std_rqs.ct
 
 ss_err.c ss_err.h: ss_err.et
diff --git a/lib/ss/ct_c.awk b/lib/ss/ct_c.awk
index 872f6e0..ef74145 100644
--- a/lib/ss/ct_c.awk
+++ b/lib/ss/ct_c.awk
@@ -45,9 +45,11 @@
 	print "    (char const *)0" > outfile
 	print "};" > outfile 
 	printf "extern void %s __SS_PROTO;\n", subr > outfile
-	subr_tab[cmdnum] = subr
-	options_tab[cmdnum] = options
-	help_tab[cmdnum] = help
+	# Work around a bug in gawk 3.0.5
+	awk_bug = cmdnum
+	subr_tab[awk_bug] = subr
+	options_tab[awk_bug] = options
+	help_tab[awk_bug] = help
 }
 
 /^[0-9]/ {
diff --git a/lib/ss/mk_cmds.sh.in b/lib/ss/mk_cmds.sh.in
index 9ac9ce9..cc74274 100644
--- a/lib/ss/mk_cmds.sh.in
+++ b/lib/ss/mk_cmds.sh.in
@@ -12,6 +12,10 @@
     exit 1
 fi
 
+if test -n "$_SS_DIR_OVERRIDE" ; then
+    DIR=$_SS_DIR_OVERRIDE;
+fi
+
 if test ! -f $DIR/ct_c.sed -o ! -f $DIR/ct_c.awk ; then
     DIR=$SS_DIR
 #    echo "Falling back to $DIR..."
diff --git a/tests/progs/ChangeLog b/tests/progs/ChangeLog
index e61e280..7757f92 100644
--- a/tests/progs/ChangeLog
+++ b/tests/progs/ChangeLog
@@ -1,3 +1,8 @@
+2000-07-04    <tytso@snap.thunk.org>
+
+	* Makefile.in: Use _SS_DIR_OVERRIDE to make sure we get the
+		mk_cmds support files from the source tree.
+
 1999-11-19    <tytso@valinux.com>
 
 	* Makefile.in (distclean): Remove TAGS and Makefile.in.old from
diff --git a/tests/progs/Makefile.in b/tests/progs/Makefile.in
index 249666a..a4f1362 100644
--- a/tests/progs/Makefile.in
+++ b/tests/progs/Makefile.in
@@ -11,7 +11,7 @@
 
 @MCONFIG@
 
-MK_CMDS=	../../lib/ss/mk_cmds
+MK_CMDS=	_SS_DIR_OVERRIDE=../../lib/ss ../../lib/ss/mk_cmds
 
 PROGS=		test_icount