[ make、実行方法について ]


* 動作環境

  必須環境

  ・gtkmm 3.22.0 以上 ( 3.24.0 未満のサポートは将来のリリースで廃止される )
  ・glibmm 2.56.0 以上 ( 2.58.0 未満のサポートは将来のリリースで廃止される )
  ・zlib 1.2 以上
  ・gnutls 3.5.18 以上 ( 3.6.7 未満のサポートは将来のリリースで廃止される )

  推奨環境

  ・Linux Kernel 4.4.0 以上 ( 4.19.0 未満は将来のリリースで推奨環境から外れる )
  ・gtkmm 3.24.0 以上
  ・UTF-8環境 ( EUC環境では LANG="ja_JP.UTF-8" を指定する必要がある )

  ※ GTK2版はv0.4.0リリースをもって廃止 ( https://github.com/JDimproved/JDim/issues/229 を参照 )

* makeに必要なツール、ライブラリ

  必須

  ・autoconf
  ・autoconf-archive
  ・automake
  ・g++ 7 以上、または clang++ 6.0 以上 ( 将来のリリースで g++ 8 以上、または clang++ 7 以上になる )
  ・gnutls
  ・gtkmm
  ・libtool
  ・make
  ・zlib

  オプション

  ・meson 0.49.0 以上 ( 0.53 未満のサポートは将来のリリースで廃止される )
  ・alsa-lib (--with-alsa)
  ・openssl 1.1.0 以上 (--with-tls=openssl, バージョン 1.1.1 未満のサポートは将来のリリースで廃止される )
  ・migemo (--with-migemo)
  ・googletest (`test/RADME.md`を参照)

  画像表示に必要なパッケージ
  インストールされていない環境では`.webp`や`.avif`で終わるURLは通常リンクになる。

  ・libwebp, webp-pixbuf-loader (WebP)
  ・libavif (AVIF)

  OSやディストリビューション別の解説は https://github.com/JDimproved/JDim/discussions/592 を参照。

  configure のかわりに meson を使ってビルドする方法は https://github.com/JDimproved/JDim/discussions/556 を参照。
  (v0.4.0+からサポート)

  GTKがデフォルトでサポートしていないWebPやAVIF形式の画像を表示する方法は
  https://github.com/JDimproved/JDim/discussions/737 を参照。(v0.5.0+からサポート)

* ビルド方法( configure + make の場合 )
    Autotoolsのサポートは2023年7月のリリースをもって廃止されます。かわりにMesonを利用してください。
    詳しくは https://github.com/JDimproved/rfcs/blob/master/docs/0012-end-of-autotools-support.md を参照。

    1. autoreconf -i ( 又は ./autogen.sh )
    2. ./configure
    3. make
    4. (お好みで) strip src/jdim

* ビルド方法( meson の場合 )

    1. meson builddir
    2. meson compile -C builddir ( 又は ninja -C builddir )
    3. 起動は ./builddir/src/jdim

    mesonのビルドオプション
    - meson builddir -Dpangolayout=enabled のように指定する。
    - オプションの一覧は meson configure を実行してProject optionsの段落を参照する。

* configureオプション

    --with-sessionlib=xsmp|no

       XSMP を使ってセッション管理をするには「xsmp」を、セッション管理を無効にするには「no」を選択する。
       デフォルトでは XSMP を使用する。

    --with-pangolayout

       描画にPangoLayoutを使う。デフォルトでは PangoGlyphString を使用する。
       スレビューのテキスト表示に問題があるときはこのオプションを試してみてください。

    --with-migemo

       migemoによる検索が有効になる。migemoがUTF-8の辞書でインストールされている必要がある。
       有効にすると正規表現のメタ文字が期待通りに動作しない場合があるので注意すること。

    --with-migemodict=PATH

       (--with-migemo 限定) migemo の辞書ファイルの場所を設定する。
       about:config で変更が可能、空欄にした場合は migemo が無効になる。(変更後は要再起動)

    --with-native

       CPUに合わせた最適化
       CPUを指定する場合は ./configure CXXFLAGS="-march=ARCH" を利用してください。

    --with-tls=[gnutls|openssl]

       使用するSSL/TLSライブラリを設定する。デフォルトでは GnuTLS を使用する。

    --with-tls=openssl

       GnuTLS のかわりに OpenSSL を使用する。ライセンス上バイナリ配布が出来なくなることに注意すること。

    --with-alsa

       ALSAによる効果音再生機能を有効にする。詳しくは"https://jdimproved.github.io/JDim/"の項を参照すること。

    --enable-gprof

       gprofによるプロファイリングを行う。コンパイルオプションに -pg が付き、JDimを実行すると
       gmon.out が出来るのでgprof./jdgmon.out で解析できる。CPUの最適化は効かなくなるので注意する。

    --disable-compat-cache-dir

       JDのキャッシュディレクトリ ~/.jd を読み込む互換機能を無効化する。

    -Dpackager=PACKAGER

       Meson限定: 動作環境にパッケージや作成者の情報を追加する。(v0.7.0+から追加)
       PACKAGER に改行やHTML文字参照を *含めない* ことを推奨する。

* メモ

  最近のディストリビューションの場合は autogen.sh よりも autoreconf -i の方を推奨。

  実行するには直接 src/jdim を起動するか手動で /usr/bin あたりに src/jdim を cp する。

  以上の操作でmakeが通らなかったり動作が変な時は configure のオプションを変更する。
