From e460550c6bba8829e8618e0689502eba05ee1604 Mon Sep 17 00:00:00 2001
From: Leigh B Stoller <stoller@flux.utah.edu>
Date: Wed, 27 Jul 2011 13:43:19 -0600
Subject: [PATCH] Forgot to move the lib directory from toplevel into
 clientside, since clientside requres it to be there. As noted in previous
 revision, the full emulab build always includes the clientside subdir, but a
 clientside build will not necessarily include the rest of Emulab.

---
 GNUmakefile.in                                | 13 ++++---
 Makeconf.in                                   |  2 ++
 capture/GNUmakefile.in                        |  6 ++--
 clientside/GNUmakefile.in                     | 11 +-----
 clientside/Makeconf.in                        |  2 ++
 clientside/configure                          | 36 ++++---------------
 clientside/configure.in                       | 18 +++-------
 clientside/event/delay-agent/GNUmakefile.in   |  8 ++---
 clientside/event/link-agent/GNUmakefile.in    |  7 ++--
 clientside/event/linktest/GNUmakefile.in      | 14 ++++----
 clientside/event/program-agent/GNUmakefile.in |  7 ++--
 clientside/event/proxy/GNUmakefile.in         | 20 ++++++-----
 clientside/event/tevc/GNUmakefile.in          |  9 ++---
 clientside/event/trafgen/GNUmakefile.in       |  7 ++--
 {lib => clientside/lib}/GNUmakefile.in        |  0
 {lib => clientside/lib}/event/GNUmakefile.in  |  0
 {lib => clientside/lib}/event/README          |  0
 {lib => clientside/lib}/event/event.c         |  0
 {lib => clientside/lib}/event/event.h         |  0
 {lib => clientside/lib}/event/event.i         |  0
 {lib => clientside/lib}/event/event.pm        |  0
 {lib => clientside/lib}/event/event.pm.tail   |  0
 {lib => clientside/lib}/event/event_wrap.c    |  0
 {lib => clientside/lib}/event/event_wrap_py.c |  0
 {lib => clientside/lib}/event/perlvers.pl     |  0
 {lib => clientside/lib}/event/tbevent.py      |  0
 {lib => clientside/lib}/event/tbevent.py.tail |  0
 {lib => clientside/lib}/event/util.c          |  0
 {lib => clientside/lib}/libtb/GNUmakefile.in  |  0
 {lib => clientside/lib}/libtb/be_user.c       |  0
 {lib => clientside/lib}/libtb/be_user.h       |  0
 {lib => clientside/lib}/libtb/log.c           |  0
 {lib => clientside/lib}/libtb/log.h           |  0
 {lib => clientside/lib}/libtb/popenf.c        |  0
 {lib => clientside/lib}/libtb/popenf.h        |  0
 {lib => clientside/lib}/libtb/systemf.c       |  0
 {lib => clientside/lib}/libtb/systemf.h       |  0
 {lib => clientside/lib}/libtb/tbdb.c          |  0
 {lib => clientside/lib}/libtb/tbdb.h          |  0
 {lib => clientside/lib}/libtb/tbdefs.c        |  0
 {lib => clientside/lib}/libtb/tbdefs.h        |  0
 {lib => clientside/lib}/libtb/tmcc.c          |  0
 {lib => clientside/lib}/libtb/tmcc.h          |  0
 {lib => clientside/lib}/tmcd/GNUmakefile.in   |  3 +-
 {lib => clientside/lib}/tmcd/ssl.c            |  0
 {lib => clientside/lib}/tmcd/ssl.h            |  0
 {lib => clientside/lib}/tmcd/tmcd.h           |  0
 {lib => clientside/lib}/tmcd/tpm.c            |  0
 {lib => clientside/lib}/tmcd/tpm.h            |  0
 clientside/os/genhostsfile/GNUmakefile.in     |  4 +--
 clientside/os/syncd/GNUmakefile.in            |  5 ++-
 clientside/sensors/slothd/GNUmakefile.in      |  6 ++--
 clientside/tmcc/GNUmakefile.in                | 19 +++++-----
 clientside/tools/pcapper/GNUmakefile.in       |  9 ++---
 configure                                     |  5 +--
 configure.in                                  |  5 +--
 event/example/GNUmakefile.in                  |  8 +++--
 event/new_sched/GNUmakefile.in                | 10 +++---
 event/nsetrafgen/GNUmakefile.in               |  6 ++--
 event/proxy/GNUmakefile.in                    | 17 +++++----
 event/sched/GNUmakefile.in                    | 12 +++----
 os/frisbee.redux/GNUmakefile.in               |  5 +--
 pxe/GNUmakefile.in                            |  9 ++---
 robots/emc/GNUmakefile.in                     |  9 ++---
 robots/rmcd/GNUmakefile.in                    |  6 ++--
 robots/vmcd/GNUmakefile.in                    |  7 ++--
 security/GNUmakefile.in                       |  6 ++--
 tmcd/GNUmakefile.in                           | 30 ++++++++--------
 tools/rmanage/GNUmakefile.in                  | 15 ++++----
 69 files changed, 169 insertions(+), 187 deletions(-)
 rename {lib => clientside/lib}/GNUmakefile.in (100%)
 rename {lib => clientside/lib}/event/GNUmakefile.in (100%)
 rename {lib => clientside/lib}/event/README (100%)
 rename {lib => clientside/lib}/event/event.c (100%)
 rename {lib => clientside/lib}/event/event.h (100%)
 rename {lib => clientside/lib}/event/event.i (100%)
 rename {lib => clientside/lib}/event/event.pm (100%)
 rename {lib => clientside/lib}/event/event.pm.tail (100%)
 rename {lib => clientside/lib}/event/event_wrap.c (100%)
 rename {lib => clientside/lib}/event/event_wrap_py.c (100%)
 rename {lib => clientside/lib}/event/perlvers.pl (100%)
 rename {lib => clientside/lib}/event/tbevent.py (100%)
 rename {lib => clientside/lib}/event/tbevent.py.tail (100%)
 rename {lib => clientside/lib}/event/util.c (100%)
 rename {lib => clientside/lib}/libtb/GNUmakefile.in (100%)
 rename {lib => clientside/lib}/libtb/be_user.c (100%)
 rename {lib => clientside/lib}/libtb/be_user.h (100%)
 rename {lib => clientside/lib}/libtb/log.c (100%)
 rename {lib => clientside/lib}/libtb/log.h (100%)
 rename {lib => clientside/lib}/libtb/popenf.c (100%)
 rename {lib => clientside/lib}/libtb/popenf.h (100%)
 rename {lib => clientside/lib}/libtb/systemf.c (100%)
 rename {lib => clientside/lib}/libtb/systemf.h (100%)
 rename {lib => clientside/lib}/libtb/tbdb.c (100%)
 rename {lib => clientside/lib}/libtb/tbdb.h (100%)
 rename {lib => clientside/lib}/libtb/tbdefs.c (100%)
 rename {lib => clientside/lib}/libtb/tbdefs.h (100%)
 rename {lib => clientside/lib}/libtb/tmcc.c (100%)
 rename {lib => clientside/lib}/libtb/tmcc.h (100%)
 rename {lib => clientside/lib}/tmcd/GNUmakefile.in (96%)
 rename {lib => clientside/lib}/tmcd/ssl.c (100%)
 rename {lib => clientside/lib}/tmcd/ssl.h (100%)
 rename {lib => clientside/lib}/tmcd/tmcd.h (100%)
 rename {lib => clientside/lib}/tmcd/tpm.c (100%)
 rename {lib => clientside/lib}/tmcd/tpm.h (100%)

diff --git a/GNUmakefile.in b/GNUmakefile.in
index f0e4cba89b..e40a41bce5 100644
--- a/GNUmakefile.in
+++ b/GNUmakefile.in
@@ -30,10 +30,12 @@ include Makeconf
 # Then things that depend on stuff we just did:
 #
 ifeq ($(STANDALONE_CLEARINGHOUSE),0)
-SUBDIRS = lib db assign www @optional_subdirs@ clientside ipod security sensors \
-		pxe tbsetup account tmcd utils backend tip capture ipod vis \
-		sensors os xmlrpc install/newnode_sshkeys mote tools/whol \
-		tools/svn wiki bugdb collab protogeni node_usage install
+SUBDIRS = \
+	clientside/lib \
+	db assign www @optional_subdirs@ clientside ipod security sensors \
+	pxe tbsetup account tmcd utils backend tip capture ipod vis \
+	sensors os xmlrpc install/newnode_sshkeys mote tools/whol \
+	tools/svn wiki bugdb collab protogeni node_usage install
 ifeq ($(ISMAINSITE),1)
 SUBDIRS += tools/rmanage
 endif
@@ -130,7 +132,6 @@ ops-install:
 	@$(MAKE) -C db control-install
 	@$(MAKE) -C tbsetup control-install
 	@$(MAKE) -C utils control-install
-	@$(MAKE) -C lib control-install
 ifeq ($(EVENTSYS),1)
 	@$(MAKE) -C event control-install
 endif
@@ -192,7 +193,6 @@ client-mkdirs:
 	-mkdir -p $(DESTDIR)$(CLIENT_MANDIR)
 
 client:
-	@$(MAKE) -C lib client
 	@$(MAKE) -C clientside client
 	@$(MAKE) -C os client
 ifneq ($(SYSTEM),CYGWIN_NT-5.1)
@@ -201,7 +201,6 @@ ifneq ($(SYSTEM),CYGWIN_NT-5.1)
 endif
 
 client-install: client client-mkdirs
-	@$(MAKE) -C lib client-install
 	@$(MAKE) -C clientside client-install
 	@$(MAKE) -C os client-install
 ifneq ($(SYSTEM),CYGWIN_NT-5.1)
diff --git a/Makeconf.in b/Makeconf.in
index c130617f15..5f8be28116 100644
--- a/Makeconf.in
+++ b/Makeconf.in
@@ -96,3 +96,5 @@ MERGE_BUILD = @MERGE_BUILD@
 MERGE_BUILD_SANDBOX = @MERGE_BUILD_SANDBOX@
 
 EXP_VIS_SUPPORT    = @EXP_VIS_SUPPORT@
