aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
blob: 31c7bf4276c663033de40f645d80c87a6693182f (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
PKG_CONFIG = pkg-config
VERSION = 1.0

# 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: ext-idle-notify-v1-protocol.o config.h wiz
wiz: wiz.o
	$(CC) -o $@ *.o $(CFLAGS) $(LIBS)
wiz.o: wiz.c config.h
ext-idle-notify-v1-protocol.o: ext-idle-notify-v1-protocol.c ext-idle-notify-v1-protocol.h

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 $@

config.h:
	cp config.def.h $@

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

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

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