我想为一个编译器编写一个(gmake) makefile,这个编译器和gcc不同,它将所有的输出文件都放在一个特定的目录中,而这种行为是无法改变的。
我的源码分布在多个目录中。我应该如何编写模式规则来编译这些源码呢?
好的,这有点不清楚。这里有一个例子。我的源码可能长这样:
./folder1/foo.c
./folder2/bar.c
输出文件将会像这样:
./obj/foo.obj
./obj/bar.obj
我的源代码编译规则应该长成什么样子?
%.obj : %.c
$(COMPILER) -c $<
不起作用。
有什么想法吗?我希望避免为每个源文件设置一个隐式规则...
VPATH
,或者创建folder1/Makefile
和obj/Makefile
,它们将包含公共规则(例如你提供的规则)的../Makefile.inc
。 - dma_k