title: "No rule to make target" which already exists
body: <p>I'm trying to build <a href="http://www.ros.org" rel="nofollow noreferrer">ROS</a> from source, in an environment where I have NO root access, so no <code>sudo apt-get</code>. </p>
  
  <p><code>rospack</code> needs <code>libtinyxml-dev</code>, but I cannot just install that package. Therefore, I built TinyXML from source, installing it into <code>~/usr/local/{lib, include}</code>. Some targets (e.g. <code>xmlrpcpp</code>, <code>rosbuild</code>) build fine, but <code>rospack</code> throws a</p>
  
  <pre><code>make[2]: *** No rule to make target '/home/USERNAME/usr/local/lib/libtinyxml.so', needed by 
  '/home/USERNAME/ros_desktop/catkin_ws/devel/.private/rospack/lib/librospack.so'.  Stop.
  </code></pre>
  
  <p>The file <code>libtinyxml.so</code>, however, already exists and is a symlink to <code>libtinyxml.so.2.6.2</code>, which also exists.  I have absolutely no idea what to do. I tried <code>add_library(... SHARED IMPORTED)</code>, generally fiddling with <code>CMakeLists.txt</code>, but no dice. How can I just tell CMake "hey, this library exists, just link against it!" or, if the error actually means something else, get a more informative error? Why should it <code>make</code> the library if it's already there? Thanks to whoever can help me!</p>
  
  <p>Content of <code>CMakeLists.txt</code>:</p>
  
  <pre><code>cmake_minimum_required(VERSION 2.8.3)
  project(rospack)
  
  find_package(catkin REQUIRED COMPONENTS cmake_modules)
  find_package(Boost REQUIRED COMPONENTS filesystem program_options system)
  set(Python_ADDITIONAL_VERSIONS "${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}")
  find_package(PythonLibs "${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}" REQUIRED)
  find_package(TinyXML REQUIRED)
  
  catkin_package(
    INCLUDE_DIRS include
    LIBRARIES rospack ${PYTHON_LIBRARIES}
    DEPENDS Boost TinyXML
  )
  
  #add_definitions(-Wall)
  
  set(API_BACKCOMPAT_V1 "YES" CACHE BOOL "Whether to enable backwards compatibility with old C++ API")
  if(API_BACKCOMPAT_V1)
    add_definitions(-DROSPACK_API_BACKCOMPAT_V1)
    set(backcompat_source src/rospack_backcompat.cpp)
  endif()
  
  include_directories(include ${TinyXML_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${PYTHON_INCLUDE_DIRS})
  
  add_library(rospack
    src/rospack.cpp
    ${backcompat_source}
    src/rospack_cmdline.cpp
    src/utils.cpp
  )
  target_link_libraries(rospack ${TinyXML_LIBRARIES} ${Boost_LIBRARIES} ${PYTHON_LIBRARIES})
  
  add_executable(rospackexe src/rospack_main.cpp)
  # Set the name, and make it a "global" executable
  set_target_properties(rospackexe PROPERTIES
    OUTPUT_NAME rospack
    RUNTIME_OUTPUT_DIRECTORY ${CATKIN_DEVEL_PREFIX}/bin)
  target_link_libraries(rospackexe rospack ${Boost_LIBRARIES})
  add_executable(rosstackexe src/rosstack_main.cpp)
  target_link_libraries(rosstackexe rospack ${Boost_LIBRARIES})
  # Set the name, and make it a "global" executable
  set_target_properties(rosstackexe PROPERTIES
    OUTPUT_NAME rosstack
    RUNTIME_OUTPUT_DIRECTORY ${CATKIN_DEVEL_PREFIX}/bin)
  
  install(TARGETS rospack rospackexe rosstackexe
    ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
    LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
    RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION})
  install(DIRECTORY include/${PROJECT_NAME}/
    DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
    FILES_MATCHING PATTERN "*.h")
  
  # uninstall target
  configure_file(
    "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
    "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
    IMMEDIATE @ONLY)
  add_custom_target(uninstall COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
  
  if(CATKIN_ENABLE_TESTING)
    add_subdirectory(test)
  endif()
  
  if(DOXYGEN_FOUND)
    add_custom_target(rospack-docs
      COMMAND doxygen Doxyfile
      WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
  endif()
  </code></pre>