Module Name: src Committed By: christos Date: Sun May 27 01:14:51 UTC 2018
Modified Files: src/external/mit/xorg: xorg-pkg-ver.mk src/sys/arch/acorn32/stand/lib: Makefile.inc src/sys/arch/hppa/spmath: Makefile.inc src/sys/arch/i386/stand/lib: Makefile.inc src/sys/arch/ia64/stand/efi/libefi: Makefile.inc src/sys/arch/m68k/fpsp: Makefile.inc src/sys/compat/common: Makefile.inc src/sys/lib/libgnuefi: Makefile.inc src/sys/lib/libkern: Makefile.inc src/sys/lib/libsa: Makefile.inc src/sys/lib/libz: Makefile.inc src/usr.bin/make: make.1 var.c src/usr.bin/make/unit-tests: varquote.exp varquote.mk Log Message: - Introduce :q modifier for make variables and make it double escape $'s so that passing variables to recursive makes with :q works as expected. - Revert :Q to work as before. - Adjust makefiles that use recursive make to use :q Discussed on tech-toolchain@ XXX: pullup 8 To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 src/external/mit/xorg/xorg-pkg-ver.mk cvs rdiff -u -r1.3 -r1.4 src/sys/arch/acorn32/stand/lib/Makefile.inc cvs rdiff -u -r1.9 -r1.10 src/sys/arch/hppa/spmath/Makefile.inc cvs rdiff -u -r1.16 -r1.17 src/sys/arch/i386/stand/lib/Makefile.inc cvs rdiff -u -r1.4 -r1.5 src/sys/arch/ia64/stand/efi/libefi/Makefile.inc cvs rdiff -u -r1.20 -r1.21 src/sys/arch/m68k/fpsp/Makefile.inc cvs rdiff -u -r1.24 -r1.25 src/sys/compat/common/Makefile.inc cvs rdiff -u -r1.4 -r1.5 src/sys/lib/libgnuefi/Makefile.inc cvs rdiff -u -r1.44 -r1.45 src/sys/lib/libkern/Makefile.inc cvs rdiff -u -r1.23 -r1.24 src/sys/lib/libsa/Makefile.inc cvs rdiff -u -r1.16 -r1.17 src/sys/lib/libz/Makefile.inc cvs rdiff -u -r1.272 -r1.273 src/usr.bin/make/make.1 cvs rdiff -u -r1.219 -r1.220 src/usr.bin/make/var.c cvs rdiff -u -r1.1 -r1.2 src/usr.bin/make/unit-tests/varquote.exp \ src/usr.bin/make/unit-tests/varquote.mk Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/external/mit/xorg/xorg-pkg-ver.mk diff -u src/external/mit/xorg/xorg-pkg-ver.mk:1.8 src/external/mit/xorg/xorg-pkg-ver.mk:1.9 --- src/external/mit/xorg/xorg-pkg-ver.mk:1.8 Sun Aug 9 06:09:07 2015 +++ src/external/mit/xorg/xorg-pkg-ver.mk Sat May 26 21:14:51 2018 @@ -1,4 +1,4 @@ -# $NetBSD: xorg-pkg-ver.mk,v 1.8 2015/08/09 10:09:07 aymeric Exp $ +# $NetBSD: xorg-pkg-ver.mk,v 1.9 2018/05/27 01:14:51 christos Exp $ # when including this make sure PROG is set so that $X11SRCDIR.$PROG # is a valid setting. set XORG_PKG_VER_PROG if PROG is wrong. @@ -19,7 +19,7 @@ XORG_PKG_PACKAGE_VERSION!= \ }' ${X11SRCDIR.${XORG_PKG_VER_PROG}}/configure .if !empty(XORG_PKG_PACKAGE_VERSION) CPPFLAGS+= -DPACKAGE_VERSION=\"${XORG_PKG_PACKAGE_VERSION:Q}\" -CPPFLAGS+= -DVERSION=\"${XORG_PKG_PACKAGE_VERSION:Q}\" +CPPFLAGS+= -DVERSION=\"${XORG_PKG_PACKAGE_VERSION:q}\" .endif XORG_PKG_PACKAGE_STRING!= \ Index: src/sys/arch/acorn32/stand/lib/Makefile.inc diff -u src/sys/arch/acorn32/stand/lib/Makefile.inc:1.3 src/sys/arch/acorn32/stand/lib/Makefile.inc:1.4 --- src/sys/arch/acorn32/stand/lib/Makefile.inc:1.3 Tue Mar 22 04:25:22 2016 +++ src/sys/arch/acorn32/stand/lib/Makefile.inc Sat May 26 21:14:50 2018 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile.inc,v 1.3 2016/03/22 08:25:22 mrg Exp $ +# $NetBSD: Makefile.inc,v 1.4 2018/05/27 01:14:50 christos Exp $ # # Configuration variables (default values are below): # @@ -22,12 +22,12 @@ RISCOSLIB= ${RISCOSDST}/libriscos.a RISCOSMAKE= \ cd ${RISCOSDIR} && MAKEOBJDIRPREFIX= && unset MAKEOBJDIRPREFIX && \ MAKEOBJDIR=${RISCOSDST} ${MAKE} \ - CC=${CC:Q} CFLAGS=${CFLAGS:Q} \ - AS=${AS:Q} AFLAGS=${AFLAGS:Q} \ - LD=${LD:Q} STRIP=${STRIP:Q} \ - MACHINE=${MACHINE} MACHINE_ARCH=${MACHINE_ARCH:Q} \ - RISCOSCPPFLAGS=${CPPFLAGS:S@^-I.@-I../../.@g:Q} \ - RISCOSMISCCPPFLAGS=${RISCOSMISCCPPFLAGS:Q} \ + CC=${CC:q} CFLAGS=${CFLAGS:q} \ + AS=${AS:q} AFLAGS=${AFLAGS:q} \ + LD=${LD:q} STRIP=${STRIP:q} \ + MACHINE=${MACHINE} MACHINE_ARCH=${MACHINE_ARCH:q} \ + RISCOSCPPFLAGS=${CPPFLAGS:S@^-I.@-I../../.@g:q} \ + RISCOSMISCCPPFLAGS=${RISCOSMISCCPPFLAGS:q} \ ${RISCOSMISCMAKEFLAGS} ${RISCOSLIB}: .NOTMAIN .MAKE __always_make_riscoslib Index: src/sys/arch/hppa/spmath/Makefile.inc diff -u src/sys/arch/hppa/spmath/Makefile.inc:1.9 src/sys/arch/hppa/spmath/Makefile.inc:1.10 --- src/sys/arch/hppa/spmath/Makefile.inc:1.9 Tue Mar 22 04:25:22 2016 +++ src/sys/arch/hppa/spmath/Makefile.inc Sat May 26 21:14:50 2018 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile.inc,v 1.9 2016/03/22 08:25:22 mrg Exp $ +# $NetBSD: Makefile.inc,v 1.10 2018/05/27 01:14:50 christos Exp $ # $OpenBSD: Makefile.inc,v 1.4 2001/03/29 03:58:17 mickey Exp $ # @@ -15,13 +15,13 @@ SPMATH_PROF= ${SPMATHDST}/spmath.po SPMATHMAKE= \ cd ${SPMATHDIR} && MAKEOBJDIRPREFIX= && unset MAKEOBJDIRPREFIX && \ MAKEOBJDIR=${SPMATHDST} ${MAKE} \ - CC=${CC:Q} CFLAGS=${CFLAGS:Q} \ - SPMATHCPPFLAGS=${CPPFLAGS:S@^-I.@-I. -I../../.@g:Q} \ - AS=${AS:Q} AFLAGS=${AFLAGS:Q} \ - LD=${LD:Q} STRIP=${STRIP:Q} \ - CPP=${CPP:Q} STRIP=${STRIP:Q} AR=${AR:Q} \ - NM=${NM:Q} LORDER=${LORDER:Q} \ - XMACHINE=${MACHINE:Q} XMACHINE_ARCH=${MACHINE_ARCH:Q} + CC=${CC:q} CFLAGS=${CFLAGS:q} \ + SPMATHCPPFLAGS=${CPPFLAGS:S@^-I.@-I. -I../../.@g:q} \ + AS=${AS:q} AFLAGS=${AFLAGS:q} \ + LD=${LD:q} STRIP=${STRIP:q} \ + CPP=${CPP:q} STRIP=${STRIP:q} AR=${AR:q} \ + NM=${NM:q} LORDER=${LORDER:q} \ + XMACHINE=${MACHINE:q} XMACHINE_ARCH=${MACHINE_ARCH:q} ${SPMATH}: .NOTMAIN .MAKE __always_make_spmath @echo making sure the spmath library is up to date... Index: src/sys/arch/i386/stand/lib/Makefile.inc diff -u src/sys/arch/i386/stand/lib/Makefile.inc:1.16 src/sys/arch/i386/stand/lib/Makefile.inc:1.17 --- src/sys/arch/i386/stand/lib/Makefile.inc:1.16 Tue Mar 22 04:25:22 2016 +++ src/sys/arch/i386/stand/lib/Makefile.inc Sat May 26 21:14:50 2018 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile.inc,v 1.16 2016/03/22 08:25:22 mrg Exp $ +# $NetBSD: Makefile.inc,v 1.17 2018/05/27 01:14:50 christos Exp $ # # Configuration variables (default values are below): # @@ -24,12 +24,12 @@ CWARNFLAGS.clang+= -Wno-tautological-com I386MAKE= \ cd ${I386DIR} && MAKEOBJDIRPREFIX= && unset MAKEOBJDIRPREFIX && \ MAKEOBJDIR=${I386DST} ${MAKE} \ - CC=${CC:Q} CFLAGS=${CFLAGS:Q} \ - AS=${AS:Q} AFLAGS=${AFLAGS:Q} \ - LD=${LD:Q} STRIP=${STRIP:Q} \ - MACHINE=${MACHINE} MACHINE_ARCH=${MACHINE_ARCH:Q} \ - I386CPPFLAGS=${CPPFLAGS:S@^-I.@-I../../.@g:Q} \ - I386MISCCPPFLAGS=${I386MISCCPPFLAGS:Q} \ + CC=${CC:q} CFLAGS=${CFLAGS:q} \ + AS=${AS:q} AFLAGS=${AFLAGS:q} \ + LD=${LD:q} STRIP=${STRIP:q} \ + MACHINE=${MACHINE} MACHINE_ARCH=${MACHINE_ARCH:q} \ + I386CPPFLAGS=${CPPFLAGS:S@^-I.@-I../../.@g:q} \ + I386MISCCPPFLAGS=${I386MISCCPPFLAGS:q} \ ${I386MISCMAKEFLAGS} ${I386LIB}: .NOTMAIN __always_make_i386lib Index: src/sys/arch/ia64/stand/efi/libefi/Makefile.inc diff -u src/sys/arch/ia64/stand/efi/libefi/Makefile.inc:1.4 src/sys/arch/ia64/stand/efi/libefi/Makefile.inc:1.5 --- src/sys/arch/ia64/stand/efi/libefi/Makefile.inc:1.4 Tue Mar 22 04:25:22 2016 +++ src/sys/arch/ia64/stand/efi/libefi/Makefile.inc Sat May 26 21:14:50 2018 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile.inc,v 1.4 2016/03/22 08:25:22 mrg Exp $ +# $NetBSD: Makefile.inc,v 1.5 2018/05/27 01:14:50 christos Exp $ # # Configuration variables (default values are below): # @@ -22,12 +22,12 @@ EFILIB= ${EFIDST}/libefi.a EFIMAKE= \ cd ${EFIDIR} && MAKEOBJDIRPREFIX= && unset MAKEOBJDIRPREFIX && \ MAKEOBJDIR=${EFIDST} ${MAKE} \ - CC=${CC:Q} CFLAGS=${CFLAGS:Q} \ - AS=${AS:Q} AFLAGS=${AFLAGS:Q} \ - LD=${LD:Q} STRIP=${STRIP:Q} \ - MACHINE=${MACHINE} MACHINE_ARCH=${MACHINE_ARCH:Q} \ - EFICPPFLAGS=${CPPFLAGS:S@^-I.@-I../../.@g:Q} \ - EFIMISCCPPFLAGS=${EFIMISCCPPFLAGS:Q} \ + CC=${CC:q} CFLAGS=${CFLAGS:q} \ + AS=${AS:q} AFLAGS=${AFLAGS:q} \ + LD=${LD:q} STRIP=${STRIP:q} \ + MACHINE=${MACHINE} MACHINE_ARCH=${MACHINE_ARCH:q} \ + EFICPPFLAGS=${CPPFLAGS:S@^-I.@-I../../.@g:q} \ + EFIMISCCPPFLAGS=${EFIMISCCPPFLAGS:q} \ ${EFIMISCMAKEFLAGS} ${EFILIB}: .NOTMAIN __always_make_efilib Index: src/sys/arch/m68k/fpsp/Makefile.inc diff -u src/sys/arch/m68k/fpsp/Makefile.inc:1.20 src/sys/arch/m68k/fpsp/Makefile.inc:1.21 --- src/sys/arch/m68k/fpsp/Makefile.inc:1.20 Tue Mar 22 04:25:22 2016 +++ src/sys/arch/m68k/fpsp/Makefile.inc Sat May 26 21:14:50 2018 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile.inc,v 1.20 2016/03/22 08:25:22 mrg Exp $ +# $NetBSD: Makefile.inc,v 1.21 2018/05/27 01:14:50 christos Exp $ # # Configuration variables (default values are below): # @@ -18,27 +18,27 @@ FPSPDST?= ${.OBJDIR}/lib/fpsp FPSPDOTDIR?= ../../. -FPSPDIR= ${S:S@^.@${FPSPDOTDIR}@:Q}/arch/m68k/fpsp +FPSPDIR= ${S:S@^.@${FPSPDOTDIR}@:q}/arch/m68k/fpsp FPSPOBJ= ${FPSPDST}/fpsp.o HAS_FPSP!= grep '^\#define FPSP 1$$' opt_fpsp.h || echo .if !empty(HAS_FPSP) FPSP= ${FPSPOBJ} .endif -# CC=${CC:Q} CFLAGS=${CFLAGS:Q} \ -# AS=${AS:Q} AFLAGS=${AFLAGS:Q} \ -# LD=${LD:Q} STRIP=${STRIP:Q} \ +# CC=${CC:q} CFLAGS=${CFLAGS:q} \ +# AS=${AS:q} AFLAGS=${AFLAGS:q} \ +# LD=${LD:q} STRIP=${STRIP:q} \ FPSPMAKE= \ - cd ${FPSPDST} && ${MAKE} -f ${FPSPDIR:Q}/Makefile \ - FPSPDIR=${FPSPDIR:Q} \ - CC=${CC:Q} CFLAGS=${CFLAGS:Q} \ - LD=${LD:Q} STRIP=${STRIP:Q} \ + cd ${FPSPDST} && ${MAKE} -f ${FPSPDIR:q}/Makefile \ + FPSPDIR=${FPSPDIR:q} \ + CC=${CC:q} CFLAGS=${CFLAGS:q} \ + LD=${LD:q} STRIP=${STRIP:q} \ MACHINE=${MACHINE} \ - MACHINE_ARCH=${MACHINE_ARCH:Q} \ - FPSPCPPFLAGS=${CPPFLAGS:S@^-I.@-I${FPSPDOTDIR}@g:Q} \ - FPSPMISCCPPFLAGS=${FPSPMISCCPPFLAGS:Q} \ - FPSPDIR=${FPSPDIR:Q} \ + MACHINE_ARCH=${MACHINE_ARCH:q} \ + FPSPCPPFLAGS=${CPPFLAGS:S@^-I.@-I${FPSPDOTDIR}@g:q} \ + FPSPMISCCPPFLAGS=${FPSPMISCCPPFLAGS:q} \ + FPSPDIR=${FPSPDIR:q} \ ${FPSPMISCMAKEFLAGS} ${FPSP}: .NOTMAIN __always_make_fpsp Index: src/sys/compat/common/Makefile.inc diff -u src/sys/compat/common/Makefile.inc:1.24 src/sys/compat/common/Makefile.inc:1.25 --- src/sys/compat/common/Makefile.inc:1.24 Thu Apr 12 16:36:59 2018 +++ src/sys/compat/common/Makefile.inc Sat May 26 21:14:50 2018 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile.inc,v 1.24 2018/04/12 20:36:59 christos Exp $ +# $NetBSD: Makefile.inc,v 1.25 2018/05/27 01:14:50 christos Exp $ # # Configuration variables (default values are below): # @@ -37,19 +37,19 @@ LIBCOMPATLNBN= llib-lcompat.ln COMPATLIBLN= ${COMPATDST}/${LIBCOMPATLNBN} COMPATMAKE= \ - cd ${COMPATDST} && ${MAKE} -f ${COMPATDIR:Q}/Makefile \ - COMPATDIR=${COMPATDIR:Q} \ - CC=${CC:Q} CFLAGS=${CFLAGS:Q} \ - AS=${AS:Q} AFLAGS=${AFLAGS:Q} \ - AR=${AR:Q} NM=${NM:Q} \ - LORDER=${LORDER:Q} \ - TSORT=${TSORT:Q} \ - RANLIB=${RANLIB:Q} \ - LD=${LD:Q} LDFLAGS=${LDFLAGS:Q} \ - STRIP=${STRIP:Q} \ - MACHINE=${MACHINE} MACHINE_ARCH=${MACHINE_ARCH:Q} \ - COMPATCPPFLAGS=${CPPFLAGS:S@^-I.@-I${COMPATDOTDIR}@g:Q} \ - LINTFLAGS=${KERNLINTFLAGS:Q} \ + cd ${COMPATDST} && ${MAKE} -f ${COMPATDIR:q}/Makefile \ + COMPATDIR=${COMPATDIR:q} \ + CC=${CC:q} CFLAGS=${CFLAGS:q} \ + AS=${AS:q} AFLAGS=${AFLAGS:q} \ + AR=${AR:q} NM=${NM:q} \ + LORDER=${LORDER:q} \ + TSORT=${TSORT:q} \ + RANLIB=${RANLIB:q} \ + LD=${LD:q} LDFLAGS=${LDFLAGS:q} \ + STRIP=${STRIP:q} \ + MACHINE=${MACHINE} MACHINE_ARCH=${MACHINE_ARCH:q} \ + COMPATCPPFLAGS=${CPPFLAGS:S@^-I.@-I${COMPATDOTDIR}@g:q} \ + LINTFLAGS=${KERNLINTFLAGS:q} \ ${COMPATMISCMAKEFLAGS} ${COMPATLIB}: .NOTMAIN .MAKE __always_make_compatlib Index: src/sys/lib/libgnuefi/Makefile.inc diff -u src/sys/lib/libgnuefi/Makefile.inc:1.4 src/sys/lib/libgnuefi/Makefile.inc:1.5 --- src/sys/lib/libgnuefi/Makefile.inc:1.4 Tue Jan 24 06:09:14 2017 +++ src/sys/lib/libgnuefi/Makefile.inc Sat May 26 21:14:50 2018 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile.inc,v 1.4 2017/01/24 11:09:14 nonaka Exp $ +# $NetBSD: Makefile.inc,v 1.5 2018/05/27 01:14:50 christos Exp $ # # Configuration variables (default values are below): # @@ -23,7 +23,7 @@ GNUEFIDOTDIR?= ../../. CWARNFLAGS.clang+= -Wno-format-extra-args -GNUEFIDIR= ${S:S@^.@${GNUEFIDOTDIR}@:Q}/lib/libgnuefi +GNUEFIDIR= ${S:S@^.@${GNUEFIDOTDIR}@:q}/lib/libgnuefi .if (${GNUEFI_AS} == "obj") GNUEFILIB= ${GNUEFIDST}/libgnuefi.o GNUEFILIB_PROF= ${GNUEFIDST}/libgnuefi.po @@ -35,19 +35,19 @@ ZLIBSRCDIR:= ${.PARSEDIR}/../../../commo GNUEFIMISCCPPFLAGS+=-I${ZLIBSRCDIR} GNUEFIMAKE= \ - cd ${GNUEFIDST} && ${MAKE} -f ${GNUEFIDIR:Q}/Makefile \ - GNUEFIDIR=${GNUEFIDIR:Q} \ - CC=${CC:Q} CFLAGS=${CFLAGS:Q} CPUFLAGS= \ - AS=${AS:Q} AFLAGS=${AFLAGS:Q} \ - LORDER=${LORDER:Q} \ - TSORT=${TSORT:Q} \ - LD=${LD:Q} STRIP=${STRIP:Q} \ - AR=${AR:Q} NM=${NM:Q} \ - RANLIB=${RANLIB:Q} SIZE=${SIZE:Q} \ - MACHINE=${MACHINE} MACHINE_ARCH=${MACHINE_ARCH:Q} \ - GNUEFICPPFLAGS=${CPPFLAGS:S@^-I.@-I${GNUEFIDOTDIR}@g:Q} \ - GNUEFIMISCCPPFLAGS=${GNUEFIMISCCPPFLAGS:Q} \ - LIBGNUEFI_ARCH=${LIBGNUEFI_ARCH:Q} \ + cd ${GNUEFIDST} && ${MAKE} -f ${GNUEFIDIR:q}/Makefile \ + GNUEFIDIR=${GNUEFIDIR:q} \ + CC=${CC:q} CFLAGS=${CFLAGS:q} CPUFLAGS= \ + AS=${AS:q} AFLAGS=${AFLAGS:q} \ + LORDER=${LORDER:q} \ + TSORT=${TSORT:q} \ + LD=${LD:q} STRIP=${STRIP:q} \ + AR=${AR:q} NM=${NM:q} \ + RANLIB=${RANLIB:q} SIZE=${SIZE:q} \ + MACHINE=${MACHINE} MACHINE_ARCH=${MACHINE_ARCH:q} \ + GNUEFICPPFLAGS=${CPPFLAGS:S@^-I.@-I${GNUEFIDOTDIR}@g:q} \ + GNUEFIMISCCPPFLAGS=${GNUEFIMISCCPPFLAGS:q} \ + LIBGNUEFI_ARCH=${LIBGNUEFI_ARCH:q} \ ${GNUEFIMISCMAKEFLAGS} ${GNUEFILIB}: .NOTMAIN .MAKE __always_make_gnuefilib Index: src/sys/lib/libkern/Makefile.inc diff -u src/sys/lib/libkern/Makefile.inc:1.44 src/sys/lib/libkern/Makefile.inc:1.45 --- src/sys/lib/libkern/Makefile.inc:1.44 Wed Oct 28 20:18:55 2015 +++ src/sys/lib/libkern/Makefile.inc Sat May 26 21:14:50 2018 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile.inc,v 1.44 2015/10/29 00:18:55 mrg Exp $ +# $NetBSD: Makefile.inc,v 1.45 2018/05/27 01:14:50 christos Exp $ # # Configuration variables (default values are below): # @@ -21,7 +21,7 @@ KERNDST?= ${.OBJDIR}/lib/kern KERN_AS?= library KERNDOTDIR?= ../../. -KERNDIR= ${S:S@^.@${KERNDOTDIR}@:Q}/lib/libkern +KERNDIR= ${S:S@^.@${KERNDOTDIR}@:q}/lib/libkern .if (${KERN_AS} == "obj") KERNLIB= ${KERNDST}/libkern.o KERNLIB_PROF= ${KERNDST}/libkern.po @@ -34,21 +34,21 @@ LIBKERNLNBN= llib-lkern.ln KERNLIBLN= ${KERNDST}/${LIBKERNLNBN} KERNMAKE= \ - cd ${KERNDST} && ${MAKE} -f ${KERNDIR:Q}/Makefile \ - KERNDIR=${KERNDIR:Q} \ - CC=${CC:Q} CFLAGS=${CFLAGS:Q} CPUFLAGS= \ - AS=${AS:Q} AFLAGS=${AFLAGS:Q} \ - LORDER=${LORDER:Q} \ - TSORT=${TSORT:Q} \ - LD=${LD:Q} STRIP=${STRIP:Q} \ - AR=${AR:Q} NM=${NM:Q} \ - RANLIB=${RANLIB:Q} SIZE=${SIZE:Q} \ - MACHINE=${MACHINE} MACHINE_ARCH=${MACHINE_ARCH:Q} \ - KERNCPPFLAGS=${CPPFLAGS:S@^-I.@-I${KERNDOTDIR}@g:Q} \ - KERNMISCCPPFLAGS=${KERNMISCCPPFLAGS:Q} \ - LINTFLAGS=${KERNLINTFLAGS:Q} \ - LIBKERN_ARCH=${LIBKERN_ARCH:Q} \ - COMMON_MACHINE_ARCH=${COMMON_MACHINE_ARCH:Q} \ + cd ${KERNDST} && ${MAKE} -f ${KERNDIR:q}/Makefile \ + KERNDIR=${KERNDIR:q} \ + CC=${CC:q} CFLAGS=${CFLAGS:q} CPUFLAGS= \ + AS=${AS:q} AFLAGS=${AFLAGS:q} \ + LORDER=${LORDER:q} \ + TSORT=${TSORT:q} \ + LD=${LD:q} STRIP=${STRIP:q} \ + AR=${AR:q} NM=${NM:q} \ + RANLIB=${RANLIB:q} SIZE=${SIZE:q} \ + MACHINE=${MACHINE} MACHINE_ARCH=${MACHINE_ARCH:q} \ + KERNCPPFLAGS=${CPPFLAGS:S@^-I.@-I${KERNDOTDIR}@g:q} \ + KERNMISCCPPFLAGS=${KERNMISCCPPFLAGS:q} \ + LINTFLAGS=${KERNLINTFLAGS:q} \ + LIBKERN_ARCH=${LIBKERN_ARCH:q} \ + COMMON_MACHINE_ARCH=${COMMON_MACHINE_ARCH:q} \ ${KERNMISCMAKEFLAGS} ${KERNLIB}: .NOTMAIN .MAKE __always_make_kernlib Index: src/sys/lib/libsa/Makefile.inc diff -u src/sys/lib/libsa/Makefile.inc:1.23 src/sys/lib/libsa/Makefile.inc:1.24 --- src/sys/lib/libsa/Makefile.inc:1.23 Tue Mar 22 04:25:23 2016 +++ src/sys/lib/libsa/Makefile.inc Sat May 26 21:14:51 2018 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile.inc,v 1.23 2016/03/22 08:25:23 mrg Exp $ +# $NetBSD: Makefile.inc,v 1.24 2018/05/27 01:14:51 christos Exp $ # # Configuration variables (default values are below): # @@ -23,7 +23,7 @@ SADOTDIR?= ../../. CWARNFLAGS.clang+= -Wno-format-extra-args -SADIR= ${S:S@^.@${SADOTDIR}@:Q}/lib/libsa +SADIR= ${S:S@^.@${SADOTDIR}@:q}/lib/libsa .if (${SA_AS} == "obj") SALIB= ${SADST}/libsa.o SALIB_PROF= ${SADST}/libsa.po @@ -35,18 +35,18 @@ ZLIBSRCDIR:= ${.PARSEDIR}/../../../commo SAMISCCPPFLAGS+=-I${ZLIBSRCDIR} SAMAKE= \ - cd ${SADST} && ${MAKE} -f ${SADIR:Q}/Makefile \ - SADIR=${SADIR:Q} \ - CC=${CC:Q} CFLAGS=${CFLAGS:Q} CPUFLAGS= \ - AS=${AS:Q} AFLAGS=${AFLAGS:Q} \ - LORDER=${LORDER:Q} \ - TSORT=${TSORT:Q} \ - LD=${LD:Q} STRIP=${STRIP:Q} \ - AR=${AR:Q} NM=${NM:Q} \ - RANLIB=${RANLIB:Q} SIZE=${SIZE:Q} \ - MACHINE=${MACHINE} MACHINE_ARCH=${MACHINE_ARCH:Q} \ - SACPPFLAGS=${CPPFLAGS:S@^-I.@-I${SADOTDIR}@g:Q} \ - SAMISCCPPFLAGS=${SAMISCCPPFLAGS:Q} \ + cd ${SADST} && ${MAKE} -f ${SADIR:q}/Makefile \ + SADIR=${SADIR:q} \ + CC=${CC:q} CFLAGS=${CFLAGS:q} CPUFLAGS= \ + AS=${AS:q} AFLAGS=${AFLAGS:q} \ + LORDER=${LORDER:q} \ + TSORT=${TSORT:q} \ + LD=${LD:q} STRIP=${STRIP:q} \ + AR=${AR:q} NM=${NM:q} \ + RANLIB=${RANLIB:q} SIZE=${SIZE:q} \ + MACHINE=${MACHINE} MACHINE_ARCH=${MACHINE_ARCH:q} \ + SACPPFLAGS=${CPPFLAGS:S@^-I.@-I${SADOTDIR}@g:q} \ + SAMISCCPPFLAGS=${SAMISCCPPFLAGS:q} \ ${SAMISCMAKEFLAGS} ${SALIB}: .NOTMAIN .MAKE __always_make_salib Index: src/sys/lib/libz/Makefile.inc diff -u src/sys/lib/libz/Makefile.inc:1.16 src/sys/lib/libz/Makefile.inc:1.17 --- src/sys/lib/libz/Makefile.inc:1.16 Tue Mar 22 04:25:23 2016 +++ src/sys/lib/libz/Makefile.inc Sat May 26 21:14:51 2018 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile.inc,v 1.16 2016/03/22 08:25:23 mrg Exp $ +# $NetBSD: Makefile.inc,v 1.17 2018/05/27 01:14:51 christos Exp $ # # Configuration variables (default values are below): # @@ -21,7 +21,7 @@ ZDST?= ${.OBJDIR}/lib/z Z_AS?= library ZDOTDIR?= ../../. -ZDIR= ${S:S@^.@${ZDOTDIR}@:Q}/lib/libz +ZDIR= ${S:S@^.@${ZDOTDIR}@:q}/lib/libz .if (${Z_AS} == "obj") ZLIB= ${ZDST}/libz.o ZLIB_PROF= ${ZDST}/libz.po @@ -31,18 +31,18 @@ ZLIB_PROF= ${ZDST}/libz_p.a .endif ZMAKE= \ - cd ${ZDST} && ${MAKE} -f ${ZDIR:Q}/Makefile \ - ZDIR=${ZDIR:Q} \ - CC=${CC:Q} CFLAGS=${CFLAGS:Q} CPUFLAGS= \ - AS=${AS:Q} AFLAGS=${AFLAGS:Q} \ - LORDER=${LORDER:Q} \ - TSORT=${TSORT:Q} \ - LD=${LD:Q} STRIP=${STRIP:Q} \ - AR=${AR:Q} NM=${NM:Q} \ - RANLIB=${RANLIB:Q} SIZE=${SIZE:Q} \ - MACHINE=${MACHINE} MACHINE_ARCH=${MACHINE_ARCH:Q} \ - ZCPPFLAGS=${CPPFLAGS:S@^-I.@-I${ZDOTDIR}@g:Q} \ - ZMISCCPPFLAGS=${ZMISCCPPFLAGS:Q} \ + cd ${ZDST} && ${MAKE} -f ${ZDIR:q}/Makefile \ + ZDIR=${ZDIR:q} \ + CC=${CC:q} CFLAGS=${CFLAGS:q} CPUFLAGS= \ + AS=${AS:q} AFLAGS=${AFLAGS:q} \ + LORDER=${LORDER:q} \ + TSORT=${TSORT:q} \ + LD=${LD:q} STRIP=${STRIP:q} \ + AR=${AR:q} NM=${NM:q} \ + RANLIB=${RANLIB:q} SIZE=${SIZE:q} \ + MACHINE=${MACHINE} MACHINE_ARCH=${MACHINE_ARCH:q} \ + ZCPPFLAGS=${CPPFLAGS:S@^-I.@-I${ZDOTDIR}@g:q} \ + ZMISCCPPFLAGS=${ZMISCCPPFLAGS:q} \ ${ZMISCMAKEFLAGS} ${ZLIB}: .NOTMAIN .MAKE __always_make_zlib Index: src/usr.bin/make/make.1 diff -u src/usr.bin/make/make.1:1.272 src/usr.bin/make/make.1:1.273 --- src/usr.bin/make/make.1:1.272 Mon Apr 2 00:26:17 2018 +++ src/usr.bin/make/make.1 Sat May 26 21:14:51 2018 @@ -1,4 +1,4 @@ -.\" $NetBSD: make.1,v 1.272 2018/04/02 04:26:17 dholland Exp $ +.\" $NetBSD: make.1,v 1.273 2018/05/27 01:14:51 christos Exp $ .\" .\" Copyright (c) 1990, 1993 .\" The Regents of the University of California. All rights reserved. @@ -29,7 +29,7 @@ .\" .\" from: @(#)make.1 8.4 (Berkeley) 3/19/94 .\" -.Dd June 22, 2017 +.Dd May 26, 2018 .Dt MAKE 1 .Os .Sh NAME @@ -1226,8 +1226,15 @@ due uno quattro tre .Ed .It Cm \&:Q Quotes every shell meta-character in the variable, so that it can be passed +safely to the shell. +.It Cm \&:q +Quotes every shell meta-character in the variable, and also doubles +.Sq $ +characters so that it can be passed safely through recursive invocations of .Nm . +This is equivalent to: +.Sq \&:S/\e\&$/&&/g:Q . .It Cm \&:R Replaces each word in the variable with everything but its suffix. .It Cm \&:range[=count] Index: src/usr.bin/make/var.c diff -u src/usr.bin/make/var.c:1.219 src/usr.bin/make/var.c:1.220 --- src/usr.bin/make/var.c:1.219 Wed May 23 20:27:24 2018 +++ src/usr.bin/make/var.c Sat May 26 21:14:51 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: var.c,v 1.219 2018/05/24 00:27:24 christos Exp $ */ +/* $NetBSD: var.c,v 1.220 2018/05/27 01:14:51 christos Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -69,14 +69,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: var.c,v 1.219 2018/05/24 00:27:24 christos Exp $"; +static char rcsid[] = "$NetBSD: var.c,v 1.220 2018/05/27 01:14:51 christos Exp $"; #else #include <sys/cdefs.h> #ifndef lint #if 0 static char sccsid[] = "@(#)var.c 8.3 (Berkeley) 3/19/94"; #else -__RCSID("$NetBSD: var.c,v 1.219 2018/05/24 00:27:24 christos Exp $"); +__RCSID("$NetBSD: var.c,v 1.220 2018/05/27 01:14:51 christos Exp $"); #endif #endif /* not lint */ #endif @@ -325,7 +325,7 @@ static Boolean VarLoopExpand(GNode *, Va static char *VarGetPattern(GNode *, Var_Parse_State *, int, const char **, int, int *, int *, VarPattern *); -static char *VarQuote(char *); +static char *VarQuote(char *, Boolean); static char *VarHash(char *); static char *VarModify(GNode *, Var_Parse_State *, const char *, @@ -2316,6 +2316,7 @@ VarGetPattern(GNode *ctxt, Var_Parse_Sta *----------------------------------------------------------------------- * VarQuote -- * Quote shell meta-characters and space characters in the string + * if quoteDollar is set, also quote and double any '$' characters. * * Results: * The quoted string @@ -2326,7 +2327,7 @@ VarGetPattern(GNode *ctxt, Var_Parse_Sta *----------------------------------------------------------------------- */ static char * -VarQuote(char *str) +VarQuote(char *str, Boolean quoteDollar) { Buffer buf; @@ -2347,7 +2348,7 @@ VarQuote(char *str) if (isspace((unsigned char)*str) || ismeta((unsigned char)*str)) Buf_AddByte(&buf, '\\'); Buf_AddByte(&buf, *str); - if (*str == '$') + if (quoteDollar && *str == '$') Buf_AddBytes(&buf, 2, "\\$"); } @@ -3488,9 +3489,10 @@ ApplyModifiers(char *nstr, const char *t break; } #endif + case 'q': case 'Q': if (tstr[1] == endc || tstr[1] == ':') { - newStr = VarQuote(nstr); + newStr = VarQuote(nstr, modifier == 'q'); cp = tstr + 1; termc = *cp; break; Index: src/usr.bin/make/unit-tests/varquote.exp diff -u src/usr.bin/make/unit-tests/varquote.exp:1.1 src/usr.bin/make/unit-tests/varquote.exp:1.2 --- src/usr.bin/make/unit-tests/varquote.exp:1.1 Wed May 23 20:25:44 2018 +++ src/usr.bin/make/unit-tests/varquote.exp Sat May 26 21:14:51 2018 @@ -1,2 +1,3 @@ -fdebug-prefix-map=$NETBSDSRCDIR=/usr/src -fdebug-regex-map=/usr/src/(.*)/obj$=/usr/obj/\1 +-fdebug-prefix-map=$NETBSDSRCDIR=/usr/src -fdebug-regex-map=/usr/src/(.*)/obj$=/usr/obj/\1 exit status 0 Index: src/usr.bin/make/unit-tests/varquote.mk diff -u src/usr.bin/make/unit-tests/varquote.mk:1.1 src/usr.bin/make/unit-tests/varquote.mk:1.2 --- src/usr.bin/make/unit-tests/varquote.mk:1.1 Wed May 23 20:25:44 2018 +++ src/usr.bin/make/unit-tests/varquote.mk Sat May 26 21:14:51 2018 @@ -1,12 +1,13 @@ -# $NetBSD: varquote.mk,v 1.1 2018/05/24 00:25:44 christos Exp $ +# $NetBSD: varquote.mk,v 1.2 2018/05/27 01:14:51 christos Exp $ # -# Test VAR:Q modifier +# Test VAR:q modifier .if !defined(REPROFLAGS) REPROFLAGS+= -fdebug-prefix-map=\$$NETBSDSRCDIR=/usr/src REPROFLAGS+= -fdebug-regex-map='/usr/src/(.*)/obj$$=/usr/obj/\1' all: - @${MAKE} -f ${MAKEFILE} REPROFLAGS=${REPROFLAGS:Q} + @${MAKE} -f ${MAKEFILE} REPROFLAGS=${REPROFLAGS:S/\$/&&/g:Q} + @${MAKE} -f ${MAKEFILE} REPROFLAGS=${REPROFLAGS:q} .else all: @echo ${REPROFLAGS}