macOSでmkvtoolnixをコンパイルする
ふとした理由からmkvtoolnixが必要になった。macOSに対応したGUI版はあるが、このGUI、使い方が良く分からない。
取り敢えず、パッケージを開いてCLIで動かしたが、GUIベースでコンパイルされているため、大量のQt(キュート)関連ライブラリに依存し、このままCLIとしてインストールする気にはならなかった。
そこで、今後多用するかどうかは不明だが、自前でmkvtoolnixをコンパイルすることにした。これは、その記録である。
なお、お約束として、Xcode及びCommand Line Tools for Xcodeはインストール済みとする。
mkvtoolnixをコンパイルするには、次の依存ライブラリを用意する必要がある。(参考)
- pkg-config
- libEBML v1.3.4以降
- libMatroska v1.4.5以降
- libOgg
- libVorbis
- zlib(macOSではデフォルトで入っている)
- Boost
- libxml(libxsltの依存ライブラリ)
- libxslt’s xsltproc binary(libxslt)
- 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
この投稿へのコメント