#T commandline: ['OBASIC=oval']

BASIC = val

TEST = $(TEST)

TEST2 = $(TES
TEST2 += T)

TES T = val

RECVAR = foo
RECVAR += var baz 

IMMVAR := bloo
IMMVAR += $(RECVAR)

BASIC ?= notval

all: BASIC = valall
all: RECVAR += $(BASIC)
all: IMMVAR += $(BASIC)
all: UNSET += more
all: OBASIC += allmore

CHECKLIT = $(NULL) check
all: CHECKLIT += appendliteral

RECVAR = blimey

TESTEMPTY = \
	$(NULL)

all: other
	test "$(TEST2)" = "val"
	test '$(value TEST2)' = '$$(TES T)'
	test "$(RECVAR)" = "blimey valall"
	test "$(IMMVAR)" = "bloo foo var baz  valall"
	test "$(UNSET)" = "more"
	test "$(OBASIC)" = "oval"
	test "$(CHECKLIT)" = " check appendliteral"
	test "$(TESTEMPTY)" = ""
	@echo TEST-PASS

OVAR = oval
OVAR ?= onotval

other: OVAR ?= ooval
other: LATERVAR ?= lateroverride

LATERVAR = olater

other:
	test "$(OVAR)" = "oval"
	test "$(LATERVAR)" = "lateroverride"