Rookie
Rookie

Reputation: 5467

How to call Makefile located in other directory?

I am trying to do this:

I want to call a make (Makefile exists in some other directory, abc path can be used) from a shell script located in a different directory. How do I do this?

Since shell scripting does not allow me to cd into the Makefile directory and execute make, how can I write the shell command (by giving path to the Makefile to be executed) to execute make?

Upvotes: 27

Views: 33065

Answers (1)

GNU make accepts many options, notably -C to change directory before running, and -f for giving the Makefile to follow.

Combine them appropriately.

Consider using remake to ease debugging (notably with -x) of Makefile related issues. With GNU make version 4 or better, also use make --trace...

You could have your own executable shell script (e.g. in your $HOME/bin/ which would be in your $PATH) which uses both cd and make).

You could consider other build automation tools (ninja perhaps)

Read also P.Miller's paper Recursive Make considered harmful

Upvotes: 37

Related Questions