The problem seems to be in the /usr/src/share/examples/Makefile

copies:: is an idiom used in only one other place in the BSD tree (in
sendmail -- the /usr/src/share/sendmail/Makefile).  Burying copies::
inside a .for loop seems to hide the indentifier from make.  It probably
shouldn't have worked previously, but it apparently it did.  Something
somewhere else must have covered up the bug and just got exposed.

The fix seems to be to move the loops inside the copies:: section.
Disclaimer: I am not one of the BSD maintainers so I can't comment on the
validity of the patch.  But it seems to work for me.

The patch I used is attached.  Hope it helps.

Andy L.





*** /home/andrewl/Makefile-1.29 Sun Oct 21 15:25:19 2001
--- Makefile    Sun Oct 21 15:28:20 2001
***************
*** 21,36 ****
  
  beforeinstall: etc-examples ${SHARED}
  
- .for dir in ${DIRS}
  FILES!=       find -L ${dir} \( -name CVS -prune \) -o -type f -print
! .for file in ${FILES}
  copies::
        ${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 644 ${file} ${DDIR}/${file}
  .endfor
  .endfor
  
- .for dir in ${DIRS}
  symlinks::
        rm -rf ${DDIR}/${dir}; ln -s ${.CURDIR}/${dir} ${DDIR}
  .endfor
  
--- 21,37 ----
  
  beforeinstall: etc-examples ${SHARED}
  
  FILES!=       find -L ${dir} \( -name CVS -prune \) -o -type f -print
! 
  copies::
+ .for dir in ${DIRS}
+ .for file in ${FILES}
        ${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 644 ${file} ${DDIR}/${file}
  .endfor
  .endfor
  
  symlinks::
+ .for dir in ${DIRS}
        rm -rf ${DDIR}/${dir}; ln -s ${.CURDIR}/${dir} ${DDIR}
  .endfor
  

Reply via email to