-
Notifications
You must be signed in to change notification settings - Fork 1
Running make execute make install target in Drake #10
Comments
We can workaround these problems using the bloom templates which are patches for the underlining debian build system that we setup once in what is called the ROS release repository (hosted at https://github.com/ros2-gbp and automatically updated by the release tooling) and are applied every time a release is being made.
A simple patch for the bloom templates (see an example for drake) in the rules file: override_dh_auto_build:
if [ -f "@(InstallationPrefix)/setup.sh" ]; then . "@(InstallationPrefix)/setup.sh"; fi && \
- dh_auto_build
+ DESTDIR=$(CURDIR)/debian/@(Package)/ dh_auto_build
With this we can also configure the +override_dh_prep:
+ dh_prep -Xdebian/@(Package) $@@
+ With these two patches I was able to build a testing |
This sounds like a bug in Drake. Could you please file a Drake issue about it (ideally, with a more basic reproduction recipe that doesn't involve |
Done RobotLocomotion/drake#20908. Just running |
The issues has been resolved in the upstream repository. We need to update the release target (next should 1.27) and get rid of the custom patches. |
Signed-off-by: Jose Luis Rivero <[email protected]>
Signed-off-by: Jose Luis Rivero <[email protected]>
Remember to remove the workaround done for GitHub actions in pull #6 when closing this. See the comment in the file. |
When using the Drake CMake wrapper I noticed that running
make
calls the targetinstall
in the build system and in fact installs the files in the specified directory. This is a bit different from the usual functionally of the default target inmake
(theall
target) which restrict its goal to build all the specified artifacts inside a building directory but not in the final file destination.Since the final goal of the packaging is to run
make
andmake install
at some point, the final result could be expected to be the same no matter at which step the files are installed. This is only partially true since the debian packaging and/or the ROS debian packaging use different environment variables and introduce other steps between the call to build (dh_auto_build
) and the call to install (dh_auto_install
). This generates some problems:DESTDIR
is not available in the call ofdh_auto_build
since the expected step to handle it isdh_auto_build
. The Drake build system uses it just fine but the variable is not present when doing the installation.There is a clean step between
dh_auto_build
anddh_auto_install
called dh_prep that is removing the installation done in the first step.The text was updated successfully, but these errors were encountered: