--- a/Makefile.tail
+++ b/Makefile.tail
@@ -14,10 +14,10 @@ PROXY_SERVER_DIR = proxyServer
 HLS_PROXY_DIR = hlsProxy
 
 all:
-	cd $(LIVEMEDIA_DIR) ; CFLAGS="$(CFLAGS)" $(MAKE)
-	cd $(GROUPSOCK_DIR) ; CFLAGS="$(CFLAGS)" $(MAKE)
 	cd $(USAGE_ENVIRONMENT_DIR) ; CFLAGS="$(CFLAGS)" $(MAKE)
 	cd $(BASIC_USAGE_ENVIRONMENT_DIR) ; CFLAGS="$(CFLAGS)" $(MAKE)
+	cd $(GROUPSOCK_DIR) ; CFLAGS="$(CFLAGS)" $(MAKE)
+	cd $(LIVEMEDIA_DIR) ; CFLAGS="$(CFLAGS)" $(MAKE)
 	cd $(TESTPROGS_DIR) ; CFLAGS="$(CFLAGS)" $(MAKE)
 	cd $(MEDIA_SERVER_DIR) ; CFLAGS="$(CFLAGS)" $(MAKE)
 	cd $(PROXY_SERVER_DIR) ; CFLAGS="$(CFLAGS)" $(MAKE)
--- a/liveMedia/Makefile.tail
+++ b/liveMedia/Makefile.tail
@@ -65,10 +65,17 @@ MISC_OBJS = BitVector.$(OBJ) StreamParse
 
 LIVEMEDIA_LIB_OBJS = Media.$(OBJ) $(MISC_SOURCE_OBJS) $(MISC_SINK_OBJS) $(MISC_FILTER_OBJS) $(RTP_OBJS) $(RTCP_OBJS) $(GENERIC_MEDIA_SERVER_OBJS) $(RTSP_OBJS) $(SIP_OBJS) $(SESSION_OBJS) $(QUICKTIME_OBJS) $(AVI_OBJS) $(TRANSPORT_STREAM_TRICK_PLAY_OBJS) $(MATROSKA_OBJS) $(OGG_OBJS) $(TRANSPORT_STREAM_DEMUX_OBJS) $(HLS_OBJS) $(SECURITY_OBJS) $(MISC_OBJS)
 
+GROUPSOCK_DIR = ../groupsock
+GROUPSOCK_LIB = $(GROUPSOCK_DIR)/libgroupsock.$(libgroupsock_LIB_SUFFIX)
+USAGE_ENVIRONMENT_DIR = ../UsageEnvironment
+USAGE_ENVIRONMENT_LIB = $(USAGE_ENVIRONMENT_DIR)/libUsageEnvironment.$(libUsageEnvironment_LIB_SUFFIX)
+BASIC_USAGE_ENVIRONMENT_DIR = ../BasicUsageEnvironment
+BASIC_USAGE_ENVIRONMENT_LIB = $(BASIC_USAGE_ENVIRONMENT_DIR)/libBasicUsageEnvironment.$(libBasicUsageEnvironment_LIB_SUFFIX)
+
 $(LIVEMEDIA_LIB): $(LIVEMEDIA_LIB_OBJS) \
     $(PLATFORM_SPECIFIC_LIB_OBJS)
-	$(LIBRARY_LINK)$@ $(LIBRARY_LINK_OPTS) \
-		$(LIVEMEDIA_LIB_OBJS) $(LIBS_FOR_LIVEMEDIA_LIB)
+	$(LIBRARY_LINK)$@ $(LIBRARY_LINK_OPTS) $(GROUPSOCK_LIB) $(BASIC_USAGE_ENVIRONMENT_LIB) $(USAGE_ENVIRONMENT_LIB) \
+ 		$(LIVEMEDIA_LIB_OBJS) -lssl -lcrypto
 
 Media.$(CPP):		include/Media.hh
 include/Media.hh:	include/liveMedia_version.hh
--- a/groupsock/Makefile.tail
+++ b/groupsock/Makefile.tail
@@ -24,9 +24,14 @@ NetInterface.$(CPP):	include/NetInterfac
 NetAddress.$(CPP):	include/NetAddress.hh include/GroupsockHelper.hh
 IOHandlers.$(CPP):	include/IOHandlers.hh
 
+USAGE_ENVIRONMENT_DIR = ../UsageEnvironment
+USAGE_ENVIRONMENT_LIB = $(USAGE_ENVIRONMENT_DIR)/libUsageEnvironment.$(libUsageEnvironment_LIB_SUFFIX)
+BASIC_USAGE_ENVIRONMENT_DIR = ../BasicUsageEnvironment
+BASIC_USAGE_ENVIRONMENT_LIB = $(BASIC_USAGE_ENVIRONMENT_DIR)/libBasicUsageEnvironment.$(libBasicUsageEnvironment_LIB_SUFFIX)
+
 libgroupsock.$(LIB_SUFFIX): $(GROUPSOCK_LIB_OBJS) \
     $(PLATFORM_SPECIFIC_LIB_OBJS)
-	$(LIBRARY_LINK)$@ $(LIBRARY_LINK_OPTS) \
+	$(LIBRARY_LINK)$@ $(LIBRARY_LINK_OPTS) $(BASIC_USAGE_ENVIRONMENT_LIB) $(USAGE_ENVIRONMENT_LIB) \
 		$(GROUPSOCK_LIB_OBJS)
 
 clean:
--- a/BasicUsageEnvironment/Makefile.tail
+++ b/BasicUsageEnvironment/Makefile.tail
@@ -9,8 +9,11 @@ OBJS = BasicUsageEnvironment0.$(OBJ) Bas
 	BasicTaskScheduler0.$(OBJ) BasicTaskScheduler.$(OBJ) \
 	DelayQueue.$(OBJ) BasicHashTable.$(OBJ)
 
+USAGE_ENVIRONMENT_DIR = ../UsageEnvironment
+USAGE_ENVIRONMENT_LIB = $(USAGE_ENVIRONMENT_DIR)/libUsageEnvironment.$(libUsageEnvironment_LIB_SUFFIX)
+
 libBasicUsageEnvironment.$(LIB_SUFFIX): $(OBJS)
-	$(LIBRARY_LINK)$@ $(LIBRARY_LINK_OPTS) \
+	$(LIBRARY_LINK)$@ $(LIBRARY_LINK_OPTS) $(USAGE_ENVIRONMENT_LIB) \
 		$(OBJS)
 
 .$(C).$(OBJ):
