A Gentoo user reported [1] that the 'install_udev' target would
install a systemd-flavored udev rules, despite the 'systemd' target
not being selected. Replacing 'TARGETS' with 'MAKECMDGOALS' in the
Makefile rule fixes this .
I am not sure where the TARGETS variable origniates from, but GNU make
uses MAKECMDGOALS (FreeBSD make uses .TARGETS, i.e., with a leading
dot). So if further portability between make variants is required,
then this needs to be adjusted.
1: https://bugs.gentoo.org/803545#c3
Fixes: ae1f18a06039 ("udev rule: Dynamically call either systemd or autorandr directly depending on whether systemd unit is available")
install_udev:
$(if $(UDEV_RULES_DIR),,$(error UDEV_RULES_DIR is not defined))
mkdir -p ${DESTDIR}/${UDEV_RULES_DIR}/
- echo 'ACTION=="change", SUBSYSTEM=="drm", RUN+="$(if $(findstring systemd, $(TARGETS)),/bin/systemctl start --no-block autorandr.service,${PREFIX}/bin/autorandr --batch --change --default default)"' > ${DESTDIR}/${UDEV_RULES_DIR}/40-monitor-hotplug.rules
+ echo 'ACTION=="change", SUBSYSTEM=="drm", RUN+="$(if $(findstring systemd, $(MAKECMDGOALS)),/bin/systemctl start --no-block autorandr.service,${PREFIX}/bin/autorandr --batch --change --default default)"' > ${DESTDIR}/${UDEV_RULES_DIR}/40-monitor-hotplug.rules
@echo
@echo "To activate the udev rules, run this command as root:"
@echo " udevadm control --reload-rules"