当前位置: 技术问答>linux和unix
请教各位专家:怎样写makefile遍历整个目录下的文件
来源: 互联网 发布时间:2016-03-05
本文导语: HELP! 遇上一难题:指定源文件目录,改目录下有一类文件为.x后缀,某些甚至位于更深的目录下。在用make build项目时需要先调用一工具script.exe预处理这些.x文件,命令行为script.exe xxx.x xxx.c然后才可编译生成的c文件...
HELP! 遇上一难题:指定源文件目录,改目录下有一类文件为.x后缀,某些甚至位于更深的目录下。在用make build项目时需要先调用一工具script.exe预处理这些.x文件,命令行为script.exe xxx.x xxx.c然后才可编译生成的c文件。问题是如何写makefile遍历所有这些文件呢?目前我写的大致样式如下:
SRCDIR = ..src
FILE_LIST = ? #如何遍历得到所有.x文件?文件分布在SRCDIR下很多子目录下
generate_code:
@for X in $(FILE_LIST);
do
此处调用script
done
另外因为.x文件很多,FILE_LIST会很大,这样写是否还影响效率?能否有其他写法?请高手赐教!拜托了!
SRCDIR = ..src
FILE_LIST = ? #如何遍历得到所有.x文件?文件分布在SRCDIR下很多子目录下
generate_code:
@for X in $(FILE_LIST);
do
此处调用script
done
另外因为.x文件很多,FILE_LIST会很大,这样写是否还影响效率?能否有其他写法?请高手赐教!拜托了!
|
find 总是好用的嘛!
#
# name: x2c.mk
# auth: mymtom
# date: 2008-02-18
#
# href:
# http://topic.csdn.net/u/20080217/00/ffc0d1c4-dd7a-4095-9084-d57197782c17.html
#
x2c:
@for _f in `find . -name '*.x'`; do
echo $${_f} `dirname $${_f}`/`basename -s '.x' $${_f}`.c;
done
|
在Makefile里加后缀规则就可以了嘛! 然后
.SUFFIX .x
.x.c
script $