On Dec 8, 2012, at 18:15 , Simon Wilkinson wrote: > > 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.
Alternatively, we could replace $? with $< in most places. Less clutter, lower potential for cut & paste accidents. The $< seems to be a GNU make feature? At least it's not understood bye the native make on the Solaris System I have access to. But given that it's used in our Makefiles already, it should be ok? Cheers, Stephan > Any volunteers? > > Cheers, > > Simon. _______________________________________________ OpenAFS-devel mailing list OpenAFS-devel@openafs.org https://lists.openafs.org/mailman/listinfo/openafs-devel