macOSでmkvtoolnixをコンパイルする

ふとした理由からmkvtoolnixが必要になった。macOSに対応したGUI版はあるが、このGUI、使い方が良く分からない。
取り敢えず、パッケージを開いてCLIで動かしたが、GUIベースでコンパイルされているため、大量のQt(キュート)関連ライブラリに依存し、このままCLIとしてインストールする気にはならなかった。

そこで、今後多用するかどうかは不明だが、自前でmkvtoolnixをコンパイルすることにした。これは、その記録である。

なお、お約束として、Xcode及びCommand Line Tools for Xcodeはインストール済みとする。

mkvtoolnixをコンパイルするには、次の依存ライブラリを用意する必要がある。(参考

  1. pkg-config
  2. libEBML v1.3.4以降
  3. libMatroska v1.4.5以降
  4. libOgg
  5. libVorbis
  6. zlib(macOSではデフォルトで入っている)
  7. Boost
  8. libxml(libxsltの依存ライブラリ)
  9. libxslt’s xsltproc binary(libxslt)
  10. DocBook XSL stylesheets

以下、順に説明する。

準備項目(ターミナル.appで以下のコマンドを実行)
            export TARGET="$HOME/Desktop/mkvtoolnix"
            export SRC="${TARGET}/src"
            export CMPL="${TARGET}/compile"
            export PATH=${TARGET}/bin:$PATH
            mkdir -p ${SRC}
            mkdir -p ${CMPL}
        
pkg-configのコンパイルとインストール
            cd ${SRC}
            curl -LO https://pkg-config.freedesktop.org/releases/pkg-config-0.29.2.tar.gz
            cd ${CMPL}
            tar xf ${SRC}/pkg-config-0.29.2.tar.gz
            cd pkg-config-0.29.2
            ./configure --prefix=${TARGET} --with-pc-path=${TARGET}/lib/pkgconfig --with-internal-glib
            make && make install
        
cmakeのコンパイル&インストール

ターミナル.appで以下のコマンドを実行する。

            cd ${SRC}
            curl -LO https://cmake.org/files/v3.12/cmake-3.12.2.tar.gz
            cd ${CMPL}
            tar xf ${SRC}/cmake-3.12.2.tar.gz
            cd cmake-3.12.2
            rm Modules/FindJava.cmake
            curl -OJL "https://docs.google.com/uc?export=download&id=0B2uOKVwFe1AXU1QzdXlvc0VRSEU"
            patch -p1 < cmake_CMakeLists.patch
            ./bootstrap; make; sudo make install
        
libEBMLのコンパイルとインストール
            cd ${SRC}
            curl -LO https://dl.matroska.org/downloads/libebml/libebml-1.3.6.tar.xz
            cd ${CMPL}
            tar xf ${SRC}/libebml-1.3.6.tar.xz
            cd libebml-1.3.6
            cmake -DCMAKE_INSTALL_PREFIX=${TARGET}
            make && make install
        
libMatroskaのコンパイルとインストール
            cd ${SRC}
            curl -LO https://dl.matroska.org/downloads/libmatroska/libmatroska-1.4.9.tar.xz
            cd ${CMPL}
            tar xf ${SRC}/libmatroska-1.4.9.tar.xz
            cd libmatroska-1.4.9
            export PKG_CONFIG_PATH=$HOME/Desktop/mkvtoolnix/lib/pkgconfig/
            cmake -DCMAKE_INSTALL_PREFIX=${TARGET}
            make && make install
        
libOggのコンパイルとインストール
            cd ${SRC}
            curl -LO http://downloads.xiph.org/releases/ogg/libogg-1.3.3.tar.xz
            cd ${CMPL}
            tar xf ${SRC}/libogg-1.3.3.tar.xz
            cd libogg-1.3.3
            ./configure --prefix=${TARGET} --disable-shared
            make && make install
        
libVorbisのコンパイルとインストール
            cd ${SRC}
            curl -LO http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.6.tar.xz
            cd ${CMPL}
            tar xf ${SRC}/libvorbis-1.3.6.tar.xz
            cd libvorbis-1.3.6
            ./configure --prefix=${TARGET} \
            --with-ogg-libraries=${TARGET}/lib \
            --with-ogg-includes=${TARGET}/include/ --disable-shared
            make && make install
        
Boostのコンパイルとインストール

Boostの最新バージョンは、1.68.0だが、mkvtoolnixでリンクエラーが出るので、1.65.1を用いる。

            cd ${SRC}
            curl -LO https://dl.bintray.com/boostorg/release/1.65.1/source/boost_1_65_1.tar.bz2
            cd ${CMPL}
            tar xf ${SRC}/boost_1_65_1.tar.bz2
            cd boost_1_65_1
            ./bootstrap.sh --prefix=${TARGET}
            ./b2 install
        
libxml2のコンパイルとインストール
            cd ${SRC}
            curl -LO ftp://xmlsoft.org/libxml2/libxml2-2.9.8.tar.gz
            cd ${CMPL}
            tar xf ${SRC}/libxml2-2.9.8.tar.gz
            cd libxml2-2.9.8
            ./configure --prefix=${TARGET} --disable-shared
            make
            sudo make install
        

sudoでインストールするのは、drv_libxml2.pyのため

sudoにより、${TARGET}配下の一部のディレクトリのオーナーシップが変更されるので修正する。

            cd ${TARGET}
            sudo chown -R $USER:staff include
            sudo chown -R $USER:staff lib
            sudo chown -R $USER:staff share
        
libxsltのコンパイルとインストール
            cd ${SRC}
            curl -LO ftp://xmlsoft.org/libxml2/libxslt-1.1.32.tar.gz
            cd ${CMPL}
            tar xf ${SRC}/libxslt-1.1.32.tar.gz
            cd libxslt-1.1.32
            ./configure --prefix=${TARGET} --disable-shared
            make && make install
        
DocBook XSL stylesheetsのインストール
            cd ${SRC}
            curl -LO https://sourceforge.net/projects/docbook/files/docbook-xsl/1.79.1/docbook-xsl-1.79.1.tar.bz2
            tar xf docbook-xsl-1.79.1.tar.bz2
            mv docbook-xsl-1.79.1 ${TARGET}/share
        
mkvtoolnixのコンパイルとインストール
            cd ${SRC}
            curl -LO https://mkvtoolnix.download/sources/mkvtoolnix-26.0.0.tar.xz
            cd ${CMPL}
            tar xf ${SRC}/mkvtoolnix-26.0.0.tar.xz
            cd mkvtoolnix-26.0.0
            ./configure --with-extra-includes=${TARGET}/include \
            --with-extra-libs=${TARGET}/lib \
            --with-boost-libdir=${TARGET}/lib \
            --with-docbook-xsl-root=${TARGET}/share/docbook-xsl-1.79.1
            rake
            sudo rake install
        
Boostライブラリのインストール

BoostライブラリはStatic Linkingできない。よって以下の依存ライブラリをインストールする。

            cd ${TARGET}/lib
            sudo cp -p libboost_regex.dylib /usr/local/lib
            sudo cp -p libboost_filesystem.dylib /usr/local/lib
            sudo cp -p libboost_system.dylib /usr/local/lib
        

以上。

この投稿へのコメント

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL