2017-10-12 123 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