ROS package release, catkin_make_isolated: No rule to make target 'install'. Stop.

asked 2020-02-25 04:16:47 -0500

codavide gravatar image

I'm trying to release one ROS package, but the automatic build of the package on Jenkins fails, with this error:

make: *** No rule to make target 'install'.  Stop.

I have understood that the problem is due to the fact that this command is invoked:

catkin_make_isolated --install --cmake-args -DBUILD_TESTING=0 -DCATKIN_SKIP_TESTING=1' in '/tmp/ws'

and this automatically calls make install, which is a command that doesn't work for my package, which actually should be installed with this command

cmake -DSWARMIO_BUILD_MOD=INSTALL

These are the relavant sections of my package.xml

 <!-- Dependencies -->
<buildtool_depend>cmake</buildtool_depend>
<build_export_depend>roscpp</build_export_depend>
<build_export_depend>rosconsole</build_export_depend>
<build_export_depend>std_msgs</build_export_depend>
<build_export_depend>roslib</build_export_depend>
<build_depend>roscpp</build_depend>
<build_depend>rosconsole</build_depend>
<build_depend>std_msgs</build_depend>
<build_depend>roslib</build_depend>
<build_depend>git</build_depend> 
<build_depend>clang</build_depend> 
<build_depend>multistrap</build_depend> 
<build_depend>g++-5-arm-linux-gnueabihf</build_depend> 
<build_depend>g++-5-multilib</build_depend> 
<exec_depend>roscpp</exec_depend>
<exec_depend>rosconsole</exec_depend>
<exec_depend>std_msgs</exec_depend>
<exec_depend>roslib</exec_depend>

<export>
   <build_type>cmake</build_type>
</export>`

is there something wrong in the package.xml? Am I forced to change the build scripts to be compatible with a simple make?

edit retag flag offensive close merge delete

Comments

The ROS buildfarm uses a(n almost) plain Debian package build pipeline when it comes to installing artefacts.

So I would say: yes, you have to make sure that your package uses the expected install commands to get things working.

But that doesn't mean you have to completely rewrite anything. Just patch it up to work sufficiently like a normal install to kick-off the install.

cmake -DSWARMIO_BUILD_MOD=INSTALL

to be honest, this is highly non-standard and I would almost suggest to fix "upstream".

gvdhoorn gravatar image gvdhoorn  ( 2020-02-25 05:01:06 -0500 )edit

Are you getting this error when building the binarydeb or in devel jobs? catkin_make_isolated is not used during binarydeb creation. As @gvdhoorn said the standard debian packing pipeline is used with some hints specific for catkin packages.

nuclearsandwich gravatar image nuclearsandwich  ( 2020-03-05 09:45:29 -0500 )edit