]> Pileus Git - wmpus/blobdiff - makefile
Improve input handling
[wmpus] / makefile
index 20162c4c2328511596b3f3ab363aab412ed07b26..1c09ba9ad9c387db2652355eee5ed082f5ddae5c 100644 (file)
--- a/makefile
+++ b/makefile
@@ -3,13 +3,41 @@
 
 -include config.mk
 
-VERSION   ?= 0.1-p0
+# Common configuration
+VERSION   ?= 0.1-rc1
 WM        ?= wmii
 SYS       ?= x11
 CFLAGS    ?= -g -Wall
 PREFIX    ?= /usr/local
 MANPREFIX ?= ${PREFIX}/share/man
 
+# System specific configuration
+ifeq ($(SYS),xwl)
+GCC       ?= gcc
+PROG      ?= wmpus
+LDFLAGS   += -lwayland-client -lwayland-server
+
+PROTOCOL  ?= gtk-shell xdg-shell
+HEADERS   += $(addsuffix -client-protocol.h,$(PROTOCOL))
+HEADERS   += $(addsuffix -server-protocol.h,$(PROTOCOL))
+OBJECTS   += $(addsuffix -protocol.o,$(PROTOCOL))
+
+sys-xwl.o: CFLAGS  += $(shell pkg-config --cflags gtk+-3.0 libevdev)
+wmpus:     LDFLAGS += $(shell pkg-config --libs   gtk+-3.0)
+endif
+
+ifeq ($(SYS),wl)
+GCC       ?= gcc
+PROG      ?= wmpus
+LDFLAGS   += -lwayland-client -lwayland-server
+endif
+
+ifeq ($(SYS),swc)
+GCC       ?= gcc
+PROG      ?= wmpus
+LDFLAGS   += -lswc -lwayland-client -lwayland-server
+endif
+
 ifeq ($(SYS),x11)
 GCC       ?= gcc
 PROG      ?= wmpus
@@ -22,27 +50,42 @@ PROG      ?= wmpus.exe
 LDFLAGS   += -lgdi32
 endif
 
-all: $(PROG)
+# Targets
+all: $(HEADERS) $(PROG)
 
 clean:
-       rm -f wmpus *.exe *.o
+       rm -f wmpus *.exe *.o *-protocol.[ch]
 
 dist:
        tar -czf wmpus-$(VERSION).tar.gz --transform s::wmpus-$(VERSION)/: \
                README LICENSE config.mk.example makefile *.1 *.c *.h
 
 install: all
+       sed -i 's:/usr.*:$(PREFIX)/bin/wmpus:' wmpus.session
        install -m 755 -D $(PROG) $(DESTDIR)$(PREFIX)/bin/$(PROG)
        install -m 644 -D wmpus.1 $(DESTDIR)$(MANPREFIX)/man1/wmpus.1
+       install -m 755 -D wmpus.session $(DESTDIR)/etc/X11/Sessions/wmpus
+       install -m 644 -D wmpus.desktop $(DESTDIR)$(PREFIX)/share/xsessions/wmpus.desktop
 
 uninstall:
        rm -f $(DESTDIR)$(PREFIX)/bin/$(PROG)
        rm -f $(DESTDIR)$(MANPREFIX)/man1/wmpus.1
 
-$(PROG): main.o conf.o util.o sys-$(SYS).o wm-$(WM).o
+# Common Rules
+$(PROG): main.o conf.o util.o sys-$(SYS).o wm-$(WM).o $(OBJECTS)
        $(GCC) $(CFLAGS) -o $@ $+ $(LDFLAGS)
 
 %.o: %.c $(wildcard *.h) makefile
        $(GCC) $(CFLAGS) --std=gnu99 -c -o $@ $<
 
+# Wayland Rules
+%-protocol.c: %.xml
+       wayland-scanner code < $+ > $@
+
+%-server-protocol.h: %.xml
+       wayland-scanner server-header < $+ > $@
+
+%-client-protocol.h: %.xml
+       wayland-scanner client-header < $+ > $@
+
 .PHONY: all clean dist install uninstall