我想在我的项目目录中建立一个Makefile系统,以便在其他规则中定义规则.比方说,我有一个名为“test”的目录,里面是“test.c”,但我想使用根目录下Makefile中定义的规则构建test.c 这是一个
这是一个例子
#Makefile (inside base dir) %.o: %.c gcc -Wall -c $^ all: make -C test out.a #test/Makefile out.a: test.o ar rcs $@ $^ #test/test.c int main() { return 0; } #inside root dir $make make -C test make[1]: Entering directory `test' cc -c -o test.o test.c /usr/ucb/cc: language optional software package not installed make[1]: *** [test.o] Error 1 make[1]: Leaving directory `test' make: *** [all] Error 2
请注意它是如何使用根makefile中定义的gcc调用cc而不是我的规则.
总之,我不想在每个Makefile中定义相同的规则
对于Microsoft nmake,请使用:!INCLUDE ..\makefile.defs
(假设父目录中的makefile.defs包含基本规则)
对于Gnu make,请使用:
include ../makefile.defs
见http://www.gnu.org/software/automake/manual/make/Include.html