+TESTBED_LIBSRCDIR  = ${TESTBED_SRCDIR}/clientside/lib
+TESTBED_LIBOBJDIR  = ${OBJDIR}/clientside/lib
diff --git a/capture/GNUmakefile.in b/capture/GNUmakefile.in
index e7e00bf0e0..a8135f5791 100644
--- a/capture/GNUmakefile.in
+++ b/capture/GNUmakefile.in
@@ -1,6 +1,6 @@
 #
 # EMULAB-COPYRIGHT
-# Copyright (c) 2000-2008 University of Utah and the Flux Group.
+# Copyright (c) 2000-2011 University of Utah and the Flux Group.
 # All rights reserved.
 #
 
@@ -20,7 +20,7 @@ client: capture capquery caplog caplog.bin
 
 include $(TESTBED_SRCDIR)/GNUmakerules
 
-DBFLAGS	+= -I/usr/local/include -I$(TESTBED_SRCDIR)/lib/libtb
+DBFLAGS	+= -I/usr/local/include -I$(TESTBED_LIBSRCDIR)/libtb
 
 #
 # Define LOG_DROPS to record warnings in syslog whenever chars were dropped
@@ -60,7 +60,7 @@ capture-tty: capture.c capdecls.h
 
 capserver:	capserver.c capdecls.h
 	$(CC) $(CFLAGS) $(DBFLAGS) -o capserver $< \
-		${OBJDIR}/lib/libtb/libtb.a \
+		${TESTBED_LIBOBJDIR}/libtb/libtb.a \
 		-L/usr/local/lib/mysql -lmysqlclient
 
 #
diff --git a/clientside/GNUmakefile.in b/clientside/GNUmakefile.in
index 20d12be018..cb5846bbcb 100644
--- a/clientside/GNUmakefile.in
+++ b/clientside/GNUmakefile.in
@@ -11,16 +11,7 @@ SYSTEM	       := $(shell uname -s)
 
 include $(OBJDIR)/Makeconf
 
-SUBDIRS         =
-ifeq ($(WITH_EMULAB),0)
-#
-# lib is a common directory, and is added to the clientside tarball.
-# So not do not build it when building full emulab tree; already done.
-#
-SUBDIRS	       += lib
-endif
-# These must be after lib.
-SUBDIRS	       += event tools os sensors tmcc
+SUBDIRS         = lib event tools os sensors tmcc
 
 ifeq ($(WITH_EMULAB),1)
 all:	all-subdirs
diff --git a/clientside/Makeconf.in b/clientside/Makeconf.in
index 5649f3a3c9..b816bdf990 100644
--- a/clientside/Makeconf.in
+++ b/clientside/Makeconf.in
@@ -53,3 +53,5 @@ LOG_TESTBED	= @LOG_TESTBED@
 EVENTSYS	= @EVENTSYS@
 ELVIN_COMPAT    = @ELVIN_COMPAT@
 WITH_EMULAB     = @WITH_EMULAB@
+TESTBED_LIBSRCDIR  = ${TESTBED_SRCDIR}/lib
+TESTBED_LIBOBJDIR  = ${OBJDIR}/lib
diff --git a/clientside/configure b/clientside/configure
index 86b7f689d3..976defa581 100755
--- a/clientside/configure
+++ b/clientside/configure
@@ -4829,6 +4829,10 @@ done
 # END Python detection.
 
 outfiles="Makeconf GNUmakefile \
+	  lib/GNUmakefile \
+          lib/libtb/GNUmakefile \
+          lib/tmcd/GNUmakefile \
+          lib/event/GNUmakefile \
 	  event/GNUmakefile \
 	  event/program-agent/GNUmakefile \
 	  event/link-agent/GNUmakefile \
@@ -4873,21 +4877,6 @@ outfiles="Makeconf GNUmakefile \
 	  os/GNUmakefile os/syncd/GNUmakefile \
 	  os/dijkstra/GNUmakefile os/genhostsfile/GNUmakefile"
 
-#
-# When building as part of a full emulab build, a few things come
-# from the outer (upper?) build. Otherwise, we have to add them
-# to the files list.
-#
-if test $WITH_EMULAB -eq 0; then
-   outfiles="$outfiles lib/GNUmakefile \
-             lib/libtb/GNUmakefile \
-             lib/tmcd/GNUmakefile \
-             lib/event/GNUmakefile"
-else
-   ac_config_commands="$ac_config_commands lib"
-
-fi
-
 #
 # Do this for easy distclean.
 #
@@ -5333,7 +5322,6 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 # Files that config.status was made for.
 config_files="$ac_config_files"
 config_headers="$ac_config_headers"
-config_commands="$ac_config_commands"
 
 _ACEOF
 
@@ -5360,9 +5348,6 @@ $config_files
 Configuration headers:
 $config_headers
 
-Configuration commands:
-$config_commands
-
 Report bugs to <bug-autoconf@gnu.org>."
 
 _ACEOF
@@ -5486,7 +5471,6 @@ for ac_config_target in $ac_config_targets
 do
   case $ac_config_target in
     "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
-    "lib") CONFIG_COMMANDS="$CONFIG_COMMANDS lib" ;;
     "$outfiles") CONFIG_FILES="$CONFIG_FILES $outfiles" ;;
 
   *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
@@ -5503,7 +5487,6 @@ done
 if $ac_need_defaults; then
   test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
   test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
-  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
 fi
 
 # Have a temporary directory for convenience.  Make it in the build tree
@@ -5799,7 +5782,7 @@ $as_echo "$as_me: error: could not setup config headers machinery" >&2;}
 fi # test -n "$CONFIG_HEADERS"
 
 
-eval set X "  :F $CONFIG_FILES  :H $CONFIG_HEADERS    :C $CONFIG_COMMANDS"
+eval set X "  :F $CONFIG_FILES  :H $CONFIG_HEADERS    "
 shift
 for ac_tag
 do
@@ -6100,16 +6083,9 @@ $as_echo "$as_me: error: could not create -" >&2;}
   fi
  ;;
 
-  :C)  { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5
-$as_echo "$as_me: executing $ac_file commands" >&6;}
- ;;
-  esac
-
-
-  case $ac_file$ac_mode in
-    "lib":C) rm -f lib; ln -s ../lib . ;;
 
   esac
+
 done # for ac_tag
 
 
diff --git a/clientside/configure.in b/clientside/configure.in
index 09fc678446..63ce4f9048 100644
--- a/clientside/configure.in
+++ b/clientside/configure.in
@@ -155,6 +155,10 @@ AC_SUBST(PYTHON_INCLUDE)
 # END Python detection.
 
 outfiles="Makeconf GNUmakefile \
+	  lib/GNUmakefile \
+          lib/libtb/GNUmakefile \
+          lib/tmcd/GNUmakefile \
+          lib/event/GNUmakefile \
 	  event/GNUmakefile \
 	  event/program-agent/GNUmakefile \
 	  event/link-agent/GNUmakefile \
@@ -199,20 +203,6 @@ outfiles="Makeconf GNUmakefile \
 	  os/GNUmakefile os/syncd/GNUmakefile \
 	  os/dijkstra/GNUmakefile os/genhostsfile/GNUmakefile"
 
-#
-# When building as part of a full emulab build, a few things come
-# from the outer (upper?) build. Otherwise, we have to add them
-# to the files list.
-#
-if test $WITH_EMULAB -eq 0; then
-   outfiles="$outfiles lib/GNUmakefile \
-             lib/libtb/GNUmakefile \
-             lib/tmcd/GNUmakefile \
-             lib/event/GNUmakefile"
-else
-   AC_CONFIG_COMMANDS([lib], [rm -f lib; ln -s ../lib .])
-fi
-
 #
 # Do this for easy distclean.
 #
diff --git a/clientside/event/delay-agent/GNUmakefile.in b/clientside/event/delay-agent/GNUmakefile.in
index 3e5ec35c76..e0e23036ad 100644
--- a/clientside/event/delay-agent/GNUmakefile.in
+++ b/clientside/event/delay-agent/GNUmakefile.in
@@ -16,12 +16,12 @@ include $(TESTBED_SRCDIR)/GNUmakerules
 
 #CFLAGS  += -DDEBUG
 CFLAGS	 += -O -g -Wall
-CFLAGS   += -I. -I${OBJDIR} -I$(TESTBED_SRCDIR)/lib/libtb
-CFLAGS   += -I$(TESTBED_SRCDIR)/lib/event
+CFLAGS   += -I. -I$(TESTBED_LIBSRCDIR)/libtb
+CFLAGS   += -I$(TESTBED_LIBSRCDIR)/event
 CFLAGS   += -I/usr/local/include
 
 LDFLAGS  += $(LDSTATIC)
-LDFLAGS  += -L${OBJDIR}/lib/libtb -L${OBJDIR}/lib/event
+LDFLAGS  += -L${TESTBED_LIBOBJDIR}/libtb -L${TESTBED_LIBOBJDIR}/event
 LIBS     += -levent -ltb -lcrypto
 LIBS     += -L/usr/local/lib -lpubsub -lm
 
