前提知識: なぜ単純に configure && make できないか
- git からのビルドは一部自己ホスト方式のため、ビルド中に動く gforth が
$PATH上に必要です(prim.iなどの生成に使われる)。tarball 版には生成済みファイルが含まれますが、git 版にはありません。 - macOS 標準の
cc/clangはconfigureで明示的に拒否されます。既知のバグにより GCC でのビルドが必須です(Apple の Clang は不可)。 - MINOS2 (GUI)、PDF/PS マニュアル、各種マルチメディアライブラリ(harfbuzz, opus, webp, SDL2, vulkan など)はすべて任意機能で、無くてもビルド・インストールは失敗しません(欠けている場合は自動的に該当機能だけ無効化されます)。
1. 最小構成でビルドする(GUI・PDFマニュアル等は入れない)
CLI 版の gforth 本体だけが欲しい場合は、以下だけで足ります。
依存関係のインストール
xcode-select --install # 未インストールなら (git, make などの基本ツール)
# Homebrew が無ければ
which brew || /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install gcc autoconf automake libtool
brew install gforth # ブートストラップ用(下記参照)
gforth を一旦 Homebrew から入れるのは、git ビルドの自己ホスト要件(前提知識を参照)を満たすためです。ビルド完了後にこの Homebrew 版は brew uninstall gforth で消して構いません(自ビルド版に置き換わります)。
GCC のパスを確認する
Apple Silicon (/opt/homebrew) と Intel (/usr/local) でパスが異なります。以下でインストールされた実行ファイル名を確認してください。
ls /opt/homebrew/bin/gcc-* 2>/dev/null || ls /usr/local/bin/gcc-*
例えば gcc-16 のように、末尾にバージョン番号が付いたものが実体です(単なる gcc は Apple Clang のシンボリックリンクの場合があるため使わないこと)。
configure → make → install
./autogen.sh
./configure --without-minos2 CC=gcc-16 # gcc-16 の部分は上で確認した実際の名前に置き換える
make
sudo make install
--without-minos2 で GUI (MINOS2) 関連の機能をまるごと無効化します。configure 実行時に以下のような警告が出ますが、CLI 本体のビルドには影響しないため無視して構いません。
texi2dvi not found, PDF document won't be built.
TeX not found, PDF document won't be built.
makeinfo not found, INFO and TXT document won't be built.
texi2html not found, HTML document won't be built.
libopcodes missing or not useable, using fallback disassembler
Old foreign interfaces not supported (libffi or ffcall).
swig not found.
make の最後に *** Check successful *** と出ればビルド成功です。
インストール確認
gforth --version
echo ': test 2 3 + . ; test bye' | gforth
2. フル機能でビルドする(GUI・マニュアル込み)
MINOS2 GUI や PDF/HTML マニュアルも含めてフルビルドしたい場合は、リポジトリ同梱の install-deps.sh と BUILD-FROM-SCRATCH を使います。
source ./install-deps.sh # Homebrew, gcc, harfbuzz, texinfo, XQuartz, MacTeX などを一括インストール
./BUILD-FROM-SCRATCH
sudo make install
MacTeX (数GB) と XQuartz が入るため、ディスク容量に余裕がある場合のみ推奨します。
トラブルシューティング
configure: error: Clang has a long unfixed bug...
CC= にバージョン付きの実際の gcc 実行ファイル名(gcc-16 など)を指定できていません。which gcc が Apple Clang を指している状態で CC=gcc のように指定すると発生します。上記の「GCC のパスを確認する」を参照してください。
make で You need to configure with a gforth in $PATH to build this part
ブートストラップ用 gforth が $PATH に無い状態で configure を実行しています。brew install gforth で導入したあと、./configure を実行し直してください(Makefile に「gforth なし」の状態が焼き付いているため、gforth を後から入れても再 configure しないと反映されません)。
zsh で no matches found: /usr/local/bin/gcc-* のようなエラー
Apple Silicon では Homebrew は /opt/homebrew 配下にインストールされ、/usr/local/bin/gcc-* は存在しないため zsh のグロブ展開がエラーになります。Intel/Apple Silicon どちらのパスかを確認してから使ってください。
make doc 内で html/ps/pdf 生成が失敗する
makeinfo・texi2dvi・tex が無い場合に出ますが、Makefile 側でこれらのエラーは無視するようになっており、ビルド全体は失敗しません。make install も PDF マニュアルはデフォルトでインストール対象外です。
3. 配布用 .pkg を作る
make install は DESTDIR に対応しているため、実システムを汚さずにステージインストールしてから pkgbuild でパッケージ化できます。
rm -rf /tmp/gforth-pkgroot
make install DESTDIR=/tmp/gforth-pkgroot
pkgbuild --root /tmp/gforth-pkgroot \
--identifier org.gforth.gforth \
--version 0.7.9_20260610 \
--install-location / \
gforth-0.7.9_20260610.pkg
-
--install-location /としているのは、今回の configure prefix が/usr/localであるためです(DESTDIR配下のパスがそのままインストール時の絶対パスになります)。 - 生成した
.pkgはsudo installer -pkg gforth-0.7.9_20260610.pkg -target /または Finder からダブルクリックでインストールできます。 -
未署名です。 自分だけで使う分には問題ありませんが、他人に配布して GUI からインストールしてもらう場合は Gatekeeper に弾かれます。配布するなら Apple Developer ID での
codesignとnotarytoolによる公証が必要です。 - ライセンス表示やようこそ画面付きのインストーラーにしたい場合は
pkgbuildの代わりに(または併用して)productbuildを使ってください。
参考
- INSTALL.md — 一般的なビルド手順・configure オプション一覧
- BUILD-FROM-SCRATCH — フルビルド用スクリプト
- install-deps.sh — OS 別の依存関係インストールスクリプト