在 FreeBSD 說明文件計劃樹底下的 Makefile
主要有三個類型。
子目錄的 Makefile
傳遞指令給在其所在目錄底下的目錄。
說明文件的 Makefile
s 用來描述要如何在其所在目錄產生文件。
Make 引用檔 會連結一些產生文件所需的程式,通常為 doc.
。xxx
.mk
這種 Makefile
通常採用的格式為:
SUBDIR =articles
SUBDIR+=books
COMPAT_SYMLINK = en
DOC_PREFIX?= ${.CURDIR}/..
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
前四行非空白的行用來定義 make(1) 的變數 SUBDIR
, COMPAT_SYMLINK
及 DOC_PREFIX
。
SUBDIR
敘述與 COMPAT_SYMLINK
敘述示範了如何指派數值到一個變數,覆蓋先前的值。
SUBDIR
的第二行敘述示範如何將數值附加到目前的變數值之後,SUBDIR
變數現在變成了 articles books
。
DOC_PREFIX
指派式示範了如何只在變數尚未定義時才指派數值給變數。這個功能在當 DOC_PREFIX
不在 Makefile
所認為的地方時,使用者可以覆蓋這個值,並提供正確的值。
這所有的敘述實際代表什麼意思呢? SUBDIR
會列出接下來建置流程應傳遞作業到那些子目錄。
COMPAT_SYMLINK
是一個用來指定語言官方編碼的相容性符號連結 (doc/en
會指向 en_US.ISO-8859-1
)。
DOC_PREFIX
是到 FreeBSD 說明文件計劃樹根目錄的路徑。這並非每一次都可以很輕易找到,為了增加彈性,要改寫也很簡單。.CURDIR
是一個 make(1) 內建的變數,代表目前目錄的路徑。
最後一行會引用 FreeBSD 說明文件計劃的全專案 make(1) 系統檔 doc.project.mk
,用來轉換這些變數成為建置的指令。
這些 Makefile
用來設定 make(1) 變數來描述要如何建置在該目錄中的說明文件。
這裡有一個例子:
MAINTAINER=nik@FreeBSD.org
DOC?= book
FORMATS?= html-split html
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED?=
# SGML content
SRCS= book.xml
DOC_PREFIX?= ${.CURDIR}/../../..
.include "$(DOC_PREFIX)/share/mk/docproj.docbook.mk"
MAINTAINER
變數讓提交者可以聲明文件在 FreeBSD 說明文件計劃中的所有權,並負責維護該文件。
DOC
是由此目錄會建立的主要文件的名稱 (不需要 .xml
副檔名)。SRCS
會列出產生文件所需的各別檔案,此處也應引用要在重新建置 (Rebuild) 使用的重要的檔案。
FORMATS
用來指定此份文件建置時預設應採用的格式。INSTALL_COMPRESSED
是為在文件建置時預設要使用的壓縮技術清單。INSTALL_ONLY_COMPRESS
預設為空值的,若在建置時只想要產生壓縮後的文件則改成非空值。
DOC_PREFIX
以及 include 敘述句應不需再說明了。
本文及其他文件,可由此下載: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/。
若有 FreeBSD 方面疑問,請先閱讀
FreeBSD 相關文件,如不能解決的話,再洽詢
<questions@FreeBSD.org>。
關於本文件的問題,請洽詢
<doc@FreeBSD.org>。