Fix dependency handling of UUDECODE_FILES (e.g. libexec/ld.aout_so on i386).

The .uue rule is defined to make "foo.xxx.uue" -> "foo.xxx".  When
UUDECODE_FILES_RENAME_* is also applied, the .uue rule tries to make "foo",
not "foo.xxx".  This results in that "foo.xxx" is never made and always
"foo.xxx.uue" -> "foo" is made.

Define dependency for intermediate files.

Avoid unnecessary rebuild and reinstall.  (Consume 70K in obj directory.)
This commit is contained in:
uebayasi 2013-04-06 15:39:19 +00:00
parent 5c58779bec
commit b6c0c53d2c
1 changed files with 9 additions and 5 deletions

View File

@ -1,4 +1,4 @@
# $NetBSD: bsd.files.mk,v 1.42 2011/09/10 16:57:35 apb Exp $
# $NetBSD: bsd.files.mk,v 1.43 2013/04/06 15:39:19 uebayasi Exp $
.if !defined(_BSD_FILES_MK_)
_BSD_FILES_MK_=1
@ -136,13 +136,17 @@ CLEANDIRFILES+= ${BUILDSYMLINKS.t}
.uue:
${_MKTARGET_CREATE}
rm -f ${.TARGET} ${.TARGET}.tmp
${TOOL_UUDECODE} -p ${.IMPSRC} > ${.TARGET}.tmp \
&& mv ${.TARGET}.tmp ${UUDECODE_FILES_RENAME_${.TARGET}:U${.TARGET}}
rm -f ${.TARGET}
${TOOL_UUDECODE} -p ${.IMPSRC} > ${.TARGET}
.if defined(UUDECODE_FILES_RENAME_${UUDECODE_FILES})
${UUDECODE_FILES_RENAME_${UUDECODE_FILES}}: ${UUDECODE_FILES}
cp ${.ALLSRC} ${.TARGET}
.endif
realall: ${UUDECODE_FILES}
CLEANUUDECODE_FILES=${UUDECODE_FILES} ${UUDECODE_FILES:=.tmp}
CLEANUUDECODE_FILES=${UUDECODE_FILES}
.for i in ${UUDECODE_FILES}
CLEANUUDECODE_FILES+=${UUDECODE_FILES_RENAME_${i}}
.endfor