Page 1 of 1

Problem compiling the latest Windows 3.0 from GIT.

Posted: 21 Jun 2016 17:28
by Wildcopper
Hello,

I could use some help with a problem I have compiling the latest GIT VLC version.
I'm in a VM with Ubuntu 16.04 LTS 64 bits, to cross-compile for Windows.

When arrives the moment to build the contribs, it doesn't work with the "prebuilt" ones.
So I proceed to compile the whole stuff.

During "make fetch", following happens:

Code: Select all

--2016-06-21 17:22:28-- http://downloads.videolan.org/pub/contrib/dshow-headers-oss.tar.bz2 Resolving downloads.videolan.org (downloads.videolan.org)... 88.191.250.2, 2a01:e0d:1:3:58bf:fa02:c0de:5 Connecting to downloads.videolan.org (downloads.videolan.org)|88.191.250.2|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 40833 (40K) [application/octet-stream] Saving to: ‘../../contrib/tarballs/dshow-headers-oss.tar.bz2.tmp’ ../../contrib/tarballs/dshow-headers-o 100%[==========================================================================>] 39,88K --.-KB/s in 0,03s 2016-06-21 17:22:28 (1,22 MB/s) - ‘../../contrib/tarballs/dshow-headers-oss.tar.bz2.tmp’ saved [40833/40833] FINISHED --2016-06-21 17:22:28-- Total wall clock time: 0,2s Downloaded: 1 files, 40K in 0,03s (1,22 MB/s) grep -- " dshow-headers-oss.tar.bz2$" "../../contrib/src/dshow/SHA512SUMS" && (cd ../../contrib/tarballs && sha512sum --check /dev/stdin) < "../../contrib/src/dshow/SHA512SUMS" 779c4a36a4276c6e18017b898903cdf162c186b2f8de22ac12d995b316fe40d8277374eb88c695e8a760497239ad176a85ea4ecccd0df841283f95ff591997a7 dshow-headers-oss.tar.bz2 dshow-headers-oss.tar.bz2: OK sha512sum: d2d_headers.zip: No such file or directory d2d_headers.zip: FAILED open or read sha512sum: WARNING: 1 listed file could not be read Makefile:498: recipe for target '.sum-dshow' failed make: *** [.sum-dshow] Error 1
Any hints?
Thanks.

Re: Problem compiling the latest Windows 3.0 from GIT.

Posted: 22 Jun 2016 10:58
by Wildcopper
Update: I managed to fix that problem by using Ubuntu 16.04 32 bits.
Now I'm getting another error during the "make" phase of the contribs:

cp ../../contrib/tarballs/dxgi1_2.idl dxgi12 && cd dxgi12 && patch -fp1 < ../../../contrib/src/d3d11/dxgi12.patch
patching file dxgi1_2.idl
mkdir -p -- "/home/vlc/vlc/contrib/i686-w64-mingw32/include/"
i686-w64-mingw32-widl -DBOOL=WINBOOL -I/usr/include/wine/windows/ -h -o /home/vlc/vlc/contrib/i686-w64-mingw32/include/dxgi1_2.h dxgi12/dxgi1_2.idl
dxgi12/dxgi1_2.idl:43: error: syntax error, unexpected aKNOWNTYPE, expecting tIMPORT
../../contrib/src/d3d11/rules.mak:63: recipe for target '/home/vlc/vlc/contrib/i686-w64-mingw32/include/dxgi1_2.h' failed
make: *** [/home/vlc/vlc/contrib/i686-w64-mingw32/include/dxgi1_2.h] Error 1

I'd be thankful for any advice.

Re: Problem compiling the latest Windows 3.0 from GIT.

Posted: 22 Jun 2016 11:27
by chouquette
Hi,

That looks like you are using an outdated version of mingw-w64
VLC requires version 5.0 (which only has release candidate so far, sadly). IIRC you need a mingw-w64 from after mid January 2016

