From eaa82c2132d827154f0cbb3f461f473af25f02cf Mon Sep 17 00:00:00 2001 From: kan Date: Tue, 3 Apr 2007 18:56:05 +0000 Subject: 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. --- share/mk/bsd.lib.mk | 35 ++--------------------------------- share/mk/bsd.symver.mk | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 33 deletions(-) create mode 100644 share/mk/bsd.symver.mk (limited to 'share/mk') diff --git a/share/mk/bsd.lib.mk b/share/mk/bsd.lib.mk index 530ac15..2c01afc 100644 --- a/share/mk/bsd.lib.mk +++ b/share/mk/bsd.lib.mk @@ -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 # 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} diff --git a/share/mk/bsd.symver.mk b/share/mk/bsd.symver.mk new file mode 100644 index 0000000..40c51a4 --- /dev/null +++ b/share/mk/bsd.symver.mk @@ -0,0 +1,42 @@ +# $FreeBSD$ + +.if !target(____) +____: + +.include + +# 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(____) -- cgit v1.1