swayaway
a drop-in replacement for swayidle(1)
Makefile
1737 bytes raw
1CC ?= cc
2PKG_CONFIG ?= pkg-config
3WAYLAND_SCANNER ?= wayland-scanner
4
5PREFIX ?= /usr/local
6BINDIR ?= $(PREFIX)/bin
7MANDIR ?= $(PREFIX)/share/man
8SCODOC ?= scdoc
9
10WAYLAND_PROTOCOLS_DIR := $(shell $(PKG_CONFIG) --variable=pagedir wayland-protocols 2>/dev/null)
11ifeq ($(WAYLAND_PROTOCOLS_DIR),)
12WAYLAND_PROTOCOLS_DIR := /usr/share/wayland-protocols
13endif
14EXT_IDLE_XML := $(firstword \
15 $(wildcard $(WAYLAND_PROTOCOLS_DIR)/stable/ext-idle-notify/ext-idle-notify-v1.xml) \
16 $(wildcard $(WAYLAND_PROTOCOLS_DIR)/staging/ext-idle-notify/ext-idle-notify-v1.xml))
17ifeq ($(EXT_IDLE_XML),)
18$(error ext-idle-notify-v1.xml not found under $(WAYLAND_PROTOCOLS_DIR); install wayland-protocols >= 1.32)
19endif
20
21CFLAGS ?= -O2 -Wall -Wextra -std=c99
22CFLAGS += $(shell $(PKG_CONFIG) --cflags wayland-client dbus-1)
23LDLIBS += $(shell $(PKG_CONFIG) --libs wayland-client dbus-1)
24
25GENERATED = ext-idle-notify-v1-client-protocol.h ext-idle-notify-v1-protocol.c
26
27MANPAGE = swayaway.1
28
29SRCS = main.c log.c idle.c wayland.c screensaver.c logind.c \
30 ext-idle-notify-v1-protocol.c
31OBJS = $(SRCS:.c=.o)
32
33all: swayaway
34
35swayaway: $(OBJS)
36 $(CC) $(CFLAGS) -o $@ $(OBJS) $(LDLIBS)
37
38$(MANPAGE): swayaway.1.scd
39 $(SCODOC) < $< > $@
40
41man: $(MANPAGE)
42
43%.o: %.c swayaway.h $(GENERATED)
44 $(CC) $(CFLAGS) -c -o $@ $<
45
46ext-idle-notify-v1-client-protocol.h: $(EXT_IDLE_XML)
47 $(WAYLAND_SCANNER) client-header $< $@
48
49ext-idle-notify-v1-protocol.c: $(EXT_IDLE_XML)
50 $(WAYLAND_SCANNER) private-code $< $@
51
52install: swayaway
53 install -Dm755 swayaway $(DESTDIR)$(BINDIR)/swayaway
54
55install-man: $(MANPAGE)
56 install -Dm644 $(MANPAGE) $(DESTDIR)$(MANDIR)/man1/swayaway.1
57
58clean:
59 rm -f $(OBJS) swayaway $(GENERATED) $(MANPAGE)
60
61.PHONY: all clean install install-man man