Re: Problem compiling the latest Windows 3.0 from GIT.

Posted: 22 Jun 2016 14:59
by Wildcopper
Hi,

That looks like you are using an outdated version of mingw-w64
VLC requires version 5.0 (which only has release candidate so far, sadly). IIRC you need a mingw-w64 from after mid January 2016
Hi,

Thanks for the suggestion.
Looks like I'm going to have to build one myself...

Re: Problem compiling the latest Windows 3.0 from GIT.

Posted: 22 Jun 2016 15:57
by chouquette
it should be pretty straight forward, IIRC you don't need to build all mingw-w64 projects individually, simply run to toplevel configure script, which should install everything you need.

Feel free to ask for more help here if it proves to be more complicated though!

Re: Problem compiling the latest Windows 3.0 from GIT.

Posted: 22 Jun 2016 18:00
by Wildcopper
It's ok, I managed to compile and install the 5.0. Thanks for your kind offer!

Now I get this...

Code: Select all

mkdir -p -- /home/vlc/vlc/contrib/i686-w64-mingw32/share/aclocal && cd a52dec && autoreconf -fiv -I/home/vlc/vlc/contrib/i686-w64-mingw32/share/aclocal autoreconf: Entering directory `.' autoreconf: configure.in: not using Gettext autoreconf: running: aclocal -I /home/vlc/vlc/contrib/i686-w64-mingw32/share/aclocal --force aclocal: warning: autoconf input should be named 'configure.ac', not 'configure.in' autoreconf: configure.in: tracing autoreconf: configure.in: not using Libtool autoreconf: running: /usr/bin/autoconf --include=/home/vlc/vlc/contrib/i686-w64-mingw32/share/aclocal --force configure.in:74: error: possibly undefined macro: AC_DISABLE_SHARED If this token and others are legitimate, please use m4_pattern_allow. See the Autoconf documentation. configure.in:75: error: possibly undefined macro: AC_LIBTOOL_WIN32_DLL configure.in:76: error: possibly undefined macro: AC_PROG_LIBTOOL autoreconf: /usr/bin/autoconf failed with exit status: 1 ../../contrib/src/a52/rules.mak:26: recipe for target '.a52' failed make: *** [.a52] Error 1
Fixed by installing "libtool".

Re: Problem compiling the latest Windows 3.0 from GIT.

Posted: 23 Jun 2016 08:57
by Wildcopper
New problem, yeah! :)

Code: Select all

configure: Library configuration: external zlib: yes (pkg-config) bzip2: no libpng: no harfbuzz: no make[1]: Nothing to be done for 'unix'. make[1]: Leaving directory '/home/wildcopper/vlc/contrib/win32/freetype' cd freetype && make && make install make[1]: Entering directory '/home/wildcopper/vlc/contrib/win32/freetype' gcc -o /home/wildcopper/vlc/contrib/win32/freetype/objs/apinames /home/wildcopper/vlc/contrib/win32/freetype/src/tools/apinames.c In file included from /usr/local/include/crtdefs.h:10:0, from /usr/local/include/stdio.h:9, from /home/wildcopper/vlc/contrib/win32/freetype/src/tools/apinames.c:19: /usr/local/include/_mingw.h:264:2: error: #error Only Win32 target is supported! #error Only Win32 target is supported! ^ In file included from /usr/local/include/crtdefs.h:10:0, from /usr/local/include/stdio.h:9, from /home/wildcopper/vlc/contrib/win32/freetype/src/tools/apinames.c:19: /usr/local/include/_mingw.h:539:14: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__debugbreak’ void __cdecl __debugbreak(void); ^ /usr/local/include/_mingw.h:540:36: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__debugbreak’ __MINGW_INTRIN_INLINE void __cdecl __debugbreak(void) ^ In file included from /home/wildcopper/vlc/contrib/win32/freetype/src/tools/apinames.c:19:0: /usr/local/include/stdio.h:141:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__mingw_sscanf’ int __cdecl __mingw_sscanf(const char * __restrict__ _Src,const char * __restrict__ _Format,...); ^ /usr/local/include/stdio.h:144:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__mingw_vsscanf’ int __cdecl __mingw_vsscanf (const char * __restrict__ _Str,const char * __restrict__ Format,va_list argp); ^ /usr/local/include/stdio.h:147:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__mingw_scanf’ int __cdecl __mingw_scanf(const char * __restrict__ _Format,...); ^
it continues that way for ages, and then:

^

Code: Select all

/home/wildcopper/vlc/contrib/win32/freetype/src/tools/apinames.c:444:9: warning: incompatible implicit declaration of built-in function ‘fprintf’ fprintf( stderr, "unable to open '%s'\n", argv[0] ); ^ /home/wildcopper/vlc/contrib/win32/freetype/src/tools/apinames.c:444:9: note: include ‘<stdio.h>’ or provide a declaration of ‘fprintf’ /home/wildcopper/vlc/contrib/win32/freetype/src/tools/apinames.c:448:11: warning: incompatible implicit declaration of built-in function ‘fprintf’ fprintf( stderr, "opening '%s'\n", argv[0] ); ^ /home/wildcopper/vlc/contrib/win32/freetype/src/tools/apinames.c:448:11: note: include ‘<stdio.h>’ or provide a declaration of ‘fprintf’ /home/wildcopper/vlc/contrib/win32/freetype/src/tools/apinames.c:451:9: warning: implicit declaration of function ‘fclose’ [-Wimplicit-function-declaration] fclose( file ); ^ /home/wildcopper/vlc/contrib/win32/freetype/builds/exports.mk:54: recipe for target '/home/wildcopper/vlc/contrib/win32/freetype/objs/apinames' failed make[1]: *** [/home/wildcopper/vlc/contrib/win32/freetype/objs/apinames] Error 1 make[1]: Leaving directory '/home/wildcopper/vlc/contrib/win32/freetype' ../../contrib/src/freetype2/rules.mak:25: recipe for target '.freetype2' failed make: *** [.freetype2] Error 2 wildcopper@pat-dev-VM:~/vlc/contrib/win32$ ^

Re: Problem compiling the latest Windows 3.0 from GIT.

Posted: 23 Jun 2016 18:00
by Wildcopper
@Chouquette:
I was wondering if it was possible to get a virtual machine configured to compile VLC properly.
I really need the 3.0 for a project since I need DX11 for HDCP and DRM management.

Thanks in advance.

Re: Problem compiling the latest Windows 3.0 from GIT.

Posted: 27 Jun 2016 14:30
by chouquette
I'm sure it's possible, but I don't have any available.

That error message you posted seems like you either compiled mingw-w64 with a wrong target/host parameter(s); or that you're compiling the contribs with the wrong --host parameter.

As an exemple of proper mingw-w64, you can look at this dockerfile which we use to generate our winrt toolchains (which is almost a vanilla mingw-w64): https://code.videolan.org/thresh/docker ... Dockerfile

Once this is done, following the https://wiki.videolan.org/Win32Compile/ tutorial should work out of the box.

Re: Problem compiling the latest Windows 3.0 from GIT.

Posted: 28 Jun 2016 11:52
by Wildcopper
Thank you very much, chouquette.
I've done exactly what you said, used the dockerfile to compile mingw-w64, worked just fine including the two patches.

But I'm still back to point one:

Code: Select all

mkdir -p d3d11 cp ../../contrib/tarballs/d3d11.idl d3d11 && cd d3d11 && patch -fp1 < ../../../contrib/src/d3d11/processor_format.patch patching file d3d11.idl mkdir -p -- "/home/vlc/vlc/contrib/i686-w64-mingw32/include/" i686-w64-mingw32-widl -DBOOL=WINBOOL -I/usr/include/wine/windows/ -h -o /home/vlc/vlc/contrib/i686-w64-mingw32/include/d3d11.h d3d11/d3d11.idl mkdir -p -- "/home/vlc/vlc/contrib/i686-w64-mingw32/include/" i686-w64-mingw32-widl -DBOOL=WINBOOL -I/usr/include/wine/windows/ -h -o /home/vlc/vlc/contrib/i686-w64-mingw32/include/dxgidebug.h ../../contrib/tarballs/dxgidebug.idl mkdir -p -- "/home/vlc/vlc/contrib/i686-w64-mingw32/include/" cp ../../contrib/tarballs/dxgitype.h /home/vlc/vlc/contrib/i686-w64-mingw32/include/dxgitype.h touch .dxgitype mkdir -p dxgi12 cp ../../contrib/tarballs/dxgi1_2.idl dxgi12 && cd dxgi12 && patch -fp1 < ../../../contrib/src/d3d11/dxgi12.patch patching file dxgi1_2.idl mkdir -p -- "/home/vlc/vlc/contrib/i686-w64-mingw32/include/" i686-w64-mingw32-widl -DBOOL=WINBOOL -I/usr/include/wine/windows/ -h -o /home/vlc/vlc/contrib/i686-w64-mingw32/include/dxgi1_2.h dxgi12/dxgi1_2.idl dxgi12/dxgi1_2.idl:43: error: syntax error, unexpected aKNOWNTYPE, expecting tIMPORT ../../contrib/src/d3d11/rules.mak:63: recipe for target '/home/vlc/vlc/contrib/i686-w64-mingw32/include/dxgi1_2.h' failed make: *** [/home/vlc/vlc/contrib/i686-w64-mingw32/include/dxgi1_2.h] Error 1
Could it be a bad wine library problem?

Re: Problem compiling the latest Windows 3.0 from GIT.

Posted: 08 Jul 2016 05:06
by runner0502
i have the same problem, I compile and install mingw-w64 from git , the dx11 error still exist.
the error below
dxgi12/dxgi1_2.idl:43: error: syntax error, unexpected aKNOWNTYPE, expecting tIMPORT

anyone can help? thanks a lot

Re: Problem compiling the latest Windows 3.0 from GIT.

Posted: 12 Jul 2016 08:03
by runner0502
I got it , it is wine problem

Re: Problem compiling the latest Windows 3.0 from GIT.

Posted: 08 Aug 2016 23:11
by richardy
What did you do to fix it?

Re: Problem compiling the latest Windows 3.0 from GIT.

Posted: 16 Aug 2016 13:26
by runner0502
apt-get install wine64-development-tools
motify contib\src\d3d9\rules.mak and contrib\src\d3d11\rules.mak IDL_INC_PATH = /usr/include/wine/windows/ to IDL_INC_PATH = /usr/include/wine-development/windows/

Re: Problem compiling the latest Windows 3.0 from GIT.

Posted: 16 Aug 2016 13:26
by runner0502
apt-get install wine64-development-tools
motify contib\src\d3d9\rules.mak and contrib\src\d3d11\rules.mak IDL_INC_PATH = /usr/include/wine/windows/ to IDL_INC_PATH = /usr/include/wine-development/windows/

Re: Problem compiling the latest Windows 3.0 from GIT.

Posted: 18 Aug 2016 18:07
by richardy
@runner0502 Thank you very much! This was the missing piece. I still needed to install packages not mentioned in the docs, remove all the qt4 packages and stuff from Ubuntu and install the qt5 packages. When packaging VLC for windows, I needed to modify the Makefile so that make would use todos and not unix2dos when changing the line endings on text files.

I will post more exact steps here https://forum.videolan.org/viewtopic.php?f=32&t=134885

If I had this much trouble cross compiling VLC, I am not sure we will be able to modify it to meet our requirements; but, thanks to your help, I can at least cross compile for Windows.