diff options
author | jlam <jlam@pkgsrc.org> | 2005-06-01 03:04:16 +0000 |
---|---|---|
committer | jlam <jlam@pkgsrc.org> | 2005-06-01 03:04:16 +0000 |
commit | 4631a73a95d1a53616ccced01fbf11c46c2e5d0c (patch) | |
tree | 6aaeaa76798bb23e32433c2f97c18559ee6d2803 /mk/bsd.makevars.mk | |
parent | 5558bf0a22e30f072beaa7d1b91fab8ec07ae975 (diff) | |
download | pkgsrc-4631a73a95d1a53616ccced01fbf11c46c2e5d0c.tar.gz |
Separate out the logic to include the correct <phase>.makevars.mk file
into a new file bsd.makevars.mk that can be included by other Makefiles.
Diffstat (limited to 'mk/bsd.makevars.mk')
-rw-r--r-- | mk/bsd.makevars.mk | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/mk/bsd.makevars.mk b/mk/bsd.makevars.mk new file mode 100644 index 00000000000..2fe63a99171 --- /dev/null +++ b/mk/bsd.makevars.mk @@ -0,0 +1,40 @@ +# $NetBSD: bsd.makevars.mk,v 1.1 2005/06/01 03:04:16 jlam Exp $ +# +# This Makefile fragment is included by other Makefiles to set all of +# the variables saved through MAKEVARS. Typical usage is: +# +# .include "../../mk/bsd.makevars.mk" +# .if !define(EXPENSIVE_VAR) +# EXPENSIVE_VAR!= ( ... an expensive computation ... ) +# .endif +# MAKEVARS+= EXPENSIVE_VAR +# +# This causes EXPENSIVE_VAR to be computed, then subsequently stored in +# the variable cache file. The next time through, EXPENSIVE_VAR is +# set by bsd.makevars.mk, which avoids running the expensive computation +# again. +# +# The cache files are created as we pass through each phase of the build, +# and we only include the latest cache file that was created. +# + +.if !defined(_REV_ALL_PHASES) +_REV_ALL_PHASES= # empty +. for _phase_ in ${ALL_PHASES} +_REV_ALL_PHASES:= ${_phase_} ${_REV_ALL_PHASES} +. endfor +.endif +MAKEVARS+= _REV_ALL_PHASES + +# Try including the .makevars.mk.* files in reverse order so that the +# latest file is included and no more. +# +.for _phase_ in ${_REV_ALL_PHASES} +_MAKEVARS_MK.${_phase_}= ${WRKDIR}/.${_phase_}_makevars.mk +. if !target(${_phase_}-vars) +${_phase_}-vars: ${_MAKEVARS_MK.${_phase_}} +. endif +. if !defined(_MAKEVARS_MK) +. sinclude "${_MAKEVARS_MK.${_phase_}}" +. endif +.endfor |