summaryrefslogtreecommitdiffstats
path: root/Makefile
blob: e85901a10606305f00ddcc02175b454ae8800b18 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
PKG_CONFIG = pkg-config
VERSION = 0.1

# flags and incs
PKGS = wayland-client wayland-server
CFLAGS = -DVERSION=\"$(VERSION)\" -Wall
LIBS = `$(PKG_CONFIG) --libs $(PKGS)`

PREFIX = /usr/local
MANDIR = $(PREFIX)/share/man

# compiler and linker
CC = cc

# wayland-scanner is a tool which generates C headers and rigging for Wayland
# protocols, which are specified in XML. wlroots requires you to rig these up
# to your build system yourself and provide them in the include path.
WAYLAND_PROTOCOLS = `$(PKG_CONFIG) --variable=pkgdatadir wayland-protocols`
WAYLAND_SCANNER   = `$(PKG_CONFIG) --variable=wayland_scanner wayland-scanner`

all: zwp-idle-inhibit-manager-v1-protocol.o xdg-shell-client-protocol.o ext-idle-notify-v1-protocol.o waytils
waytils: waytils.o
	$(CC) -o $@ *.o $(CFLAGS) $(LIBS)
waytils.o: waytils.c
zwp-idle-inhibit-manager-v1-protocol.o: zwp-idle-inhibit-manager-v1-protocol.c zwp-idle-inhibit-manager-v1-protocol.h
xdg-shell-client-protocol.o: xdg-shell-client-protocol.c xdg-shell-client-protocol.h
ext-idle-notify-v1-protocol.o: ext-idle-notify-v1-protocol.c ext-idle-notify-v1-protocol.h

zwp-idle-inhibit-manager-v1-protocol.h:
	$(WAYLAND_SCANNER) client-header \
		$(WAYLAND_PROTOCOLS)/unstable/idle-inhibit/idle-inhibit-unstable-v1.xml $@
zwp-idle-inhibit-manager-v1-protocol.c:
	$(WAYLAND_SCANNER) private-code \
		$(WAYLAND_PROTOCOLS)/unstable/idle-inhibit/idle-inhibit-unstable-v1.xml $@

xdg-shell-client-protocol.h:
	$(WAYLAND_SCANNER) client-header \
		$(WAYLAND_PROTOCOLS)/stable/xdg-shell/xdg-shell.xml $@
xdg-shell-client-protocol.c:
	$(WAYLAND_SCANNER) private-code \
		$(WAYLAND_PROTOCOLS)/stable/xdg-shell/xdg-shell.xml $@

ext-idle-notify-v1-protocol.h:
	$(WAYLAND_SCANNER) client-header \
		$(WAYLAND_PROTOCOLS)/staging/ext-idle-notify/ext-idle-notify-v1.xml $@
ext-idle-notify-v1-protocol.c:
	$(WAYLAND_SCANNER) private-code \
		$(WAYLAND_PROTOCOLS)/staging/ext-idle-notify/ext-idle-notify-v1.xml $@

clean:
	rm -f waytils *.o *-protocol.*

install: waytils
	mkdir -p $(PREFIX)/bin
	cp -f waytils $(PREFIX)/bin
	chmod 755 $(PREFIX)/bin/waytils
	mkdir -p $(MANDIR)/man1
	cp -f waytils.1 $(MANDIR)/man1
	chmod 644 $(MANDIR)/man1/waytils.1

uninstall: waytils
	rm -f $(PREFIX)/bin/waytils $(MANDIR)/man1/waytils.1