On Sun, 21 Aug 2011, John Dallaway wrote: > Hi Sergei Hi John,
> Sergei Gavrikov wrote: > > > It was added a few checks for "V" variable (a verbose level) in eCos > > ``rules.mak`` file and the level of the verbosity is set in a top most > > eCos ``makefile`` (which is auto-generated). The level of verbosity can > > be set from a command line as ``make V=x`` where "x" can be set to 0, 1, > > or 2) > > > > V=0 - silent build (it is equal to a call ``make --silent``) > > V=1 - "semi-silence", when ``make`` outputs a kind of work is > > doing now > > V=2 - full output (it is equal to "old" call of ``make``) > > > > Default level is 1 (semi-silence). IMHO, it is right value and it is no > > need to type ``make V=1`` every time. > > > > Pros (V=1): > > > > - He/she will be know what is running. > > - He/she will be know/learn an order the build process. > > - He/she will see any warnings and possible they will sent us the > > patches to fix it :-) > > > > % make tests > > ... > > CC strtoul.c > > LINK strtoul > > CC memchr.c > > > > /home/sg/repo/ecos-hg/packages/language/c/libc/string/current/tests/memchr.c: > > In function ‘main’: > > > > /home/sg/repo/ecos-hg/packages/language/c/libc/string/current/tests/memchr.c:107: > > warning: assignment discards qualifiers from pointer target type > > LINK memchr > > ... > > I can appreciate that the "semi-silent" output you are proposing makes > warning messages stand out more clearly, but this appears to be the only > benefit. The existing output already indicates what is running and the > order of the build process. Have I missed something? You are right, it is only benefit (it only added a pretty printing for V=1 choice). Besides I've changed my view since that my post about default verbose level and now I think that nothing has not to been changed from default behaviors, thus, default make outputs for ``make`` and ``make -s`` must not been touched. So, I corrected my patch already (set V=2 by default). > > Cons: > > > > - It is needed to re-built ``ecosconfig`` to get it working. > > > > NOTE: Only a few lines were added to only one source > > host/tools/configtool/common/common/build.cxx > > > > - Very few people work with command-line and they need to know about > > V=x (V=2). > > - eCos ConfigTool (may be "semi-silence" is odd for it, not tested). > > I would also be concerned about the processing overhead on Cygwin hosts > and the possiblility of unexpected output when using multiple eCos > repositories or older eCos host tools. Ah! You are right again. I missed the main thing (compatibility with old tools and repositories (== rules.mak)), however, when I did set value of V to 2 by default, nothing won't change if we will just type "make"). Of course, the checks of "V" variable in every build rule can waste a bit of time, but, output of the long lines in a terminal also takes a time (but, I did not check time penalty). > Is your proposal based on another build system you have used? No. I used GNU make. In my patch the configtool's build.cxx "included" an 1-line *not forced* inclusion to an auto-generated eCos top-level makefile: -include make.mak and "generated" that ``make.mak'' which is # eCos makefile # This is a generated file - do not edit export V := $(if $(findstring s,$(MAKEFLAGS)),0,2) ifneq (,$(or $(filter 0,$(V)),$(filter 1,$(V)))) .SILENT: endif On top of eCos ``rules.mak'' I added # NOTE: default level of verbosity is 2 (full output). V ?= $(if $(findstring s,$(MAKEFLAGS)),0,2) ifneq (,$(or $(filter 0,$(V)),$(filter 1,$(V)))) .SILENT: endif and fixed (added the checks) there for every build rule, e.g. %.o.d : %.c ... ifeq ($(V),1) @echo " CC $(notdir $<)" endif etc. This is almost all. But, I must confess that full patch requires to add many small, however, trivial fixes to eCos config files which uses "make" and "make_object" rules: % grep -rl --include=*.cdl 'make.*{' $ECOS_REPOSITORY 155 This fact and your "Cons." has beaten my small "benefit" :-) and I'm totally agreed with your concern now. So, John, I want to say thank you for your time on thinking about and I must be more accurate with "feature" requests which would break things. Sergei > John Dallaway > eCos maintainer > http://www.dallaway.org.uk/john >