On Tue, Jun 15, 2021 at 4:22 AM Mark Piffer <mark.pif...@gmail.com> wrote:
>
> My solution was to separate the build system into a (non-recursive) structure 
> of make files which each have roughly speaking only one recipe. You may raise 
> an eyebrow but I can assure you that the segregation of a build process in 
> this way works, at least for embedded development. Complicated dependency 
> trees with very diverse recipes are bundled into the few non-single-recipe 
> makefiles, which the master makefile easily tolerates. The .EXTRA_PREREQS are 
> needed only for housekeeping purposes, i.e. creating dependencies on 
> makefiles, process scripts and auto-dependencies without them getting into 
> the automated input/output set
> of the build process where only real engineering work products are kept.

Sounds reasonable.  Regarding the use cases for global .EXTRA_PREREQS
that a previous poster asked about, this is one: it lets you state in
one place that any change to the build rules themselves should trigger
rebuild of everything, without having to paste Makefile $(wildcard
*.mk) serialized_vars etc. everywhere.  For my case at least it turned
out there were only a couple places where 'umbrella' targets needed to
be expressed as lists instead, so that's what I've done.

Britton

Reply via email to