diff --git a/indra/CMakeLists.txt b/indra/CMakeLists.txt
index dbc9436dcf651e661628b09e5597ad2a5c06e872..3e6bcb00e63c4e390e2600ccd0ae48dfe5444c64 100644
--- a/indra/CMakeLists.txt
+++ b/indra/CMakeLists.txt
@@ -45,25 +45,32 @@ if (WINDOWS AND EXISTS ${LIBS_CLOSED_DIR}copy_win_scripts)
   add_subdirectory(${LIBS_CLOSED_PREFIX}copy_win_scripts)
 endif (WINDOWS AND EXISTS ${LIBS_CLOSED_DIR}copy_win_scripts)
 
+add_custom_target(viewer)
 if (VIEWER)
   add_subdirectory(${LIBS_OPEN_PREFIX}llcrashlogger)
   add_subdirectory(${LIBS_OPEN_PREFIX}llui)
 
   if (LINUX)
     add_subdirectory(${VIEWER_PREFIX}linux_crash_logger)
+    add_dependencies(viewer linux-crash-logger)
   elseif (DARWIN)
     add_subdirectory(${VIEWER_PREFIX}mac_crash_logger)
     add_subdirectory(${VIEWER_PREFIX}mac_updater)
+    add_dependencies(viewer mac-updater mac-crash-logger)
   elseif (WINDOWS)
     add_subdirectory(${VIEWER_PREFIX}win_crash_logger)
     add_subdirectory(${VIEWER_PREFIX}win_updater)
+    add_dependencies(viewer windows-updater windows-crash-logger)
   elseif (SOLARIS)
     add_subdirectory(solaris_crash_logger)
+    add_dependencies(viewer solaris-crash-logger)
   endif (LINUX)
 
   add_subdirectory(${VIEWER_PREFIX}newview)
+  add_dependencies(viewer secondlife-bin)
 endif (VIEWER)
 
+add_custom_target(server)
 if (SERVER)
   include(${SERVER_PREFIX}Server.cmake)
 endif (SERVER)