请教一个makefile的问题: 目录结构
top_dir
|____Makefile
|____sub_dir0
| |______Makefile
|____sub_dir1
|______Makefile
在top_dir下面一个makefile, 在sub_dir0和sub_dir1下面也有一个makefile, top Makefile先让子目录编译得到.o, 然后在顶层把它们编成.so, 顶层这样写
objs = ./obj/sub_dir0.o ./obj/sub_dir1.o
$(objs):
$(MAKE) -C $(basename $(notdir $@))
top.so: $(objs)
$(CC) -o $@ $* $(CFLAGS)
.PHONY: $(objs)
这样的依赖关系破坏啦, top.so总是会执行, 哪怕.o没重编
除非我不把.o定义成.PHONY目标 把$(objs)展开写,然后在上面加上dir0.o依赖的文件
./obj/dir0.o: ./sub_dir0/a.c ./sub_dir0/a.h
$(MAKE) -C sub_dir0
这样写起来太繁琐啦
看了python, vim编译的脚本, 没领会要点
感觉还是要写成一个大的Makefile才方便处理依赖, 但写起来也比较痛苦
--
修改:eematlab FROM 101.86.17.*
FROM 101.86.17.*