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