summaryrefslogtreecommitdiff
path: root/doc/README.WIN32
diff options
context:
space:
mode:
Diffstat (limited to 'doc/README.WIN32')
-rw-r--r--doc/README.WIN32147
1 files changed, 147 insertions, 0 deletions
diff --git a/doc/README.WIN32 b/doc/README.WIN32
new file mode 100644
index 000000000..3a722897e
--- /dev/null
+++ b/doc/README.WIN32
@@ -0,0 +1,147 @@
+Introduction
+------------
+
+This document describes how to build xine library under Windows.
+
+
+Download
+--------
+Checkout source code from CVS (under Windows can be used CygWin or another tool). You will need 'xine-lib' (the library) and 'xine-win32' (testing Windows frontend).
+
+
+Build
+-----
+
+There are three different ports on Windows:
+ 1) MinGW (the simplest and recommended)
+ 1) CygWin
+ 3) M$ Visual C, or maybe .NET (recommended for debugging)
+
+
+1. MinGW port
+-------------
+This is the best way. Final library is 100% native Windows with all optimizations.
+
+Also you can use cross-build from comfortable unix-like system. See README.MINGWCROSS for more information.
+
+Requirements for compilation under Windows:
+ a) MinGW installed on Windows
+ b) LIB.EXE, LINK.EXE and MSPDB60.DLL from M$ Visual C
+ (necessary only for usability created xine library by M$ compilers)
+
+How to build:
+ #
+ # configure for building in MinGW under Windows
+ #
+ ./configure --with-dxheaders=DIRECTORY
+
+ #
+ # compile
+ #
+ make
+
+ #
+ # install and manually remove the static plugins
+ #
+ make install DESTDIR=/tmp/xine-lib
+ rm /tmp/xine-lib/bin/plugins/*.a
+ rm /tmp/xine-lib/bin/plugins/post/*.a
+
+Prepare xine library for using in M$ compilers too:
+ # run terminal window (MinGW for example)
+ ...
+ # creating libxine-1.lib file
+ cd <path_where_libxine_is_installed_>/lib
+ cp ../bin/libxine-1.dll .
+ <path_to_M$VC>/VC98/BIN/LIB.EXE /machine:i386 /def:libxine-1.def
+ rm libxine-1.dll
+
+
+2. CygWin port
+--------------
+This is the second way. Created library won't be 100% windows native: it will contains some additional emulation code and I'm not sure, if can be used with M$ compilers.
+
+It's possible to use CygWin for cross-compiling with MinGW.
+
+How to build:
+ #
+ # configure
+ #
+ ./configure --with-dxheaders=DIRECTORY
+
+ #
+ # compile
+ #
+ make
+
+ #
+ # install
+ #
+ make install DESTDIR=/tmp/xine-lib
+
+
+3. M$ Visual C port
+-------------------
+This build system is different from the one, used for all other platforms, but we partially keep it up to date - just for experimental reasons, but only if we have access to some M$ computer.
+
+Reasons, why not to use this port:
+ - can't compile included ffmpeg (important multi-decoder in xine)
+ - can't compile new assembler code (it means degradation of power)
+ - never 100% up to date
+ - somebody must buy the OS and compiler
+
+Reasons, why to use this port:
+ - obtaining backtrace after crash, debugging
+
+How to build xine in M$ Visual C:
+ - Set up MSVC to look for DirectX headers.
+
+ - Open up the xine.dsw workspace/project in MSVC.
+
+ - Unless you have a project file to build css you must select Cancel when prompted for the libdvdcss.dsp file.
+
+ - Click on the FileView tab.
+
+ - Build the following projects in this order:
+ libxinesuppt
+ libxine
+ libdvdnav
+
+ - Next build any desired plugins (decoders/demuxers ...). The ao_out_directx and vo_out_directx are required for Win32. There is an option to use the vo_out_sdl but a sdl.dll must be present for that to take place. There have also been some issues observed with the directX video driver on some machines.
+
+ - If you want ffmpeg decoder plugin, you must use precompiled version. If you want to compile it, you should have the files LIB.EXE, LINK.EXE and MSPDB60.DLL from the Visual C++.
+ Under MinGW you can compile ffmpeg for xine by this way:
+
+ #
+ # for cross-compiling add "--cross-prefix=i386-mingw32-" and "--disable-mmx"
+ #
+ ./configure \
+ --enable-gpl \
+ --enable-pp \
+ --enable-shared \
+ --disable-zlib \
+ --enable-mingw32
+ make
+ make install prefix=/tmp/ffmpeg
+ cp avcodec/avcodec.def /tmp/ffmpeg
+ #
+ # for cross-compiling finalize linking by running this command
+ #
+ wine LIB.EXE /machine:i386 /def:avcodec.def
+
+Status
+------
+
+There remains many of work yet on Windows port.
+
+Limitations:
+ - doesn't work under Win95/98 (DirectX? win32-pthreads?)
+ - file > 1GB doesn't work (MinGW problem?)
+ - missing full Win32 frontend
+ - build system isn't fully tuned for cross-compiling
+
+Bugs:
+ - use GetCurrentDirectory(SIZE, STR) because of changing volume drive!
+ - random crashes
+ - seeking doesn't work with testing frontend
+ - non-seekable input plugins crash