VLC Win32 MSYS compile checklist

This forum is about all development around libVLC.
Vicne
Blank Cone
Blank Cone
Posts: 40
Joined: 28 Feb 2010 22:11

Re: VLC Win32 MSYS compile checklist

Postby Vicne » 09 Jun 2010 23:25

gcc on mingw is a mess... Because they use sometimes -dw2 sometimes -sjlj. I never know which one to take.
I see. In any case, installing both works :-)...

Vicne

Jean-Baptiste Kempf
Site Administrator
Site Administrator
Posts: 37523
Joined: 22 Jul 2005 15:29
VLC version: 4.0.0-git
Operating System: Linux, Windows, Mac
Location: Cone, France
Contact:

Re: VLC Win32 MSYS compile checklist

Postby Jean-Baptiste Kempf » 09 Jun 2010 23:35

yes :D
Jean-Baptiste Kempf
http://www.jbkempf.com/ - http://www.jbkempf.com/blog/category/Videolan
VLC media player developer, VideoLAN President and Sites administrator
If you want an answer to your question, just be specific and precise. Don't use Private Messages.

Vicne
Blank Cone
Blank Cone
Posts: 40
Joined: 28 Feb 2010 22:11

Full build without any error

Postby Vicne » 09 Jun 2010 23:39

Yes, I did it.

As discussed previously, I did a "dual GCC" install tonight and it worked first time, without any error.

So here's a new version of the "checklist", which is basically a shuffle around of gnosygnu's steps.

I classified the steps in 4 sections : Environment, Precompiled contribs, Sources and Build

Of course, as mentioned by JB, using more recent contribs or sources probably means that most "fixes" will have been included, but the scope of this exercise was to rebuild 1.1.0rc, so here we go :

Code: Select all

