#!/usr/bin/make -f # This file is part of wl-overlay: show overlays with images and text in Wayland # Copyright © 2022 Midgard # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . SHELL = /bin/sh # Choose a dedicated build directory as ‘make clean’ will remove it entirely BUILD = build $(shell mkdir -p $(BUILD)) # Convenience targets .PHONY: all all: $(BUILD)/wl-overlay .PHONY: clean clean: rm -rf $(BUILD) wlr-layer-shell-protocol.h # Installation DESTDIR ?= PREFIX ?= /usr/local BINDIR ?= $(DESTDIR)$(PREFIX)/bin .PHONY: install install: $(BUILD)/wl-overlay install -D -t "$(BINDIR)" "$^" # Dependencies CFLAGS += -Wall CFLAGS += $(shell pkg-config --cflags pangocairo) LDLIBS += $(shell pkg-config --libs pangocairo) CFLAGS += $(shell pkg-config --cflags cairo) LDLIBS += $(shell pkg-config --libs cairo) CFLAGS += $(shell pkg-config --cflags wayland-client) LDLIBS += $(shell pkg-config --libs wayland-client) LDLIBS += -lrt # Generated C files wlr-layer-shell-protocol.h: wlr-layer-shell-unstable-v1.xml wayland-scanner client-header < "$^" > "$@" $(BUILD)/wlr-layer-shell-protocol.c: wlr-layer-shell-unstable-v1.xml wayland-scanner private-code < "$^" > "$@" $(BUILD)/xdg-shell-protocol.c: /usr/share/wayland-protocols/stable/xdg-shell/xdg-shell.xml wayland-scanner private-code < "$^" > "$@" # Objects SRCS = $(wildcard *.c) GEN_SRCS = $(BUILD)/wlr-layer-shell-protocol.c $(BUILD)/xdg-shell-protocol.c OBJS = $(SRCS:%.c=$(BUILD)/%.o) $(GEN_SRCS:%.c=%.o) $(BUILD)/%.o: %.c $(CC) $(CFLAGS) -c $< $(OUTPUT_OPTION) $(BUILD)/wayland.o: wayland.c wlr-layer-shell-protocol.h $(BUILD)/wl-overlay: $(OBJS)