From: Sergei Gavrikov <sergei.gavrikov@gmail.com>
To: eCos Developers <ecos-devel@ecos.sourceware.org>
Subject: Verbose modes for eCos makefiles
Date: Sat, 13 Aug 2011 13:17:00 -0000 [thread overview]
Message-ID: <alpine.DEB.2.00.1108131612030.17695@vostro> (raw)
[-- Attachment #1: Type: TEXT/PLAIN, Size: 3517 bytes --]
Hi
I've written a few small patches to add a bit of sugar for eCos build
process when ``ecosconfig`` and ``make`` are used from command line.
Example:
% ecosconfig new pid
% ecosconfig tree
% make
GEN mlt_arm_pid_ram.ldi
GEN mlt_arm_pid_rom.ldi
GEN mlt_arm_pid_ram.h
GEN mlt_arm_pid_rom.h
headers finished
GEN ecos.mak
GEN arm.inc
GEN heapgeninc.tcl
GEN heaps.cxx
CC hal_misc.c
...
CXX errno.cxx
AR libtarget.a
CC vectors.S
GEN target.ld
build finished
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
...
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).
- ?
About ``make`` and ``make_objects`` rules in eCos config files (CDL).
Fortunately, it is not required to fix the lines which call any compiler
or generator. I did not use a function to wrap the calls and only added
1 "echo-line" by a condition per a "generator", e.g.:
--- a/packages/hal/synth/arch/current/cdl/hal_synth.cdl
+++ b/packages/hal/synth/arch/current/cdl/hal_synth.cdl
@@ -65,6 +65,7 @@ cdl_package CYGPKG_HAL_SYNTH {
make {
<PREFIX>/lib/target.ld: <PACKAGE>/src/synth.ld
+ $(if $(filter 1,$(V)),@echo " GEN $(notdir $@)")
$(CC) -E -P -Wp,-MD,target.tmp -DEXTRAS=1 -xc $(INCLUDE_PATH) $(ACTUAL_CFLAGS) -o $@ $<
@echo $@ ": \\" > $(notdir $@).deps
@tail -n +2 target.tmp >> $(notdir $@).deps
NOTE: May be you offer/know a better 1-liner. I've "invented" it,
because it was not possible to use make's "ifeq/ifneq" there.
Thus, it seems to me we will not break eCos build process when we will
fix the eCos config files.
FYI: I already have the patches for arm/synth/i386/memalloc eCos config
files. Also a check for V-variable was added to eCos examples/Makefile.
Well, if you do not see any pitfalls in such a modernism I can send
the patches to eCos Bugzilla, otherwise, please forget it.
I'm sorry for this long post (in a fact, I could write, I would add a
few checks for "V" variable to eCos makefiles. Do you agree with it?
Sergei
next reply other threads:[~2011-08-13 13:17 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-13 13:17 Sergei Gavrikov [this message]
2011-08-21 20:41 ` John Dallaway
2011-08-22 8:47 ` Sergei Gavrikov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=alpine.DEB.2.00.1108131612030.17695@vostro \
--to=sergei.gavrikov@gmail.com \
--cc=ecos-devel@ecos.sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).