105 lines
3.9 KiB
Makefile
105 lines
3.9 KiB
Makefile
DESTDIR=
|
|
PREFIX:=/usr
|
|
SHAREDIR=$(PREFIX)/share
|
|
MANDIR=$(SHAREDIR)/man
|
|
SCDOC=scdoc
|
|
|
|
.PHONY: install shellcheck
|
|
|
|
VERSION:=1.13.0
|
|
|
|
GITVERSION:=$(shell git describe --tags)
|
|
|
|
OPENRC:=1
|
|
|
|
CC ?= $(CROSS_COMPILE)gcc
|
|
PROGRAMS = \
|
|
programs/sxmo_aligned_sleep \
|
|
programs/sxmo_vibrate
|
|
|
|
DOCS = \
|
|
docs/sxmo.7
|
|
|
|
docs/%: docs/%.scd
|
|
$(SCDOC) <$< >$@
|
|
|
|
all: $(PROGRAMS) $(DOCS)
|
|
|
|
test: shellcheck
|
|
|
|
shellcheck:
|
|
find . -type f -name '*.sh' -print0 | xargs -0 shellcheck -x --shell=sh
|
|
|
|
programs/%: programs/%.c
|
|
$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ $<
|
|
|
|
clean:
|
|
rm -f programs/sxmo_aligned_sleep programs/sxmo_vibrate
|
|
|
|
install: install-sway install-dwm install-scripts install-docs
|
|
|
|
install-docs: $(DOCS)
|
|
cd docs && find . -type f -name '*.7' -exec install -D -m 0644 "{}" "$(DESTDIR)$(MANDIR)/man7/{}" \; && cd ..
|
|
|
|
install-sway:
|
|
install -D -m 0644 -t $(DESTDIR)$(PREFIX)/share/wayland-sessions/ configs/applications/swmo.desktop
|
|
|
|
install-dwm:
|
|
install -D -m 0644 -t $(DESTDIR)$(PREFIX)/share/xsessions/ configs/applications/sxmo.desktop
|
|
|
|
install-scripts: $(PROGRAMS)
|
|
cd configs && find . -type f -not -name sxmo-setpermissions -exec install -D -m 0644 "{}" "$(DESTDIR)$(PREFIX)/share/sxmo/{}" \; && cd ..
|
|
|
|
rm -rf "$(DESTDIR)$(PREFIX)/share/sxmo/default_hooks/"
|
|
cd configs && find default_hooks -type f -exec install -D -m 0755 "{}" "$(DESTDIR)$(PREFIX)/share/sxmo/{}" \; && cd ..
|
|
cd configs && find default_hooks -type l -exec cp -R "{}" "$(DESTDIR)$(PREFIX)/share/sxmo/{}" \; && cd ..
|
|
|
|
[ -n "$(GITVERSION)" ] && echo "$(GITVERSION)" > "$(DESTDIR)$(PREFIX)/share/sxmo/version" || echo "$(VERSION)" > "$(DESTDIR)$(PREFIX)/share/sxmo/version"
|
|
|
|
cd resources && find . -type f -exec install -D -m 0644 "{}" "$(DESTDIR)$(PREFIX)/share/sxmo/{}" \; && cd ..
|
|
|
|
# Configs
|
|
if [ "$(OPENRC)" = "1" ]; then \
|
|
install -D -m 0755 -t $(DESTDIR)/etc/init.d configs/openrc/sxmo-setpermissions; \
|
|
fi
|
|
|
|
install -D -m 0644 -t $(DESTDIR)/usr/lib/udev/rules.d/ configs/udev/*.rules
|
|
|
|
install -D -m 0644 -t $(DESTDIR)$(PREFIX)/share/applications/ configs/xdg/mimeapps.list
|
|
|
|
install -D -m 0640 -t $(DESTDIR)/etc/doas.d/ configs/doas/sxmo.conf
|
|
|
|
install -D -m 0644 -T configs/xorg/monitor.conf $(DESTDIR)$(PREFIX)/share/X11/xorg.conf.d/90-monitor.conf
|
|
|
|
mkdir -p $(DESTDIR)/etc/NetworkManager/dispatcher.d
|
|
|
|
install -D -m 0644 -T configs/appcfg/mpv_input.conf $(DESTDIR)/etc/mpv/input.conf
|
|
|
|
install -D -m 0755 -T configs/profile.d/sxmo_init.sh $(DESTDIR)/etc/profile.d/sxmo_init.sh
|
|
|
|
# Migrations
|
|
install -D -t $(DESTDIR)$(PREFIX)/share/sxmo/migrations migrations/*
|
|
|
|
# Bin
|
|
install -D -t $(DESTDIR)$(PREFIX)/bin scripts/*/*.sh
|
|
|
|
install -D programs/sxmo_aligned_sleep $(DESTDIR)$(PREFIX)/bin/
|
|
install -D programs/sxmo_vibrate $(DESTDIR)$(PREFIX)/bin/
|
|
|
|
find $(DESTDIR)$(PREFIX)/share/sxmo/default_hooks/ -type f -exec ./setup_config_version.sh "{}" \;
|
|
find $(DESTDIR)$(PREFIX)/share/sxmo/appcfg/ -type f -exec ./setup_config_version.sh "{}" \;
|
|
|
|
# Appscripts
|
|
mkdir -p "$(DESTDIR)$(PREFIX)/share/sxmo/appscripts"
|
|
cd scripts/appscripts && find . -name 'sxmo_*.sh' | xargs -I{} ln -fs "$(PREFIX)/bin/{}" "$(DESTDIR)$(PREFIX)/share/sxmo/appscripts/{}" && cd ../..
|
|
|
|
|
|
mkdir -p "$(DESTDIR)$(PREFIX)/share/superd/services"
|
|
install -m 0644 -t $(DESTDIR)$(PREFIX)/share/superd/services configs/superd/services/*
|
|
|
|
@echo "-------------------------------------------------------------------">&2
|
|
@echo "NOTICE 1: Do not forget to add sxmo-setpermissions to your init system, e.g. for openrc: rc-update add sxmo-setpermissions default && rc-service sxmo-setpermissions start" >&2
|
|
@echo "-------------------------------------------------------------------">&2
|
|
@echo "NOTICE 2: After an upgrade, it is recommended you reboot and when prompted run sxmo_migrate.sh to check and upgrade your configuration files and custom hooks against the defaults (it will not make any changes unless explicitly told to)" >&2
|
|
@echo "-------------------------------------------------------------------">&2
|