]> Pileus Git - wmpus/blobdiff - makefile
Add new GTK and XDG Shell Interfaces
[wmpus] / makefile
index efef70137753adc8037030f86b42c1fb72ae1283..03939641bc6d182aae2385aacea91396318e856f 100644 (file)
--- a/makefile
+++ b/makefile
@@ -1,51 +1,91 @@
 # wmpus - cross platofrm window manager
 # See LICENSE file for copyright and license details.
 
-undefine CC
-
 -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)
+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)
-CC        ?= gcc
+GCC       ?= gcc
 PROG      ?= wmpus
 LDFLAGS   += -lX11 -lXinerama
 endif
 
 ifeq ($(SYS),win32)
-CC        ?= i686-pc-mingw32-gcc
+GCC       ?= i486-mingw32-gcc
 PROG      ?= wmpus.exe
-CFLAGS    += -D_MODE_T_
 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
-       $(CC) $(CFLAGS) -o $@ $+ $(LDFLAGS)
+# 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
-       $(CC) $(CFLAGS) --std=gnu99 -c -o $@ $<
+       $(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