为GNU make命令指定不同的GNUmakefile

为GNU make命令指定不同的GNUmakefile,makefile,gnu,gnu-make,Makefile,Gnu,Gnu Make,我的目录中有两个gnumake文件,如下所示 GNUmakefile& GNUmakefile2 如果我必须让“make”命令处理“GNUmakefile2”而不是“GNUmakefile”,请有人告诉我必须使用的命令 我使用了下面的命令, make-f GNUmakefile2 但在这种情况下,我得到以下错误 这是gnustep make 2.6.1。键入“make print gnustep make help”以获取帮助 make[1]:**没有规则将目标设置为“所有内部主控工具”。停下来

我的目录中有两个gnumake文件,如下所示

GNUmakefile& GNUmakefile2

如果我必须让“make”命令处理“GNUmakefile2”而不是“GNUmakefile”,请有人告诉我必须使用的命令

我使用了下面的命令,
make-f GNUmakefile2

但在这种情况下,我得到以下错误

这是gnustep make 2.6.1。键入“make print gnustep make help”以获取帮助

make[1]:**没有规则将目标设置为“所有内部主控工具”。停下来*

make:*[内部所有]错误2*

我认为它将GNUmakefile视为makefile(当我使用make with-f命令时),因此它正在检查GNUmakefile中的规则

目前,我正在做的是将所需的文件(我想要执行make命令)重命名为“GNUmakefile”。我在执行“make”命令时没有遇到任何错误,但我认为这不是正确的解决方案

请让我知道此场景需要使用哪个命令。谢谢你的帮助

在检查了Beta的解决方案后(即,但该makefile正在第二次调用Make,第二次Make进程可能正在读取GNUmakefile),我所做的是将现有的“GNUmakefile”重命名为“GNUmakefile3”

因此,目前在我的目录中存在以下makefile:-“GNUmakefile2”和“GNUmakefile3”

然后我执行了以下命令:-$make-f GNUmakefile2

我收到以下错误

这是gnustep make 2.6.1。键入“生成打印gnustep生成帮助”以获取帮助。
make[1]:GNUmakefile:没有这样的文件或目录
make[1]:*没有规则将目标设置为“GNUmakefile”。停下来。
make::
[内部所有]错误2


请告诉我这里有什么问题

您的makefile包含来自FSF的两个巨大makefile。第二个
库.make
,包含以下规则:

ifeq ($(GNUSTEP_MAKE_PARALLEL_BUILDING), no)
# Standard building
...
else
# Parallel building. ...
internal-library-all_:: $(GNUSTEP_OBJ_INSTANCE_DIR) $(OBJ_DIRS_TO_CREATE)
    $(ECHO_NOTHING_RECURSIVE_MAKE)$(MAKE) -f $(MAKEFILE_NAME) ...
endif
第一个,
common.make
包含以下赋值:

# The default name of the makefile to be used in recursive invocations of make
ifeq ($(MAKEFILE_NAME),)
  MAKEFILE_NAME = GNUmakefile
endif

因此,请尝试
make-f GNUmakefile2 GNUSTEP\u make\u PARALLEL\u BUILDING=no
make-f GNUmakefile2 MAKEFILE\u NAME=GNUmakefile2
,看看这是否解决了问题。

make-f GNUmakefile2
是正确的命令,但MAKEFILE正在第二次调用make,第二个Make过程可能是读取GNUmakefile,因为这是默认值。你能给我们看看GNUmakefile2吗?为了解决此问题,我们可能必须对其进行修改。请查找GNUmakefile2的以下内容,包括$(GNUSTEP\u MAKEFILES)/common.make LIBRARY\u NAME=libHelloWorld libHelloWorld\u HEADER\u FILES=HelloWorld.h libHelloWorld\u HEADER\u FILES\u INSTALL\u DIR=HelloWorld libHelloWorld\u OBJC\u FILES=HelloWorld.m include$(GNUSTEP\u MAKEFILES)/请告诉我这里有什么问题。谢谢你的帮助。@Beta:我根据你的输入修改了问题,请检查。这证实了我的理论;其中一个makefile包含类似“$(MAKE)-f GNUMakefile internal master tool all”的命令。请向我们展示
common.make
library.make
。嗨,请找到下面的常用链接。make:-请找到下面的库链接。make:-请检查它。谢谢你的帮助。嗨,非常感谢。“make-f GNUmakefile2 MAKEFILE_NAME=GNUmakefile2”命令有效。其他命令(即make-f GNUmakefile2 GNUSTEP_make_PARALLEL_BUILDING=no)不起作用。我仍然不明白为什么递归调用“make”命令。再次感谢你的帮助。