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
> _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
> 
> 
Hi Max,
Pushed, thank you!
-- 
Kind regards,
Hiltjo
Received on Fri Oct 01 2021 - 12:35:10 CEST