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