opt-env.mk revision 1.4
11.4Srillig# $NetBSD: opt-env.mk,v 1.4 2022/03/26 13:32:31 rillig Exp $
21.1Srillig#
31.4Srillig# Tests for the -e command line option, which looks up environment variables
41.4Srillig# before those from the global scope.  It has no influence on variables from
51.4Srillig# the command line though.
61.4Srillig#
71.4Srillig# This option is required by POSIX.
81.1Srillig
91.3Srillig# The variable FROM_ENV is defined in ./Makefile.
101.1Srillig
111.3Srillig.MAKEFLAGS: -e
121.3Srillig
131.3Srillig.if ${FROM_ENV} != value-from-env
141.3Srillig.  error ${FROM_ENV}
151.3Srillig.endif
161.3Srillig
171.3Srillig# Try to override the variable; this does not have any effect.
181.3SrilligFROM_ENV=	value-from-mk
191.3Srillig.if ${FROM_ENV} != value-from-env
201.3Srillig.  error ${FROM_ENV}
211.3Srillig.endif
221.3Srillig
231.3Srillig# Try to append to the variable; this also doesn't have any effect.
241.3SrilligFROM_ENV+=	appended
251.3Srillig.if ${FROM_ENV} != value-from-env
261.3Srillig.  error ${FROM_ENV}
271.3Srillig.endif
281.3Srillig
291.3Srillig# The default assignment also cannot change the variable.
301.3SrilligFROM_ENV?=	default
311.3Srillig.if ${FROM_ENV} != value-from-env
321.3Srillig.  error ${FROM_ENV}
331.3Srillig.endif
341.3Srillig
351.3Srillig# Neither can the assignment modifiers.
361.3Srillig.if ${FROM_ENV::=from-condition}
371.3Srillig.endif
381.3Srillig.if ${FROM_ENV} != value-from-env
391.3Srillig.  error ${FROM_ENV}
401.3Srillig.endif
411.3Srillig
421.3Srillig# Even .undef doesn't work since it only affects the global scope,
431.3Srillig# which is independent from the environment variables.
441.3Srillig.undef FROM_ENV
451.3Srillig.if ${FROM_ENV} != value-from-env
461.3Srillig.  error ${FROM_ENV}
471.3Srillig.endif
481.3Srillig
491.3Srilligall: .PHONY
50