make - Makefile conditional not respecting target-specific variables -



make - Makefile conditional not respecting target-specific variables -

is there way utilize native makefile if-else conditional , have respects target-specific variables re-assignments?

example makefile:

#!/usr/bin/make config = debug .phony: test printme test: override config=release test: printme @echo "done." printme: ifeq "$(config)" "debug" @echo "should debug -> $(config)" else @echo "should release -> $(config)" endif

running make test prints next output:

should debug -> release done.

the output i'm looking should release -> release how can accomplish that? need utilize shell conditionals instead?

this behavior seems logical me: @ time of parsing makefile, config defined debug. ifeq conditional uses value of config knows @ time. hence chooses ifeq branch outputs "should debug".

the target-specific variable defined release target test. prerequisite printme knows target-specific variable , ouputs release.

may suggest set variable make on command line purpose want. it's not many more characters write when invoking make brings seem willing.

make config=release

makefile make

Comments

Popular posts from this blog

Delphi change the assembly code of a running process -

json - Hibernate and Jackson (java.lang.IllegalStateException: Cannot call sendError() after the response has been committed) -

C++ 11 "class" keyword -