On Mon, 2025-02-10 at 03:40 +0900, Masahiro Yamada wrote: > ifeq ($(SUBMAKE),) > MAKEFLAGS += --no-print-directory > MAKEFLAGS += -rR > all: > @echo in top: MAKEFLAGS=$(MAKEFLAGS) > $(MAKE) -w SUBMAKE=1 > else > all: > @echo in submake: MAKEFLAGS=$(MAKEFLAGS) > endif > > > $ make > in top: MAKEFLAGS=rR --no-print-directory --print-directory > make SUBMAKE=1 > in submake: MAKEFLAGS=rR --no-print-directory -- SUBMAKE=1
You don't specify which version of GNU Make you're using, but this works as expected in the current release: ~$ make --version GNU Make 4.4.1 ... ~$ make in top: MAKEFLAGS=rR --no-print-directory make -w SUBMAKE=1 make[1]: Entering directory '/tmp/foo' in submake: MAKEFLAGS=rRw -- SUBMAKE=1 make[1]: Leaving directory '/tmp/foo'