On Thu, Sep 30, 2021 at 09:36:53PM +0200, Max Schillinger wrote: > 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 > @@ -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}" > -- > 2.25.1 > >
Hi Max, Pushed, thank you! -- Kind regards, Hiltjo