pjs/build/pymake/tests/ifdefs.mk

128 строки
2.2 KiB
Makefile

ifdef FOO
$(error FOO is not defined!)
endif
FOO = foo
FOOFOUND = false
BARFOUND = false
BAZFOUND = false
ifdef FOO
FOOFOUND = true
else ifdef BAR
BARFOUND = true
else
BAZFOUND = true
endif
BAR2 = bar2
FOO2FOUND = false
BAR2FOUND = false
BAZ2FOUND = false
ifdef FOO2
FOO2FOUND = true
else ifdef BAR2
BAR2FOUND = true
else
BAZ2FOUND = true
endif
FOO3FOUND = false
BAR3FOUND = false
BAZ3FOUND = false
ifdef FOO3
FOO3FOUND = true
else ifdef BAR3
BAR3FOUND = true
else
BAZ3FOUND = true
endif
ifdef RANDOM
CONTINUATION = \
else \
endif
endif
ifndef ASDFJK
else
$(error ASFDJK was not set)
endif
TESTSET =
ifdef TESTSET
$(error TESTSET was not set)
endif
TESTEMPTY = $(NULL)
ifndef TESTEMPTY
$(error TEST-FAIL TESTEMPTY was probably expanded!)
endif
# ifneq ( a,a)
# $(error Arguments to ifeq should be stripped before evaluation)
# endif
XSPACE = x # trick
ifneq ($(NULL),$(NULL))
$(error TEST-FAIL ifneq)
endif
ifneq (x , x)
$(error argument-stripping1)
endif
ifeq ( x,x )
$(error argument-stripping2)
endif
ifneq ($(XSPACE), x )
$(error argument-stripping3)
endif
ifeq 'x ' ' x'
$(error TEST-FAIL argument-stripping4)
endif
all:
test $(FOOFOUND) = true # FOOFOUND
test $(BARFOUND) = false # BARFOUND
test $(BAZFOUND) = false # BAZFOUND
test $(FOO2FOUND) = false # FOO2FOUND
test $(BAR2FOUND) = true # BAR2FOUND
test $(BAZ2FOUND) = false # BAZ2FOUND
test $(FOO3FOUND) = false # FOO3FOUND
test $(BAR3FOUND) = false # BAR3FOUND
test $(BAZ3FOUND) = true # BAZ3FOUND
ifneq ($(FOO),foo)
echo TEST-FAIL 'FOO neq foo: "$(FOO)"'
endif
ifneq ($(FOO), foo) # Whitespace after the comma is stripped
echo TEST-FAIL 'FOO plus whitespace'
endif
ifeq ($(FOO), foo ) # But not trailing whitespace
echo TEST-FAIL 'FOO plus trailing whitespace'
endif
ifeq ( $(FOO),foo) # Not whitespace after the paren
echo TEST-FAIL 'FOO with leading whitespace'
endif
ifeq ($(FOO),$(NULL) foo) # Nor whitespace after expansion
echo TEST-FAIL 'FOO with embedded ws'
endif
ifeq ($(BAR2),bar)
echo TEST-FAIL 'BAR2 eq bar'
endif
ifeq '$(BAR3FOUND)' 'false'
echo BAR3FOUND is ok
else
echo TEST-FAIL BAR3FOUND is not ok
endif
ifndef FOO
echo TEST-FAIL "foo not defined?"
endif
@echo TEST-PASS