理解分配给makefile中宏的数据

理解分配给makefile中宏的数据,makefile,autotools,autoconf,automake,Makefile,Autotools,Autoconf,Automake,我已经在这个论坛上搜索过了,但是找不到这个问题的答案,如果我错过了,请原谅,并告诉我同样的问题 我试图理解makefiles,并在Linux上偶然发现了tcpreplay实用程序的makefile。有许多宏的定义值以@开头,以@结尾。这些值是什么,如何使用?片段: ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOGEN = @AUTOGEN@ AUTOH

我已经在这个论坛上搜索过了,但是找不到这个问题的答案,如果我错过了,请原谅,并告诉我同样的问题

我试图理解makefiles,并在Linux上偶然发现了tcpreplay实用程序的makefile。有许多宏的定义值以@开头,以@结尾。这些值是什么,如何使用?片段:

    ACLOCAL = @ACLOCAL@
    AMTAR = @AMTAR@
    AR = @AR@
    AUTOCONF = @AUTOCONF@
    AUTOGEN = @AUTOGEN@
    AUTOHEADER = @AUTOHEADER@

这是一个makefile模板,很可能用于使用GNU配置脚本构建的软件。运行configure时,@NAME@占位符将替换为运行时确定的正确值。例如,@AR@将是archiver的名称或路径,/usr/bin/AR。然后您就有了一个适当的Makefile,可以通过make调用运行它。如果实际的Makefile仍然包含@NAME@占位符,则运行configure时出错

您很可能看到的不是名为Makefile的文件,而是名为Makefile.in的文件。.in后缀,表示这是要配置的输入


您可以在中找到所有血淋淋的细节。

这是一个makefile模板,很可能用于使用GNU配置脚本构建的软件。运行configure时,@NAME@占位符将替换为运行时确定的正确值。例如,@AR@将是archiver的名称或路径,/usr/bin/AR。然后您就有了一个适当的Makefile,可以通过make调用运行它。如果实际的Makefile仍然包含@NAME@占位符,则运行configure时出错

您很可能看到的不是名为Makefile的文件,而是名为Makefile.in的文件。.in后缀,表示这是要配置的输入


您可以在中找到所有血淋淋的细节。

这些都是autotools构建系统使用的所有约定;搜索有关autotools的教程将对您有所帮助。这些都是autotools构建系统使用的约定;搜索有关自动工具的教程将对您有所帮助。从技术上讲,这些教程将替换为config.status,后者在configure结束时生成。我所看到的最好的描述就是这里的adl教程:从技术上讲,它们被config.status所取代,后者在configure的末尾生成。我所看到的最好的描述是adl的教程: