First
I reference gnu make manual 3.81, because my version is 3.81 (make --v)
section 7.2
conditional-directive
text-if-one-is-true
else conditional-directive
text-if-true
else
text-if-false
endif
so my makefile
version=ag101p
ifeq ($(version),ag101p)
ag101p:ag101p.o zigbee.o
cc -o $@ $(CFLAGS) $^
else ifeq($(version),test)
@echo "test"
else
CFLAGS += -DM2C
m2c:m2c.o zigbee.o
cc -o $@ $(CFLAGS) $^
endif
.PHONY:clean
clean:CLL
rm -rf *.o ag101p m2c
CLL:
but console display
Makefile:7: Extraneous text after `else' directive
By adding a space between "else ifeq" and "(" works on linux platform. But on windows it won't work. I fix this on windows by adding anther endif make the "if else" nested.
ifeq ($(version),ag101p)
ag101p:ag101p.o zigbee.o
cc -o $@ $(CFLAGS) $^
else
ifeq ($(version),test)
@echo "test"
else
CFLAGS += -DM2C
m2c:m2c.o zigbee.o
cc -o $@ $(CFLAGS) $^
endif
endif
.PHONY:clean
clean:CLL
rm -rf *.o ag101p m2c
CLL:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With