diff --git a/Makefile b/Makefile
index 645947f21c88127cbfbacf2a92908a772f3a2893..c8800f00a7efb82b9547cdd3282e8bc74a58820d 100644
--- a/Makefile
+++ b/Makefile
@@ -1,11 +1,82 @@
 # Testbed wide makefile.
 
-.PHONY: all lib/sql.so assign_hw/assign
+.PHONY: all lib/sql.so assign/assign 
 
-all: lib/sql.so assign_hw/assign
+install: all 
+	install -c assign/assign /usr/testbed/bin
+	install -c db/avail /usr/testbed/bin
+	install -c db/inuse /usr/testbed/bin
+	install -c db/mac2if /usr/testbed/bin
+	install -c db/nalloc /usr/testbed/bin
+	install -c db/nfree /usr/testbed/bin
+	install -c db/nodeip /usr/testbed/bin
+	install -c db/ptopgen /usr/testbed/bin
+	install -c db/showgraph /usr/testbed/bin
+	install -c db/tblog /usr/testbed/bin
+	install -c discvr/cli /usr/testbed/bin
+	install -c discvr/serv /usr/testbed/bin
+	install -c os/gethostkey.tcl /usr/testbed/bin
+	install -c os/hostkey.tcl /usr/testbed/bin
+	install -c os/instimage.exp /usr/testbed/bin
+	install -c os/key7 /usr/testbed/bin
+	install -c os/key8 /usr/testbed/bin
+	install -c os/oslist.tcl /usr/testbed/bin
+	install -c os/osnode2db.tcl /usr/testbed/bin
+	install -c os/osnodestatus.tcl /usr/testbed/bin
+	install -c os/ossane.tcl /usr/testbed/bin
+	install -c os/osset.tcl /usr/testbed/bin
+	install -c os/osstatus.tcl /usr/testbed/bin
+	install -c os/setupmachine.sh /usr/testbed/bin
+	install -c os/imagezip/imagezip /usr/testbed/bin
+	install -c tbsetup/exp_accts /usr/testbed/bin
+	install -c tbsetup/genptop /usr/testbed/bin
+	install -c tbsetup/ifc_setup /usr/testbed/bin
+	install -c tbsetup/ifc_filegen /usr/testbed/bin
+	install -c tbsetup/ir2ifc /usr/testbed/bin
+	install -c tbsetup/power /usr/testbed/bin
+	install -c tbsetup/resetvlans.tcl /usr/testbed/bin
+	install -c tbsetup/savevlans /usr/testbed/bin
+	install -c tbsetup/snmpit /usr/testbed/bin
+	install -c tbsetup/tbend.tcl /usr/testbed/bin
+	install -c tbsetup/tbprerun.tcl /usr/testbed/bin
+	install -c tbsetup/tbreport.tcl /usr/testbed/bin
+	install -c tbsetup/tbrun.tcl /usr/testbed/bin
+	install -c tbsetup/vpower /usr/testbed/bin
+	install -c tbsetup/vsnmpit /usr/testbed/bin
+	install -c tbsetup/ir/assign.tcl /usr/testbed/bin
+	install -c tbsetup/ir/extract_tb.tcl /usr/testbed/bin
+	install -c tbsetup/ir/handle_ip.tcl /usr/testbed/bin
+	install -c tbsetup/ns2ir/parse.tcl /usr/testbed/bin
+
+
+all: lib/sql.so assign/assign discvr/cli discvr/serv os/key7 os/key8 os/imagezip/imagezip
 
 lib/sql.so:
 	@$(MAKE) -C lib sql.so
 
-assign_hw/assign:
-	@$(MAKE) -C assign_hw
+assign/assign:
+	@$(MAKE) -C assign assign
+
+discvr/cli:
+	@$(MAKE) -C discvr cli
+
+discvr/serv:
+	@$(MAKE) -C discvr serv
+
+os/key7:
+	@$(MAKE) -C os key7
+
+os/key8:
+	@$(MAKE) -C os key8
+
+os/imagezip/imagezip:
+	@$(MAKE) -C os/imagezip imagezip
+
+clean:
+	@$(MAKE) -C assign clean
+	@$(MAKE) -C discvr clean
+	@$(MAKE) -C os  clean
+	@$(MAKE) -C os/imagezip clean
+
+
+
diff --git a/os/Makefile b/os/Makefile
index 13d3c1bc50692b945ac3dad7868d5214818f657c..984f86103490c3ebaed0eb232b56f28a6fe6ea86 100644
--- a/os/Makefile
+++ b/os/Makefile
@@ -8,3 +8,6 @@ key7: key7.c
 
 key8: key8.c
 	$(CC) $(CFLAGS) -o key8 key8.c
+
+clean:
+	/bin/rm -f *.o key7 key8
diff --git a/os/imagezip/Makefile b/os/imagezip/Makefile
index 494f90c0a3ab1b75c0e34b678b3cea37eb7a5139..219d9d40ab754cf2703f261c49ecc0b3d87c8cf0 100644
--- a/os/imagezip/Makefile
+++ b/os/imagezip/Makefile
@@ -7,3 +7,6 @@ imagezip: imagezip.c
 
 install: imagezip
 	install -c imagezip /usr/testbed/bin
+
+clean:
+	/bin/rm -f *.o imagezip