1# $NetBSD: cmdline.mk,v 1.2 2020/11/15 14:07:53 rillig Exp $ 2# 3# Tests for command line parsing and related special variables. 4 5TMPBASE?= /tmp 6SUB1= a7b41170-53f8-4cc2-bc5c-e4c3dd93ec45 # just a random UUID 7SUB2= 6a8899d2-d227-4b55-9b6b-f3c8eeb83fd5 # just a random UUID 8MAKE_CMD= env TMPBASE=${TMPBASE}/${SUB1} ${.MAKE} -f ${MAKEFILE} -r 9DIR2= ${TMPBASE}/${SUB2} 10DIR12= ${TMPBASE}/${SUB1}/${SUB2} 11 12all: prepare-dirs 13all: makeobjdir-direct makeobjdir-indirect 14 15prepare-dirs: 16 @rm -rf ${DIR2} ${DIR12} 17 @mkdir -p ${DIR2} ${DIR12} 18 19# The .OBJDIR can be set via the MAKEOBJDIR command line variable. 20# It must be a command line variable; an environment variable would not work. 21makeobjdir-direct: 22 @echo $@: 23 @${MAKE_CMD} MAKEOBJDIR=${DIR2} show-objdir 24 25# The .OBJDIR can be set via the MAKEOBJDIR command line variable, 26# and that variable could even contain the usual modifiers. 27# Since the .OBJDIR=MAKEOBJDIR assignment happens very early, 28# the SUB2 variable in the modifier is not defined yet and is therefore empty. 29# The SUB1 in the resulting path comes from the environment variable TMPBASE, 30# see MAKE_CMD. 31makeobjdir-indirect: 32 @echo $@: 33 @${MAKE_CMD} MAKEOBJDIR='$${TMPBASE}/$${SUB2}' show-objdir 34 35show-objdir: 36 @echo $@: ${.OBJDIR:Q} 37