commit 4061bacc1d235591c553bb1ba8a0d8b116a12b4b
parent 0f07238b53b15fe5c75803bee5904c8c6fc288bc
Author: Max Schillinger <maxschillinger@web.de>
Date: Thu, 30 Sep 2021 21:36:53 +0200
create layout-dependent object files
When you build svkbd with different layouts, you get one binary per
layout but all binaries are identical:
$ make LAYOUT=mobile-plain
$ make LAYOUT=mobile-simple
$ diff -s svkbd-mobile-plain svkbd-mobile-simple
Files svkbd-mobile-plain and svkbd-mobile-simple are identical
The problem is that svkbd.o from the first build is being reused in the
second build.
This commit changes the Makefile to create layout-dependent object files
like svkbd-mobile-plain.o and svkbd-mobile-simple.o (instead of a shared
svkbd.o).
Diffstat:
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/Makefile b/Makefile
@@ -9,7 +9,7 @@ include config.mk
BIN = ${NAME}-${LAYOUT}
SRC = drw.c ${NAME}.c util.c
-OBJ = ${SRC:.c=.o}
+OBJ = drw.o ${NAME}-${LAYOUT}.o util.o
MAN1 = ${NAME}.1
all: ${BIN}
@@ -24,7 +24,8 @@ options:
config.h:
cp config.def.h $@
-svkbd.o: config.h layout.${LAYOUT}.h
+svkbd-${LAYOUT}.o: config.h layout.${LAYOUT}.h
+ ${CC} ${SVKBD_CFLAGS} ${SVKBD_CPPFLAGS} -c svkbd.c -o $@
.c.o:
${CC} ${SVKBD_CFLAGS} ${SVKBD_CPPFLAGS} -c $<
@@ -35,7 +36,7 @@ ${BIN}: ${OBJ}
${CC} -o ${BIN} ${OBJ} ${SVKBD_LDFLAGS}
clean:
- rm -f ${NAME}-?? ${NAME}-??.o ${OBJ} ${BIN}
+ rm -f ${NAME}-?? ${NAME}-*.o ${OBJ} ${BIN}
dist:
rm -rf "${NAME}-${VERSION}"