Eric Blake wrote: > On 05/10/2010 02:36 PM, Jim Meyering wrote: >> Eric Blake wrote: >>> On 05/07/2010 03:23 PM, Jim Meyering wrote: >>>> +remote_protocol-structs: >>>> + $(AM_V_GEN)if pdwtags --help > /dev/null 2>&1; then \ >>> >>> Some shells (at least Solaris /bin/sh) are noisy in spite of the >>> redirections, when a program doesn't exist. I'm proposing a followup >>> patch to clean up this invocation to use a subshell, and also to fix the >>> subshell for cppi in cfg.mk. >> >> Or you could consider the noise a two-pronged feature: That was semi-tongue-in-cheek. >> - notify user that their $(SHELL) is inferior >> - more noise about lack of a useful developer tool (pdwtags or cppi) > > In which case, your pdwtags usage is fine, and I should modify my patch > to just drop the cppi subshell altogether? "make syntax-check" (via maint.mk, cfg.mk etc) already relies on shell features not available in Solaris' /bin/sh (e.g., $(command)) so dropping the cppi subshell would be fine. It is important for readability (and my mental health ;-) to assume a good POSIX shell for those rules, and that is fine, since only "developers" run "make syntax-check", and we can require that they run "make" with SHELL=/usr/local/bin/bash in a pinch. pdwtags, however, is used as part of a rule run by "make check", which is nominally subject to a higher standard. I was going to say it *could* use a subshell, but then found that there are uses of $(command) in "regular" makefiles, too: $ git grep '\$\$(' cfg.mk: '\<$(func_re) *\([^"]*"[^"]*[a-z]{3}' $$($(VC_LIST_EXCEPT)) \ ... cfg.mk: stamp="$$($(_submodule_hash) $(_curr_status) 2>/dev/null)"; \ docs/Makefile.am: rm $(DESTDIR)$(DEVHELP_DIR)/$$(basename $$f); \ src/Makefile.am: $$(echo '$(libvirt_la_LDFLAGS)' \ Those last two would provoke syntax errors when building with Solaris' /bin/sh, ... So perhaps we really can just forget about those draconian Solaris /bin/sh portability restrictions, at least here in libvirt. -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list