Thu 28 Feb 2013 08:35:30 AM UTC, comment #2:
(just paste the mail with solution here for your reference)
Thanks Philip. It works for me, and now I can distribute my makefiles into different path.
However, I still hope it can be improved as the expreience of C/C++ tells us it shall be able to. When reading a makefile, the path of this file should be added into the search path automaticallly.
2013/2/28 Philip Guenther <guenther@gmail.com>
On Wed, Feb 27, 2013 at 8:55 PM, Jian <INVALID.NOREPLY@gnu.org> wrote:
...
> Supposing 2 makefiles in dir A: 1.mak, 2.mak, and 1.mak include 2.mak.
> Now in dir B, 3.mak includes 'A/1.mak' (will auto include 2.mak). But error
> shows that 2.mak cannot be found.
>
> The make option "-I" can be the workaround like:
> cd B
> make -f 3.mak -IA
>
> But it's not acceptable to tell user to uses "-I" to make every time. make
> shall be able to find 2.mak.
So have 1.mak look for 2.mak in the same directory, by doing something like:
# Get the directory part of the path by which 1.mak was included
# This should be before any other includes in 1.mak
dir_of_1 = $(dir $(lastword $(MAKEFILE_LIST)))
...and then later:
# pull in 2.mak in the same directory as this file
include ${dir_of_1}2.mak
|