*** VLC compile checklist *** *** (1.1.0-rc) *** Section A - Environment * MinGW - http://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/MinGW%205.1.6/MinGW-5.1.6.exe/download - Select "Download and Install" - Select "Candidate" - Select "g++" "MinGW Make" - Install to "C:\MinGW" * mingw update to gcc to 4.4.0 - http://sourceforge.net/projects/mingw/files/GCC%20Version%204/gcc-full-4.4.0-mingw32-bin-2.tar.lzma/download - copy to C:\MinGW * mingw fix libstdc++.la - C:\MinGW\lib\gcc\mingw32\4.4.0\libstdc++.la - old: library_names='libstdc++.dll.a' new: library_names='' * TDM/MinGW Setup - http://sourceforge.net/projects/tdm-gcc/files/TDM-MinGW%20Installer/1.908.0/tdm-mingw-1.908.0-4.4.1-2.exe/download - unckeck "Check for updated files..." - Select "Create" - install to C:\MinGW (ignore warning) - kept "Sourceforge default" - expand gcc node should be set to default: "TDM Unstable: 4.4.1-tdm-2" * TDM libtool - open C:\msys\1.0\bin\libtool - change line 9926 old: compiler_lib_search_dirs="/usr/lib /usr/lib /bin/../lib/gcc-lib/i686-pc-msys/2.95.3-1 /bin/../lib/gcc-lib /usr/lib/gcc-lib/i686-pc-msys/2.95.3-1 /bin/../lib/gcc-lib/i686-pc-msys/2.95.3-1/../../../../i686-pc-msys/lib /usr/lib/gcc-lib/i686-pc-msys/2.95.3-1/../../../../i686-pc-msys/lib" new: compiler_lib_search_dirs="c:/mingw/bin/../lib/gcc/mingw32/4.4.1 c:/mingw/bin/../lib/gcc c:/mingw/bin/../lib/gcc/mingw32/4.4.1/../../../../mingw32/lib c:/mingw/bin/../lib/gcc/mingw32/4.4.1/../../.. /mingw/lib" * msys - http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/msys-1.0.11/MSYS-1.0.11.exe/download - install to C:\msys\1.0 - Do you wish to continue with the post install? y - Do you have MinGW installed? y - Where is your MinGW installation? C:/MinGW * msys toolkit - http://sourceforge.net/projects/mingw/files/MSYS/Supplementary%20Tools/msysDTK-1.0.1/msysDTK-1.0.1.exe/download - keep defaults * autoconf - http://sourceforge.net/projects/mingw/files/MSYS/autoconf/autoconf-2.63-1/autoconf-2.63-1-msys-1.0.11-bin.tar.lzma/download - copy to C:\msys\1.0 * automake - http://sourceforge.net/projects/mingw/files/MSYS/automake/automake-1.11-1/automake-1.11-1-msys-1.0.11-bin.tar.lzma/download - copy to C:\msys\1.0 * libtool - http://sourceforge.net/projects/mingw/files/MSYS/libtool/libtool-2.2.7a-1/libtool-2.2.7a-1-msys-1.0.11-bin.tar.lzma/download - copy to C:\msys\1.0 * whoami - create C:\msys\1.0\bin\whoami - enter following line: echo 'insert your name here' * libcrypt - http://prdownloads.sourceforge.net/mingw/libcrypt-1.1_1-2-msys-1.0.11-dll-0.tar.lzma - copy to C:\msys\1.0 * mingwutils - http://prdownloads.sourceforge.net/mingw/mingw-utils-0.3.tar.gz - copy to C:\MinGW * wget - http://prdownloads.sourceforge.net/mingw/wget-1.9.1-mingwPORT.tar.bz2 - copy wget.exe to C:\MinGW\bin * pkg-config pt 1 - http://ftp.gnome.org/pub/GNOME/binaries/win32/glib/2.18/glib_2.18.2-1_win32.zip - copy to C:\msys\1.0 * pkg-config pt 2 - ftp://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.23-3_win32.zip - copy to C:\msys\1.0 * pkg-config pt 3 - ftp://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config-dev_0.23-3_win32.zip - produces \src\ dir - copy to C:\msys\1.0 * pkg-config pt 4 - Environment Variable PKG_CONFIG_PATH=/win32/lib/pkgconfig * lua - http://www.lua.org/ftp/lua-5.1.4.tar.gz - copy to C:\msys\1.0\home\username - run C:\msys\1.0\msys.bat - make cd ~/lua-5.1.4 make mingw - copy cd src cp *.exe /bin cp *.dll /bin Section B - Precompiled contribs * contrib - http://download.videolan.org/pub/testing/win32/contrib-20100130-win32-bin-gcc-4.4.2-runtime-3.17-only.tar.bz2 - copy to C:\msys\1.0 - path should be C:\msys\1.0\win32 EX: C:\msys\1.0\win32\lib\libdvdnav.a * update gecko sdk in contribs (may not be needed if using more recent contribs) - remove C:\msys\1.0\win32\gecko-sdk - http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.9.2/sdk/xulrunner-1.9.2.en-US.win32.sdk.zip - save as C:\msys\1.0\win32\gecko-sdk (instead of xulrunner-sdk contained in the archive) - EX: C:\msys\1.0\win32\gecko-sdk\include\npapi.h - ref: http://forum.videolan.org/viewtopic.php?f=32&t=75158 Section C - Sources * vlc-src (1.1.0-rc1) - http://download.videolan.org/pub/videolan/testing/vlc-1.1.0-rc/vlc-1.1.0-rc.tar.bz2 - copy to C:\msys\1.0\home\username - rename to C:\msys\1.0\home\username\vlc (Note : some of the following steps may not be needed if using more recent sources) * add missing configure-msys - http://git.videolan.org/?p=vlc.git;a=blob_plain;f=extras/package/win32/configure-msys.sh;hb=HEAD - rename to configure-msys.sh - copy to C:\msys\1.0\home\username\vlc\extras\package\win32 * add missing configure-common - http://git.videolan.org/?p=vlc.git;a=blob_plain;f=extras/package/win32/configure-common.sh;hb=HEAD - rename to configure-common.sh - copy to C:\msys\1.0\home\username\vlc\extras\package\win32 * add missing vlc_windows_interfaces.h - http://git.videolan.org/?p=vlc/vlc-1.1.git;a=blob_plain;f=include/vlc_windows_interfaces.h;h=36bfd4a64b1ec9b9b5da0e21de6d93f53f2eefc3;hb=3a4b30fcf1fbb9ef7a9c85a102183f8a3451622a - rename to vlc_windows_interfaces.h - copy to C:\msys\1.0\home\username\vlc\include * add missing position.h - copy source: C:\msys\1.0\home\username\vlc\projects\mozilla\control\position.h target: C:\msys\1.0\home\username\vlc\projects\activex\position.h * add dummy lua extension - create directory C:\msys\1.0\home\username\vlc\share\lua\extensions - create dummy file C:\msys\1.0\home\username\vlc\share\lua\extensions\readme.txt * modify configure.ac due to limited functionality of hostname.exe on Windows - edit C:\msys\1.0\home\username\vlc\configure.ac - old: AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -f 2> /dev/null || hostname`", [host which ran configure]) new: AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure]) Section D - Build * bootstrap - msys cd vlc cp -v /usr/win32/share/aclocal/* m4/ cp -v /usr/share/aclocal/* m4/ PATH=/usr/win32/bin:$PATH ./bootstrap * configure - sh extras/package/win32/configure-msys.sh * make - PATH=/usr/win32/bin:$PATH make (should take around 30 minutes, have a break) * make package - make package-win32-base * done - run: C:\msys\1.0\home\username\vlc\vlc-1.1.0-rc\vlc.exe
I know this is an overloaded environment, with multiple GCC versions, a full xulrunner SDK instead of just the needed files, etc. but at least it can get people started faster...

I think it can be streamlined further, then I can spend some time backporting the steps to the wiki unless someone else volunteers to do it...

Thanks again for all the help

Best regards,


Vicne

gnosygnu
Blank Cone
Blank Cone
Posts: 45
Joined: 06 Jun 2010 16:06

Re: VLC Win32 MSYS compile checklist

Postby gnosygnu » 10 Jun 2010 00:57

I looked at your revisions, and they're great.
Thanks for re-confirming.

Jean-Baptiste Kempf
Site Administrator
Site Administrator
Posts: 37523
Joined: 22 Jul 2005 15:29
VLC version: 4.0.0-git
Operating System: Linux, Windows, Mac
Location: Cone, France
Contact:

Re: VLC Win32 MSYS compile checklist

Postby Jean-Baptiste Kempf » 10 Jun 2010 15:37

Wiki!
Jean-Baptiste Kempf
http://www.jbkempf.com/ - http://www.jbkempf.com/blog/category/Videolan
VLC media player developer, VideoLAN President and Sites administrator
If you want an answer to your question, just be specific and precise. Don't use Private Messages.

Vicne
Blank Cone
Blank Cone
Posts: 40
Joined: 28 Feb 2010 22:11

Re: VLC Win32 MSYS compile checklist

Postby Vicne » 10 Jun 2010 20:36

Mmmh, I just noticed that the build doesn't seem to be OK.
The marquee plugin seemingly does not display anything.

Any idea what the cause could be ?

Vicne

