makefile - Make: recursive make ignores -s -


observe difference between make silent , make noisy. asked make silent on bar rule, silent on foo rule, too.

what missing?

noisy:     @make foo  silent:     @make -s foo  foo:     @make -s bar  bar:     @echo bar 

running it:

$ make silent bar  $ make noisy make[1]: entering directory `/tmp/s' make[2]: entering directory `/tmp/s' bar make[2]: leaving directory `/tmp/s' make[1]: leaving directory `/tmp/s' 

i expected noisy foo -> bar call not print "entering directory"

options passed parent make sub-make using makeflags environment variable, sub-make adds command-line flags received. if sub-make doesn't receive -s (--silent), -w (--print-directory), or --no-print-directory, automatically adds -w own makeflags. order of precedence enabling , disabling directory printing seems (from weakest strongest) -s, -w, --no-print-directory.

so, when run make silent, first recursive call adds -s makeflags, , second call knows not touch flags. however, when run make noisy, first recursive call adds -w makeflags since didn't tell not silent, , on, -s won't have effect you're looking for. can use --no-print-directory instead, since overrides -w.


Comments

Popular posts from this blog

ios - RestKit 0.20 — CoreData: error: Failed to call designated initializer on NSManagedObject class (again) -

java - Digest auth with Spring Security using javaconfig -

laravel - PDOException in Connector.php line 55: SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES) -