为多个操作系统创建一个makefile,这个make(ext?)不起作用?

时间:2008-11-20 20:59:13

标签: makefile multiple-makefiles

我有一个使用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”行。

2 个答案:

答案 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。它应该适用于大多数平台。