SCANNER := wayland-scanner PREFIX=${out} BINDIR=$(PREFIX)/bin DATADIR=$(PREFIX)/share MODULEDIR=$(DATADIR)/guile/3.0 MANDIR=$(DATADIR)/man CFLAGS=-g -Wall -Werror -Wextra -Wpedantic -Wno-unused-parameter $\ -Wno-overlength-strings -Wformat-security -Wformat -Wunused-result $\ -I protocol $\ $(shell pkg-config --cflags wayland-client) $\ $(shell guile-config compile) LIBS=-lrt $\ $(shell pkg-config --libs wayland-client) $\ $(shell guile-config link) OBJ=src/riverguile.o $\ src/seat.o src/output.o $\ src/call-layout-demand-handler.o $\ src/call-user-command-handler.o $\ src/call-idle-handler.o $\ src/call-exit-handler.o $\ src/call-new-output-handler.o $\ src/load-script.o $\ protocol/river-layout-v3.o $\ protocol/ext-idle-notify-v1.o $\ protocol/river-control-unstable-v1.o $\ protocol/river-status-unstable-v1.o GEN=protocol/river-layout-v3.c protocol/river-layout-v3.h $\ protocol/ext-idle-notify-v1.c protocol/ext-idle-notify-v1.h $\ protocol/river-control-unstable-v1.c protocol/river-control-unstable-v1.h $\ protocol/river-status-unstable-v1.c protocol/river-status-unstable-v1.h all: riverguile riverguile: $(OBJ) $(CC) $(LDFLAGS) -g -o $@ $(OBJ) $(LIBS) $(OBJ): $(GEN) %.c: %.xml $(SCANNER) private-code < $< > $@ %.h: %.xml $(SCANNER) client-header < $< > $@ install: riverguile install -D riverguile $(DESTDIR)$(BINDIR)/riverguile install -m 644 -D doc/riverguile.1 $(DESTDIR)$(MANDIR)/man1/riverguile.1 install -m 644 -D module/riverguile.scm $(DESTDIR)$(MODULEDIR)/riverguile.scm uninstall: $(RM) $(DESTDIR)$(BINDIR)/riverguile $(RM) $(DESTDIR)$(MANDIR)/man1/riverguile.1 $(RM) $(DESTDIR)$(MODULEDIR)/riverguile.scm clean: $(RM) riverguile $(RM) $(GEN) $(RM) $(OBJ) $(RM) $(IMG) .PHONY: clean install uninstall all