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

failure of catkin_make_isolated on FreeBSD

asked 2020-01-17 07:53:43 -0500

broomstick gravatar image

I'm attempting to install ROS Kinetic on FreeBSD 12.1 (at my peril).

I'm following the 'from source' instructions at: http://wiki.ros.org/kinetic/Installat...

I am performing step 2.1.3 (Building the catkin workspace), which directs invoking catkin_make_isolated as follows: ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release

I get the following output: ==> Processing catkin package: 'catkin' ... ==> make -j4 -l4 in '$PATH/ros_catkin_ws/build_isolated/catkin' ... <== Failed to process package 'catkin': Command '['make', '-j4', '-l4']' returned non-zero exit status 2

This seems to be due to FreeBSD make not having the loading average flag -l.

I have tried both setting the MAKEFLAGS and ROS_PARALLEL_JOBS environment variables to avoid setting the -l flag. E.g., set ROS_PARALLEL_JOBS='-j4'.

The result is that it sends a flag -pn to make, as follows: ==> Processing catkin package: 'catkin' ... ==> make -j4 in '$PATH/ros_catkin_ws/build_isolated/catkin' ... <== Failed to process package 'catkin': Command '['make', '-pn']' returned non-zero exit status 2

Interestingly, it appears that it's invoking make -j4, but then says that the actual flag sent to make is -pn.

I have also attempted to set the flags when invoking catkin_make_isolated, but get the same result (with -pn). For example: ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release -j4

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2020-01-18 15:48:18 -0500

broomstick gravatar image

updated 2020-01-30 05:24:45 -0500

Found my answer by posting a similar question elsewhere:

https://github.com/ros/catkin/issues/...

In short, FreeBSD make is not the same as GNU make and has different flags. Installing GNU make doesn't immediately fix the problem because the binary name is gmake in FreeBSD, but make is hardcoded into catkin's builder.py script.

The workaround (modifying the builder.py script) is documented in the github thread cited above.

EDIT: The workaround to use gmake on FreeBSD has been pulled into Catkin, which now supports the --use-gmakeargument (https://github.com/ros/catkin/pull/1051)

edit flag offensive delete link more

Question Tools

2 followers

Stats

Asked: 2020-01-17 07:53:43 -0500

Seen: 594 times

Last updated: Jan 30 '20