include config.mk NAME=wvkbd BIN=${NAME}-${LAYOUT} SRC=. MAN1 = ${NAME}.1 PKGS = wayland-client xkbcommon pangocairo WVKBD_SOURCES += $(wildcard $(SRC)/*.c) WVKBD_HEADERS += $(wildcard $(SRC)/*.h) PKG_CONFIG ?= pkg-config CFLAGS += -std=gnu99 -Wall -g -DWITH_WAYLAND_SHM -DLAYOUT=\"layout.${LAYOUT}.h\" -DKEYMAP=\"keymap.${LAYOUT}.h\" CFLAGS += $(shell $(PKG_CONFIG) --cflags $(PKGS)) LDFLAGS += $(shell $(PKG_CONFIG) --libs $(PKGS)) -lm -lutil -lrt WAYLAND_HEADERS = $(wildcard proto/*.xml) HDRS = $(WAYLAND_HEADERS:.xml=-client-protocol.h) WAYLAND_SRC = $(HDRS:.h=.c) SOURCES = $(WVKBD_SOURCES) $(WAYLAND_SRC) SCDOC=scdoc DOCS = wvkbd.1 OBJECTS = $(SOURCES:.c=.o) all: ${BIN} ${DOCS} config.h: cp config.def.h config.h proto/%-client-protocol.c: proto/%.xml wayland-scanner code < $? > $@ proto/%-client-protocol.h: proto/%.xml wayland-scanner client-header < $? > $@ $(OBJECTS): $(HDRS) $(WVKBD_HEADERS) wvkbd-${LAYOUT}: config.h $(OBJECTS) layout.${LAYOUT}.h $(CC) -o wvkbd-${LAYOUT} $(OBJECTS) $(LDFLAGS) clean: rm -f $(OBJECTS) $(HDRS) $(WAYLAND_SRC) ${BIN} ${DOCS} format: clang-format -i $(WVKBD_SOURCES) $(WVKBD_HEADERS) %: %.scd $(SCDOC) < $< > $@ install: all mkdir -p ${DESTDIR}${PREFIX}/bin cp -f ${NAME}-${LAYOUT} ${DESTDIR}${PREFIX}/bin chmod 755 ${DESTDIR}${PREFIX}/bin/${NAME}-${LAYOUT} mkdir -p "${DESTDIR}${MANPREFIX}/man1" sed "s/VERSION/${VERSION}/g" < ${MAN1} > ${DESTDIR}${MANPREFIX}/man1/${MAN1} chmod 644 ${DESTDIR}${MANPREFIX}/man1/${MAN1}