--- a/docbook/CMakeLists.txt
+++ b/docbook/CMakeLists.txt
@@ -61,21 +61,22 @@
 	common_graphics/warning.svg
 )
 
-set(WSUG_TOOLS_HELP_COMMANDS
+set(WSUG_TOOLS_COMMANDS
 	capinfos
+	dumpcap
 	editcap
 	mergecap
+	rawshark
 	reordercap
 	text2pcap
 	tshark
 )
 
-if (PCAP_FOUND)
-	list(APPEND WSUG_TOOLS_HELP_COMMANDS
-		dumpcap
-		rawshark
-	)
-endif(PCAP_FOUND)
+foreach(th_build ${WSUG_TOOLS_COMMANDS})
+if (TARGET ${th_build})
+	list(APPEND WSUG_TOOLS_HELP_COMMANDS ${th_build})
+endif(TARGET ${th_build})
+endforeach()
 
 # We want the wsug_* targets to depend on the tools help files.
 # We want update_tools_help to be an independent target.
@@ -92,6 +93,7 @@
 
 foreach(th_command ${WSUG_TOOLS_HELP_COMMANDS})
 	set(th_file ${CMAKE_CURRENT_SOURCE_DIR}/wsug_src/${th_command}-h.txt)
+	add_dependencies(th_file th_command)
 	list(APPEND WSUG_TOOLS_HELP_FILES ${th_file})
 	add_custom_command(
 		OUTPUT ${th_file}
@@ -103,6 +105,7 @@
 # Extra command output
 # Note that these won't work on Windows unless we make -F and -T write
 # to stdout and return 0 or wrap the commands similar to hhc.exe.
+if (TARGET editcap)
 set(th_file ${CMAKE_CURRENT_SOURCE_DIR}/wsug_src/editcap-F.txt)
 list(APPEND WSUG_TOOLS_HELP_FILES ${th_file})
 add_custom_command(
@@ -117,6 +120,7 @@
 	COMMAND $<TARGET_FILE:editcap> -T > ${th_file}
 	DEPENDS $<TARGET_FILE:editcap>
 )
+endif(TARGET editcap)
 
 add_custom_target(update_tools_help
 	DEPENDS ${WSUG_TOOLS_HELP_FILES}
