On 8 Dec 2012, at 14:47, Jason Edgecombe wrote:
> 
> /usr/bin/install -c -m 644  
> /home/jwedgeco/buildslave/rhel5-x86_64-builder/build/include/rx/rxkad.h
> /usr/bin/install: missing destination file operand after 
> `/home/jwedgeco/buildslave/rhel5-x86_64-builder/build/include/rx/rxkad.h'

I've seen this failure a few times with local builds. It almost always resolves 
itself with the next run of "make".

As far as I can tell, it happens because of our use of $? in our installation 
rules. For example, in this case we have:

${TOP_INCDIR}/rx/rxkad.h: rxkad.h
        ${INSTALL_DATA} $? $@

The $? automatic variable is defined as expanding to "all of the prerequisites 
which are newer than the target". It looks like there's
some kind of a race in make which can result in $? expanding to an empty 
string, but I'm not enough of a make expert to explain this, or even to say 
whether there is some kind of subtle reason why this problem occurs.

The obvious fix for OpenAFS, assuming the we don't want to get in to debugging 
make issues, is to replace all of the occurrences of $? in install rules with 
the actual name of the file being installed. This is a relatively simple, if 
tedious, job to do.

Any volunteers?

Cheers,

Simon.


_______________________________________________
OpenAFS-devel mailing list
OpenAFS-devel@openafs.org
https://lists.openafs.org/mailman/listinfo/openafs-devel

Reply via email to