2017-10-12 125 views
0

我想“让” BIND DNS服务器。
我使用命令:make -f Makefile.in,我得到的错误:
Makefile.in:32: *** missing separator (did you mean TAB instead of 8 Spaces?). Stop.
我想它无论在AntiX Linux操作系统(这是基于Debian的测试),并在Ubuntu。
我试过BIND版本9.11.2,9.10.6和9.9.11。
我正在使用键盘布局QWERTY US UTF8(但我没有编辑Makefile.in)。生成文件缺少分隔标签

Makefile.in线32有这样的:
@[email protected]
我从来没有见过这样的行前(我是新来的“制作”)。
这可能是一个指令替换空间字符并导致问题?

我知道有几个类似这样的问题,这是downvoted或关闭作为题外话,但一些答案,将不胜感激,或者可能,如果你能告诉我应该在哪里这个问题问?

回答

2

不能使用Makefile.in为一个makefile。这不是一个makefile。这是一个makefile文件模板,必须首先处理把它变成一个真正的makefile文件,将被称为Makefile(无.in)。

您应该阅读源代码发行版中的INSTALLREADME文件以了解如何构建它。我还没有试图建立BIND(在很长很长的时间内),但很可能它带有一个必须首先运行的configure脚本。该脚本将为您创建Makefile。然后你运行make(没有任何-f ...标志)。

1

正如MadScientist更正:

Makefile.inautoconf和朋友使用的模板文件。具体来说,autoconf需要configure.in文件来生成configure脚本。然后该脚本需要Makefile.in并修改它以创建Makefile。你发现的是这个过程的标志。你可以找到更多的信息here

+0

是'autoconf'程序运行吗? – thanopi57

+1

'autoconf'是安装在大多数系统上的标准程序。它通常从'.configure'脚本调用。正如@MadScientist提到的,应该在你的软件包的“INSTALL”或“README”文件中说明如何正确安装系统。 – HardcoreHenry

+0

对不起,但这是不正确的。您不要使用“autoconf”来生成Makefiles。你使用autoconf将'configure.ac'文件(很久以前称为'configure.in')转换为'configure'脚本。该步骤由软件的_maintainers_(发布您下载的BIND源代码发布的人员)执行。这不是由下载源代码发布版的最终用户完成的:这些用户不需要autoconf。最终用户只需要运行“配置”。他们绝对不应该运行autoconf。 – MadScientist