读书人

总控makefile怎么获取子目录makefile中

发布时间: 2013-10-01 12:15:56 作者: rapoo

总控makefile如何获取子目录makefile中改变了的变量
总控project/makefile中用export var +=\
子project/app/sub.mk 中用 export var += xxxx

然后在总控makefile中 include ./app/sub.mk

如此能取到子makefeil变量修改的 var么? 自己试了下,感觉不行。有高人指点下有其他办法么? makefile
[解决办法]
没效果是因为wildcard *.c是匹配当前目录的,而当前目录是你工程根目录,没有.c文件。


user@ubuntu:/dev/shm/test$ ls app/
1.c 2.c sub.mk
user@ubuntu:/dev/shm/test$ cat app/sub.mk
export var += $(wildcard *.c)
user@ubuntu:/dev/shm/test$ cat Makefile
var +=
include ./app/sub.mk

default:
@echo $(var)
user@ubuntu:/dev/shm/test$ make
3.c 4.c
user@ubuntu:/dev/shm/test$ ls
3.c 4.c app Makefile
user@ubuntu:/dev/shm/test$



我说过include就与写在一个makefile里面一样的效果。
如果你要匹配app下面的.c,需要用别的办法。
比如:

user@ubuntu:/dev/shm/test$ cat app/sub.mk
export var += $(wildcard $(subdir)/*.c)
user@ubuntu:/dev/shm/test$ cat Makefile
var +=

subdir=app
include $(subdir)/sub.mk

default:
@echo $(var)
user@ubuntu:/dev/shm/test$ make
app/1.c app/2.c
user@ubuntu:/dev/shm/test$

读书人网 >UNIXLINUX

热点推荐