Home | History | Annotate | Line # | Download | only in unit-tests
cmdline-undefined.mk revision 1.2
      1  1.2  rillig # $NetBSD: cmdline-undefined.mk,v 1.2 2020/11/04 04:49:33 rillig Exp $
      2  1.1  rillig #
      3  1.1  rillig # Tests for undefined variable expressions in the command line.
      4  1.1  rillig 
      5  1.1  rillig all:
      6  1.2  rillig 	# When the command line is parsed, variable assignments using the
      7  1.2  rillig 	# '=' assignment operator do get their variable name expanded
      8  1.2  rillig 	# (which probably occurs rarely in practice, if at all), but their
      9  1.2  rillig 	# variable value is not expanded, as usual.
     10  1.2  rillig 	#
     11  1.1  rillig 	@echo 'The = assignment operator'
     12  1.1  rillig 	@${.MAKE} -f ${MAKEFILE} print-undefined \
     13  1.1  rillig 		CMDLINE='Undefined is $${UNDEFINED}.'
     14  1.1  rillig 	@echo
     15  1.1  rillig 
     16  1.1  rillig 	# The interesting case is using the ':=' assignment operator, which
     17  1.1  rillig 	# expands its right-hand side.  But only those variables that are
     18  1.1  rillig 	# defined.
     19  1.1  rillig 	@echo 'The := assignment operator'
     20  1.1  rillig 	@${.MAKE} -f ${MAKEFILE} print-undefined \
     21  1.1  rillig 		CMDLINE:='Undefined is $${UNDEFINED}.'
     22  1.1  rillig 	@echo
     23  1.1  rillig 
     24  1.1  rillig .if make(print-undefined)
     25  1.1  rillig 
     26  1.1  rillig .MAKEFLAGS: MAKEFLAGS_ASSIGN='Undefined is $${UNDEFINED}.'
     27  1.1  rillig .MAKEFLAGS: MAKEFLAGS_SUBST:='Undefined is $${UNDEFINED}.'
     28  1.1  rillig 
     29  1.1  rillig .info From the command line: ${CMDLINE}
     30  1.1  rillig .info From .MAKEFLAGS '=': ${MAKEFLAGS_ASSIGN}
     31  1.1  rillig .info From .MAKEFLAGS ':=': ${MAKEFLAGS_SUBST}
     32  1.1  rillig 
     33  1.1  rillig UNDEFINED?=	now defined
     34  1.1  rillig 
     35  1.1  rillig .info From the command line: ${CMDLINE}
     36  1.1  rillig .info From .MAKEFLAGS '=': ${MAKEFLAGS_ASSIGN}
     37  1.1  rillig .info From .MAKEFLAGS ':=': ${MAKEFLAGS_SUBST}
     38  1.1  rillig 
     39  1.1  rillig print-undefined:
     40  1.1  rillig .endif
     41