[U-Boot] [PATCH] makefiles: fixes/cleanup for building build tools
Scott Wood
scottwood at freescale.com
Tue Oct 27 20:34:10 CET 2009
On Mon, Oct 26, 2009 at 07:57:50PM -0400, Mike Frysinger wrote:
> On Monday 26 October 2009 18:17:03 Scott Wood wrote:
> > Currently, some of the tools instead set CC to be HOSTCC in order to re-use
> > some pattern rules -- but this fails when the user overrides CC on the make
> > command line. Also, the HOSTCFLAGS in tools/Makefile are currently not
> > being used because config.mk overwrites them.
> >
> > This patch adds static pattern rules for files that have been requested to
> > be built with the native compiler using $(HOSTSRCS) and $(HOSTOBJS), and
> > converts the tools to use them.
>
> your new easylogo rule lacks HOSTLDFLAGS ...
OK, will add.
> perhaps it would make more sense to create a HOSTCOMPILE/HOSTLINK (or
> whatever) variable so this kind of thing isnt missed ?
> HOSTCOMPILE = $(HOSTCC) $(HOSTCFLAGS)
> HOSTLINK = $(HOSTCOMPILE) $(HOSTLDFLAGS)
Maybe. What about PEDCFLAGS? Should that be the default for HOSTCOMPILE,
and then have a HOSTCOMPILENOPED?
> also, PEDCFLAGS seems at odds with the rest of your consistency changes.
> how about naming it HOSTCFLAGS+PED ? then you would have a new var:
> HOSTCOMPILE+PED = $(HOSTCC) $(HOSTCFLAGS+PED)
I left off the HOST for conciseness because we only use -pedantic when
building hosted stuff (and that's unlikely to change, since main u-boot code
has lower portability requirements), but I can add it if desired.
> > It restores easylogo to using the host compiler, which was broken by commit
> > 38d299c2db81bd889c601b5dfc12c4e83ef83333 (if this was an intentional
> > change, please let me know -- but it seems to be a build tool).
>
> it was intentional, but for different reasons. easylogo isnt integrated
> into the u-boot build system, so in order to compile things in there, you
> had to go into the subdir and manually run `make`. if it were integrated
> into the build system like all other tools, then converting to host tools
> is fine. but unless i missed something, it doesnt appear to be ? and
> now, going into the subdir and running `make` wont work either ...
I was expecting it to be built by adding easylogo to TOOLSUBDIRS (it would
be better if there were a distinct make target for it, but that's another
patch). Other tools such as gdb already assume they're being run in this
manner.
-Scott
More information about the U-Boot
mailing list