# Revision history [back]

You've hit upon exactly the main difference between the two.

make does finish first because it only compiles the current package that you are working on. It only works if you are in the root directory of that package.

rosmake compiles the package (or stack) named (e.g. rosmake my_package) or if you are working in a package's root directory and don't name a package, the current package. rosmake also checks and compiles any dependencies if required.

My rule of thumb is to rosmake the first time and anytime I change the manifest or CMakeLists.txt as well as anytime I modify any of a packages dependencies. If I have only made changes to source code in the package itself, I just use make.

You've hit upon exactly the main difference between the two.

make does finish first because it only compiles the current package that you are working on. It only works if you are in the root directory of that package.

rosmake compiles the package (or stack) named (e.g. rosmake my_package) or if you are working in a package's root directory and don't name a package, the current package. rosmake also checks and compiles any dependencies if required.

My rule of thumb is to rosmake the first time and anytime I change the manifest or CMakeLists.txt as well as anytime I modify any of a packages dependencies. If I have only made changes to source code in the package itself, I just use make.