我有一个 makefile,用于构建许多相互依赖的库。我构建它们的方式始终是相同的。
可能是这样的:
#Makefile
all: commonprefix_lib1 commonprefix_lib2 commonprefix_lib3
commonprefix_lib1 : commonprefix_lib2 commonprefix_lib3
cd $@ && autoreconf -if && ./configure && make && sudo make install
commonprefix_lib2 : commonprefix_lib3
cd $@ && autoreconf -if && ./configure && make && sudo make install
commonprefix_lib3 :
cd $@ && autoreconf -if && ./configure && make && sudo make install
是否可以使用通配符规则,以便我不会重复 cd/configure/make 的内容,因为知道它们都有不同的依赖项?
#Makefile
commonprefix_% : ???
cd $@ && autoreconf -if && ./configure && make && sudo make install
最佳答案
我认为您可以将依赖关系与模式规则分开声明:
#Makefile
all: commonprefix_lib1 commonprefix_lib2 commonprefix_lib3
commonprefix_lib1 : commonprefix_lib2 commonprefix_lib3
commonprefix_lib2 : commonprefix_lib3
commonprefix_% :
cd $@ && autoreconf -if && ./configure && make && sudo make install
关于生成文件: wildcard and different dependencies,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9031661/