@@ -30,7 +30,7 @@ OBJS	  = main.o callback.o
 delay-agent:	$(OBJS)
 	$(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
 
-$(OBJS):	main.h $(OBJDIR)/lib/event/libevent.a
+$(OBJS):	main.h $(TESTBED_LIBOBJDIR)/event/libevent.a
 
 install:
 boss-install:
diff --git a/clientside/event/link-agent/GNUmakefile.in b/clientside/event/link-agent/GNUmakefile.in
index b9fcf6204e..7c7b515c52 100644
--- a/clientside/event/link-agent/GNUmakefile.in
+++ b/clientside/event/link-agent/GNUmakefile.in
@@ -19,10 +19,10 @@ include $(TESTBED_SRCDIR)/GNUmakerules
 CFLAGS   += -DDEBUG
 CFLAGS	 += -O -g -Wall
 CFLAGS   += -I. -I${OBJDIR}
-CFLAGS   += -I$(TESTBED_SRCDIR)/lib/event -I$(TESTBED_SRCDIR)/lib/libtb
+CFLAGS   += -I$(TESTBED_LIBSRCDIR)/event -I$(TESTBED_LIBSRCDIR)/libtb
 CFLAGS   += -I/usr/local/include
 
-LDFLAGS  += -L${OBJDIR}/lib/event -L${OBJDIR}/lib/libtb
+LDFLAGS  += -L${TESTBED_LIBOBJDIR}/event -L${TESTBED_LIBOBJDIR}/libtb
 LIBS     += -levent -ltb -lcrypto
 LIBS     += -L/usr/local/lib -lpubsub -lm
 LDFLAGS  += $(LDSTATIC)
@@ -50,7 +50,8 @@ endif
 link-agent-debug:	link-agent.o
 	$(CC) $(LDFLAGS) -o $@ link-agent.o $(LIBS)
 
-$(PROGRAMS):	${OBJDIR}/lib/event/libevent.a ${OBJDIR}/lib/event/event.h
+$(PROGRAMS):	${TESTBED_LIBOBJDIR}/event/libevent.a \
+		${TESTBED_LIBSRCDIR}/event/event.h
 
 boss-install:
 
diff --git a/clientside/event/linktest/GNUmakefile.in b/clientside/event/linktest/GNUmakefile.in
index d036bf1c6a..0eb37ceecc 100644
--- a/clientside/event/linktest/GNUmakefile.in
+++ b/clientside/event/linktest/GNUmakefile.in
@@ -8,8 +8,8 @@ TESTBED_SRCDIR	= @top_srcdir@
 OBJDIR		= @top_builddir@
 SUBDIR		= $(subst $(TESTBED_SRCDIR)/,,$(SRCDIR))
 
-LIBTBDIR        = $(OBJDIR)/lib/libtb
-LIBEVENTDIR     = ${OBJDIR}/lib/event
+LIBTBDIR        = $(TESTBED_LIBOBJDIR)/libtb
+LIBEVENTDIR     = ${TESTBED_LIBOBJDIR}/event
 DAEMON	        = linktest
 LTEVENT		= ltevent
 SCRIPT		= linktest.pl
@@ -36,10 +36,10 @@ include $(TESTBED_SRCDIR)/GNUmakerules
 CFLAGS   += -DDEBUG -DCLIENT_BINDIR='"$(CLIENT_BINDIR)"'
 CFLAGS	 += -O -g -Wall
 CFLAGS   += -I. -I${OBJDIR}
-CFLAGS   += -I$(TESTBED_SRCDIR)/lib/event -I$(TESTBED_SRCDIR)/lib/libtb
+CFLAGS   += -I$(TESTBED_LIBSRCDIR)/event -I$(TESTBED_LIBSRCDIR)/libtb
 CFLAGS   += -I/usr/local/include
 
-LDFLAGS  += -L${OBJDIR}/lib/event -L${OBJDIR}/lib/libtb
+LDFLAGS  += -L${LIBEVENTDIR} -L${LIBTBDIR}
 LIBS     += -levent -lcrypto -lssl
 LIBS     += -L/usr/local/lib -lpubsub -lm
 LDFLAGS  += $(LDSTATIC)
@@ -87,9 +87,11 @@ $(LTEVENT)-debug: $(LTEVENT_OBJS) $(LIBTB_OBJS)
 version.c: linktest.c
 	echo >$@ "char build_info[] = \"Built `date +%d-%b-%Y` by `id -nu`@`hostname | sed 's/\..*//'`:`pwd`\";"
 
-$(DAEMON_OBJS): ${OBJDIR}/lib/event/libevent.a ${OBJDIR}/lib/event/event.h
+$(DAEMON_OBJS): ${TESTBED_LIBOBJDIR}/event/libevent.a \
+		${TESTBED_LIBSRCDIR}/event/event.h
 
-$(LTEVENT_OBJS): ${OBJDIR}/lib/event/libevent.a ${OBJDIR}/lib/event/event.h
+$(LTEVENT_OBJS): ${TESTBED_LIBOBJDIR}/event/libevent.a \
+		${TESTBED_LIBSRCDIR}/event/event.h
 
 # We install just enough to fire off the test from boss and wait. 
 boss-install: weblinktest $(SCRIPT_RUN) $(SCRIPT_PROXY) $(LTEVENT) \
diff --git a/clientside/event/program-agent/GNUmakefile.in b/clientside/event/program-agent/GNUmakefile.in
index 978edb1785..32d87319db 100644
--- a/clientside/event/program-agent/GNUmakefile.in
+++ b/clientside/event/program-agent/GNUmakefile.in
@@ -20,12 +20,12 @@ include $(TESTBED_SRCDIR)/GNUmakerules
 CFLAGS   += -DDEBUG
 CFLAGS	 += -O -g -Wall
 CFLAGS   += -I. -I${OBJDIR}
-CFLAGS   += -I$(TESTBED_SRCDIR)/lib/event -I$(TESTBED_SRCDIR)/lib/libtb
+CFLAGS   += -I$(TESTBED_LIBSRCDIR)/event -I$(TESTBED_LIBSRCDIR)/libtb
 CFLAGS	 += -I/usr/local/include
 CFLAGS	 += -DHAVE_PUBSUB
 CFLAGS   += -DCLIENT_BINDIR='"$(CLIENT_BINDIR)"'
 
-LDFLAGS  += -g -L${OBJDIR}/lib/event -L${OBJDIR}/lib/libtb
+LDFLAGS  += -g -L${TESTBED_LIBOBJDIR}/event -L${TESTBED_LIBOBJDIR}/libtb
 LIBS     += -levent -ltb -lcrypto
 LIBS	 += -L/usr/local/lib -lpubsub
 LDFLAGS  += $(LDSTATIC)
@@ -53,7 +53,8 @@ version.c: program-agent.c
 program-agent-debug: program-agent.o version.o
 	$(CC) $(LDFLAGS) -o $@ program-agent.o version.o $(LIBS)
 
-$(PROGRAMS):	${OBJDIR}/lib/event/libevent.a ${OBJDIR}/lib/event/event.h
+$(PROGRAMS):	${TESTBED_LIBOBJDIR}/event/libevent.a \
+		${TESTBED_LIBSRCDIR}/event/event.h
 
 boss-install:	$(INSTALL_DIR)/opsdir/sbin/program-agent
 	-mkdir -p $(INSTALL_DIR)/opsdir/man/man8
diff --git a/clientside/event/proxy/GNUmakefile.in b/clientside/event/proxy/GNUmakefile.in
index a362d645d4..4cf9a5e1b0 100644
--- a/clientside/event/proxy/GNUmakefile.in
+++ b/clientside/event/proxy/GNUmakefile.in
@@ -17,8 +17,8 @@ all:	$(PROGRAMS)
 
 include $(TESTBED_SRCDIR)/GNUmakerules
 
-LIBTBDIR    = $(OBJDIR)/lib/libtb
-LIBEVENTDIR = $(OBJDIR)/lib/event
+LIBTBDIR    = $(TESTBED_LIBOBJDIR)/libtb
+LIBEVENTDIR = $(TESTBED_LIBOBJDIR)/event
 CPPC        = g++
 
 # Rules to make sure that some libraries we need from other directories get
@@ -32,22 +32,24 @@ $(LIBEVENTDIR)/%.a:
 CFLAGS   += -DDEBUG
 CFLAGS	 += -O2 -g -Wall
 CFLAGS   += -I. -I${OBJDIR}
-CFLAGS   += -I$(TESTBED_SRCDIR)/lib/event -I$(TESTBED_SRCDIR)/lib/libtb
+CFLAGS   += -I$(TESTBED_LIBSRCDIR)/event -I$(TESTBED_LIBSRCDIR)/libtb
 CFLAGS   += -I/usr/local/include
 
 PFLAGS    = -pthread
 PFLAGS   += -DDEBUG
 PFLAGS	 += -O2 -g -Wall
 PFLAGS   += -I. -I${OBJDIR}
-PFLAGS   += -I$(TESTBED_SRCDIR)/lib/event -I$(TESTBED_SRCDIR)/lib/libtb
+PFLAGS   += -I$(TESTBED_LIBSRCDIR)/event -I$(TESTBED_LIBSRCDIR)/libtb
 PFLAGS   += -L/usr/local/lib -lpubsub_r -ltb -lm
 
-PLDFLAGS += -L$(OBJDIR)/lib -L$(OBJDIR)/lib/libtb -L$(OBJDIR)/lib/event
+PLDFLAGS += -L$(TESTBED_LIBOBJDIR)
+PLDFLAGS += -L$(TESTBED_LIBOBJDIR)/libtb -L$(TESTBED_LIBOBJDIR)/event
 PLIBS     = -levent_r -ltb -lcrypto
 PLIBS    += -L/usr/local/lib -lpubsub_r -ltb -lm
 PLDFLAGS += $(LDSTATIC)
 
-LDFLAGS  += -L$(OBJDIR)/lib -L$(OBJDIR)/lib/libtb -L$(OBJDIR)/lib/event
+LDFLAGS  += -L$(TESTBED_LIBOBJDIR)
+LDFLAGS  += -L$(TESTBED_LIBOBJDIR)/libtb -L$(TESTBED_LIBOBJDIR)/event
 LIBS      = -levent -ltb -lcrypto
 LIBS     += -L/usr/local/lib -lpubsub -ltb -lm
 LDFLAGS  += $(LDSTATIC)
@@ -87,13 +89,15 @@ evproxyplab.o: evproxyplab.cc
 	$(CPPC) $(CFLAGS)  -c $<
 
 evproxyplab-debug:    evproxyplab.o \
-		${OBJDIR}/lib/event/libevent.a ${OBJDIR}/lib/event/event.h
+		${TESTBED_LIBOBJDIR}/event/libevent.a \
+		${TESTBED_LIBOBJDIR}/event/event.h
 	$(CPPC) $(LDFLAGS) -o $@ evproxyplab.o $(LIBS)
 
 eventping-debug: eventping.o
 	$(CC) $(LDFLAGS) -o $@ eventping.o -pthread $(LIBS)
 
-$(PROGRAMS):	${OBJDIR}/lib/event/libevent.a ${OBJDIR}/lib/event/event.h
+$(PROGRAMS):	${TESTBED_LIBOBJDIR}/event/libevent.a \
+		${TESTBED_LIBSRCDIR}/event/event.h
 
 control-install:
 
diff --git a/clientside/event/tevc/GNUmakefile.in b/clientside/event/tevc/GNUmakefile.in
index b64f594cb3..5264ada897 100644
--- a/clientside/event/tevc/GNUmakefile.in
+++ b/clientside/event/tevc/GNUmakefile.in
@@ -17,8 +17,8 @@ all:	$(PROGRAMS)
 
 include $(TESTBED_SRCDIR)/GNUmakerules
 
-LIBTBDIR    = $(OBJDIR)/lib/libtb
-LIBEVENTDIR = $(OBJDIR)/lib/event
+LIBTBDIR    = $(TESTBED_LIBOBJDIR)/libtb
+LIBEVENTDIR = $(TESTBED_LIBOBJDIR)/event
 
 # Rules to make sure that some libraries we need from other directories get
 # built first
@@ -31,10 +31,11 @@ $(LIBEVENTDIR)/%.a:
 CFLAGS   += -DDEBUG
 CFLAGS	 += -O -g -Wall
 CFLAGS   += -I. -I${OBJDIR}
-CFLAGS   += -I$(TESTBED_SRCDIR)/lib/event -I$(TESTBED_SRCDIR)/lib/libtb
+CFLAGS   += -I$(TESTBED_LIBSRCDIR)/event -I$(TESTBED_LIBSRCDIR)/libtb
 CFLAGS   += -I/usr/local/include
 
-LDFLAGS  += -L$(OBJDIR)/lib -L$(OBJDIR)/lib/libtb -L$(OBJDIR)/lib/event
+LDFLAGS  += -L$(TESTBED_LIBOBJDIR)
+LDFLAGS  += -L$(TESTBED_LIBOBJDIR)/libtb -L$(TESTBED_LIBOBJDIR)/event
 LIBS     += -levent -lcrypto
 LIBS     += -lm -L/usr/local/lib -lpubsub 
 LDFLAGS  += $(LDSTATIC)
diff --git a/clientside/event/trafgen/GNUmakefile.in b/clientside/event/trafgen/GNUmakefile.in
index a4b5094f76..8296e1859b 100644
--- a/clientside/event/trafgen/GNUmakefile.in
+++ b/clientside/event/trafgen/GNUmakefile.in
@@ -38,11 +38,11 @@ include $(TESTBED_SRCDIR)/GNUmakerules
 CFLAGS   += -DDEBUG
 CFLAGS	 += -O -g #-Wall
 CFLAGS   += -I. -I$(TGSRCDIR) -I${OBJDIR}
-CFLAGS   += -I$(TESTBED_SRCDIR)/lib/event -I$(TESTBED_SRCDIR)/lib/libtb
+CFLAGS   += -I$(TESTBED_LIBSRCDIR)/event -I$(TESTBED_LIBSRCDIR)/libtb
 CFLAGS   += -I/usr/local/include
 CFLAGS	 += -DUSEEVENTS
 
-LDFLAGS  += -L${OBJDIR}/lib/event -L${OBJDIR}/lib/libtb
+LDFLAGS  += -L${TESTBED_LIBOBJDIR}/event -L${TESTBED_LIBOBJDIR}/libtb
 LIBS     += -levent -ltb -lcrypto
 # Expand the elvin-config list now so it can be filtered below.
 LIBS     += -L/usr/local/lib -lpubsub -lm
@@ -107,7 +107,8 @@ tg.o: tg.y lex.yy.c
 trafgen-debug:	$(OBJS)
 	$(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
 
-$(PROGRAMS):	${OBJDIR}/lib/event/libevent.a ../../lib/event/event.h
+$(PROGRAMS):	${TESTBED_LIBOBJDIR}/event/libevent.a \
+		${TESTBED_LIBSRCDIR}/event/event.h
 
 install:
 boss-install:
diff --git a/lib/GNUmakefile.in b/clientside/lib/GNUmakefile.in
similarity index 100%
rename from lib/GNUmakefile.in
rename to clientside/lib/GNUmakefile.in
diff --git a/lib/event/GNUmakefile.in b/clientside/lib/event/GNUmakefile.in
similarity index 100%
rename from lib/event/GNUmakefile.in
rename to clientside/lib/event/GNUmakefile.in
diff --git a/lib/event/README b/clientside/lib/event/README
similarity index 100%
rename from lib/event/README
rename to clientside/lib/event/README
diff --git a/lib/event/event.c b/clientside/lib/event/event.c
similarity index 100%
rename from lib/event/event.c
rename to clientside/lib/event/event.c
diff --git a/lib/event/event.h b/clientside/lib/event/event.h
similarity index 100%
rename from lib/event/event.h
rename to clientside/lib/event/event.h
diff --git a/lib/event/event.i b/clientside/lib/event/event.i
similarity index 100%
rename from lib/event/event.i
rename to clientside/lib/event/event.i
diff --git a/lib/event/event.pm b/clientside/lib/event/event.pm
similarity index 100%
rename from lib/event/event.pm
rename to clientside/lib/event/event.pm
diff --git a/lib/event/event.pm.tail b/clientside/lib/event/event.pm.tail
similarity index 100%
rename from lib/event/event.pm.tail
rename to clientside/lib/event/event.pm.tail
diff --git a/lib/event/event_wrap.c b/clientside/lib/event/event_wrap.c
similarity index 100%
rename from lib/event/event_wrap.c
rename to clientside/lib/event/event_wrap.c
diff --git a/lib/event/event_wrap_py.c b/clientside/lib/event/event_wrap_py.c
similarity index 100%
rename from lib/event/event_wrap_py.c
rename to clientside/lib/event/event_wrap_py.c
diff --git a/lib/event/perlvers.pl b/clientside/lib/event/perlvers.pl
similarity index 100%
rename from lib/event/perlvers.pl
rename to clientside/lib/event/perlvers.pl
diff --git a/lib/event/tbevent.py b/clientside/lib/event/tbevent.py
similarity index 100%
rename from lib/event/tbevent.py
rename to clientside/lib/event/tbevent.py
diff --git a/lib/event/tbevent.py.tail b/clientside/lib/event/tbevent.py.tail
similarity index 100%
rename from lib/event/tbevent.py.tail
rename to clientside/lib/event/tbevent.py.tail
diff --git a/lib/event/util.c b/clientside/lib/event/util.c
similarity index 100%
rename from lib/event/util.c
rename to clientside/lib/event/util.c
diff --git a/lib/libtb/GNUmakefile.in b/clientside/lib/libtb/GNUmakefile.in
similarity index 100%
rename from lib/libtb/GNUmakefile.in
rename to clientside/lib/libtb/GNUmakefile.in
diff --git a/lib/libtb/be_user.c b/clientside/lib/libtb/be_user.c
similarity index 100%
rename from lib/libtb/be_user.c
rename to clientside/lib/libtb/be_user.c
diff --git a/lib/libtb/be_user.h b/clientside/lib/libtb/be_user.h
similarity index 100%
rename from lib/libtb/be_user.h
rename to clientside/lib/libtb/be_user.h
diff --git a/lib/libtb/log.c b/clientside/lib/libtb/log.c
similarity index 100%
rename from lib/libtb/log.c
rename to clientside/lib/libtb/log.c
diff --git a/lib/libtb/log.h b/clientside/lib/libtb/log.h
similarity index 100%
rename from lib/libtb/log.h
rename to clientside/lib/libtb/log.h
diff --git a/lib/libtb/popenf.c b/clientside/lib/libtb/popenf.c
similarity index 100%
rename from lib/libtb/popenf.c
rename to clientside/lib/libtb/popenf.c
diff --git a/lib/libtb/popenf.h b/clientside/lib/libtb/popenf.h
similarity index 100%
rename from lib/libtb/popenf.h
rename to clientside/lib/libtb/popenf.h
diff --git a/lib/libtb/systemf.c b/clientside/lib/libtb/systemf.c
similarity index 100%
rename from lib/libtb/systemf.c
rename to clientside/lib/libtb/systemf.c
diff --git a/lib/libtb/systemf.h b/clientside/lib/libtb/systemf.h
similarity index 100%
rename from lib/libtb/systemf.h
rename to clientside/lib/libtb/systemf.h
diff --git a/lib/libtb/tbdb.c b/clientside/lib/libtb/tbdb.c
similarity index 100%
rename from lib/libtb/tbdb.c
rename to clientside/lib/libtb/tbdb.c
diff --git a/lib/libtb/tbdb.h b/clientside/lib/libtb/tbdb.h
similarity index 100%
rename from lib/libtb/tbdb.h
rename to clientside/lib/libtb/tbdb.h
diff --git a/lib/libtb/tbdefs.c b/clientside/lib/libtb/tbdefs.c
similarity index 100%
rename from lib/libtb/tbdefs.c
rename to clientside/lib/libtb/tbdefs.c
diff --git a/lib/libtb/tbdefs.h b/clientside/lib/libtb/tbdefs.h
similarity index 100%
rename from lib/libtb/tbdefs.h
rename to clientside/lib/libtb/tbdefs.h
diff --git a/lib/libtb/tmcc.c b/clientside/lib/libtb/tmcc.c
similarity index 100%
rename from lib/libtb/tmcc.c
rename to clientside/lib/libtb/tmcc.c
diff --git a/lib/libtb/tmcc.h b/clientside/lib/libtb/tmcc.h
similarity index 100%
rename from lib/libtb/tmcc.h
rename to clientside/lib/libtb/tmcc.h
diff --git a/lib/tmcd/GNUmakefile.in b/clientside/lib/tmcd/GNUmakefile.in
similarity index 96%
rename from lib/tmcd/GNUmakefile.in
rename to clientside/lib/tmcd/GNUmakefile.in
index 7eceef28d6..8b571b38ed 100644
--- a/lib/tmcd/GNUmakefile.in
+++ b/clientside/lib/tmcd/GNUmakefile.in
@@ -1,4 +1,3 @@
-
 #
 # EMULAB-COPYRIGHT
 # Copyright (c) 2000-2011 University of Utah and the Flux Group.
@@ -19,7 +18,7 @@ include $(TESTBED_SRCDIR)/GNUmakerules
 
 CFLAGS	+= -O -g -Wall -DUDP \
 		-I${OBJDIR} -I/usr/local/include \
-		-I${TESTBED_SRCDIR}/lib/libtb \
+		-I${TESTBED_LIBSRCDIR}/libtb \
 		-L/usr/local/lib
 LDFLAGS += $(LDSTATIC)
 
diff --git a/lib/tmcd/ssl.c b/clientside/lib/tmcd/ssl.c
similarity index 100%
rename from lib/tmcd/ssl.c
rename to clientside/lib/tmcd/ssl.c
diff --git a/lib/tmcd/ssl.h b/clientside/lib/tmcd/ssl.h
similarity index 100%
rename from lib/tmcd/ssl.h
rename to clientside/lib/tmcd/ssl.h
diff --git a/lib/tmcd/tmcd.h b/clientside/lib/tmcd/tmcd.h
similarity index 100%
rename from lib/tmcd/tmcd.h
rename to clientside/lib/tmcd/tmcd.h
diff --git a/lib/tmcd/tpm.c b/clientside/lib/tmcd/tpm.c
similarity index 100%
rename from lib/tmcd/tpm.c
rename to clientside/lib/tmcd/tpm.c
diff --git a/lib/tmcd/tpm.h b/clientside/lib/tmcd/tpm.h
similarity index 100%
rename from lib/tmcd/tpm.h
rename to clientside/lib/tmcd/tpm.h
diff --git a/clientside/os/genhostsfile/GNUmakefile.in b/clientside/os/genhostsfile/GNUmakefile.in
index 6a4d1519ac..51ea15b0db 100644
--- a/clientside/os/genhostsfile/GNUmakefile.in
+++ b/clientside/os/genhostsfile/GNUmakefile.in
@@ -10,8 +10,8 @@ SUBDIR		= $(subst $(TESTBED_SRCDIR)/,,$(SRCDIR))
 
 include $(OBJDIR)/Makeconf
 
-CFLAGS	= -Wall -O2 -g $(LDSTATIC) -I${OBJDIR} -I${TESTBED_SRCDIR}/lib/libtb
-LIBS    = ${OBJDIR}/lib/libtb/libtb.a
+CFLAGS	= -Wall -O2 -g $(LDSTATIC) -I${OBJDIR} -I${TESTBED_LIBSRCDIR}/libtb
+LIBS    = ${TESTBED_LIBOBJDIR}/libtb/libtb.a
 
 all:	genhostsfile genfromdb genfromtopo
 
diff --git a/clientside/os/syncd/GNUmakefile.in b/clientside/os/syncd/GNUmakefile.in
index 25b632a0bc..4d7e3aea07 100644
--- a/clientside/os/syncd/GNUmakefile.in
+++ b/clientside/os/syncd/GNUmakefile.in
@@ -10,9 +10,8 @@ SUBDIR		= $(subst $(TESTBED_SRCDIR)/,,$(SRCDIR))
 
 include $(OBJDIR)/Makeconf
 
-CFLAGS	= -Wall -O2 -g \
-		  -I${OBJDIR} -I${TESTBED_SRCDIR}/lib/libtb
-LIBS	= ${OBJDIR}/lib/libtb/libtb.a
+CFLAGS	= -Wall -O2 -g -I${OBJDIR} -I${TESTBED_LIBSRCDIR}/libtb
+LIBS	= ${TESTBED_LIBOBJDIR}/libtb/libtb.a
 LDFLAGS =
 LDFLAGS  += $(LDSTATIC)
 
diff --git a/clientside/sensors/slothd/GNUmakefile.in b/clientside/sensors/slothd/GNUmakefile.in
index 16a8dc8ab7..b0465febda 100644
--- a/clientside/sensors/slothd/GNUmakefile.in
+++ b/clientside/sensors/slothd/GNUmakefile.in
@@ -9,7 +9,7 @@ OBJDIR		= @top_builddir@
 SUBDIR		= $(subst $(TESTBED_SRCDIR)/,,$(SRCDIR))
 SYSTEM	       := $(shell uname -s)
 SLOTHD_DIR	= unknownclient
-TBLIB		= $(OBJDIR)/lib/libtb/libtb.a
+TBLIB		= $(TESTBED_LIBOBJDIR)/libtb/libtb.a
 
 SBIN_SCRIPTS    = sdisrunning sddeploy
 SDPROGS		= sdcollectd$(EXE) slothd$(EXE)
@@ -19,10 +19,10 @@ include $(OBJDIR)/Makeconf
 CC?=gcc
 ## For debug compilation
 ##CFLAGS+= -g
-CFLAGS+= -Wall -I${OBJDIR} -I/usr/local/include -I$(TESTBED_SRCDIR)/lib/libtb \
+CFLAGS+= -Wall -I${OBJDIR} -I/usr/local/include -I$(TESTBED_LIBSRCDIR)/libtb \
 		-DCLIENT_BINDIR='"$(CLIENT_BINDIR)"' \
 		-DLOG_TESTBED=$(LOG_TESTBED)
-LDFLAGS+= $(LDSTATIC) -L${OBJDIR}/lib/libtb -L/usr/local/lib/mysql
+LDFLAGS+= $(LDSTATIC) -L${TESTBED_LIBOBJDIR}/libtb -L/usr/local/lib/mysql
 SDLIBS+= -ltb -lmysqlclient
 LIBS= $(MLIBS)
 CP= cp -pf
diff --git a/clientside/tmcc/GNUmakefile.in b/clientside/tmcc/GNUmakefile.in
index 936a2157a9..8e0f944448 100644
--- a/clientside/tmcc/GNUmakefile.in
+++ b/clientside/tmcc/GNUmakefile.in
@@ -16,17 +16,18 @@ fullclient: tmcc
 client: tmcc-nossl findif dostype
 
 # For VPATH.
-MOSTLY_SRCDIRS = ${TESTBED_SRCDIR}/lib/libtb \
-		 ${TESTBED_SRCDIR}/lib/tmcd
+MOSTLY_SRCDIRS = ${TESTBED_LIBSRCDIR}/libtb \
+		 ${TESTBED_LIBSRCDIR}/tmcd
 
 include $(TESTBED_SRCDIR)/GNUmakerules
 
 CFLAGS	+= -O -g -Wall -DUDP \
 		-I${OBJDIR} -I/usr/local/include \
-		-I${TESTBED_SRCDIR}/lib/libtb \
-		-I${TESTBED_SRCDIR}/lib/tmcd \
+		-I${TESTBED_LIBSRCDIR}/libtb \
+		-I${TESTBED_LIBSRCDIR}/tmcd \
 		-L/usr/local/lib
-TMLIBS	 = ${OBJDIR}/lib/tmcd/libtmcc.a ${OBJDIR}/lib/libtb/libtb.a
+TMLIBS	 = ${TESTBED_LIBOBJDIR}/tmcd/libtmcc.a
+TMLIBS  += ${TESTBED_LIBOBJDIR}/libtb/libtb.a
 LDFLAGS += $(LDSTATIC)
 
 #
@@ -151,10 +152,10 @@ elabinelabfiles:
 # Here so that the event system libraries, and libraries they depend upon,
 # can get made.
 #
-${OBJDIR}/lib/tmcd/%:
-	cd ${OBJDIR}/lib/tmcd && gmake $<
-${OBJDIR}/lib/libtb/%:
-	cd ${OBJDIR}/lib/tbdb && gmake $<
+${TESTBED_LIBOBJDIR}/tmcd/%:
+	cd ${TESTBED_LIBOBJDIR}/tmcd && gmake $<
+${TESTBED_LIBOBJDIR}/libtb/%:
+	cd ${TESTBED_LIBOBJDIR}/tbdb && gmake $<
 
 clean:	subdir-clean
 	rm -f *.o core tmcd tmcc tmcc-nossl findif dostype *-debug
diff --git a/clientside/tools/pcapper/GNUmakefile.in b/clientside/tools/pcapper/GNUmakefile.in
index 2e51e10f85..0efa59b5ae 100644
--- a/clientside/tools/pcapper/GNUmakefile.in
+++ b/clientside/tools/pcapper/GNUmakefile.in
@@ -37,12 +37,13 @@ endif
 
 ELVINFLAGS    = -I/usr/local/include
 ELVINLIBS     = -L/usr/local/lib -lpubsub -lm
-EVENTFLAGS    = -DEVENTSYS -I$(TESTBED_SRCDIR)/lib/event $(ELVINFLAGS)
-EVENTOBJS     = $(OBJDIR)/lib/event/event.o $(OBJDIR)/lib/event/util.o
+EVENTFLAGS    = -DEVENTSYS -I$(TESTBED_LIBSRCDIR)/event $(ELVINFLAGS)
+EVENTOBJS     = $(TESTBED_LIBOBJDIR)/event/event.o \
+		$(TESTBED_LIBOBJDIR)/event/util.o
 EVENTLIBS     = $(ELVINLIBS) -lcrypto
 
-TBCFLAGS      = $(EVENTFLAGS) -I$(TESTBED_SRCDIR)/lib/libtb
-TBLIBS        = $(EVENTOBJS) $(OBJDIR)/lib/libtb/libtb.a $(EVENTLIBS)
+TBCFLAGS      = $(EVENTFLAGS) -I$(TESTBED_LIBSRCDIR)/libtb
+TBLIBS        = $(EVENTOBJS) $(TESTBED_LIBOBJDIR)/libtb/libtb.a $(EVENTLIBS)
 
 PCAPLIBS=-lpcap
 
diff --git a/configure b/configure
index 496ff2cb3f..7a6599d2d3 100755
--- a/configure
+++ b/configure
@@ -5616,7 +5616,7 @@ if test "$enable_events" = "no"; then
 	eventfiles="";
         EVENTSYS=0;
 else
-	eventfiles="event/GNUmakefile lib/event/GNUmakefile \
+	eventfiles="event/GNUmakefile clientside/lib/event/GNUmakefile \
 		    event/etc/elvind-boss.conf event/etc/elvind-ops.conf \
 		    event/etc/elvind-inetd.conf event/etc/GNUmakefile\
 		    event/sched/GNUmakefile \
@@ -7159,7 +7159,6 @@ outfiles="$outfiles Makeconf GNUmakefile \
 	db/idletimes db/idlemail db/xmlconvert \
 	db/libdb.py db/elabinelab_bossinit \
 	ipod/GNUmakefile \
-	lib/GNUmakefile lib/libtb/GNUmakefile lib/tmcd/GNUmakefile \
 	os/GNUmakefile os/split-image.sh os/imagezip/GNUmakefile \
 	os/imagezip/ffs/GNUmakefile os/imagezip/extfs/GNUmakefile os/imagezip/ext4fs/GNUmakefile \
 	os/imagezip/hashmap/GNUmakefile \
@@ -7345,6 +7344,8 @@ outfiles="$outfiles Makeconf GNUmakefile \
 # lists here and in clientside.
 #
 outfiles="$outfiles clientside/GNUmakefile \
+ clientside/lib/GNUmakefile clientside/lib/libtb/GNUmakefile \
+ clientside/lib/tmcd/GNUmakefile \
  clientside/GNUmakefile clientside/event/GNUmakefile \
  clientside/event/program-agent/GNUmakefile \
  clientside/tools/GNUmakefile clientside/tools/pcapper/GNUmakefile \
diff --git a/configure.in b/configure.in
index f0aab241fe..2a13aa7da1 100755
--- a/configure.in
+++ b/configure.in
@@ -703,7 +703,7 @@ if test "$enable_events" = "no"; then
 	eventfiles="";
         EVENTSYS=0;
 else
-	eventfiles="event/GNUmakefile lib/event/GNUmakefile \
+	eventfiles="event/GNUmakefile clientside/lib/event/GNUmakefile \
 		    event/etc/elvind-boss.conf event/etc/elvind-ops.conf \
 		    event/etc/elvind-inetd.conf event/etc/GNUmakefile\
 		    event/sched/GNUmakefile \
@@ -891,7 +891,6 @@ outfiles="$outfiles Makeconf GNUmakefile \
 	db/idletimes db/idlemail db/xmlconvert \
 	db/libdb.py db/elabinelab_bossinit \
 	ipod/GNUmakefile \
-	lib/GNUmakefile lib/libtb/GNUmakefile lib/tmcd/GNUmakefile \
 	os/GNUmakefile os/split-image.sh os/imagezip/GNUmakefile \
 	os/imagezip/ffs/GNUmakefile os/imagezip/extfs/GNUmakefile os/imagezip/ext4fs/GNUmakefile \
 	os/imagezip/hashmap/GNUmakefile \
@@ -1077,6 +1076,8 @@ outfiles="$outfiles Makeconf GNUmakefile \
 # lists here and in clientside.
 #
 outfiles="$outfiles clientside/GNUmakefile \
+ clientside/lib/GNUmakefile clientside/lib/libtb/GNUmakefile \
+ clientside/lib/tmcd/GNUmakefile \
  clientside/GNUmakefile clientside/event/GNUmakefile \
  clientside/event/program-agent/GNUmakefile \
  clientside/tools/GNUmakefile clientside/tools/pcapper/GNUmakefile \
diff --git a/event/example/GNUmakefile.in b/event/example/GNUmakefile.in
index 1c720aa9a1..bc824843e1 100644
--- a/event/example/GNUmakefile.in
+++ b/event/example/GNUmakefile.in
@@ -21,10 +21,11 @@ include $(TESTBED_SRCDIR)/GNUmakerules
 CFLAGS   += -DDEBUG
 CFLAGS	 += -O -g -Wall
 CFLAGS   += -I. -I${OBJDIR}
-CFLAGS   += -I$(TESTBED_SRCDIR)/lib/event -I$(TESTBED_SRCDIR)/lib/libtb
+CFLAGS   += -I$(TESTBED_LIBSRCDIR)/event -I$(TESTBED_LIBSRCDIR)/libtb
 CFLAGS   += -I/usr/local/include
 
-LDFLAGS  += $(LDSTATIC) -L${OBJDIR}/lib/event -L${OBJDIR}/lib/libtb
+LDFLAGS  += $(LDSTATIC)
+LDFLAGS  += -L${TESTBED_LIBOBJDIR}/event -L${TESTBED_LIBOBJDIR}/libtb
 LIBS     += -levent -ltb -lcrypto
 LIBS     +=  -L/usr/local/lib -lpubsub -lm
 ifeq ($(SYSTEM),Linux)
@@ -40,7 +41,8 @@ tbsend:		tbsend.o
 dumpevsubs:	dumpevsubs.o
 	$(CC) $(LDFLAGS) -o $@ dumpevsubs.o $(LIBS)
 
-$(PROGRAMS):	${OBJDIR}/lib/event/libevent.a ../../lib/event/event.h
+$(PROGRAMS):	${TESTBED_LIBOBJDIR}/event/libevent.a \
+		${TESTBED_LIBSRCDIR}/event/event.h
 
 install:	$(addprefix $(INSTALL_SBINDIR)/, eventdebug.pl)
 
diff --git a/event/new_sched/GNUmakefile.in b/event/new_sched/GNUmakefile.in
index d175af30af..0855e1722f 100644
--- a/event/new_sched/GNUmakefile.in
+++ b/event/new_sched/GNUmakefile.in
@@ -20,18 +20,18 @@ CFLAGS   += -DSBINDIR='"$(INSTALL_SBINDIR)"'
 #CFLAGS  += -DDEBUG
 CFLAGS	 += -O -Wall
 CFLAGS   += -I. -I${OBJDIR}
-CFLAGS   += -I$(TESTBED_SRCDIR)/lib/event -I$(TESTBED_SRCDIR)/lib/libtb
+CFLAGS   += -I$(TESTBED_LIBSRCDIR)/event -I$(TESTBED_LIBSRCDIR)/libtb
 CFLAGS   += -I/usr/local/include
 
 LDFLAGS  += -pthread
-LDFLAGS  += -L${OBJDIR}/lib/event -L${OBJDIR}/lib/libtb
+LDFLAGS  += -L${TESTBED_LIBOBJDIR}/event -L${TESTBED_LIBOBJDIR}/libtb
 LDFLAGS  += $(LDSTATIC)
 DBLIBS    = -L/usr/local/lib/mysql -lmysqlclient -lz
 LIBS     += -levent_r -ltb -lz
 
 XMLRPCINC = `xmlrpc-c-config c++2 client --cflags`
 CXXFLAGS += -pthread -O $(XMLRPCINC) -I$(OBJDIR)
-CXXFLAGS +=  -I$(TESTBED_SRCDIR)/lib/event -I$(TESTBED_SRCDIR)/lib/libtb
+CXXFLAGS +=  -I$(TESTBED_LIBSRCDIR)/event -I$(TESTBED_LIBSRCDIR)/libtb
 XMLRPCLIBS = `xmlrpc-c-config c++2 client --libs`
 
 #
@@ -62,13 +62,13 @@ OBJS = \
 	timeline-agent.o \
 	version.o
 
-event-sched_rrpc: $(OBJS) event-sched.h ${OBJDIR}/lib/event/libevent.a
+event-sched_rrpc: $(OBJS) event-sched.h ${TESTBED_LIBOBJDIR}/event/libevent.a
 	$(CXX) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(XMLRPCLIBS) $(LIBS)
 
 DEPS = \
 	console-agent.h error-record.h event-sched.h group-agent.h listNode.h \
 	local-agent.h node-agent.h rpc.h simulator-agent.h timeline-agent.h \
-	../../lib/event/event.h
+	${TESTBED_LIBSRCDIR}/event/event.h
 
 emulab_proxy.o:		emulab_proxy.cc $(DEPS)
 queue.o:		queue.c $(DEPS)
diff --git a/event/nsetrafgen/GNUmakefile.in b/event/nsetrafgen/GNUmakefile.in
index 0e788821b9..c3c85ba8c8 100644
--- a/event/nsetrafgen/GNUmakefile.in
+++ b/event/nsetrafgen/GNUmakefile.in
@@ -35,9 +35,9 @@ buildnse:
 	ln -sf $(SRCDIR)/tbnexthop.h .
 	ln -sf $(SRCDIR)/tbnexthop.cc .
 	ln -sf $(SRCDIR)/ip_fw.h .
-	ln -sf $(SRCDIR)/../../lib/libtb/log.h .
-	ln -sf $(SRCDIR)/../../lib/libtb/tbdefs.h .
-	ln -sf $(SRCDIR)/../../lib/event/event.h .
+	ln -sf $(TESTBED_LIBSRCDIR)/libtb/log.h .
+	ln -sf $(TESTBED_LIBSRCDIR)/libtb/tbdefs.h .
+	ln -sf $(TESTBED_LIBSRCDIR)/event/event.h .
 	$(SRCDIR)/nse-install $(SRCDIR)/nse.patch
 
 makepatch:
diff --git a/event/proxy/GNUmakefile.in b/event/proxy/GNUmakefile.in
index 0bdc9ab2b1..35955d5d4c 100644
--- a/event/proxy/GNUmakefile.in
+++ b/event/proxy/GNUmakefile.in
@@ -20,8 +20,8 @@ all:	$(PROGRAMS)
 
 include $(TESTBED_SRCDIR)/GNUmakerules
 
-LIBTBDIR    = $(OBJDIR)/lib/libtb
-LIBEVENTDIR = $(OBJDIR)/lib/event
+LIBTBDIR    = $(TESTBED_LIBOBJDIR)/libtb
+LIBEVENTDIR = $(TESTBED_LIBOBJDIR)/event
 CPPC        = g++
 
 # Rules to make sure that some libraries we need from other directories get
@@ -35,22 +35,24 @@ $(LIBEVENTDIR)/%.a:
 CFLAGS   += -DDEBUG
 CFLAGS	 += -O2 -g -Wall
 CFLAGS   += -I. -I${OBJDIR}
-CFLAGS   += -I$(TESTBED_SRCDIR)/lib/event -I$(TESTBED_SRCDIR)/lib/libtb
+CFLAGS   += -I$(TESTBED_LIBSRCDIR)/event -I$(TESTBED_LIBSRCDIR)/libtb
 CFLAGS   += -I/usr/local/include
 
 PFLAGS    = -pthread
 PFLAGS   += -DDEBUG
 PFLAGS	 += -O2 -g -Wall
 PFLAGS   += -I. -I${OBJDIR}
-PFLAGS   += -I$(TESTBED_SRCDIR)/lib/event -I$(TESTBED_SRCDIR)/lib/libtb
+PFLAGS   += -I$(TESTBED_LIBSRCDIR)/event -I$(TESTBED_LIBSRCDIR)/libtb
 PFLAGS   += -L/usr/local/lib -lpubsub_r -ltb -lm
 
-PLDFLAGS += -L$(OBJDIR)/lib -L$(OBJDIR)/lib/libtb -L$(OBJDIR)/lib/event
+PLDFLAGS += -L$(TESTBED_LIBOBJDIR)
+PLDFLAGS += -L$(TESTBED_LIBOBJDIR)/libtb -L$(TESTBED_LIBOBJDIR)/event
 PLIBS     = -levent_r -ltb -lcrypto
 PLIBS    += -L/usr/local/lib -lpubsub_r -ltb -lm
 PLDFLAGS += $(LDSTATIC)
 
-LDFLAGS  += -L$(OBJDIR)/lib -L$(OBJDIR)/lib/libtb -L$(OBJDIR)/lib/event
+LDFLAGS  += -L$(TESTBED_LIBOBJDIR)
+LDFLAGS  += -L$(TESTBED_LIBOBJDIR)/libtb -L$(TESTBED_LIBOBJDIR)/event
 LIBS      = -levent -ltb -lcrypto
 LIBS     += -L/usr/local/lib -lpubsub -ltb -lm
 LDFLAGS  += $(LDSTATIC)
@@ -85,7 +87,8 @@ version0_gateway:    version0_gateway.c
 eventping-debug: eventping.o
 	$(CC) $(LDFLAGS) -o $@ eventping.o -pthread $(LIBS)
 
-$(PROGRAMS):	${OBJDIR}/lib/event/libevent.a ${OBJDIR}/lib/event/event.h
+$(PROGRAMS):	${TESTBED_LIBOBJDIR}/event/libevent.a \
+		${TESTBED_LIBSRCDIR}/event/event.h
 
 control-install:	$(INSTALL_SBINDIR)/version0_gateway
 
diff --git a/event/sched/GNUmakefile.in b/event/sched/GNUmakefile.in
index 6c365c9d4a..28c629a199 100644
--- a/event/sched/GNUmakefile.in
+++ b/event/sched/GNUmakefile.in
@@ -20,18 +20,18 @@ CFLAGS   += -DSBINDIR='"$(INSTALL_SBINDIR)"'
 #CFLAGS  += -DDEBUG
 CFLAGS	 += -O -Wall
 CFLAGS   += -I. -I${OBJDIR}
-CFLAGS   += -I$(TESTBED_SRCDIR)/lib/event -I$(TESTBED_SRCDIR)/lib/libtb
+CFLAGS   += -I$(TESTBED_LIBSRCDIR)/event -I$(TESTBED_LIBSRCDIR)/libtb
 CFLAGS   += -I/usr/local/include
 
 LDFLAGS  += -pthread
-LDFLAGS  += -L${OBJDIR}/lib/event -L${OBJDIR}/lib/libtb
+LDFLAGS  += -L${TESTBED_LIBOBJDIR}/event -L${TESTBED_LIBOBJDIR}/libtb
 LDFLAGS  += $(LDSTATIC)
 DBLIBS    = -L/usr/local/lib/mysql -lmysqlclient -lz
 LIBS     += -levent_r -ltb -lz
 
 ULXRINC   = -I/usr/local/include -I/usr/local/include/ulxmlrpcpp
-CXXFLAGS += -pthread -O $(ULXRINC) -I$(OBJDIR) -I$(TESTBED_SRCDIR)/lib/libtb
-CXXFLAGS += -I$(TESTBED_SRCDIR)/lib/event
+CXXFLAGS += -pthread -O $(ULXRINC) -I$(OBJDIR) -I$(TESTBED_LIBSRCDIR)/libtb
+CXXFLAGS += -I$(TESTBED_LIBSRCDIR)/event
 ULXRLIBS  = -L/usr/local/lib  -lulsshxmlrpcpp -lulxmlrpcpp -lexpat
 
 #
@@ -61,13 +61,13 @@ OBJS = \
 	timeline-agent.o \
 	version.o
 
-event-sched_rrpc: $(OBJS) event-sched.h ../../lib/event/libevent.a
+event-sched_rrpc: $(OBJS) event-sched.h $(TESTBED_LIBOBJDIR)/event/libevent.a
 	$(CXX) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(ULXRLIBS) $(LIBS)
 
 DEPS = \
 	console-agent.h error-record.h event-sched.h group-agent.h listNode.h \
 	local-agent.h node-agent.h rpc.h simulator-agent.h timeline-agent.h \
-	../../lib/event/event.h
+	${TESTBED_LIBSRCDIR}/event/event.h
 
 queue.o:		queue.c $(DEPS)
 listNode.o:		listNode.c $(DEPS)
diff --git a/os/frisbee.redux/GNUmakefile.in b/os/frisbee.redux/GNUmakefile.in
index 24251351e7..576b2555af 100644
--- a/os/frisbee.redux/GNUmakefile.in
+++ b/os/frisbee.redux/GNUmakefile.in
@@ -95,9 +95,10 @@ ifeq ($(WITH_MSERVER_EMULAB),1)
 # Emulab master server config
 MYSQLCFLAGS	= -I/usr/local/include
 MYSQLLIBS	= -L/usr/local/lib/mysql -lmysqlclient
-MSERVERFLAGS	+= -DUSE_EMULAB_CONFIG -DUSE_LOCALHOST_PROXY $(MYSQLCFLAGS) -I$(TESTBED_SRCDIR)/lib/libtb
+MSERVERFLAGS	+= -DUSE_EMULAB_CONFIG -DUSE_LOCALHOST_PROXY $(MYSQLCFLAGS) \
+		   -I$(TESTBED_LIBSRCDIR)/libtb
 MSERVEROBJS	+= config_emulab.o
-MSERVERLIBS	+= $(OBJDIR)/lib/libtb/libtb.a $(MYSQLLIBS)
+MSERVERLIBS	+= $(TESTBED_LIBOBJDIR)/libtb/libtb.a $(MYSQLLIBS)
 endif
 
 CFLAGS		= -O2 -g -Wall -fno-builtin-log $(LDSTATIC) $(PTHREADCFLAGS) -DSTATS -DMASTER_SERVER
diff --git a/pxe/GNUmakefile.in b/pxe/GNUmakefile.in
index 9edf02b661..443d0ca8b3 100644
--- a/pxe/GNUmakefile.in
+++ b/pxe/GNUmakefile.in
@@ -26,7 +26,7 @@ DBFLAG	= -DUSE_MYSQL_DB
 BI_DBSRC   = bootinfo_null.c bootinfo_cfile.c bootinfo_mysql.c
 BI_DBOBJ   = bootinfo_null.o bootinfo_cfile.o bootinfo_mysql.o
 
-INCS    = -I${OBJDIR} -I/usr/local/include -I$(TESTBED_SRCDIR)/lib/libtb
+INCS    = -I${OBJDIR} -I/usr/local/include -I$(TESTBED_LIBSRCDIR)/libtb
 
 CFLAGS	+= -Wall \
 	$(INCS) $(DBFLAG) -DSOLARIS -DHAVE_SOCKADDR_SA_LEN -DUSE_RECVMSG \
@@ -35,14 +35,15 @@ CFLAGS	+= -Wall \
 	-DDEFAULT_PATH='"/tftpboot/pxeboot.newnode"' \
 	-DLOG_TESTBED=$(LOG_TESTBED)
 
-LFLAGS	=  ${OBJDIR}/lib/libtb/libtb.a
+LFLAGS	=  ${TESTBED_LIBOBJDIR}/libtb/libtb.a
 
 ifeq ($(EVENTSYS),1)
 BI_DBSRC += event-support.c
 BI_DBOBJ += event-support.o
 
-CFLAGS  += -DEVENTSYS -I$(TESTBED_SRCDIR)/lib/event -I/usr/local/include
-LFLAGS  += $(OBJDIR)/lib/event/libevent.a -L/usr/local/lib -lpubsub -lcrypto
+CFLAGS  += -DEVENTSYS -I$(TESTBED_LIBSRCDIR)/event -I/usr/local/include
+LFLAGS  += $(TESTBED_LIBOBJDIR)/event/libevent.a
+LFLAGS  += -L/usr/local/lib -lpubsub -lcrypto
 endif
 
 bootinfo: main.o bootinfo.o bootinfo.h bootinfo_version.o \
diff --git a/robots/emc/GNUmakefile.in b/robots/emc/GNUmakefile.in
index fcd42e63e8..5f0b509339 100644
--- a/robots/emc/GNUmakefile.in
+++ b/robots/emc/GNUmakefile.in
@@ -1,6 +1,6 @@
 #
 # EMULAB-COPYRIGHT
-# Copyright (c) 2004, 2005, 2006 University of Utah and the Flux Group.
+# Copyright (c) 2004-2011 University of Utah and the Flux Group.
 # All rights reserved.
 #
 
@@ -26,10 +26,11 @@ include $(TESTBED_SRCDIR)/GNUmakerules
 
 OBJS		= emcd.o robot_list.o
 CFLAGS	       += -O -g -Wall -I${OBJDIR} -I/usr/local/include
-CFLAGS	       += -I${SRCDIR}/../mtp -I../mtp -I${SRCDIR}/../../event/lib
-CFLAGS	       += -I${SRCDIR}/../../lib/libtb
+CFLAGS	       += -I${SRCDIR}/../mtp -I../mtp -I${TESTNED_LIBSRCDIR}/event
+CFLAGS	       += -I${TESTBED_LIBSRCDIR}/libtb
 CFLAGS	       += `$(ELVIN_CONFIG) --cflags vin4c`
-LDFLAGS		= -L../mtp -L${OBJDIR}/lib/libtb -L${OBJDIR}/event/lib
+LDFLAGS		= -L../mtp
+LDFLAGS        += -L${TESTBED_LIBOBJDIR}/libtb -L${TESTBED_LIBOBJDIR}/event
 
 LIBS	 += -levent -lcrypto -lmtp -ltb
 LIBS     += `$(ELVIN_CONFIG) --libs vin4c`
diff --git a/robots/rmcd/GNUmakefile.in b/robots/rmcd/GNUmakefile.in
index 7d8164af9f..55cc3d5c24 100644
--- a/robots/rmcd/GNUmakefile.in
+++ b/robots/rmcd/GNUmakefile.in
@@ -1,6 +1,6 @@
 #
 # EMULAB-COPYRIGHT
-# Copyright (c) 2004, 2005 University of Utah and the Flux Group.
+# Copyright (c) 2004-2011 University of Utah and the Flux Group.
 # All rights reserved.
 #
 
@@ -21,9 +21,9 @@ include $(TESTBED_SRCDIR)/GNUmakerules
 
 CFLAGS	       += -O -g -Wall -I${OBJDIR} -I/usr/local/include
 CFLAGS	       += -I${SRCDIR}/../mtp -I../mtp
-CFLAGS	       += -I${SRCDIR}/../../lib/libtb
+CFLAGS	       += -I${TESTBED_LIBSRCDIR}/libtb
 
-LDFLAGS		= -L../mtp -L${OBJDIR}/lib/libtb
+LDFLAGS		= -L../mtp -L${TESTBED_LIBOBJDIR}/libtb
 
 LIBS	 += -lmtp -ltb -lm
 
diff --git a/robots/vmcd/GNUmakefile.in b/robots/vmcd/GNUmakefile.in
index d2178310cc..343d4fd9a3 100644
--- a/robots/vmcd/GNUmakefile.in
+++ b/robots/vmcd/GNUmakefile.in
@@ -1,6 +1,6 @@
 #
 # EMULAB-COPYRIGHT
-# Copyright (c) 2004, 2005 University of Utah and the Flux Group.
+# Copyright (c) 2004-2011 University of Utah and the Flux Group.
 # All rights reserved.
 #
 
@@ -36,9 +36,10 @@ include $(TESTBED_SRCDIR)/GNUmakerules
 
 CFLAGS	       += -O -g -Wall -I${OBJDIR} -I/usr/local/include
 CFLAGS	       += -I${SRCDIR}/../mtp -I../mtp
-CFLAGS	       += -I${SRCDIR}/../../lib/libtb
+CFLAGS	       += -I${TESTBED_LIBSRCDIR}/libtb
 
-LDFLAGS		= -L../mtp -L${OBJDIR}/lib/libtb -L${OBJDIR}/event/lib 
+LDFLAGS		= -L../mtp
+LDFLAGS        += -L${TESTBED_LIBOBJDIR}/libtb -L${TESTBED_LIBOBJDIR}/event
 
 LIBS	 += -lmtp -ltb -lm -lz
 
diff --git a/security/GNUmakefile.in b/security/GNUmakefile.in
index 7a38f3a484..b0023c35c4 100644
--- a/security/GNUmakefile.in
+++ b/security/GNUmakefile.in
@@ -1,6 +1,6 @@
 #
 # EMULAB-COPYRIGHT
-# Copyright (c) 2000-2004, 2006 University of Utah and the Flux Group.
+# Copyright (c) 2000-2011 University of Utah and the Flux Group.
 # All rights reserved.
 #
 
@@ -37,13 +37,13 @@ suexec:		suexec.c suexec.h
 		-o suexec $<
 
 genlastlog:	genlastlog.c
-	$(CC) $(CFLAGS) -I/usr/local/include -I$(TESTBED_SRCDIR)/lib/libtb \
+	$(CC) $(CFLAGS) -I/usr/local/include -I$(TESTBED_LIBSRCDIR)/libtb \
 		-DTBDBNAME='"$(TBDBNAME)"' \
 		-DUSERSVAR='"$(prefix)/usersvar"' \
 		-DOURDOMAIN='"$(OURDOMAIN)"' \
                 -DUSERNODE='"$(USERNODE)"' \
 		-DLOG_TESTBED=$(LOG_TESTBED) \
-		-o genlastlog $< ${OBJDIR}/lib/libtb/libtb.a \
+		-o genlastlog $< ${TESTBED_LIBOBJDIR}/libtb/libtb.a \
 		-L/usr/local/lib/mysql -lmysqlclient
 
 install: $(addprefix $(INSTALL_LIBEXECDIR)/, $(BINS)) \
diff --git a/tmcd/GNUmakefile.in b/tmcd/GNUmakefile.in
index b3fe8dfea6..38a1634f7a 100644
--- a/tmcd/GNUmakefile.in
+++ b/tmcd/GNUmakefile.in
@@ -16,17 +16,17 @@ all:	server
 server: tmcd tmcd.restart
 
 # For VPATH.
-MOSTLY_SRCDIRS = ${TESTBED_SRCDIR}/lib/libtb ${TESTBED_SRCDIR}/pxe \
-		 ${TESTBED_SRCDIR}/lib/tmcd
+MOSTLY_SRCDIRS = ${TESTBED_LIBSRCDIR}/libtb ${TESTBED_SRCDIR}/pxe \
+		 ${TESTBED_LIBSRCDIR}/tmcd
 
 include $(TESTBED_SRCDIR)/GNUmakerules
 
 CFLAGS	+= -O -g -Wall -DUDP \
 		-I${OBJDIR} -I/usr/local/include \
-		-I${TESTBED_SRCDIR}/lib/libtb -I${TESTBED_SRCDIR}/pxe \
-		-I${TESTBED_SRCDIR}/lib/tmcd \
+		-I${TESTBED_LIBSRCDIR}/libtb -I${TESTBED_SRCDIR}/pxe \
+		-I${TESTBED_LIBSRCDIR}/tmcd \
 		-L/usr/local/lib
-TMLIBS	 = ${OBJDIR}/lib/libtb/libtb.a
+TMLIBS	 = ${TESTBED_LIBOBJDIR}/libtb/libtb.a
 BOOTINFO = ${OBJDIR}/pxe/bootinfo.o ${OBJDIR}/pxe/bootinfo_mysql.o
 LDFLAGS += $(LDSTATIC)
 
@@ -36,7 +36,7 @@ LDFLAGS += $(LDSTATIC)
 CFLAGS	+= -DETCDIR='"$(INSTALL_ETCDIR)"'
 SSLFLAGS = -DWITHSSL 
 TMLIBS	+= -lssl -lcrypto
-NOTPMLIB = ${OBJDIR}/lib/tmcd/libtmcd.a
+NOTPMLIB = ${TESTBED_LIBOBJDIR}/tmcd/libtmcd.a
 
 ifeq ($(SYSTEM),Linux)
 ifneq ($(LDSTATIC),)
@@ -55,8 +55,8 @@ TMLIBS  += -ldl
 endif
 
 ifeq ($(EVENTSYS),1)
-	TMCDCFLAGS  = -I$(TESTBED_SRCDIR)/lib/event -DEVENTSYS
-	TMCDLIBS    = ${OBJDIR}/lib/event/libevent.a
+	TMCDCFLAGS  = -I$(TESTBED_LIBSRCDIR)/event -DEVENTSYS
+	TMCDLIBS    = ${TESTBED_LIBOBJDIR}/event/libevent.a
 	ELVINFLAGS  = -lm -L/usr/local/lib -lpubsub 
 endif
 
@@ -84,7 +84,7 @@ libtmcd.o: libtmcd.c ${TMCDLIBS} tmcd.h version.o $(BOOTINFO)
 
 libtmcd.so: libtmcd.o ${TMCDLIBS} tmcd.h $(BOOTINFO)
 	$(LD) -shared $^ -L/usr/local/lib/mysql -lxml2 -lmysqlclient \
-		$(TMCDLIBS) $(ELVINFLAGS) ../lib/libtb/libtb.a \
+		$(TMCDLIBS) $(ELVINFLAGS) $(TESTBED_LIBOBJDIR)/libtb/libtb.a \
 		-o $@
 
 version.c: tmcd.c
@@ -109,12 +109,12 @@ $(INSTALL_BINDIR)/tmcd/%: %
 # Here so that the event system libraries, and libraries they depend upon,
 # can get made.
 #
-${OBJDIR}/lib/event/%:
-	cd ${OBJDIR}/lib/event && gmake $<
-${OBJDIR}/lib/libtb/%:
-	cd ${OBJDIR}/lib/tbdb && gmake $<
-${OBJDIR}/lib/tmcd/%:
-	cd ${OBJDIR}/lib/tmcd && gmake $<
+${TESTBED_LIBOBJDIR}/event/%:
+	cd ${TESTBED_LIBOBJDIR}/event && gmake $<
+${TESTBED_LIBOBJDIR}/libtb/%:
+	cd ${TESTBED_LIBOBJDIR}/tbdb && gmake $<
+${TESTBED_LIBOBJDIR}/tmcd/%:
+	cd ${TESTBED_LIBOBJDIR}/tmcd && gmake $<
 
 clean:
 	rm -f *.o core tmcd *-debug version.c
diff --git a/tools/rmanage/GNUmakefile.in b/tools/rmanage/GNUmakefile.in
index 8338056d27..6393dd1e96 100644
--- a/tools/rmanage/GNUmakefile.in
+++ b/tools/rmanage/GNUmakefile.in
@@ -1,6 +1,6 @@
 #
 # EMULAB-COPYRIGHT
-# Copyright (c) 2006-2008 University of Utah and the Flux Group.
+# Copyright (c) 2006-2011 University of Utah and the Flux Group.
 # All rights reserved.
 #
 
@@ -57,22 +57,23 @@ rmcp_wrap.o: $(SRCDIR)/rmcp_wrap.c
 	$(CC) -fpic -c $(CFLAGS) $(SWIG_GCC_INCS) $(LDFLAGS) $(SRCDIR)/rmcp_wrap.c
 
 rmanage: GNUmakefile rmanage.o rmcp.o \
-		${OBJDIR}/lib/libtb/tbdb.o ${OBJDIR}/lib/libtb/log.o
+		${TESTBED_LIBOBJDIR}/libtb/tbdb.o \
+		${TESTBED_LIBOBJDIR}/libtb/log.o
 	$(CC) $(CFLAGS) $(LDFLAGS) $(MYSQL_LIBS) \
-		rmanage.o rmcp.o ${OBJDIR}/lib/libtb/tbdb.o \
-		${OBJDIR}/lib/libtb/log.o -o rmanage
+		rmanage.o rmcp.o ${TESTBED_LIBOBJDIR}/libtb/tbdb.o \
+		${TESTBED_LIBOBJDIR}/libtb/log.o -o rmanage
 		cp rmanage rmanage.debug
 		strip rmanage
 
 #
 # Here so that we get libtb tbdb stuff.
 #
-${OBJDIR}/lib/libtb/%:
-	cd ${OBJDIR}/lib/tbdb && gmake $<
+${TESTBED_LIBOBJDIR}/libtb/%:
+	cd ${TESTBED_LIBOBJDIR}/tbdb && gmake $<
 
 rmanage.o: rmanage.c rmcp.c
 	$(CC) -c -o rmanage.o $(CFLAGS) \
-		-I$(TESTBED_SRCDIR)/lib/libtb -I/usr/local/include $<
+		-I$(TESTBED_LIBSRCDIR)/libtb -I/usr/local/include $<
 
 rmcp.o: rmcp.c rmcp.h
 	$(CC) -c -o rmcp.o $(CFLAGS) $<
-- 
GitLab