# 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.