makefile - In make, how do I run prequisites exactly once? -


let's pretend have 2 servers , b want have ability deploy separately , in makefile targets. let's there's preparation step want run once before deployment, whether it's 1 or both. how that?

here's have far, it's not dry.

clean:     # cleanup stuff  deploy:     make clean     ssh $(server) do-remote-deployment-stuff  deploy-to-a:     deploy server=myservera  deploy-to-b:     deploy server=myserverb  deploy-all:     deploy-to-a     deploy-to-b 

see how it'd run 'clean' twice?

instead of using recursion, put target want run once prerequisite:

deploy-to-a: clean         ... deploy-to-b: clean         ... 

however, attempt set server= etc. won't work, , neither deploy-all rule. can't put make targets make recipes. can use pattern rules:

servers = b  a_server = myservera b_server = myserverb  deploy-all: $(servers:%=deploy-to-%)  deploy-to-%: clean         ssh $($*_server) do-remote-deployment-stuff  clean:         # cleanup stuff 

Comments

Popular posts from this blog

java - WrongTypeOfReturnValue exception thrown when unit testing using mockito -

php - Magento - Deleted Base url key -

android - How to disable Button if EditText is empty ? -