Files
tsukasa 01a1dbec8e init
2026-07-12 01:07:23 +08:00

100 lines
3.7 KiB
Makefile

.POSIX:
.SUFFIXES:
include config.mk
DWLCFLAGS = `$(PKG_CONFIG) --cflags $(PKGS)` $(WLR_INCS) \
-I. -Iinclude -Isrc -Iparser -DWLR_USE_UNSTABLE -D_POSIX_C_SOURCE=200809L -DVERSION=\"$(VERSION)\" \
$(XWAYLAND) -g -Wall -Wextra -Wno-unused-parameter -O1 -std=c11 $(CFLAGS)
LDLIBS = `$(PKG_CONFIG) --libs $(PKGS)` $(WLR_LIBS) -lm $(LIBS)
SCANNER = `$(PKG_CONFIG) --variable=wayland_scanner wayland-scanner`
PROTOCOLS = `$(PKG_CONFIG) --variable=pkgdatadir wayland-protocols`
SMSG_CFLAGS = `$(PKG_CONFIG) --cflags wayland-client` -Wall -Wextra -Wno-unused-parameter
SMSG_LDLIBS = `$(PKG_CONFIG) --libs wayland-client`
all: swindle smsg/smsg
swindle: src/dwl.o src/util.o parser/parser.o dwl-ipc-unstable-v2-protocol.o src/wlr_ext_workspace_v1.o ext-workspace-v1-protocol.o
$(CC) $^ $(DWLCFLAGS) $(LDFLAGS) $(LDLIBS) -o $@
src/dwl.o: src/swindle.c include/client.h config.h include/dwl-ipc.h dwl-ipc-unstable-v2-protocol.h \
include/ext-workspace.h src/wlr_ext_workspace_v1.h ext-workspace-v1-protocol.h \
cursor-shape-v1-protocol.h pointer-constraints-unstable-v1-protocol.h \
wlr-layer-shell-unstable-v1-protocol.h \
wlr-output-power-management-unstable-v1-protocol.h xdg-shell-protocol.h \
parser/parser.h
$(CC) $(DWLCFLAGS) -o $@ -c $<
src/util.o: src/util.c src/util.h
$(CC) $(DWLCFLAGS) -o $@ -c $<
src/wlr_ext_workspace_v1.o: src/wlr_ext_workspace_v1.c src/wlr_ext_workspace_v1.h ext-workspace-v1-protocol.h
$(CC) $(DWLCFLAGS) -o $@ -c $<
parser/parser.o: parser/parser.c parser/parser.h
$(CC) $(DWLCFLAGS) -o $@ -c $<
dwl-ipc-unstable-v2-protocol.o: dwl-ipc-unstable-v2-protocol.c
ext-workspace-v1-protocol.o: ext-workspace-v1-protocol.c
# protocol headers and glue
cursor-shape-v1-protocol.h:
$(SCANNER) enum-header $(PROTOCOLS)/staging/cursor-shape/cursor-shape-v1.xml $@
pointer-constraints-unstable-v1-protocol.h:
$(SCANNER) enum-header $(PROTOCOLS)/unstable/pointer-constraints/pointer-constraints-unstable-v1.xml $@
wlr-layer-shell-unstable-v1-protocol.h:
$(SCANNER) enum-header protocols/wlr-layer-shell-unstable-v1.xml $@
wlr-output-power-management-unstable-v1-protocol.h:
$(SCANNER) server-header protocols/wlr-output-power-management-unstable-v1.xml $@
xdg-shell-protocol.h:
$(SCANNER) server-header $(PROTOCOLS)/stable/xdg-shell/xdg-shell.xml $@
dwl-ipc-unstable-v2-protocol.h:
$(SCANNER) server-header protocols/dwl-ipc-unstable-v2.xml $@
dwl-ipc-unstable-v2-protocol.c:
$(SCANNER) private-code protocols/dwl-ipc-unstable-v2.xml $@
# smsg
smsg/dwl-ipc-unstable-v2-protocol.h:
$(SCANNER) client-header protocols/dwl-ipc-unstable-v2.xml $@
smsg/dwl-ipc-unstable-v2-protocol.c:
$(SCANNER) private-code protocols/dwl-ipc-unstable-v2.xml $@
smsg/dwl-ipc-unstable-v2-protocol.o: smsg/dwl-ipc-unstable-v2-protocol.c
$(CC) $(SMSG_CFLAGS) -o $@ -c $<
smsg/smsg.o: smsg/smsg.c smsg/dwl-ipc-unstable-v2-protocol.h
$(CC) $(SMSG_CFLAGS) -o $@ -c $<
smsg/smsg: smsg/smsg.o smsg/dwl-ipc-unstable-v2-protocol.o
$(CC) $^ $(SMSG_CFLAGS) $(SMSG_LDLIBS) -o $@
ext-workspace-v1-protocol.h:
$(SCANNER) server-header protocols/ext-workspace-v1.xml $@
ext-workspace-v1-protocol.c:
$(SCANNER) private-code protocols/ext-workspace-v1.xml $@
clean:
rm -f swindle smsg/smsg src/*.o parser/*.o smsg/*.o smsg/*-protocol.h smsg/*-protocol.c *.o *-protocol.h *-protocol.c
install: swindle smsg/smsg
mkdir -p $(DESTDIR)$(PREFIX)/bin
cp -f swindle $(DESTDIR)$(PREFIX)/bin
chmod 755 $(DESTDIR)$(PREFIX)/bin/swindle
cp -f smsg/smsg $(DESTDIR)$(PREFIX)/bin
chmod 755 $(DESTDIR)$(PREFIX)/bin/smsg
mkdir -p $(DESTDIR)/etc/swindle
cp -r example/* $(DESTDIR)/etc/swindle
uninstall:
rm -f $(DESTDIR)$(PREFIX)/bin/swindle
rm -f $(DESTDIR)$(PREFIX)/bin/smsg
rm -rf $(DESTDIR)/etc/swindle
.SUFFIXES: .c .o
.c.o:
$(CC) $(DWLCFLAGS) -o $@ -c $<