This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] sim: generate build dependencies on the fly
- From: Mike Frysinger <vapier at gentoo dot org>
- To: Tom Tromey <tromey at redhat dot com>
- Cc: gdb-patches at sourceware dot org, toolchain-devel at blackfin dot uclinux dot org
- Date: Tue, 12 Jul 2011 17:42:10 -0400
- Subject: Re: [PATCH] sim: generate build dependencies on the fly
- References: <1310436152-8693-1-git-send-email-vapier__46811.2245122485$1310436164$gmane$org@gentoo.org> <m3hb6rgu18.fsf@fleche.redhat.com> <CAJaTeTqM-Kr3Nrr4JKyfpys7=+aWk_YJCA+=AensJyBTUvg4dQ__24418.5384632603$1310503395$gmane$org@mail.gmail.com> <m3d3hffbq1.fsf@fleche.redhat.com>
On Tue, Jul 12, 2011 at 17:08, Tom Tromey wrote:
> GDB arranges for generated files to be built early, via order-only
> dependencies. ?Order-only dependencies ensure that merely touching one
> of the generated files doesn't cause a global recompile.
>
> # Ensure that generated files are created early. ?Use order-only
> # dependencies if available. ?They require GNU make 3.80 or newer,
> # and the .VARIABLES variable was introduced at the same time.
> @GMAKE_TRUE@ifdef .VARIABLES
> @GMAKE_TRUE@$(all_object_files): | $(generated_files)
> @GMAKE_TRUE@else
> $(all_object_files) : $(generated_files)
> @GMAKE_TRUE@endif
oh, ok. i saw that, but didnt quite grok what was going on. this
will make things much easier to work with, so i'll take this approach
and send an updated patch.
> Tom> Finally I thought there was some problem with multiple entries in VPATH,
> Tom> but I cannot find that in the docs. ?Perhaps it is one of those ancient
> Tom> incorrect memories. ?It would bear testing with a non-GNU make.
>
> Mike> sounds like all good reasons to use automake :). ?otherwise all the
> Mike> files in common/ need manual deps (like gdb does with files in
> Mike> subdirs), and that semi-defeats the purpose of this in the first
> Mike> place.
>
> Yeah. ?I am not actually sure how well Automake would currently handle
> sources in "../common/". ?Neither here nor there I guess.
pretty sure it wouldnt care. it can handle relative paths in subdirs
last i looked (foo/blah.c), so i dont see why relative paths in a
sibling tree (../foo/blah.c) would be different. knock on wood :x.
> Fedora includes the BSD make (yum install bmake); I assume other distros
> do too. ?So you could try a build with that.
yes, Gentoo includes many alternative makes including bmake and pmake.
Gentoo works natively on BSD systems too you know :).
but would saying "yes, this works on current BSD makes" be
satisfactory when the complaint in the manual alludes to "ancient makes" ?
-mike