MichaelMc
Blank Cone
Blank Cone
Posts: 63
Joined: 10 Jun 2009 17:55

Re: Full build without any error

Postby MichaelMc » 10 Jun 2010 22:12

Code: Select all

*** VLC compile checklist *** *** (1.1.0-rc) *** Section A - Environment * MinGW - http://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/MinGW%205.1.6/MinGW-5.1.6.exe/download - Select "Download and Install" - Select "Candidate" - Select "g++" "MinGW Make" - Install to "C:\MinGW" * mingw update to gcc to 4.4.0 - http://sourceforge.net/projects/mingw/files/GCC%20Version%204/gcc-full-4.4.0-mingw32-bin-2.tar.lzma/download - copy to C:\MinGW * mingw fix libstdc++.la - C:\MinGW\lib\gcc\mingw32\4.4.0\libstdc++.la - old: library_names='libstdc++.dll.a' new: library_names='' * TDM/MinGW Setup - http://sourceforge.net/projects/tdm-gcc/files/TDM-MinGW%20Installer/1.908.0/tdm-mingw-1.908.0-4.4.1-2.exe/download - unckeck "Check for updated files..." - Select "Create" - install to C:\MinGW (ignore warning) - kept "Sourceforge default" - expand gcc node should be set to default: "TDM Unstable: 4.4.1-tdm-2" * TDM libtool - open C:\msys\1.0\bin\libtool - change line 9926 old: compiler_lib_search_dirs="/usr/lib /usr/lib /bin/../lib/gcc-lib/i686-pc-msys/2.95.3-1 /bin/../lib/gcc-lib /usr/lib/gcc-lib/i686-pc-msys/2.95.3-1 /bin/../lib/gcc-lib/i686-pc-msys/2.95.3-1/../../../../i686-pc-msys/lib /usr/lib/gcc-lib/i686-pc-msys/2.95.3-1/../../../../i686-pc-msys/lib" new: compiler_lib_search_dirs="c:/mingw/bin/../lib/gcc/mingw32/4.4.1 c:/mingw/bin/../lib/gcc c:/mingw/bin/../lib/gcc/mingw32/4.4.1/../../../../mingw32/lib c:/mingw/bin/../lib/gcc/mingw32/4.4.1/../../.. /mingw/lib" * msys - http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/msys-1.0.11/MSYS-1.0.11.exe/download - install to C:\msys\1.0 - Do you wish to continue with the post install? y - Do you have MinGW installed? y - Where is your MinGW installation? C:/MinGW * msys toolkit - http://sourceforge.net/projects/mingw/files/MSYS/Supplementary%20Tools/msysDTK-1.0.1/msysDTK-1.0.1.exe/download - keep defaults * autoconf - http://sourceforge.net/projects/mingw/files/MSYS/autoconf/autoconf-2.63-1/autoconf-2.63-1-msys-1.0.11-bin.tar.lzma/download - copy to C:\msys\1.0 * automake - http://sourceforge.net/projects/mingw/files/MSYS/automake/automake-1.11-1/automake-1.11-1-msys-1.0.11-bin.tar.lzma/download - copy to C:\msys\1.0 * libtool - http://sourceforge.net/projects/mingw/files/MSYS/libtool/libtool-2.2.7a-1/libtool-2.2.7a-1-msys-1.0.11-bin.tar.lzma/download - copy to C:\msys\1.0 * whoami - create C:\msys\1.0\bin\whoami - enter following line: echo 'insert your name here' * libcrypt - http://prdownloads.sourceforge.net/mingw/libcrypt-1.1_1-2-msys-1.0.11-dll-0.tar.lzma - copy to C:\msys\1.0 * mingwutils - http://prdownloads.sourceforge.net/mingw/mingw-utils-0.3.tar.gz - copy to C:\MinGW * wget - http://prdownloads.sourceforge.net/mingw/wget-1.9.1-mingwPORT.tar.bz2 - copy wget.exe to C:\MinGW\bin * pkg-config pt 1 - http://ftp.gnome.org/pub/GNOME/binaries/win32/glib/2.18/glib_2.18.2-1_win32.zip - copy to C:\msys\1.0 * pkg-config pt 2 - ftp://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.23-3_win32.zip - copy to C:\msys\1.0 * pkg-config pt 3 - ftp://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config-dev_0.23-3_win32.zip - produces \src\ dir - copy to C:\msys\1.0 * pkg-config pt 4 - Environment Variable PKG_CONFIG_PATH=/win32/lib/pkgconfig * lua - http://www.lua.org/ftp/lua-5.1.4.tar.gz - copy to C:\msys\1.0\home\username - run C:\msys\1.0\msys.bat - make cd ~/lua-5.1.4 make mingw - copy cd src cp *.exe /bin cp *.dll /bin Section B - Precompiled contribs * contrib - http://download.videolan.org/pub/testing/win32/contrib-20100130-win32-bin-gcc-4.4.2-runtime-3.17-only.tar.bz2 - copy to C:\msys\1.0 - path should be C:\msys\1.0\win32 EX: C:\msys\1.0\win32\lib\libdvdnav.a * update gecko sdk in contribs (may not be needed if using more recent contribs) - remove C:\msys\1.0\win32\gecko-sdk - http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.9.2/sdk/xulrunner-1.9.2.en-US.win32.sdk.zip - save as C:\msys\1.0\win32\gecko-sdk (instead of xulrunner-sdk contained in the archive) - EX: C:\msys\1.0\win32\gecko-sdk\include\npapi.h - ref: http://forum.videolan.org/viewtopic.php?f=32&t=75158 Section C - Sources * vlc-src (1.1.0-rc1) - http://download.videolan.org/pub/videolan/testing/vlc-1.1.0-rc/vlc-1.1.0-rc.tar.bz2 - copy to C:\msys\1.0\home\username - rename to C:\msys\1.0\home\username\vlc (Note : some of the following steps may not be needed if using more recent sources) * add missing configure-msys - http://git.videolan.org/?p=vlc.git;a=blob_plain;f=extras/package/win32/configure-msys.sh;hb=HEAD - rename to configure-msys.sh - copy to C:\msys\1.0\home\username\vlc\extras\package\win32 * add missing configure-common - http://git.videolan.org/?p=vlc.git;a=blob_plain;f=extras/package/win32/configure-common.sh;hb=HEAD - rename to configure-common.sh - copy to C:\msys\1.0\home\username\vlc\extras\package\win32 * add missing vlc_windows_interfaces.h - http://git.videolan.org/?p=vlc/vlc-1.1.git;a=blob_plain;f=include/vlc_windows_interfaces.h;h=36bfd4a64b1ec9b9b5da0e21de6d93f53f2eefc3;hb=3a4b30fcf1fbb9ef7a9c85a102183f8a3451622a - rename to vlc_windows_interfaces.h - copy to C:\msys\1.0\home\username\vlc\include * add missing position.h - copy source: C:\msys\1.0\home\username\vlc\projects\mozilla\control\position.h target: C:\msys\1.0\home\username\vlc\projects\activex\position.h * add dummy lua extension - create directory C:\msys\1.0\home\username\vlc\share\lua\extensions - create dummy file C:\msys\1.0\home\username\vlc\share\lua\extensions\readme.txt * modify configure.ac due to limited functionality of hostname.exe on Windows - edit C:\msys\1.0\home\username\vlc\configure.ac - old: AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -f 2> /dev/null || hostname`", [host which ran configure]) new: AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure]) Section D - Build * bootstrap - msys cd vlc cp -v /usr/win32/share/aclocal/* m4/ cp -v /usr/share/aclocal/* m4/ PATH=/usr/win32/bin:$PATH ./bootstrap * configure - sh extras/package/win32/configure-msys.sh * make - PATH=/usr/win32/bin:$PATH make (should take around 30 minutes, have a break) * make package - make package-win32-base * done - run: C:\msys\1.0\home\username\vlc\vlc-1.1.0-rc\vlc.exe

