From b11cdc1a442143eb6e707e9b6d6f113afc9ed867 Mon Sep 17 00:00:00 2001 From: rillig Date: Sat, 11 Nov 2006 07:44:46 +0000 Subject: [PATCH] Added wrapper-subr.sh, which provides shell functions that are useful to make the wrapper code less frightening. For example, instead of arg="${arg#-Wl,}" $debug_log $wrapperlog " (transform-sunpro-cc) to: $arg" addtocache=yes one can simply write transform_to "${arg-Wl,}" The functions that are currently implemented are: transform_to, transform_discard, transform_to_nocache, transform_discard, transform_pass and transform_pass_unknown. --- mk/wrapper/bsd.wrapper.mk | 10 +++++++--- mk/wrapper/wrapper-subr.sh | 41 ++++++++++++++++++++++++++++++++++++++ mk/wrapper/wrapper.sh | 4 +++- 3 files changed, 51 insertions(+), 4 deletions(-) create mode 100644 mk/wrapper/wrapper-subr.sh diff --git a/mk/wrapper/bsd.wrapper.mk b/mk/wrapper/bsd.wrapper.mk index f1583a6bc154..c61ccc649afd 100644 --- a/mk/wrapper/bsd.wrapper.mk +++ b/mk/wrapper/bsd.wrapper.mk @@ -1,4 +1,4 @@ -# $NetBSD: bsd.wrapper.mk,v 1.56 2006/11/02 23:25:00 rillig Exp $ +# $NetBSD: bsd.wrapper.mk,v 1.57 2006/11/11 07:44:46 rillig Exp $ # # Copyright (c) 2005 The NetBSD Foundation, Inc. # All rights reserved. @@ -184,6 +184,7 @@ _WRAP_LOGIC?= ${WRAPPER_TMPDIR}/logic _WRAP_REORDERLIBS?= ${WRAPPER_TMPDIR}/reorderlibs _WRAP_SCAN?= ${WRAPPER_TMPDIR}/scan _WRAP_SHELL_LIB?= ${WRAPPER_TMPDIR}/shell-lib +_WRAP_SUBR_SH?= ${WRAPPER_TMPDIR}/wrapper-subr.sh _WRAP_SKIP_TRANSFORM?= no _WRAP_TRANSFORM?= ${_WRAP_EMPTY_FILE} _WRAP_TRANSFORM_SED?= # empty @@ -349,7 +350,8 @@ _WRAP_SUBST_SED= \ -e "s|@WRAPPER_SHELL@|${WRAPPER_SHELL:Q}|g" \ -e "s|@_WRAP_LOG@|${_WRAP_LOG:Q}|g" \ -e "s|@_WRAP_REORDERLIBS@|${_WRAP_REORDERLIBS:Q}|g" \ - -e "s|@_WRAP_SHELL_LIB@|${_WRAP_SHELL_LIB:Q}|g" + -e "s|@_WRAP_SHELL_LIB@|${_WRAP_SHELL_LIB:Q}|g" \ + -e "s|@_WRAP_SUBR_SH@|${_WRAP_SUBR_SH}|g" .for _wrappee_ in ${_WRAPPEES} _WRAP_SUBST_SED.${_wrappee_}= \ @@ -394,6 +396,7 @@ ${_WRAP_COOKIE.${_wrappee_}}: \ ${_WRAP_REORDERLIBS} \ ${_WRAP_SCAN.${_wrappee_}} \ ${_WRAP_SHELL_LIB} \ + ${_WRAP_SUBR_SH} \ ${_WRAP_TRANSFORM.${_wrappee_}} ${_PKG_SILENT}${_PKG_DEBUG} \ wrapper="${WRAPPER_${_wrappee_}:C/^/_asdf_/1:M_asdf_*:S/^_asdf_//}"; \ @@ -481,7 +484,8 @@ generate-wrappers: ${_target_} transform-mipspro-ucode-cc \ transform-solaris-gcc \ transform-sunpro-cc \ - transform-xlc-cc + transform-xlc-cc \ + wrapper-subr.sh ${WRAPPER_TMPDIR}/${w}: ${WRAPPER_SRCDIR}/${w} ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} ${_PKG_SILENT}${_PKG_DEBUG}${CAT} ${.ALLSRC} \ diff --git a/mk/wrapper/wrapper-subr.sh b/mk/wrapper/wrapper-subr.sh new file mode 100644 index 000000000000..cf6589bb7cfe --- /dev/null +++ b/mk/wrapper/wrapper-subr.sh @@ -0,0 +1,41 @@ +# $NetBSD: wrapper-subr.sh,v 1.1 2006/11/11 07:44:46 rillig Exp $ +# +# This file contains shell functions that are useful to the wrapper +# scripts. +# + +# usage: transform_setname "current-file" +transform_setname() { + wrapsubr_name="$1" +} + +# usage: transform_to "newarg" +transform_to() { + arg="$1" + $debug_log $wrapperlog " ($wrapsubr_name) to: $1" + addtocache=yes +} + +# usage: transform_to_nocache "newarg" +transform_to_nocache() { + arg="$1" + $debug_log $wrapperlog " ($wrapsubr_name) to: $1" + addtocache=no +} + +# usage: transform_discard +transform_discard() { + transform_to "" +} + +# usage: transform_pass +transform_pass() { + addtocache=yes +} + +# usage: transform_pass_unknown +transform_pass_unknown() { + #echo "warning: $wrapsubr_name: unknown option $arg" 1>/dev/tty + addtocache=no +} + \ No newline at end of file diff --git a/mk/wrapper/wrapper.sh b/mk/wrapper/wrapper.sh index 588a25240898..7f9f66769dff 100644 --- a/mk/wrapper/wrapper.sh +++ b/mk/wrapper/wrapper.sh @@ -1,6 +1,6 @@ #! @WRAPPER_SHELL@ # -# $NetBSD: wrapper.sh,v 1.6 2006/10/21 11:42:25 rillig Exp $ +# $NetBSD: wrapper.sh,v 1.7 2006/11/11 07:44:46 rillig Exp $ # # Copyright (c) 2004 The NetBSD Foundation, Inc. # All rights reserved. @@ -54,6 +54,7 @@ shell_lib="@_WRAP_SHELL_LIB@" scan="@_WRAP_SCAN@" transform="@_WRAP_TRANSFORM@" transform_sed="@_WRAP_TRANSFORM_SED@" +wrapper_subr_sh="@_WRAP_SUBR_SH@" wrapperlog="${WRAPPER_LOG-@_WRAP_LOG@}" skip_transform="${WRAPPER_SKIP_TRANSFORM-@_WRAP_SKIP_TRANSFORM@}" debug="${WRAPPER_DEBUG-@WRAPPER_DEBUG@}" @@ -68,6 +69,7 @@ test="@TEST@" Xsed="$sed -e 1s/^X//" . $shell_lib +. "$wrapper_subr_sh" updatecache=${WRAPPER_UPDATE_CACHE-@WRAPPER_UPDATE_CACHE@} reorder=${WRAPPER_REORDER-no}