Skip to content

Latest commit

 

History

History
187 lines (115 loc) · 9.24 KB

README-ja.md

File metadata and controls

187 lines (115 loc) · 9.24 KB

emacs-dmg-build: Gnu Emacs DMGパッケージビルダー

Emacs 29 Ready macOS15 Ready Intel Universal Binary arm Universal Binary

EN|JA

概要

Gnu EmacsのmacOS向けdmgパッケージを作成するビルドスクリプトです。 Apple Silicon環境では、ユニバーサルバイナリーを作成できます。

SSL/TLS接続用に、GnuTLSのランタイムを同梱しており、外部ライブラリーに依存せずに動作します。 画像については、ns GUIの標準機能で対応します。

Emacs Plusのパッチをいくつか適用しています。 また、CJK環境で有用なインラインパッチも選択可能です。

使い方

1. ソースの取得

以下を取得してsources以下に格納してください。 .tar.gz.tar.xzどちらの形式でも自動認識します。

a. Gnu Emacs本体のソース

Gnuミラー ( https://ftpmirror.gnu.org/emacs/ ) からダウンロードできます。

b. nettleのソース

GnuTLSに必須となる、暗号アルゴリズムの実装です。

Gnuミラー ( https://ftpmirror.gnu.org/nettle/ ) からダウンロードできます。

c. GnuTLSのソース

SSL/TLSの実装です。 EmacsはmacOS標準のOpenSSLではなく、GnuTLSが必要です。

公式サイト ( https://www.gnutls.org/download.html ) からダウンロードできます。

d. Emacs MacPortが採用している高解像アイコン

USEHRICON=yesを設定した場合のみ必要です。 この場合、アプリケーションアイコンとツールバーアイコンをこれに置き換えます。

MacPortパッチを配布している千葉大のFTPサーバー ( ftp://ftp.math.s.chiba-u.ac.jp/emacs/ ) からダウンロードできます。

Note

ビルドスクリプト中に指定したバージョンのものは動作確認済みですが、特に依存ライブラリーについては、それより新しいものでもおそらく動作します。 その場合、ビルドスクリプト中の指定を取得したバージョンに合わせてください。

2. ビルド環境の設定

ビルドスクリプト ( emacs-dmg-build.sh ) を編集し、先頭付近の以下の設定値を修正してください。

a. 各ソース等のバージョン

EMACSVERNETTLEVERGNUTLSVERHRICONVERの値を、実際に取得したものと一致するようにしてください。

b. site-lispの格納先パス

システムワイドで有効なlispの格納先であるsite-lispのパスをSITELISPに設定してください。

デフォルトでは/Library/Application Support/Emacs/site-lispで、このようなパッケージ外の場所を推奨します。

c. インラインパッチを使用するか

Ishikawa Takaaki氏が https://github.com/takaxp/ns-inline-patch で取りまとめているインラインパッチを適用する場合は、USEINLINEyesを設定してください。

最近のEmacsは、そのままでもOSのインプットメソッドでインライン入力が可能となっていますが、toggle-input-methodによる入力モード変更や、入力モード変更時のフックといった有用な機能が使えますので、必要であれば適用してください。

d. 高解像アイコンを使用するか

Emacs MacPortが採用している高解像アイコン(emacs-hires-icons)を使用する場合は、USEHRICONyesを設定してください。

有効にすると、アプリケーションアイコンとツールバーアイコンに、当該アイコンセットの画像を使用します。 スプラッシュ画像については、現在Emacsが採用しているSVG画像を優先するため、ここで提供されている画像は使用しません。

e. アプリケーションアイコンを置き換えるか

別途用意したアプリケーションアイコンを用いる場合は、USEAPPICONyesを設定してください。

EmacsPlusでは、オプションで指定可能なアイコン群を取りまとめていますが、このようなアイコンを使用する場合に有用です。 有効にした場合、Emacs.icnsdocument.icnsがあればemacs-hires-iconsよりも優先してこちらを使用します。

f. スプラッシュ画像を置き換えるか

別途用意したスプラッシュ画像を用いる場合は、USESPLASHyesを設定してください。

有効にした場合、splash.pngsplash.xpmsplash.pbmがあればこちらを使用します。 また、この場合標準のSVGスプラッシュ画像は無効化されます。

macOS環境では事実上PNG画像しか使われないと思われますが、仮に色数が少ない表示環境で起動した場合はXPM画像やPBM画像が使われるかもしれません。

g. ビルド対象のアーキテクチャー

対応するアーキテクチャーをARCHESに配列として設定してください。 デフォルトでは、arm64とx86_64のユニバーサルバイナリーをビルドする設定となっています。

Intel環境ではarm64のビルドができないため、ARCHES=(x86_64)とする必要があります。

Note

Apple Silicon専用バイナリーとする場合はARCHES=(arm64)としてください。 これによって、インストールサイズを若干節約できますが、Emacsの場合フットプリントの大半がlispやpdumpであることから、他のアプリケーションほど容量への影響はありません。

h. ビルド時に使用するコア数

ビルド時の並列処理数をCORESに設定してください。 この値は、makeの-jオプションの引数となります。

デフォルト値は4です。 最近のmac環境では概ねこれで問題ありません。

Note

パフォーマンスコアの数が4より多い場合は、その数に合わせると若干ビルド時間の短縮が可能です。 ただ、ビルド時間の大半はGnuTLSクロスコンパイル時のconfigureとなっている状況であることから、ほぼ誤差の範囲ではないかと思われます。

3. カスタム画像の格納

USEAPPICONあるいはUSESPLASHyesに設定した場合、対応する画像データをcustom-images以下に格納してください。 いずれも、格納したファイルのみを置き換えるため、全てを格納する必要はありません。

  • USEAPPICON=yesを設定した場合 … Emacs.icnsdocument.icns
  • USESPLASH=yesを設定した場合 … splash.pngsplash.xpmsplash.pbm

4. 必要なツールの準備

ビルドに必要なツールがインストールされていない場合は適宜インストールしてください。 これらはビルド時のみに用いられ、作成されるdmgパッケージからの依存は発生しません。

a. コンパイラー環境(make・clang/gcc・ld)

Xcodeのコマンドラインツールをインストールしてください。

$ xcode-select --install

b. Texinfo

homebrew等でインストールしてください。

$ brew install texinfo

c. Automake

USEINLINE=yesを設定した場合のみ必要です。 homebrew等でインストールしてください。

$ brew install automake

5. ビルドスクリプトを実行

ビルドスクリプトを実行すると、build以下にdmgパッケージを生成します。 Apple M3の環境で10分程度かかります。

$ sh emacs-dmg-build.sh

build以下にはソースパッケージが展開されていますが、不要であれば削除しても構いません。

ライセンス

本スクリプトとpatches/custom以下のパッチについてはCC0で配布します。

patches/plusおよびpatches/inline以下に収録している外部パッチのライセンスは、以下の配布元を参照ください。

同梱しているパッチの配布元