Makefile GNU make 3.81:评估功能不工作?

Makefile GNU make 3.81:评估功能不工作?,makefile,eval,Makefile,Eval,我最近从GNU make文档中找到了这段引用eval函数的示例代码。我真的很喜欢它,但是当我试着在我的机器上测试它时(make3.81/Debian),它所做的只是尝试链接服务器而不首先编译c文件。。。为什么?make 3.81是否不兼容 外壳输出: $ make cc -o server cc: no input files 代码: 我认为如果您从定义行中删除=,它会起作用: define PROGRAM_template ... endef 我已经用GNUMake 3.81测

我最近从GNU make文档中找到了这段引用eval函数的示例代码。我真的很喜欢它,但是当我试着在我的机器上测试它时(make3.81/Debian),它所做的只是尝试链接服务器而不首先编译c文件。。。为什么?make 3.81是否不兼容

外壳输出:

$ make
cc     -o server
cc: no input files
代码:


我认为如果您从
定义
行中删除
=
,它会起作用:

define PROGRAM_template
  ...
endef

我已经用GNUMake 3.81测试过了。至于为什么这样做而手册中的版本不起作用,我不知道。

问题是,
=
是GNU make 3.82中添加的一项功能,而GNU make手册(包括GNU.org上的副本,谷歌将在那里发送大多数人)在某项功能特定于3.82时没有给出任何提示。将(3.81)和(3.82)相比,差不多两年后,这仍然是一个问题(在Ubuntu 14.04中)。再过两年,这仍然是一个问题(OSX)
define PROGRAM_template
  ...
endef