diff --git a/GNUmakefile.in b/GNUmakefile.in
index 82d64cc61eb90c4bf66429afaaf987aa4fcd30a5..233858996b971358d84b5889b544498abbf60c8f 100644
--- a/GNUmakefile.in
+++ b/GNUmakefile.in
@@ -462,23 +462,32 @@ undo-configure:
 	find $SRCDIR -name '*.in' -a -not -name configure.in | \
 	    sed -e "s;$SRCDIR;$OBJDIR;" -e 's;[.]in$;;' | xargs rm -f
 
+#
+# XXX a "temporary" hack for scripts that were evolving fast.
+# We didn't want to have to remake the client image whenever we changed these.
+# They are copied over to the embryonic boss and ops during setup.
+#
+elabinelab-scripts:
+	cp $(SRCDIR)/clientside/tmcc/freebsd/mkextrafs.pl $(INSTALL_TOPDIR)/etc/
+	cp $(SRCDIR)/clientside/tmcc/common/config/rc.mkelab $(INSTALL_TOPDIR)/etc/
+
 ifeq ($(SPEWFROMOPS),1)
-elabinelab:
+elabinelab: elabinelab-scripts
 	-mkdir -p /share/emulab
 	rm -f /share/emulab/emulab-src.tar.gz
 	tar czf /share/emulab/emulab-src.tar.gz -C $(SRCDIR) --exclude=.git .
 
-elabinelab-git:
+elabinelab-git: elabinelab-scripts
 	-mkdir -p /share/emulab
 	rm -f /share/emulab/emulab-src.tar.gz
 	git archive --prefix=testbed/ | gzip -c >/share/emulab/emulab-src.tar.gz
 else
-elabinelab:
+elabinelab: elabinelab-scripts
 	-mkdir -p $(INSTALL_TOPDIR)/src
 	rm -f $(INSTALL_TOPDIR)/src/emulab-src.tar.gz
 	tar czf $(INSTALL_TOPDIR)/src/emulab-src.tar.gz -C $(SRCDIR) --exclude=.git .
 
-elabinelab-git:
+elabinelab-git: elabinelab-scripts
 	-mkdir -p $(INSTALL_TOPDIR)/src
 	rm -f $(INSTALL_TOPDIR)/src/emulab-src.tar.gz
 	git archive --prefix=testbed/ | gzip -c > $(INSTALL_TOPDIR)/src/emulab-src.tar.gz