Break out Version.map generation code from bsd.lib.mk into a

separate bsd.symver.mk file. Include bsd.symver.mk in bsd.lib.mk
to maintain the status quo.
This commit is contained in:
Alexander Kabaev 2007-04-03 18:56:05 +00:00
parent f82d4eed2f
commit 2da4e4706d
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=168317
2 changed files with 44 additions and 33 deletions

View File

@ -104,41 +104,10 @@ PO_FLAG=-pg
all: objwarn
# 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
# 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
${VERSION_MAP}: ${VERSION_DEF} ${_vgen} ${SYMBOL_MAPS}
awk -v vfile=${VERSION_DEF} -f ${_vgen} ${SYMBOL_MAPS} \
> ${.TARGET}
.endif # !empty(VERSION_DEF) && !empty(SYMBOL_MAPS)
.include <bsd.symver.mk>
# Allow librararies to specify their own version map or have it
# automatically generated (see above).
# automatically generated (see bsd.symver.mk above).
.if !empty(VERSION_MAP)
${SHLIB_NAME}: ${VERSION_MAP}
LDFLAGS+= -Wl,--version-script=${VERSION_MAP}

42
share/mk/bsd.symver.mk Normal file
View File

@ -0,0 +1,42 @@
# $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
${VERSION_MAP}: ${VERSION_DEF} ${_vgen} ${SYMBOL_MAPS}
awk -v vfile=${VERSION_DEF} -f ${_vgen} ${SYMBOL_MAPS} \
> ${.TARGET}
.endif # !empty(VERSION_DEF) && !empty(SYMBOL_MAPS)
.endif # !target(__<bsd.symver.mk>__)