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:
parent
f82d4eed2f
commit
2da4e4706d
@ -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
42
share/mk/bsd.symver.mk
Normal 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>__)
|
Loading…
x
Reference in New Issue
Block a user