summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/README.MINGWCROSS97
-rw-r--r--doc/README.WIN3217
-rw-r--r--doc/hackersguide/Makefile.am2
3 files changed, 91 insertions, 25 deletions
diff --git a/doc/README.MINGWCROSS b/doc/README.MINGWCROSS
index c238d665e..a840172a6 100644
--- a/doc/README.MINGWCROSS
+++ b/doc/README.MINGWCROSS
@@ -30,14 +30,22 @@ Download
http://www.google.com/search?hl=cs&q=win32-dx7headers.tgz
http://www.google.com/search?q=dx7adxf.exe
+ Pthread Win32:
+
+ ftp://sources.redhat.com/pub/pthreads-win32/
+
+ zlib:
+
+ http://www.zlib.net
+
Build
-----
-In following text are used symbols PREFIX and USER with this meaning:
+In following text are used symbols $PREFIX and $USER with this meaning:
- PREFIX .... directory of the mingw cross environtment
- USER ...... current user
+ $PREFIX .... directory of the mingw cross environtment
+ $USER ...... current user
1. compile binutils
@@ -47,14 +55,14 @@ In following text are used symbols PREFIX and USER with this meaning:
cd bin
../binutils-2.13.90-20030111-1-src/configure \
--target=i386-mingw32 \
- --prefix=PREFIX
+ --prefix=$PREFIX
make
su
make install
exit
-2. add PREFIX/bin into PATH
+2. add $PREFIX/bin into PATH
...
@@ -66,8 +74,8 @@ In following text are used symbols PREFIX and USER with this meaning:
# this commands ensure write permission to target
#
su
- chmod g+w PREFIX{/lib,/i386-mingw32{/,/lib}}
- chown root:USER PREFIX{/lib,/i386-mingw32{/,/lib}}
+ chmod g+w $PREFIX{/lib,/i386-mingw32{/,/lib}}
+ chown root:$USER $PREFIX{/lib,/i386-mingw32{/,/lib}}
exit
#
@@ -83,7 +91,7 @@ In following text are used symbols PREFIX and USER with this meaning:
# compile and install the compiler
#
# if you'll want rerun this step, I recommend delete
- # PREFIX/i386-mingw32/sys-include
+ # $PREFIX/i386-mingw32/sys-include
#
tar xzf gcc-core-3.3.1-20030804-1-src.tar.gz
tar xzf gcc-g++-3.3.1-20030804-1-src.tar.gz
@@ -96,7 +104,7 @@ In following text are used symbols PREFIX and USER with this meaning:
--target=i386-mingw32 \
--with-headers=../runtime/include \
--with-libs=../runtime/lib \
- --prefix=PREFIX
+ --prefix=$PREFIX
make
#or recommended: make CFLAGS=-O2 LDFLAGS=-s
su
@@ -107,26 +115,26 @@ In following text are used symbols PREFIX and USER with this meaning:
# set the permissions back
#
su
- chmod -R g-w PREFIX
- chown -R root:root PREFIX
+ chmod -R g-w $PREFIX
+ chown -R root:root $PREFIX
exit
4. recompile w32api and mingw-runtime from sources (optional)
#
- # installing must be into PREFIX/i386-mingw32
+ # installing must be into $PREFIX/i386-mingw32
#
tar xzf w32api-2.5-src.tar.gz
cd w32api-2.5
- ./configure --prefix=PREFIX/i386-mingw32 --host=i386-mingw32
+ ./configure --prefix=$PREFIX/i386-mingw32 --host=i386-mingw32
make
su
make install
exit
#
- # installing must be into PREFIX/i386-mingw32
+ # installing must be into $PREFIX/i386-mingw32
#
tar xzf mingw-runtime-3.3-src.tar.gz
cd mingw-runtime-3.3
@@ -139,7 +147,7 @@ In following text are used symbols PREFIX and USER with this meaning:
AR=i386-mingw32-ar \
AS=i386-mingw32-as \
RANLIB=i386-mingw32-ranlib \
- ./configure --prefix=PREFIX/i386-mingw32 --target=i386-mingw32
+ ./configure --prefix=$PREFIX/i386-mingw32 --target=i386-mingw32
make
su
make install
@@ -147,17 +155,62 @@ In following text are used symbols PREFIX and USER with this meaning:
5. install DirectX headers and other libraries
+
su
- cd PREFIX/include
+ cd $PREFIX/include
# untar dx7headers.tar.gz (maybe to a subdirectory)
...
exit
+6. compile and install pthreads-win32
+
+ tar xzf pthreads-w32-2-7-0-release.tar.gz
+ cd pthreads-w32-2-7-0-release/
+ make CROSS=i386-mingw32- PTHREAD_DEF=pthreadGC2.def clean GC
+ #
+ # possibility to use pthread library in M$ Visual C (optional)
+ #
+ mv pthread.def pthreadGC2.def
+ wine LIB.EXE /machine:i386 /def:pthreadGC2.def
+ su
+ mkdir -p $PREFIX/pthreads-win32/bin
+ mkdir -p $PREFIX/pthreads-win32/include
+ mkdir -p $PREFIX/pthreads-win32/lib
+ cp pthreadGC2.dll $PREFIX/pthreads-win32/bin/
+ cp libpthreadGC2.a pthreadGC2.lib $PREFIX/pthreads-win32/lib/
+ ln -s libpthreadGC2.a $PREFIX/pthreads-win32/lib/libpthread.a
+ ln -s pthreadGC2.lib $PREFIX/pthreads-win32/lib/pthread.lib
+ cp pthread.h semaphore.h sched.h $PREFIX/pthreads-win32/include/
+ exit
+
+
+7. compile and install zlib
+
+ tar xjf zlib-1.2.3.tar.bz2
+ cd zlib-1.2.3
+ #
+ # small workaround in Makefile:
+ #
+ sed -e 's/dllwrap /i386-mingw32-dllwrap /g' win32/Makefile.gcc > Makefile
+ make CC=i386-mingw32-gcc AR=i386-mingw32-ar RC=i386-mingw32-windres STATICLIB=libz-static.a IMPLIB=libz.a
+ #
+ # possibility to use zlib library in M$ Visual C (optional)
+ #
+ cp win32/zlib.def zlib1.def
+ wine LIB.EXE /machine:i386 /def:zlib1.def
+ su
+ mkdir -p $PREFIX/zlib/{include,lib,bin}
+ cp zconf.h zlib.h $PREFIX/zlib/include/
+ cp libz.a libz-static.a zlib1.lib $PREFIX/zlib/lib/
+ cp zlib1.dll $PREFIX/zlib/bin/
+ exit
+
+
Using MinGW cross development tools
-----------------------------------
-We can build xine library for Windows by this way:
+Now we can build xine library for Windows by this way:
#
# configure for mingw cross compiling
@@ -168,7 +221,9 @@ We can build xine library for Windows by this way:
--build=i686-debian-linux \
--disable-freetype \
--disable-vcd \
- --with-dxheaders=/mingw32/include/dx7headers
+ --with-dxheaders=$PREFIX/include/dx7headers \
+ --with-zlib-prefix=$PREFIX/zlib \
+ --with-pthread-prefix=$PREFIX/pthreads-win32
#
# build system isn't fully prepared for cross compiling, so it's needed
@@ -186,11 +241,11 @@ We can build xine library for Windows by this way:
# install
#
make install DESTDIR=/tmp/xine-lib-mingwcross
- rm /tmp/xine-lib-mingwcross/bin/plugins{/,/post}/*.a
+ rm /tmp/xine-lib-mingwcross/lib/xine/plugins/1.1.0{/,/post}/*.a
#
- # if we want to use xine library in M$ compilers, we will need some tools from
- # M$ Visual C: LIB.EXE, LINK.EXE, MSPDB60.DLL and wine
+ # if we want to use xine library in M$ compilers, we will need wine and some
+ # tools from M$ Visual C: LIB.EXE, LINK.EXE, MSPDB60.DLL
#
# create libxine-1.lib file
#
diff --git a/doc/README.WIN32 b/doc/README.WIN32
index 0dd7b1a8e..bff456ce7 100644
--- a/doc/README.WIN32
+++ b/doc/README.WIN32
@@ -88,7 +88,7 @@ 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
+ - somebody must own the OS and compiler
Reasons, why to use this port:
- obtaining cute backtrace after crash, debugging
@@ -96,6 +96,18 @@ Reasons, why to use this port:
How to build xine in M$ Visual C:
- Set up MSVC to look for DirectX headers.
+ - Download Pthreads Win32
+ (ftp://sources.redhat.com/pub/pthreads-win32/), from prebuild directory
+ install include/*.h, lib/pthreadVC2.lib and lib/pthreadVC2.dll,
+ rename pthreadVC2.lib to pthread.lib
+ set up MSVC - libraries and headers.
+
+ - Download zlib (http://www.zlib.net), instal all in include and lib,
+ set up MSVC - libraries and headers.
+
+ - Copy include/xine.h.in to include/xine.h, replace @text@ by right values
+ (eg. XINE_MAJOR 1, XINE_MINOR 1, XINE_SUB 0, XINE_VERSION "1.1.0")
+
- Open up the xine.dsw workspace/project in MSVC.
- Click on the FileView tab.
@@ -150,9 +162,7 @@ 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
- seeking doesn't work with testing frontend, but it should be OK in library
@@ -160,3 +170,4 @@ Bugs:
- random crashes and random locks in stress tests
- non-seekable input plugins crash
- ffmpeg bug visible for some video sizes
+ - pause doesn't work (asserts)
diff --git a/doc/hackersguide/Makefile.am b/doc/hackersguide/Makefile.am
index 915adbef6..7fdc77706 100644
--- a/doc/hackersguide/Makefile.am
+++ b/doc/hackersguide/Makefile.am
@@ -29,7 +29,7 @@ docs-prepare: $(addprefix $(srcdir)/, $(hackersguide_sgml) $(wildcard *.fig))
clean-docs:
rm -f $(docs_DATA)
- test "x$(srcdir)" = x. || rm -f $(hackersguide_sgml)
+ test "x$(srcdir)" = x. || rm -f $(hackersguide_sgml) *.fig
dist-hook:
@if test x"$(distcheck_lax)" = x ; then \