diff options
author | markj <markj@FreeBSD.org> | 2014-05-01 03:18:11 +0000 |
---|---|---|
committer | markj <markj@FreeBSD.org> | 2014-05-01 03:18:11 +0000 |
commit | 79d434517bccbffa68d58bde07039480019bcc1a (patch) | |
tree | e57fee12249765a04f1de40fd39ce9c0d64a6051 | |
parent | 41b3f9a0616f88ddc54685f1e9868cd44a0177d7 (diff) | |
download | FreeBSD-src-79d434517bccbffa68d58bde07039480019bcc1a.zip FreeBSD-src-79d434517bccbffa68d58bde07039480019bcc1a.tar.gz |
MFC r262733:
Use a full path to the target for make rules which create symlinks @,
machine and ${MACHINE_CPUARCH}. Otherwise the presence of a file named
"x86" or "x86.c" in the make path can cause problems.
-rw-r--r-- | sys/conf/kmod.mk | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/sys/conf/kmod.mk b/sys/conf/kmod.mk index bd05878..0d688ef 100644 --- a/sys/conf/kmod.mk +++ b/sys/conf/kmod.mk @@ -238,7 +238,7 @@ beforedepend: ${_ILINKS} # causes all the modules to be rebuilt when the directory pointed to changes. .for _link in ${_ILINKS} .if !exists(${.OBJDIR}/${_link}) -${OBJS}: ${_link} +${OBJS}: ${.OBJDIR}/${_link} .endif .endfor @@ -252,18 +252,23 @@ SYSDIR= ${_dir} .error "can't find kernel source tree" .endif -${_ILINKS}: - @case ${.TARGET} in \ +.for _link in ${_ILINKS} +.PHONY: ${_link} +${_link}: ${.OBJDIR}/${_link} + +${.OBJDIR}/${_link}: + @case ${.TARGET:T} in \ machine) \ path=${SYSDIR}/${MACHINE}/include ;; \ @) \ path=${SYSDIR} ;; \ *) \ - path=${SYSDIR}/${.TARGET}/include ;; \ + path=${SYSDIR}/${.TARGET:T}/include ;; \ esac ; \ path=`(cd $$path && /bin/pwd)` ; \ - ${ECHO} ${.TARGET} "->" $$path ; \ - ln -sf $$path ${.TARGET} + ${ECHO} ${.TARGET:T} "->" $$path ; \ + ln -sf $$path ${.TARGET:T} +.endfor CLEANFILES+= ${PROG} ${KMOD}.kld ${OBJS} |