# FreeBSD Make 介紹 常見的 Make 種類包括 * GNU Make (GMake), Linux 使用 * Nmake: Windows 使用 * CMake, 一個開源的跨平台自動化建構系統,因為跨平台,常常用在 C/C++ 專案上 * BSD Make, FreeBSD 使用,實際上是從 NetBSD 那邊移植過來的,請參考[論壇討論](https://forums.freebsd.org/threads/building-with-bmake.77173/)跟 [bmake 介紹](https://www.crufty.net/help/sjg/bmake.html) [编译工具make、gmake、cmake、nmake和Dmake的区别](https://blog.csdn.net/whatday/article/details/83825897) ## Makefile FreeBSD 的 Makefile 會常常 include 一些東西,以 rwhod(8) command 的 Makeile 為例 ([freebsd-src/usr.sbin/rwhod/Makefile](https://github.com/freebsd/freebsd-src/blob/1d14e88e5332cfddbec1893f6b5332f81d378d61/usr.sbin/rwhod/Makefile)) ``` PROG= rwhod MAN= rwhod.8 PACKAGE=rcmds WARNS?= 3 .include <bsd.prog.mk> ``` 可以看到最下面會有 `include bsd.prog.mk` 這些東西其實也是一個 makefile,會放在 [freebsd-src/share/mk/](https://github.com/freebsd/freebsd-src/tree/1d14e88e5332cfddbec1893f6b5332f81d378d61/share/mk) 底下,而我們可以看同樣目錄下的 [bsd.README](https://github.com/freebsd/freebsd-src/blob/1d14e88e5332cfddbec1893f6b5332f81d378d61/share/mk/bsd.README) 來了解這些 include 的 mk 檔案試做什麼的。 可以看到 bsd.prog.mk 是用來 build program,同樣也有提到 PROG 指定要產生的 program and MAN 指定 man page。 PACKAGE 可能表示相依的套件,這個我到是沒看到有詳細的講解 WARNS 表示編譯器警告等級,這個我也是沒看到有詳細的講解,只是說可以設定這個變數。 而同樣在 bsd.README 也有講到我們能執行的 target  其中 depend 會產生 Makefile.depend file,表示相依性的 file。 而在寫 Makefile 會有相對的 styel 教遵守,這時候可以看 [STYLE.MAKEFILE(5)](https://man.freebsd.org/cgi/man.cgi?query=style.Makefile&apropos=0&sektion=5&manpath=FreeBSD+15.0-CURRENT&arch=default&format=html)。 [MAKE.CONF(5)](https://man.freebsd.org/cgi/man.cgi?query=make.conf&sektion=5&apropos=0&manpath=FreeBSD+14.0-RELEASE+and+Ports) 也會介紹一些常見的 FLAG。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up