User Tools

Site Tools


build:dependencies:windows

Windows

Just to note: I'm using Windows 7 (64 bit) SP1 and MSVS 2010 Pro SP1, so I can't guarantee different configurations will always work correctly the first time.

Prerequisites

Download and install the following in their specified order (important!)

    • Make sure to install the “Samples” as they are needed for DirectShow libraries.
    • If you run into an error during the installation, you likely have already installed VS2010 and need to follow these instructions.
  1. Visual Studio 2010, This can be either the Professional or MSVS 2010 Express.
  2. Cygwin (Only the default “recommended packages” are required; namely the package containing cygpath)
    • You'll need to create an Apple Developer account to access the download. It is free to register and download.

Clone the Repo

Open a Git Bash shell, which can now be found in your Start Menu, and change to the directory where you'd like to clone the dependencies to. Run the following:

git clone -b xul-9.0.1 https://github.com/nightingale-media-player/nightingale-deps.git

This may take awhile.

Setup & Configuration

Now that the repo is cloned, open C:\mozilla-build-1.9\start-shell-msvc2010.bat. DO NOT USE start-shell-msvc2010-x64.bat!

Change into the repo directory, and run:

./setup_win_packages.sh

After this has finished, close the terminal. Open C:\mozilla-build-1.9\start-shell-msvc2010.bat with a text editor (like Notepad++ or Sublime Text).

Scroll to the bottom and add the following:

set INCLUDE=%INCLUDE%;C:\WinDDK\7600.16385.1\inc\api;C:\WinDDK\7600.16385.1\inc\crt;C:\WinDDK\7600.16385.1\inc\atl71;c:\ng-deps\bison-2.4.1\include;c:\ng-deps\flex-2.5.33\include;c:\ng-deps\regex-0.12\include
set LIB=%LIB%;c:\WinDDK\7600.16385.1\lib\wxp\i386;c:\WinDDK\7600.16385.1\lib\Crt\i386;C:\WinDDK\7600.16385.1\lib\ATL\i386;c:\ng-deps\bison-2.4.1;c:\ng-deps\flex-2.5.33\lib;c:\ng-deps\regex-0.12\lib
set PATH=%PATH%;c:\WinDDK\7600.16385.1\bin\x86\x86;c:\ng-deps\bison-2.4.1\bin;c:\ng-deps\flex-2.5.33\bin;c:\ng-deps\regex-0.12\bin;c:\ng-deps\binutils-2.24-1\bin

Immediately BEFORE the line:

"%MOZILLABUILD%\msys\bin\bash" --login -i

Building

To build, open “C:\mozilla-build-1.9\start-shell-msvc2010.bat” again, and change to the repo's directory.

Since the Windows dependencies builds are still a work in progress, the process is not as streamlined currently.

If you wish to build XR, which is needed to compile many of the other dependencies, run fetch-build-xul.sh, which will download the source archive, extract it, and begin building.

You can open win-dep-build.sh and uncomment lines corresponding to the dependencies you want to build at the moment. You do not need to build libtool, start with gettext. You can then choose which you'd like to build. Note, however, some of the dependencies must be built sequentially, e.g. libogg is needed for libvorbis, which is needed for libtheora.

Notes

TODO

Converting Precompiled Libs

GTK precompiled packages and explain about converting their .dlls to .libs using the Visual Studio Command Prompt:

dumpbin /exports somefile.dll > somefile.def

cut out extra stuff so it's just the function names

add “EXPORTS” to the top

lib /def:“somefile.def” /out:“somefile.lib” /machine:x86

MinGW Packages

The last time I checked, these were the MinGW packages I had installed:

  • mingw32-autoconf
  • mingw32-automake
  • mingw32-base
  • mingw32-binutils
  • mingw32-gcc
  • mingw32-gcc-g++
  • mingw32-gdb
  • mingw32-gettext
  • mingw32-libasprintf
  • mingw32-libgcc
  • mingw32-libgettextpo
  • mingw32-libgmp
  • mingw32-libgomp
  • mingw32-libiconv
  • mingw32-libintl
  • mingw32-libmpc
  • mingw32-libmpfr
  • mingw32-libpthread-old
  • mingw32-libpthreadgc
  • mingw32-libquadmath
  • mingw32-libssp
  • mingw32-libstdc++
  • mingw32-libtool
  • mingw32-libz
  • mingw32-make
  • mingw32-mingw-get
  • mingw32-mingwrt
  • mingw32-w32api

Errors Encountered

libtool: link: cannot find the library `' or unhandled argument `c:/Users/jmurray/Documents/GitHub/nightingale/deps-xul-9.0.1/windows-i686-msvc10/gettext/debug/lib'

This is caused by the ”.la” files in already built dependencies. Specifically, in the windows-i686-msvc10/*/*/lib/*.la files.

In the “dependency_libs” sections of the files, check to make sure they do NOT start with or contain c:/<path to deps>/windows-i686-msvc10/<built dep>/<debug|release>/lib. They should have -Lc:/<path to deps>/windows-i686-msvc10/<built dep>/<debug|release>/lib.

However, entries that do not have the ”-L” prefix but specify a specific library, like c:/<path to deps>/windows-i686-msvc10/<built dep>/<debug|release>/lib/<some lib>.la, are CORRECT, and do not need to be fixed.

build/dependencies/windows.txt · Last modified: 2014/07/01 11:22 by johnmurrayvi