[OpenAFS-devel] Re: debian-linux-i386-builder issues

Russ Allbery rra@stanford.edu
Sun, 08 Sep 2013 19:43:01 -0700


Michael Meffie <mmeffie@sinenomine.net> writes:

> It seems to me, a more proper fix for all this would be to have a target
> for bnode.h and a target for boserr.c which are independent (and the
> same for all the other placed compile_et is run).  I was wondering how
> krb5 copes with compile_et, and that is basically what the krb5 build
> system does.  The downside is compile_et is run twice, but the benefit
> is a clean build system that is safe for parallel makes.

> In the krb5 build system, two implicit rules are defined. One makes .h
> files from .et files, the other makes .c files from .et files.  Each
> rule makes some temporary files so they can be run at the some time for
> a given .et file.

> Unfortunately, the openafs rules would be a bit more complicated, since
> some of the error tables have 'prolog' p.h files which have a different
> name than the error table file. I started looking at how this might work
> by defining some general implicit rules for running compile_et. I'll
> push what I've done so for to gerrit for comments.

This is the "command that creates two files" make problem, which is a
well-known problem with a wide variety of solutions with, if not perfect
behavior, at least well-understood properties.

    info automake faq 'multiple outputs'

will explain a bunch of the possible solutions and their tradeoffs if you
have the Automake info pages installed.

-- 
Russ Allbery (rra@stanford.edu)             <http://www.eyrie.org/~eagle/>