On Tue, 19 Feb 2013 19:10:21 -0500 Benjamin Kaduk <ka...@mit.edu> wrote:
> We've had a few commits over the years to help parallel builds along by > splitting rules with two targets into two separate rules, one a pure > dependency and the other with the actual contents of the rule (usually > compile_et). > > A typical example is 147aeeb6c59b5f4a9f8a795a91e0c42ecf80278c > (gerrit/257) (trimmed): > -budb_errs.c budb_client.h: budb_errs.et budb_client.p.h > +budb_client.h: budb_errs.c > + > +budb_errs.c: budb_errs.et budb_client.p.h > $(RM) -f budb_client.h budb_errs.c; ${COMPILE_ET} -p ${srcdir} > budb_errs -h budb_client > > However, these changes seem to cause problems for FreeBSD make, even for > serial builds. The build log shows a failure to install budb_client.h , > No such file or directory, but then continues on to compile linktest > before bailing out (sorry for the poorly wrapped copy/paste): This can be a problem in linux as well, using gnu/make, and is not limited to bu*. <snip> > The problem seems to stem from there being two calls to compile_et using > budb_errs.et, one of which makes budb_errs.h and the other which makes > budb_client.h. Swapping the order in which the multiple targets are split > out, so that budb_errs.c depends on budb_client.h which is made via > compile_et, lets my build finish here, but it's probably not the best > solution. > > Is there reason to not make a budb_client.h that is the contents of > budb_client.p.h with #include <budb_errs.h> added? Alternately we could > process the template manually with the shell. I had started making some changes to compile_et, so I could change the depencencies in the makefiles, and posted that as gerrit 7921. But I'm worried that approach would not work if people used a different compile_et. -- Michael Meffie <mmef...@sinenomine.net> _______________________________________________ OpenAFS-devel mailing list OpenAFS-devel@openafs.org https://lists.openafs.org/mailman/listinfo/openafs-devel