我有一个使用mingw32构建的工作makefile。现在我将makefile重命名为Makefile.w32(source - > http://pastie.org/319964)
现在我有一个包含以下内容的Makefile。问题是,它不构建我的源
all:
make mingw32
clean:
@echo "causes an infinite loop -> make mingw32 clean"
mingw32:
@echo "yeahhhhhhhhh"
make Makefile.w32
mingw32-clean:
@echo "mingw clean"
make Makefile.w32 clean
结果:
> "make"
make mingw32
make[1]: Entering directory `/c/nightly/test'
yeahhhhhhhhh
make Makefile.w32
make[2]: Entering directory `/c/nightly/test'
make[2]: Nothing to be done for `Makefile.w32'.
make[2]: Leaving directory `/c/nightly/test'
make[1]: Leaving directory `/c/nightly/test'
在我看来,它不喜欢Makefile.w32扩展名。我不明白它为什么不建造。它显然是我的“make Makefile.w32”行。
答案 0 :(得分:3)
“make Makefile.w32”正在寻找名为Makefile.w32的目标,而不是该名称的make文件。要运行make并告诉它读取make文件“Makefile.w32”,请使用-f开关:
make -f Makefile.w32
编辑:顺便提一下,为什么你要在“全部”目标中启动一个单独的make实例,如果你想要的是“全部”依赖于同一个中的“mingw32”目标制作文件?恕我直言,将其声明为依赖目标会更好:
all: mingw32
与“clean”和“mingw32-clean”相同:
clean: mingw32-clean
答案 1 :(得分:0)
您可以使用cmake生成makefile。它应该适用于大多数平台。