Vesselin Kostadinov notes that he had to make additional modifications to each ".mak" file before he could run the Borland C/C++ compiler. (Thanks also to David Wu for updating these instructions.) 1. cd to UsageEnvironment 2. Edit Makefile.tail: Edit the line: $(LIBRARY_LINK)$@ $(LIBRARY_LINK_OPTS) $(OBJS) to add a space character between the first ")" and the following "$" - i.e.: $(LIBRARY_LINK) $@ $(LIBRARY_LINK_OPTS) $(OBJS) 3. From the command line execute: copy makefile.head+..\win32config.borland+makefile.tail Makefile /y 4. From the command line execute: make There should be no error messages. Warnings like "Warning: '...whatever...' not found in library" are Ok though. As a result you will get file libUsageEnvironment.lib 5. cd ..\groupsock. Repeat steps 2-4. 6. cd ..\BasicUsageEnvironment. Repeat steps 2-4. 7. cd ..\liveMedia. Repeat steps 2-4. Run make and you should be Ok. Ignore the warnings "Call to function '...' with no prototype..." Now you have live media compiled and you are ready to link your code to it. To proceed with the test programs: 8. cd ..\testprogs. 9. Edit Makefile.tail: Change all occurrences of / to \ All lines that look like: $(LINK)$@ $(CONSOLE_LINK_OPTS) $(...WHATEVER..._OBJS) $(LIBS) should be changed to: $(LINK) $(CONSOLE_LINK_OPTS) $(...SAME..WHATEVER..._OBJS),$@,,$(LIBS),, Eventually it should end up this way: testMP3Streamer$(EXE): $(MP3_STREAMER_OBJS) $(LOCAL_LIBS) $(LINK) $(CONSOLE_LINK_OPTS) $(MP3_STREAMER_OBJS), $@,,$(LIBS),, testMP3Receiver$(EXE): $(MP3_RECEIVER_OBJS) $(LOCAL_LIBS) $(LINK) $(CONSOLE_LINK_OPTS) $(MP3_RECEIVER_OBJS), $@,,$(LIBS),, testRelay$(EXE): $(RELAY_OBJS) $(LOCAL_LIBS) $(LINK) $(CONSOLE_LINK_OPTS) $(RELAY_OBJS), $@,,$(LIBS),, testMPEGSplitter$(EXE): $(MPEG_SPLITTER_OBJS) $(LOCAL_LIBS) $(LINK) $(CONSOLE_LINK_OPTS) $(MPEG_SPLITTER_OBJS), $@,,$(LIBS),, testMPEGVideoStreamer$(EXE): $(MPEG_VIDEO_STREAMER_OBJS) $(LOCAL_LIBS) $(LINK) $(CONSOLE_LINK_OPTS) $(MPEG_VIDEO_STREAMER_OBJS),$@,,$(LIBS),, testMPEGVideoReceiver$(EXE): $(MPEG_VIDEO_RECEIVER_OBJS) $(LOCAL_LIBS) $(LINK) $(CONSOLE_LINK_OPTS) $(MPEG_VIDEO_RECEIVER_OBJS),$@,,$(LIBS),, testMPEGAudioVideoStreamer$(EXE): $(MPEG_AUDIO_VIDEO_STREAMER_OBJS) $(LOCAL_LIBS) $(LINK) $(CONSOLE_LINK_OPTS) $(MPEG_AUDIO_VIDEO_STREAMER_OBJS),$@,,$(LIBS),, openRTSP$(EXE): $(OPEN_RTSP_OBJS) $(LOCAL_LIBS) $(LINK) $(CONSOLE_LINK_OPTS) $(OPEN_RTSP_OBJS), $@,,$(LIBS),, testMCT$(EXE): $(TEST_MCT_OBJS) $(LOCAL_LIBS) $(LINK) $(CONSOLE_LINK_OPTS) $(TEST_MCT_OBJS), $@,,$(LIBS),, testGSMStreamer$(EXE): $(GSM_STREAMER_OBJS) $(LOCAL_LIBS) $(LINK) $(CONSOLE_LINK_OPTS) $(GSM_STREAMER_OBJS), $@,,$(LIBS),, 10. Repeat steps 3 and 4 As a result you will get 8 working exe-s. If anything goes wrong please drop me a line to fix the howto. Enjoy. Vesselin