ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

Running rosmake is a superset of make. In particular, rosmake runs make on all of a package's dependencies (as defined in manifest.xml), including recursive dependencies. By contrast, make just builds the current package.

You should run rosmake the first time you build a package (say, when you first install it), when you change a package's manifest.xml (in case you need to recursively build a newly-added dependency), or when a package's dependency needs to be rebuilt.

My workflow goes like this:

  1. Sit down at my desk in the morning.
  2. rosinstall ~/ros /opt/ros/diamondback (this gets all of my source packages up-to-date)
  3. rosmake foo (where foo is the package I'm currently developing; this makes sure the dependencies and everything else are properly dealt with)
  4. After that, while working on foo, just use make.

A note: the packages that are distributed as binaries (the .deb files) include a ROS_NOBUILD file that causes rosmake to skip right over them; this causes them to (appear to) build very fast.