A large number of these steps are not required, especially the first two. There is no need to install MinGW-5.1.6.exe and gcc-full-4.4.0-mingw32-bin-2.tar.lzma as these are surplus once TDM is installed and used.

Regaridng libtool line 9926: compiler_lib_search_dirs does not need to be replaced as suggested above but '/mingw/lib' need only be appended to the end of the existing line. '/mingw' points to the MinGw install as defined in 'msys/etc/fstab' during the Msys post install.

If who.exe, whoami.exe and hostname.exe are extracted from the msys coreutils (http://sourceforge.net/projects/mingw/f ... a/download) and installed in to the msys/bin directory then there would be no need to modify configure.ac. Which also means the 'whoami' step can also be skipped.

Using the latest binary contribs should be a prerequisite not an option. This would mean the 'gecko sdk' update can be skipped.
In my opinion Section C should be replaced with a small guide on retrieving the latest source via git. I use PortableGit (http://code.google.com/p/msysgit/downloads/list) then 'git clone git://git.videolan.org/vlc.git --depth 3' to clone and thereafter 'git pull' to update. Don't forget to add the git/bin location to PATH (eg; in msys.bat: path=%path%;R:\git\bin)

It is much easier and less failure prone to set the PKG_CONFIG_PATH variable via the msys.bat file. When dealing with systems with multiple compilers I've found using user environment variables to be quite troublesome.
Add this to msys.bat:
set PKG_CONFIG_PATH=/win32/lib/pkgconfig

For make; 'PATH=/usr/win32/bin:$PATH make' can be replaced with './compile'. Try it!

Below are the modified steps which today successfully built VLC.

Code: Select all

*** VLC compile checklist *** *** (1.1.0-rc) *** Section A - Environment 1 * TDM/MinGW Setup - http://sourceforge.net/projects/tdm-gcc/files/TDM-MinGW%20Installer/1.908.0/tdm-mingw-1.908.0-4.4.1-2.exe/download - unckeck "Check for updated files..." - Select "Create" - install to C:\MinGW (ignore warning) - kept "Sourceforge default" - expand gcc node should be set to default: "TDM Unstable: 4.4.1-tdm-2" 2 * msys - http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/msys-1.0.11/MSYS-1.0.11.exe/download - install to C:\msys\1.0 - Do you wish to continue with the post install? y - Do you have MinGW installed? y - Where is your MinGW installation? C:/MinGW 3 * msys toolkit - http://sourceforge.net/projects/mingw/files/MSYS/Supplementary%20Tools/msysDTK-1.0.1/msysDTK-1.0.1.exe/download - keep defaults 4 * autoconf - http://sourceforge.net/projects/mingw/files/MSYS/autoconf/autoconf-2.63-1/autoconf-2.63-1-msys-1.0.11-bin.tar.lzma/download - copy to C:\msys\1.0 5 * automake - http://sourceforge.net/projects/mingw/files/MSYS/automake/automake-1.11-1/automake-1.11-1-msys-1.0.11-bin.tar.lzma/download - copy to C:\msys\1.0 6 * libtool - http://sourceforge.net/projects/mingw/files/MSYS/libtool/libtool-2.2.7a-1/libtool-2.2.7a-1-msys-1.0.11-bin.tar.lzma/download - copy to C:\msys\1.0 7 * libcrypt - http://prdownloads.sourceforge.net/mingw/libcrypt-1.1_1-2-msys-1.0.11-dll-0.tar.lzma - copy to C:\msys\1.0 8 * mingwutils - http://prdownloads.sourceforge.net/mingw/mingw-utils-0.3.tar.gz - copy to C:\MinGW 9 * wget - http://prdownloads.sourceforge.net/mingw/wget-1.9.1-mingwPORT.tar.bz2 - copy wget.exe to C:\MinGW\bin 10 * pkg-config pt 1 - http://ftp.gnome.org/pub/GNOME/binaries/win32/glib/2.18/glib_2.18.2-1_win32.zip - copy to C:\msys\1.0 11 * pkg-config pt 2 - ftp://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.23-3_win32.zip - copy to C:\msys\1.0 12 * pkg-config pt 3 - ftp://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config-dev_0.23-3_win32.zip - produces \src\ dir - copy to C:\msys\1.0 13 * pkg-config pt 4 - Add this to the top of msys.bat: set PKG_CONFIG_PATH=/win32/lib/pkgconfig 14 * libtool - open C:\msys\1.0\bin\libtool - change line 9926 appened '/mingw/lib' to the end of 'compiler_lib_search_dirs' 15 * lua - http://www.lua.org/ftp/lua-5.1.4.tar.gz - copy to C:\msys\1.0\home\username - run C:\msys\1.0\msys.bat - make cd ~/lua-5.1.4 make mingw - copy cd src cp *.exe /bin cp *.dll /bin 16 * whoami.exe and hostname.exe - http://sourceforge.net/projects/mingw/files/MSYS/coreutils/coreutils-5.97-2/coreutils-5.97-2-msys-1.0.11-ext.tar.lzma/download copy who.exe, whoami.exe and hostname to c:/msys/1.0/bin Section B - Precompiled contribs 17 * contrib - Get the latest contrib from http://people.videolan.org/~jb/Contribs/ - Eg; http://people.videolan.org/~jb/Contribs/contrib-20100608-win32-bin-gcc-4.4.4-runtime-3.17-only.tar.bz2 - copy to C:\msys\1.0 - path should be C:\msys\1.0\win32 Eg; C:\msys\1.0\win32\lib\libdvdnav.a 18 Section C - Sources - Get PortableGit from http://code.google.com/p/msysgit/downloads/list Install to C:\git Open msys.bat then add 'path=%path%;C:\git\bin' to the top of the file start msys.bat cd ~ if needed git clone git://git.videolan.org/vlc.git --depth 3 or for the 1.1 branch git://git.videolan.org/vlc/vlc-1.1.git --depth 3 Git help can be found at the Wiki here: http://wiki.videolan.org/Git Section D - Build 19 * bootstrap - msys cd vlc cp -v /usr/win32/share/aclocal/* m4/ cp -v /usr/share/aclocal/* m4/ PATH=/usr/win32/bin:$PATH ./bootstrap 20 * configure - sh extras/package/win32/configure-msys.sh 21 * make ./compile (should take around 30 minutes, have a break) 22 * build package make package-win32-base * done - run: C:\msys\1.0\home\username\vlc\vlc-1.1.0-rc\vlc.exe
Last edited by MichaelMc on 12 Jun 2010 16:56, edited 3 times in total.

Vicne
Blank Cone
Blank Cone
Posts: 40
Joined: 28 Feb 2010 22:11

Re: VLC Win32 MSYS compile checklist

Postby Vicne » 10 Jun 2010 22:39

Great ! The simpler, the better.
I'm going to try that procedure right away.

Can you confirm marquee display works with the resulting VLC.exe ?
(I mean Tools > Preferences (show settings=All at bottom left) > expand Video > click Subtitles/OSD > Check "Marquee display" checkbox > Expand Subtitles/OSD > Click Marquee > Enter "TEST" as text > Save > Media/Open File and Play)

Thanks.

Vicne

MichaelMc
Blank Cone
Blank Cone
Posts: 63
Joined: 10 Jun 2009 17:55

Re: VLC Win32 MSYS compile checklist

Postby MichaelMc » 10 Jun 2010 23:03

Marquee is fine. Text displayed as expected.

Vicne
Blank Cone
Blank Cone
Posts: 40
Joined: 28 Feb 2010 22:11

Re: Full build without any error

Postby Vicne » 10 Jun 2010 23:05

Using the latest binary contribs should be a prerequisite not an option. This would mean the 'gecko sdk' update can be skipped.
My newbie experience is that this build is a complex process, and if it doesn't work, the more choices you were given, the more you wonder what you've done wrong, so I'd rather aim at very specific steps that have been validated thoroughly.
Consequently, I agree that we should link to the latest contribs version that has been "validated", and we can mention that if users want to try a more recent one, they're welcome to do so, but I would advise against a step like "take the most recent from the contribs dir"

In my opinion Section C should be replaced with a small guide on retrieving the latest source via git.
I would leave both. Guaranteed reproductible would be the 1.1.0rc tarball, but people wanting to live on the edge of the latest GIT should be helped too.
I use PortableGit (http://code.google.com/p/msysgit/downloads/list) then 'git clone git://git.videolan.org/vlc.git --depth 3' to clone and thereafter 'git pull' to update. Don't forget to add the git/bin location to PATH (eg; in msys.bat: path=%path%;R:\git\bin)
I admit I'm not familiar with Git and I didn't know about portableGit. Sounds easy indeed.
For make; 'PATH=/usr/win32/bin:$PATH make' can be replaced with './compile'. Try it!
Cool :-)
Below are the modified steps which today successfully built VLC.
Starting it now...

Thanks for your help.

Vicne
Last edited by Vicne on 12 Jun 2010 13:45, edited 1 time in total.

Vicne
Blank Cone
Blank Cone
Posts: 40
Joined: 28 Feb 2010 22:11

Re: Full build without any error

Postby Vicne » 10 Jun 2010 23:25

If who.exe, whoami.exe and hostname.exe are extracted from the msys coreutils (http://sourceforge.net/projects/mingw/f ... a/download) and installed in to the msys/bin directory then there would be no need to modify configure.ac. Which also means the 'whoami' step can also be skipped.
Err... Actually, the linked file does not contain these 3 exe files... Link error ?

Vicne

MichaelMc
Blank Cone
Blank Cone
Posts: 63
Joined: 10 Jun 2009 17:55

Re: Full build without any error

Postby MichaelMc » 11 Jun 2010 00:02

If who.exe, whoami.exe and hostname.exe are extracted from the msys coreutils (http://sourceforge.net/projects/mingw/f ... a/download) and installed in to the msys/bin directory then there would be no need to modify configure.ac. Which also means the 'whoami' step can also be skipped.
Err... Actually, the linked file does not contain these 3 exe files... Link error ?

Vicne
Sorry my mistake. It should be http://sourceforge.net/projects/mingw/f ... a/download

Those files used to be in the 'bin' package but are now contained within the 'ext' package.
Last edited by MichaelMc on 11 Jun 2010 00:25, edited 1 time in total.

Vicne
Blank Cone
Blank Cone
Posts: 40
Joined: 28 Feb 2010 22:11

Re: Full build without any error

Postby Vicne » 11 Jun 2010 00:18

Starting it now...
Hi, Michael,

compile just failed :-( with the same message I had already observed without installing GCC 4.4.0 first :

Code: Select all

[...] Creating library file: .libs/libvorbis_plugin.dll.a In file included from C:/msys/1.0/win32/include/pthread.h:214, from x264.c:41: ERROR : C:/msys/1.0/win32/include/config.h:17: 30: 1: No such file or directory In file included from x264.c:41: WARNING : C:/msys/1.0/win32/include/pthread.h:223: 5: "HAVE_SIGNAL_H" is not defined WARNING : C:/msys/1.0/win32/include/pthread.h:950: 5: "PTW32_LEVEL" is not defined WARNING : C:/msys/1.0/win32/include/pthread.h:950: 20: "PTW32_LEVEL_MAX" is not defined WARNING : C:/msys/1.0/win32/include/pthread.h:1125: 5: "PTW32_LEVEL" is not defined WARNING : C:/msys/1.0/win32/include/pthread.h:1125: 20: "PTW32_LEVEL_MAX" is not defined WARNING : C:/msys/1.0/win32/include/pthread.h:1181: 5: "PTW32_LEVEL" is not defined WARNING : C:/msys/1.0/win32/include/pthread.h:1181: 20: "PTW32_LEVEL_MAX" is not defined WARNING : C:/msys/1.0/win32/include/pthread.h:1279: 5: "PTW32_LEVEL" is not defined WARNING : C:/msys/1.0/win32/include/pthread.h:1279: 20: "PTW32_LEVEL_MAX" is not defined make: *** [all] Error 2
(I should point out I started with the 1.1.0rc tarball again, fixed as described in the previous checklists...)

Any easy fix ?

Best regards,

Vicne

MichaelMc
Blank Cone
Blank Cone
Posts: 63
Joined: 10 Jun 2009 17:55

Re: Full build without any error

Postby MichaelMc » 11 Jun 2010 00:36

Starting it now...
Hi, Michael,

compile just failed :-( with the same message I had already observed without installing GCC 4.4.0 first :

Code: Select all

[...] Creating library file: .libs/libvorbis_plugin.dll.a In file included from C:/msys/1.0/win32/include/pthread.h:214, from x264.c:41: ERROR : C:/msys/1.0/win32/include/config.h:17: 30: 1: No such file or directory In file included from x264.c:41: WARNING : C:/msys/1.0/win32/include/pthread.h:223: 5: "HAVE_SIGNAL_H" is not defined WARNING : C:/msys/1.0/win32/include/pthread.h:950: 5: "PTW32_LEVEL" is not defined WARNING : C:/msys/1.0/win32/include/pthread.h:950: 20: "PTW32_LEVEL_MAX" is not defined WARNING : C:/msys/1.0/win32/include/pthread.h:1125: 5: "PTW32_LEVEL" is not defined WARNING : C:/msys/1.0/win32/include/pthread.h:1125: 20: "PTW32_LEVEL_MAX" is not defined WARNING : C:/msys/1.0/win32/include/pthread.h:1181: 5: "PTW32_LEVEL" is not defined WARNING : C:/msys/1.0/win32/include/pthread.h:1181: 20: "PTW32_LEVEL_MAX" is not defined WARNING : C:/msys/1.0/win32/include/pthread.h:1279: 5: "PTW32_LEVEL" is not defined WARNING : C:/msys/1.0/win32/include/pthread.h:1279: 20: "PTW32_LEVEL_MAX" is not defined make: *** [all] Error 2
(I should point out I started with the 1.1.0rc tarball again, fixed as described in the previous checklists...)

Any easy fix ?

Best regards,

Vicne

There's not much I can really help with as that error is correct in that config.h shouldn't be there anyway. Why is it being told it should be?
I ran through my additions/changes to the checklist 4 times (once with git master, rest with 1.1), from beginning to end, with success, before posting. I've never tried building from the tarball.

Jean-Baptiste Kempf
Site Administrator
Site Administrator
Posts: 37523
Joined: 22 Jul 2005 15:29
VLC version: 4.0.0-git
Operating System: Linux, Windows, Mac
Location: Cone, France
Contact:

Re: VLC Win32 MSYS compile checklist

Postby Jean-Baptiste Kempf » 11 Jun 2010 00:49

rm -rf /usr/win32/include/config.h

It is a small issue with the current Contribs.
Jean-Baptiste Kempf
http://www.jbkempf.com/ - http://www.jbkempf.com/blog/category/Videolan
VLC media player developer, VideoLAN President and Sites administrator
If you want an answer to your question, just be specific and precise. Don't use Private Messages.

Jean-Baptiste Kempf
Site Administrator
Site Administrator
Posts: 37523
Joined: 22 Jul 2005 15:29
VLC version: 4.0.0-git
Operating System: Linux, Windows, Mac
Location: Cone, France
Contact:

Re: Full build without any error

Postby Jean-Baptiste Kempf » 11 Jun 2010 00:50

A large number of these steps are not required, especially the first two. There is no need to install MinGW-5.1.6.exe and gcc-full-4.4.0-mingw32-bin-2.tar.lzma as these are surplus once TDM is installed and used.
"Install MingW" is a good idea to let in place, since we might go back to a vanilla gcc when they go back to sjlj :D
Jean-Baptiste Kempf
http://www.jbkempf.com/ - http://www.jbkempf.com/blog/category/Videolan
VLC media player developer, VideoLAN President and Sites administrator
If you want an answer to your question, just be specific and precise. Don't use Private Messages.

gnosygnu
Blank Cone
Blank Cone
Posts: 45
Joined: 06 Jun 2010 16:06

Re: VLC Win32 MSYS compile checklist

Postby gnosygnu » 11 Jun 2010 02:25

Can you confirm marquee display works with the resulting VLC.exe ?
FWIW: it doesn't work on my build.

I looked at the messages with verbosity of 2 on my custom build. I noticed this

Code: Select all

freetype debug: Building font databases. main debug: no fetch required for (null) (art currently (null)) freetype debug: Took 191000 microseconds freetype error: Fontmatching failed
In contrast, the 1.1.0 pre4 binary has this.

Code: Select all

freetype debug: Building font database. freetype debug: Finished building font database. freetype debug: Took 0 microseconds freetype debug: Using Arial Black as font from file C:/WINDOWS/fonts/ariblk.ttf freetype debug: using fontsize: 1
If freetype is the cause (haven't looked at source), maybe it's an issue with the contrib? Or the configure script (--with-freetype-config-path=$CONTRIBS/bin)?

Hope this helps...

Vicne
Blank Cone
Blank Cone
Posts: 40
Joined: 28 Feb 2010 22:11

Re: VLC Win32 MSYS compile checklist

Postby Vicne » 12 Jun 2010 09:33

rm -rf /usr/win32/include/config.h

It is a small issue with the current Contribs.
OK, I removed config.h and compile went on, but now when it gets to the line :

Code: Select all

moc -DHAVE_CONFIG_H -I../../../include -I../../../include -I/usr/win32/include -I/usr/win32/include/ebml -D__USE_MINGW_ANSI_STDIO=1 -DSYS_MINGW32 -I../../.. `top_srcdir="../../.." top_builddir="../../.." ../../../vlc-config --cppflags plugin qt4` -o main_interface.moc.cpp main_interface.hpp
I get a Windows popup that says (approximate translation) :

Code: Select all

moc.exe - Component not found This application could not start because libgcc_s_dw2-1.dll could not be found. Reinstalling this application could fix the problem.
Any hint is appreciated...

Vicne

Vicne
Blank Cone
Blank Cone
Posts: 40
Joined: 28 Feb 2010 22:11

Re: VLC Win32 MSYS compile checklist

Postby Vicne » 12 Jun 2010 09:36

Can you confirm marquee display works with the resulting VLC.exe ?
FWIW: it doesn't work on my build.
:-(

So there's something wrong in our build procedure too...

I'm going to setup an Ubuntu Virtualbox to see if the cross-compile way is easier...

Best regards,

Vicne

MichaelMc
Blank Cone
Blank Cone
Posts: 63
Joined: 10 Jun 2009 17:55

Re: VLC Win32 MSYS compile checklist

Postby MichaelMc » 12 Jun 2010 11:16

rm -rf /usr/win32/include/config.h

It is a small issue with the current Contribs.
OK, I removed config.h and compile went on, but now when it gets to the line :

Code: Select all

moc -DHAVE_CONFIG_H -I../../../include -I../../../include -I/usr/win32/include -I/usr/win32/include/ebml -D__USE_MINGW_ANSI_STDIO=1 -DSYS_MINGW32 -I../../.. `top_srcdir="../../.." top_builddir="../../.." ../../../vlc-config --cppflags plugin qt4` -o main_interface.moc.cpp main_interface.hpp
I get a Windows popup that says (approximate translation) :

Code: Select all

moc.exe - Component not found This application could not start because libgcc_s_dw2-1.dll could not be found. Reinstalling this application could fix the problem.
Any hint is appreciated...

Vicne
That was an issue with an older contrib release. Upgrade to latest contribs from the link provided earlier.

Vicne
Blank Cone
Blank Cone
Posts: 40
Joined: 28 Feb 2010 22:11

Re: VLC Win32 MSYS compile checklist

Postby Vicne » 12 Jun 2010 13:37

It is a small issue with the current Contribs.
That was an issue with an older contrib release.
When first reading this, I thought there was a contradiction. My contribs would be both current and older ? :-)

But you're right. I had downloaded the latest 4.4.4 contribs when first trying 10 days ago, but JB has made a new package available since (thanks), so I wasn't using the most recent one.

The 20100608 contribs seem to be perfect. I did a "make clean" and restarted a build, and all went fine.

The resulting VLC.exe works (including marquee) and looks stable AFAICT.

My proposal would be that I start over a (7th!) full install from scratch (which should look very much like MichaelMc's post) and post it on the wiki.

Now to address JB's comment about keeping the MinGW part in case conditions change again, I see two ways : Either I leave the "obsolete" sections in the page and mark them as such, or I start a brand new page (based on a copy of the current one) and link to the original for reference.

My opinion would be to make things as simple as possible and start a new page called "Win32CompileMSYSNewNew" or "Win32CompileV3".

Does that suit everybody ?

Vicne

Vicne
Blank Cone
Blank Cone
Posts: 40
Joined: 28 Feb 2010 22:11

Re: Full build without any error

Postby Vicne » 12 Jun 2010 14:59

If who.exe, whoami.exe and hostname.exe are extracted from the msys coreutils...
Not so simple, because they lack dependancies. When launching configure (first use of hostname), I got a Windows pop-up saying (approximate translation) :

Code: Select all

This application could not start because msys-intl-8.dll was not found. Reinstalling this application might solve the problem.
I dowloaded and added http://sourceforge.net/projects/mingw/f ... a/download and then it stopped with :

Code: Select all

This application could not start because msys-iconv-2.dll was not found. Reinstalling this application might solve the problem.
So I looked for and found http://sourceforge.net/projects/mingw/f ... a/download
and now it works

That makes the "simpler" solution not so simple anymore ;-)

Vicne

MichaelMc
Blank Cone
Blank Cone
Posts: 63
Joined: 10 Jun 2009 17:55

Re: Full build without any error

Postby MichaelMc » 12 Jun 2010 16:54

If who.exe, whoami.exe and hostname.exe are extracted from the msys coreutils...
Not so simple, because they lack dependancies. When launching configure (first use of hostname), I got a Windows pop-up saying (approximate translation) :

Code: Select all

This application could not start because msys-intl-8.dll was not found. Reinstalling this application might solve the problem.
I dowloaded and added http://sourceforge.net/projects/mingw/f ... a/download and then it stopped with :

Code: Select all

This application could not start because msys-iconv-2.dll was not found. Reinstalling this application might solve the problem.
So I looked for and found http://sourceforge.net/projects/mingw/f ... a/download
and now it works

That makes the "simpler" solution not so simple anymore ;-)

Vicne
Quite true.
Instead of 5.97-3 use 5.97-2: http://sourceforge.net/projects/mingw/f ... a/download . Difference being one is statically linked while the other is not.

MichaelMc
Blank Cone
Blank Cone
Posts: 63
Joined: 10 Jun 2009 17:55

Re: VLC Win32 MSYS compile checklist

Postby MichaelMc » 12 Jun 2010 17:03

...
My proposal would be that I start over a (7th!) full install from scratch (which should look very much like MichaelMc's post) and post it on the wiki.

Now to address JB's comment about keeping the MinGW part in case conditions change again, I see two ways : Either I leave the "obsolete" sections in the page and mark them as such, or I start a brand new page (based on a copy of the current one) and link to the original for reference.

My opinion would be to make things as simple as possible and start a new page called "Win32CompileMSYSNewNew" or "Win32CompileV3".

Does that suit everybody ?

Vicne
How about something like 'Win32CompileTDM-MSYS' and rename the current to 'Win32CompileMinGW32-MSYS'"

I'd also like to add another step. Though not required to build VLC it is required for building the contribs, an updated version of sed is a must. http://sourceforge.net/projects/mingw/f ... a/download

Jean-Baptiste Kempf
Site Administrator
Site Administrator
Posts: 37523
Joined: 22 Jul 2005 15:29
VLC version: 4.0.0-git
Operating System: Linux, Windows, Mac
Location: Cone, France
Contact:

Re: VLC Win32 MSYS compile checklist

Postby Jean-Baptiste Kempf » 12 Jun 2010 17:21

...
My proposal would be that I start over a (7th!) full install from scratch (which should look very much like MichaelMc's post) and post it on the wiki.

Now to address JB's comment about keeping the MinGW part in case conditions change again, I see two ways : Either I leave the "obsolete" sections in the page and mark them as such, or I start a brand new page (based on a copy of the current one) and link to the original for reference.

My opinion would be to make things as simple as possible and start a new page called "Win32CompileMSYSNewNew" or "Win32CompileV3".

Does that suit everybody ?

Vicne
How about something like 'Win32CompileTDM-MSYS' and rename the current to 'Win32CompileMinGW32-MSYS'"

I'd also like to add another step. Though not required to build VLC it is required for building the contribs, an updated version of sed is a must. http://sourceforge.net/projects/mingw/f ... a/download
Please, don't split the pages, make it in the same page. TDM is just a fork of mingw32 and it will be merged back, I am quite sure.
Jean-Baptiste Kempf
http://www.jbkempf.com/ - http://www.jbkempf.com/blog/category/Videolan
VLC media player developer, VideoLAN President and Sites administrator
If you want an answer to your question, just be specific and precise. Don't use Private Messages.


Return to “Development around libVLC”

Who is online

Users browsing this forum: No registered users and 16 guests