[hackers] [svkbd][PATCH] create layout-dependent object files

From: Max Schillinger <maxschillinger_AT_web.de>
Date: Thu, 30 Sep 2021 21:36:53 +0200

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).
---
 Makefile | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/Makefile b/Makefile
index 3478218..f9e7a38 100644
--- a/Makefile
+++ b/Makefile
_AT_@ -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}
_AT_@ -24,7 +24,8 @@ options:
 config.h:
 	cp config.def.h $_AT_
-svkbd.o: config.h layout.${LAYOUT}.h
+svkbd-${LAYOUT}.o: config.h layout.${LAYOUT}.h
+	${CC} ${SVKBD_CFLAGS} ${SVKBD_CPPFLAGS} -c svkbd.c -o $_AT_
 .c.o:
 	${CC} ${SVKBD_CFLAGS} ${SVKBD_CPPFLAGS} -c $<
_AT_@ -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}"
--
2.25.1
Received on Thu Sep 30 2021 - 21:36:53 CEST

This archive was generated by hypermail 2.3.0 : Thu Sep 30 2021 - 22:12:32 CEST