CC ?= cc PKG_CONFIG ?= pkg-config WAYLAND_SCANNER ?= wayland-scanner PREFIX ?= /usr/local BINDIR ?= $(PREFIX)/bin MANDIR ?= $(PREFIX)/share/man SCODOC ?= scdoc WAYLAND_PROTOCOLS_DIR := $(shell $(PKG_CONFIG) --variable=pagedir wayland-protocols 2>/dev/null) ifeq ($(WAYLAND_PROTOCOLS_DIR),) WAYLAND_PROTOCOLS_DIR := /usr/share/wayland-protocols endif EXT_IDLE_XML := $(firstword \ $(wildcard $(WAYLAND_PROTOCOLS_DIR)/stable/ext-idle-notify/ext-idle-notify-v1.xml) \ $(wildcard $(WAYLAND_PROTOCOLS_DIR)/staging/ext-idle-notify/ext-idle-notify-v1.xml)) ifeq ($(EXT_IDLE_XML),) $(error ext-idle-notify-v1.xml not found under $(WAYLAND_PROTOCOLS_DIR); install wayland-protocols >= 1.32) endif CFLAGS ?= -O2 -Wall -Wextra -std=c99 CFLAGS += $(shell $(PKG_CONFIG) --cflags wayland-client dbus-1) LDLIBS += $(shell $(PKG_CONFIG) --libs wayland-client dbus-1) GENERATED = ext-idle-notify-v1-client-protocol.h ext-idle-notify-v1-protocol.c MANPAGE = swayaway.1 SRCS = main.c log.c idle.c wayland.c screensaver.c logind.c \ ext-idle-notify-v1-protocol.c OBJS = $(SRCS:.c=.o) all: swayaway swayaway: $(OBJS) $(CC) $(CFLAGS) -o $@ $(OBJS) $(LDLIBS) $(MANPAGE): swayaway.1.scd $(SCODOC) < $< > $@ man: $(MANPAGE) %.o: %.c swayaway.h $(GENERATED) $(CC) $(CFLAGS) -c -o $@ $< ext-idle-notify-v1-client-protocol.h: $(EXT_IDLE_XML) $(WAYLAND_SCANNER) client-header $< $@ ext-idle-notify-v1-protocol.c: $(EXT_IDLE_XML) $(WAYLAND_SCANNER) private-code $< $@ install: swayaway install -Dm755 swayaway $(DESTDIR)$(BINDIR)/swayaway install-man: $(MANPAGE) install -Dm644 $(MANPAGE) $(DESTDIR)$(MANDIR)/man1/swayaway.1 clean: rm -f $(OBJS) swayaway $(GENERATED) $(MANPAGE) .PHONY: all clean install install-man man