Install MSys2 and GCC
MSYS2 installer
からMSys2をインストールする。推奨は32ビットバージョン
デフォルトでインストールしコマンドラインから実行する。
msys32のパッケージ更新
C:\32msys32にインストールしたとする
C:\32msys32\msys2.exe
msys2.exeを起動する
1度目
$ pacman -Syu
2度目
$ pacman -Su
Tools
以下のようにパッケージをインストールする。
git
subversion
cvs
automake
autoconf
libtool
m4
make
gettext
pkg-config
mingw-w64-i686-lua
findutils
mingw-w64-i686-headers
yasm patch
$> pacman -S git subversion cvs automake autoconf libtool m4 make gettext pkg-config mingw-w64-i686-lua findutils mingw-w64-i686-headers yasm patch
エラーが出ることもあるので分散して実行してみるといい。ちなみに2016年6月16日現在はpacman -S mingw-w64-i686-headersで失敗した。
$> pacman -S git subversion cvs automake autoconf libtool m4 make gettext $> pacman -S pkg-config mingw-w64-i686-lua findutils $> pacman -S yasm patch $> pacman -S mingw-w64-i686-headers
gcc
mingw-w64.からgccをダウンロードして「C:\32msys32\」に解凍する。
※解凍したフォルダはi686-4.9.2-release-win32-sjlj-rt_v3-rev0なのでその中にあるmingw32フォルダをルートに上書きコピーした
Restart
MSys2を終了してautorebase.bat(起動してもすぐに閉じてしまう)を実行させ、mingw32_shell.batからMSys2を再度起動させる。
※mingw32_shell.bat(旧フォルダからコピー)をダブルクリックして起動する
GCCの確認
以下のようにバージョンを確認する
$ gcc -v
以下のように表示されればOK
Thread model: win32 gcc version 4.9.2 (i686-win32-sjlj-rev0, Built by MinGW-W64 project)
VLCソースコードの取得
以下のようにGitで取得する
$ git clone git://git.videolan.org/vlc.git
※Windowsのユーザー名にスペースが入っていないこと。
3rdパーティーのライブラリを取得
$ cd vlc/contrib $ mkdir win32 $ cd win32 ../bootstrap --build=i686-w64-mingw32 $ make prebuilt←バージョン不一致を発生するので以下の2行を実行する または $ make fetch $ make
※すべてが「moc -v」で良ければOK。
$ cd vlc/contrib $ mkdir win32 $ cd win32 ../bootstrap --build=i686-w64-mingw32 $ make prebuilt
make prebuiltする場合は以下を実行する?
$ cd vlc $ git checkout ddba52206f69bb123bea8ed4d4ada07b3cb1223c
https://forum.videolan.org/viewtopic.php?t=136077
ragelがなくてエラーが出たのでdownload&install
$ wget http://www.colm.net/files/ragel/ragel-6.10.tar.gz $ tar zxvf ragel-6.10.tar.gz $ cd ragel-6.10 $ ./configure $ make $ make install
インストールしたら再度vlc/contrib/win32に移動して
$ pwd $ vlc/contrib/win32 $ make
blurayのところでantがないというエラーが発生したのでvlc/contrib/src/blurayを削除して再度makeして次に進んだ
また以下のエラーが発生した
mkdir -p -- /home/ganasonic/vlc/contrib/i686-w64-mingw32/share/aclocal && cd cddb && autoreconf -fiv -I/home/ganasonic/vlc/contrib/i686-w64-mingw32/share/aclocal autoreconf: Entering directory `.' autoreconf: running: autopoint --force /usr/bin/autopoint: 行 485: /usr/share/gettext/archive.dir.tar.xz: No such file or directory tar: これは tar アーカイブではないようです tar: gettext-0.14.4: アーカイブ内に見つかりません tar: 前のエラーにより失敗ステータスで終了します autopoint: *** infrastructure files for version 0.14.4 not found; this is autopoint from GNU gettext-tools 0.19.8.1 autopoint: *** Stop. autoreconf: autopoint failed with exit status: 1 make: *** [../../contrib/src/cddb/rules.mak:33: .cddb] エラー 1
以下を実行した
$ pacman -S gettext-devel $ pacman -S gettext
以下のcmakeが見つからないというエラーが出た
rm -f toolchain.cmake echo "set(CMAKE_SYSTEM_NAME Windows)" >> toolchain.cmake echo "set(CMAKE_BUILD_TYPE Release)" >> toolchain.cmake echo "set(CMAKE_C_COMPILER gcc)" >> toolchain.cmake echo "set(CMAKE_CXX_COMPILER g++)" >> toolchain.cmake echo "set(CMAKE_FIND_ROOT_PATH /home/ganasonic/vlc/contrib/i686-w64-mingw32)" >> toolchain.cmake echo "set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)" >> toolchain.cmake echo "set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)" >> toolchain.cmake echo "set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)" >> toolchain.cmake touch -r .ffmpeg .dep-ffmpeg cd chromaprint && CC="gcc" CXX="g++" LD="ld" AR="ar" CCAS="gcc -c" RANLIB="ranlib" STRIP="strip" PATH="/home/ganasonic/vlc/contrib/i686-w64-mingw32/bin:/home/ganasonic/vlc/extras/tools/build/bin:/mingw32/bin:/usr/local/bin:/usr/bin:/bin:/c/Windows/System32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0/:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl" CPPFLAGS=" -I/home/ganasonic/vlc/contrib/i686-w64-mingw32/include " CFLAGS=" -I/home/ganasonic/vlc/contrib/i686-w64-mingw32/include -g -O2 " CXXFLAGS=" -I/home/ganasonic/vlc/contrib/i686-w64-mingw32/include -g -O2 " LDFLAGS=" -L/home/ganasonic/vlc/contrib/i686-w64-mingw32/lib" cmake . -DCMAKE_TOOLCHAIN_FILE=/home/ganasonic/vlc/contrib/win32/toolchain.cmake -DCMAKE_INSTALL_PREFIX=/home/ganasonic/vlc/contrib/i686-w64-mingw32 -G "MSYS Makefiles" -DBUILD_SHARED_LIBS:BOOL=OFF /bin/sh: cmake: コマンドが見つかりません make: *** [../../contrib/src/chromaprint/rules.mak:24: .chromaprint] エラー 127
以下を実行した
$ pacman -S cmake
以下を実行した
$ make cd chromaprint && CC="gcc" CXX="g++" LD="ld" AR="ar" CCAS="gcc -c" RANLIB="ranlib" STRIP="strip" PATH="/home/ganasonic/vlc/contrib/i686-w64-mingw32/bin:/home/ganasonic/vlc/extras/tools/build/bin:/mingw32/bin:/usr/local/bin:/usr/bin:/bin:/c/Windows/System32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0/:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl" CPPFLAGS=" -I/home/ganasonic/vlc/contrib/i686-w64-mingw32/include " CFLAGS=" -I/home/ganasonic/vlc/contrib/i686-w64-mingw32/include -g -O2 " CXXFLAGS=" -I/home/ganasonic/vlc/contrib/i686-w64-mingw32/include -g -O2 " LDFLAGS=" -L/home/ganasonic/vlc/contrib/i686-w64-mingw32/lib" cmake . -DCMAKE_TOOLCHAIN_FILE=/home/ganasonic/vlc/contrib/win32/toolchain.cmake -DCMAKE_INSTALL_PREFIX=/home/ganasonic/vlc/contrib/i686-w64-mingw32 -G "MSYS Makefiles" -DBUILD_SHARED_LIBS:BOOL=OFF CMake Error: Could not create named generator MSYS Makefiles Generators Unix Makefiles = Generates standard UNIX makefiles. Ninja = Generates build.ninja files. CodeBlocks - Ninja = Generates CodeBlocks project files. CodeBlocks - Unix Makefiles = Generates CodeBlocks project files. CodeLite - Ninja = Generates CodeLite project files. CodeLite - Unix Makefiles = Generates CodeLite project files. Eclipse CDT4 - Ninja = Generates Eclipse CDT 4.0 project files. Eclipse CDT4 - Unix Makefiles= Generates Eclipse CDT 4.0 project files. KDevelop3 = Generates KDevelop 3 project files. KDevelop3 - Unix Makefiles = Generates KDevelop 3 project files. Kate - Ninja = Generates Kate project files. Kate - Unix Makefiles = Generates Kate project files. Sublime Text 2 - Ninja = Generates Sublime Text 2 project files. Sublime Text 2 - Unix Makefiles = Generates Sublime Text 2 project files. make: *** [../../contrib/src/chromaprint/rules.mak:24: .chromaprint] エラー 1
以下を実行した
$ pacman -S cmake
以下を実行した
../../contrib/src/protobuf/rules.mak:25: *** Protobuf compiler (protoc) not found!. 中止.
以下を実行した
$ pacman -S protobuf
ビルド
VLCのルートフォルダで以下のように実行する。
$ ./bootstrap
※ここで失敗する
※2017/09/04は成功
$ ./bootstrap NOTE: GNU gettext appears to be missing or out-of-date. Please install or update GNU gettext. Also check if you have cvs, a dependency of autopoint. Otherwise, you will not be able to build a source tarball. ============================================================== generating modules/**/Makefile.am . + autoreconf --install --force --verbose -I m4 autoreconf: Entering directory `.' autoreconf: running: true --force autoreconf: running: aclocal -I m4 --force -I m4 ' is already registered with AC_CONFIG_FILES. ../../lib/autoconf/status.m4:288: AC_CONFIG_FILES is expanded from... /usr/share/aclocal-1.15/cond-if.m4:23: AM_COND_IF is expanded from... configure.ac:4293: the top level autom4te: /usr/bin/m4 failed with exit status: 1 aclocal-1.15: error: echo failed with exit status: 1 autoreconf: aclocal failed with exit status: 1
Configure
$ mkdir win32 $ cd win32 $ sh ../extras/package/win32/configure.sh --host=i686-w64-mingw32 --disable-nls
ここで失敗するのでconfigure.shの8500行目あたりを修正する
# test -n "$BUILDCC" && break done #test -n "$BUILDCC" || BUILDCC="false" #if test "$BUILDCC" = "false"; then : # as_fn_error $? "Cannot find native C99 compiler: please define BUILDCC." "$LINENO" 5 #fi
Note: If you want any custom options, like “–disable-lua” or anything of that nature, you can append them.
Make (compile)
make -j4