当前位置: 技术问答>linux和unix
总控makefile如何获取子目录makefile中改变了的变量
来源: 互联网 发布时间:2017-04-26
本文导语: 总控project/makefile中用export var += 子project/app/sub.mk 中用 export var += xxxx 然后在总控makefile中 include ./app/sub.mk 如此能取到子makefeil变量修改的 var么? 自己试了下,感觉不行。有高人指点下有其他办法么?...
总控project/makefile中用export var +=
子project/app/sub.mk 中用 export var += xxxx
然后在总控makefile中 include ./app/sub.mk
如此能取到子makefeil变量修改的 var么? 自己试了下,感觉不行。有高人指点下有其他办法么?
子project/app/sub.mk 中用 export var += xxxx
然后在总控makefile中 include ./app/sub.mk
如此能取到子makefeil变量修改的 var么? 自己试了下,感觉不行。有高人指点下有其他办法么?
|
没效果是因为wildcard *.c是匹配当前目录的,而当前目录是你工程根目录,没有.c文件。
我说过include就与写在一个makefile里面一样的效果。
如果你要匹配app下面的.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$