5 Commits

Author SHA1 Message Date
Maarten van Gompel
9fb1964f5d version bump 2026-01-22 17:33:05 +01:00
Willow Barraco
5b29d8c1a7 Makefile: do not rebuild on install
Because the directory timestamp depends on the file insise, this rule
cause a second rebuild. Let's just silently create the directory
when we require it.

Signed-off-by: Willow Barraco <contact@willowbarraco.fr>
Signed-off-by: Maarten van Gompel <proycon@anaproy.nl>
2026-01-22 17:32:10 +01:00
Maarten van Gompel
987ea03f84 Makefile: fix in make clean 2026-01-22 10:31:18 +01:00
Maarten van Gompel
0c743d9518 version bump 2026-01-22 10:27:20 +01:00
Willow Barraco
1963de0165 Improve the makefile to simplify building multiple layouts
At the moment, packaging multiple layout is a bit of a mess, because
there is no easy way to build multiple layouts binary in a row. The
clean task also drop the binary outpus. And the dependency checking is
somehow incorrect. It reuses the same config.h while building the
following layout.

To solve this, we now build config.h and %.o outputs in a builddir,
one per layout.

Signed-off-by: Willow Barraco <contact@willowbarraco.fr>
Signed-off-by: Maarten van Gompel <proycon@anaproy.nl>
2026-01-22 10:26:42 +01:00
3 changed files with 16 additions and 10 deletions

6
.gitignore vendored
View File

@@ -5,8 +5,6 @@
include/config.h
.gdb_history
*.log
wvkbd
*.1
config.h
wvkbd-mobintl
wvkbd-deskintl
build-*/*
wvkbd-*

View File

@@ -1,5 +1,7 @@
include config.mk
BUILDDIR=build-${LAYOUT}
NAME=wvkbd
BIN=${NAME}-${LAYOUT}
SRC=.
@@ -9,6 +11,7 @@ PKGS = wayland-client xkbcommon pangocairo
WVKBD_SOURCES += $(wildcard $(SRC)/*.c)
WVKBD_HEADERS += $(wildcard $(SRC)/*.h)
WVKBD_DIR_SOURCES = $(foreach src, $(WVKBD_SOURCES), $(addprefix $(BUILDDIR)/, $(src)))
PKG_CONFIG ?= pkg-config
CFLAGS += -std=gnu99 -Wall -g -DWITH_WAYLAND_SHM -DLAYOUT=\"layout.${LAYOUT}.h\" -DKEYMAP=\"keymap.${LAYOUT}.h\"
@@ -20,16 +23,21 @@ WAYLAND_HEADERS = $(wildcard proto/*.xml)
HDRS = $(WAYLAND_HEADERS:.xml=-client-protocol.h)
WAYLAND_SRC = $(HDRS:.h=.c)
SOURCES = $(WVKBD_SOURCES) $(WAYLAND_SRC)
OBJECTS = $(WVKBD_DIR_SOURCES:.c=.o) $(WAYLAND_SRC:.c=.o)
SCDOC=scdoc
DOCS = wvkbd.1
OBJECTS = $(SOURCES:.c=.o)
all: ${BIN} ${DOCS}
config.h:
cp config.${LAYOUT}.h config.h
$(BUILDDIR)/config.h:
mkdir -p $(BUILDDIR)
cp config.$(LAYOUT).h $@
$(BUILDDIR)/%.o: %.c
mkdir -p $(BUILDDIR)
$(CC) -I $(CURDIR) -I $(CURDIR)/$(BUILDDIR) -c $(CFLAGS) -o $@ $<
proto/%-client-protocol.c: proto/%.xml
wayland-scanner code < $? > $@
@@ -39,11 +47,11 @@ proto/%-client-protocol.h: proto/%.xml
$(OBJECTS): $(HDRS) $(WVKBD_HEADERS)
wvkbd-${LAYOUT}: config.h $(OBJECTS) layout.${LAYOUT}.h
wvkbd-${LAYOUT}: $(BUILDDIR)/config.h $(OBJECTS) layout.${LAYOUT}.h
$(CC) -o wvkbd-${LAYOUT} $(OBJECTS) $(LDFLAGS)
clean:
rm -f $(OBJECTS) config.h $(HDRS) $(WAYLAND_SRC) ${BIN} ${DOCS}
rm -rf "$(BUILDDIR)" wvkbd-$(LAYOUT)
format:
clang-format -i $(WVKBD_SOURCES) $(WVKBD_HEADERS)

View File

@@ -1,4 +1,4 @@
VERSION = 0.19
VERSION = 0.19.2
CFLAGS = -DVERSION=\"$(VERSION)\" -D_XOPEN_SOURCE=700
PREFIX = /usr/local
MANPREFIX = ${PREFIX}/share/man