summaryrefslogtreecommitdiff
path: root/lang
diff options
context:
space:
mode:
authorjlam <jlam>2005-05-12 20:59:29 +0000
committerjlam <jlam>2005-05-12 20:59:29 +0000
commitbd39b01106b59fabaf13dc7c4ab659a765049bbf (patch)
tree0c59b5aabfc7540ecadec06456383927b18962c9 /lang
parent0371dea6cab63f9ad2baea4a78aa974f06e9ca39 (diff)
downloadpkgsrc-bd39b01106b59fabaf13dc7c4ab659a765049bbf.tar.gz
Allow vars.mk to be included multiple times. We avoid excessive
computation by caching the variables using MAKEVARS.
Diffstat (limited to 'lang')
-rw-r--r--lang/perl5/vars.mk69
1 files changed, 34 insertions, 35 deletions
diff --git a/lang/perl5/vars.mk b/lang/perl5/vars.mk
index 35cf9d50353..fa309e69ff2 100644
--- a/lang/perl5/vars.mk
+++ b/lang/perl5/vars.mk
@@ -1,12 +1,9 @@
-# $NetBSD: vars.mk,v 1.1 2005/02/24 22:38:42 jlam Exp $
+# $NetBSD: vars.mk,v 1.2 2005/05/12 20:59:29 jlam Exp $
#
# This Makefile fragment exposes several Perl configuration variables
# to the package Makefiles. The variables are only defined if the
# ${PERL5} executable exists.
-.if !defined(_PERL5_VARS_MK)
-_PERL5_VARS_MK= yes
-
.include "../../mk/bsd.prefs.mk"
_PERL5_SITEVARS= \
@@ -22,48 +19,50 @@ _PERL5_SITEVAR.INSTALLSITEMAN3DIR= installsiteman3dir
_PERL5_SITEVAR.SITELIBEXP= sitelibexp
_PERL5_SITEVAR.SITEARCHEXP= sitearchexp
-.if exists(${PERL5})
-. if !defined(_PERL5_SITEPREFIX)
+.if defined(PERL5) && exists(${PERL5:Q})
+#
+# Locate some of the installation prefixes for ${PERL5} that are used to
+# define later variables.
+#
+. if !defined(_PERL5_PREFIX)
_PERL5_PREFIX!= \
- eval `${PERL5} -V:prefix 2>/dev/null`; ${ECHO} $$prefix
+ eval `${PERL5:Q} -V:prefix 2>/dev/null`; ${ECHO} $$prefix
+. endif
+MAKEVARS+= _PERL5_PREFIX
+. if !defined(_PERL5_SITEPREFIX)
_PERL5_SITEPREFIX!= \
- eval `${PERL5} -V:siteprefix 2>/dev/null`; ${ECHO} $$siteprefix
-MAKEFLAGS+= _PERL5_PREFIX=${_PERL5_PREFIX:Q}
-MAKEFLAGS+= _PERL5_SITEPREFIX=${_PERL5_SITEPREFIX:Q}
-
-. for _var_ in ${_PERL5_SITEVARS}
-. if !defined(PERL5_SUB_${_var_})
+ eval `${PERL5:Q} -V:siteprefix 2>/dev/null`; ${ECHO} $$siteprefix
+. endif
+MAKEVARS+= _PERL5_SITEPREFIX
+#
+# Define PERL5_SUB_* as the site variables minus the installation prefix
+# define later variables.
+#
+. for _var_ in ${_PERL5_SITEVARS}
+. if !defined(PERL5_SUB_${_var_})
PERL5_SUB_${_var_}!= \
- eval `${PERL5} -V:${_PERL5_SITEVAR.${_var_}} 2>/dev/null`; \
- ${ECHO} $${${_PERL5_SITEVAR.${_var_}}} | \
- ${SED} -e "s,^${_PERL5_SITEPREFIX}/,,"
-MAKEFLAGS+= PERL5_SUB_${_var_}=${PERL5_SUB_${_var_}:Q}
-. endif
-. endfor
-. if !defined(PERL5_SUB_INSTALLARCHLIB)
+ eval `${PERL5:Q} -V:${_PERL5_SITEVAR.${_var_}} 2>/dev/null`; \
+ ${ECHO} $${${_PERL5_SITEVAR.${_var_}}} | ${SED} -e "s,^${_PERL5_SITEPREFIX}/,,"
+. endif
+MAKEVARS+= PERL5_SUB_${_var_}
+. endfor
+
+. if !defined(PERL5_SUB_INSTALLARCHLIB)
PERL5_SUB_INSTALLARCHLIB!= \
eval `${PERL5} -V:installarchlib 2>/dev/null`; \
- ${ECHO} $$installarchlib | \
- ${SED} -e "s,^${_PERL5_PREFIX}/,,"
-MAKEFLAGS+= PERL5_SUB_INSTALLARCHLIB=${PERL5_SUB_INSTALLARCHLIB:Q}
-. endif
-. if !defined(PERL5_SUB_INSTALLSCRIPT)
+ ${ECHO} $$installarchlib | ${SED} -e "s,^${_PERL5_PREFIX}/,,"
+. endif
+MAKEVARS+= PERL5_SUB_INSTALLARCHLIB
+. if !defined(PERL5_SUB_INSTALLSCRIPT)
PERL5_SUB_INSTALLSCRIPT!= \
eval `${PERL5} -V:installscript 2>/dev/null`; \
- ${ECHO} $$installscript | \
- ${SED} -e "s,^${_PERL5_PREFIX}/,,"
-MAKEFLAGS+= PERL5_SUB_INSTALLSCRIPT=${PERL5_SUB_INSTALLSCRIPT:Q}
-. endif
+ ${ECHO} $$installscript | ${SED} -e "s,^${_PERL5_PREFIX}/,,"
. endif
-.endif
+MAKEVARS+= PERL5_SUB_INSTALLSCRIPT
+.endif # PERL5
.if ${PKG_INSTALLATION_TYPE} == "overwrite"
. for _var_ in SITELIB SITEARCH ARCHLIB
-. if defined(PERL5_SUB_INSTALL${_var_})
PERL5_${_var_}?= ${LOCALBASE}/${PERL5_SUB_INSTALL${_var_}}
-MAKEFLAGS+= PERL5_${_var_}=${PERL5_${_var_}:Q}
-. endif
. endfor
.endif
-
-.endif # _PERL5_VARS_MK