Don't store generated firmware object files in the source directory.

Trim the leading directory of a firmware source file from the resulting
target object file name so the object file is stored in the object
directory. Previously, using 'FIRMWS= /path/to/fw.bin:fw.bin' would
store the generated 'fw.bin.fwo' file in the /path/to directory. Now
it stores it in the object directory of the kernel module being built.

Reviewed by:	bdrewery
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D6285
This commit is contained in:
John Baldwin 2016-05-10 03:34:20 +00:00
parent f7bc393477
commit d9eed6f42e

View File

@ -157,7 +157,7 @@ SRCS+= ${KMOD:S/$/.c/}
CLEANFILES+= ${KMOD:S/$/.c/}
.for _firmw in ${FIRMWS}
${_firmw:C/\:.*$/.fwo/}: ${_firmw:C/\:.*$//}
${_firmw:C/\:.*$/.fwo/:T}: ${_firmw:C/\:.*$//}
@${ECHO} ${_firmw:C/\:.*$//} ${.ALLSRC:M*${_firmw:C/\:.*$//}}
@if [ -e ${_firmw:C/\:.*$//} ]; then \
${LD} -b binary --no-warn-mismatch ${_LDFLAGS} \
@ -169,7 +169,7 @@ ${_firmw:C/\:.*$/.fwo/}: ${_firmw:C/\:.*$//}
rm ${_firmw:C/\:.*$//}; \
fi
OBJS+= ${_firmw:C/\:.*$/.fwo/}
OBJS+= ${_firmw:C/\:.*$/.fwo/:T}
.endfor
.endif