From 0e7fb8b21d6cf02a78b2ea48467ce02cd4badfb7 Mon Sep 17 00:00:00 2001 From: Phillip Berndt Date: Wed, 11 Nov 2015 11:21:23 +0100 Subject: [PATCH] Moved contributed scripts/files to the contrib/ folder and updated the Makefile to autodetect the system systemd service file contributed by github user @blueyed. see #29. --- Makefile | 78 +++++++++++++++++-- README.md | 3 +- .../bash_completion}/autorandr | 0 {pm-utils => contrib/pm-utils}/40autorandr | 0 contrib/systemd/autorandr-resume.service | 9 +++ .../udev}/40-monitor-hotplug.rules | 0 6 files changed, 80 insertions(+), 10 deletions(-) rename {bash_completion => contrib/bash_completion}/autorandr (100%) rename {pm-utils => contrib/pm-utils}/40autorandr (100%) create mode 100644 contrib/systemd/autorandr-resume.service rename {udev => contrib/udev}/40-monitor-hotplug.rules (100%) diff --git a/Makefile b/Makefile index 4141b1c..122c2f7 100644 --- a/Makefile +++ b/Makefile @@ -1,18 +1,80 @@ +DESTDIR=/ +PREFIX=/usr/ + +.PHONY: all install uninstall autorandr bash_completion pmutils systemd udev + all: @echo "Call \"make install\" to install this program." - @echo "Call \"make hotplug\" to install matching hotplug events." + @echo "Call \"make uninstall\" to remove this program." + @echo + @echo "The following components were autodetected and will be installed:" + @echo " "$(DEFAULT_TARGETS) + @echo "You can use the TARGETS variable to override, e.g. \"make install TAGETS='autorandr pmutils'\"." + +# Rules for autorandr itself +DEFAULT_TARGETS=autorandr + +install_autorandr: + install -D -m 755 autorandr.py ${DESTDIR}${PREFIX}/bin/autorandr + +uninstall_autorandr: + rm -f ${DESTDIR}${PREFIX}/bin/autorandr + +# Rules for bash_completion +HAVE_BASH_COMPLETION=$(shell [ -d /etc/bash_completion.d/ ] && echo "y") +ifeq ($(HAVE_BASH_COMPLETION),y) +DEFAULT_TARGETS+=bash_completion +endif + +install_bash_completion: + install -D -m 644 contrib/bash_completion/autorandr ${DESTDIR}/etc/bash_completion.d/autorandr + +uninstall_bash_completion: + rm -f ${DESTDIR}/etc/bash_completion.d/autorandr + +# Rules for pmutils +HAVE_PMUTILS=$(shell [ -x /usr/sbin/pm-suspend ] && echo "y") +ifeq ($(HAVE_PMUTILS),y) +DEFAULT_TARGETS+=pmutils +endif -INSTALL_PATH=/usr/local/bin -install: - install -D -m 755 autorandr.py ${DESTDIR}${INSTALL_PATH}/autorandr - install -D -m 644 bash_completion/autorandr ${DESTDIR}/etc/bash_completion.d/autorandr +install_pmutils: + install -D -m 644 contrib/pm-utils/40autorandr ${DESTDIR}/etc/pm/sleep.d/40autorandr -hotplug: - install -D -m 755 pm-utils/40autorandr ${DESTDIR}/etc/pm/sleep.d/40autorandr - install -D -m 644 udev/40-monitor-hotplug.rules ${DESTDIR}/etc/udev/rules.d/40-monitor-hotplug.rules +uninstall_pmutils: + rm -f ${DESTDIR}/etc/pm/sleep.d/40autorandr + +# Rules for systemd +HAVE_SYSTEMD=$(shell grep -q systemd /proc/1/cmdline && echo "y") +ifeq ($(HAVE_SYSTEMD),y) +DEFAULT_TARGETS+=systemd +endif + +install_systemd: install_pmutils + install -D -m 644 contrib/systemd/autorandr-resume.service ${DESTDIR}/etc/systemd/system/autorandr-resume.service + +uninstall_systemd: uninstall_pmutils + rm -f ${DESTDIR}/etc/systemd/system/autorandr-resume.service + +# Rules for udev +HAVE_UDEV=$(shell [ -d /etc/udev/rules.d/ ] && echo "y") +ifeq ($(HAVE_UDEV),y) +DEFAULT_TARGETS+=udev +endif + +install_udev: + install -D -m 644 contrib/udev/40-monitor-hotplug.rules ${DESTDIR}/etc/udev/rules.d/40-monitor-hotplug.rules ifeq (${USER},root) udevadm control --reload-rules else @echo "Please run this command as root:" @echo " udevadm control --reload-rules" endif + +uninstall_udev: + rm -f ${DESTDIR}/etc/udev/rules.d/40-monitor-hotplug.rules + + +TARGETS=$(DEFAULT_TARGETS) +install: $(patsubst %,install_%,$(TARGETS)) +uninstall: $(patsubst %,uninstall_%,$(TARGETS)) diff --git a/README.md b/README.md index b014998..fdfb547 100644 --- a/README.md +++ b/README.md @@ -87,5 +87,4 @@ Another script called `postswitch` can be placed in the directory after a mode switch has taken place and can notify window managers or other applications about it. -To install autorandr call `make install`, define your setup and then call -`make hotplug` to install hotplug scripts. +To install autorandr call `make install`. diff --git a/bash_completion/autorandr b/contrib/bash_completion/autorandr similarity index 100% rename from bash_completion/autorandr rename to contrib/bash_completion/autorandr diff --git a/pm-utils/40autorandr b/contrib/pm-utils/40autorandr similarity index 100% rename from pm-utils/40autorandr rename to contrib/pm-utils/40autorandr diff --git a/contrib/systemd/autorandr-resume.service b/contrib/systemd/autorandr-resume.service new file mode 100644 index 0000000..70dcde1 --- /dev/null +++ b/contrib/systemd/autorandr-resume.service @@ -0,0 +1,9 @@ +[Unit] +Description=autorandr resume hook +After=sleep.target + +[Service] +ExecStart=/etc/pm/sleep.d/40autorandr thaw + +[Install] +WantedBy=sleep.target \ No newline at end of file diff --git a/udev/40-monitor-hotplug.rules b/contrib/udev/40-monitor-hotplug.rules similarity index 100% rename from udev/40-monitor-hotplug.rules rename to contrib/udev/40-monitor-hotplug.rules -- 2.39.2