371f3da616
This option was added as a transition aide when symbol versioning was first added. It was enabled by default in 2007 and is supported even by the old GPLv2 binutils. Trying to disable it currently fails to build in libc and at this point it isn't worth fixing the build. Reported by: Michael Dexter Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D24637
48 lines
1.1 KiB
Makefile
48 lines
1.1 KiB
Makefile
# $FreeBSD$
|
|
|
|
.if !target(__<bsd.symver.mk>__)
|
|
__<bsd.symver.mk>__:
|
|
|
|
.include <bsd.init.mk>
|
|
|
|
# Generate the version map given the version definitions
|
|
# and symbol maps.
|
|
.if !empty(VERSION_DEF) && !empty(SYMBOL_MAPS)
|
|
# Find the awk script that generates the version map.
|
|
VERSION_GEN?= version_gen.awk
|
|
VERSION_MAP?= Version.map
|
|
|
|
CLEANFILES+= ${VERSION_MAP}
|
|
|
|
# Compute the make's -m path.
|
|
_mpath=
|
|
_oarg=
|
|
.for _arg in ${.MAKEFLAGS}
|
|
.if ${_oarg} == "-m"
|
|
_mpath+= ${_arg}
|
|
.endif
|
|
_oarg= ${_arg}
|
|
.endfor
|
|
_mpath+= /usr/share/mk
|
|
|
|
# Look up ${VERSION_GEN} in ${_mpath}.
|
|
_vgen=
|
|
.for path in ${_mpath}
|
|
.if empty(_vgen)
|
|
.if exists(${path}/${VERSION_GEN})
|
|
_vgen= ${path}/${VERSION_GEN}
|
|
.endif
|
|
.endif
|
|
.endfor
|
|
.if empty(_vgen)
|
|
.error ${VERSION_GEN} not found in the search path.
|
|
.endif
|
|
|
|
# Run the symbol maps through the C preprocessor before passing
|
|
# them to the symbol version generator.
|
|
${VERSION_MAP}: ${VERSION_DEF} ${_vgen} ${SYMBOL_MAPS}
|
|
cat ${SYMBOL_MAPS} | ${CPP} - - \
|
|
| awk -v vfile=${VERSION_DEF} -f ${_vgen} > ${.TARGET}
|
|
.endif # !empty(VERSION_DEF) && !empty(SYMBOL_MAPS)
|
|
.endif # !target(__<bsd.symver.mk>__)
|