Mercurial > mplayer.hg
view DOCS/xml/en/ports.xml @ 11638:189ac484f742
compile fix
author | wight |
---|---|
date | Fri, 12 Dec 2003 16:25:40 +0000 |
parents | cf622752369d |
children | 97c248af8374 |
line wrap: on
line source
<?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision$ --> <chapter id="ports" xreflabel="Ports"> <title>Ports</title> <sect1 id="linux"> <title>Linux</title> <para> The main development platform is Linux on x86, although <application>MPlayer</application> works on many other Linux ports. Binary packages of <application>MPlayer</application> are available from several sources. However, <emphasis role="bold">none of these packages are supported</emphasis>. Report problems to the authors, not to us. </para> <sect2 id="debian"> <title>Debian packaging</title> <para> To build a Debian package, run the following command in the <application>MPlayer</application> source directory: <screen>fakeroot debian/rules binary</screen> As root you can then install the <filename>.deb</filename> package as usual: <screen>dpkg -i ../mplayer_<replaceable>version</replaceable>.deb</screen> </para> <para> Christian Marillat has been making unofficial Debian <application>MPlayer</application>, <application>MEncoder</application> and font packages for a while, you can (apt-)get them from his <ulink url="http://marillat.free.fr/">homepage</ulink>. </para> </sect2> <sect2 id="rpm"> <title>RPM packaging</title> <para> Dominik Mierzejewski created and maintains official Red Hat RPM packages of <application>MPlayer</application>. They are available from his <ulink url="http://www.piorunek.pl/~dominik/linux/pkgs/mplayer/">homepage</ulink>. </para> <para> Mandrake RPM packages are available from the <ulink url="http://plf.zarb.org/">P.L.F.</ulink>. SuSE used to include a crippled version of <application>MPlayer</application> in their distribution. They have removed it in their latest releases. You can get working RPMs from <ulink url="http://packman.links2linux.de/?action=128">links2linux.de</ulink>. </para> </sect2> <sect2 id="arm"> <title>ARM</title> <para> <application>MPlayer</application> works on Linux PDAs with ARM CPU e.g. Sharp Zaurus, Compaq Ipaq. The easiest way to obtain <application>MPlayer</application> is to get it from one of the<ulink url="http://www.openzaurus.org">OpenZaurus</ulink> package feeds. If you want to compile it yourself, you should look at the <ulink url="http://openzaurus.bkbits.net:8080/buildroot/src/packages/mplayer?nav=index.html|src/.|src/packages">MPlayer</ulink> and the <ulink url="http://openzaurus.bkbits.net:8080/buildroot/src/packages/libavcodec?nav=index.html|src/.|src/packages">libavcodec</ulink> directory in the OpenZaurus distribution buildroot. These always have the latest Makefile and patches used for building a CVS <application>MPlayer</application> with libavcodec. If you need a GUI frontend, you can use xmms-embedded. </para> </sect2> </sect1> <sect1 id="bsd"> <title>*BSD</title> <para> <application>MPlayer</application> runs on FreeBSD, OpenBSD, NetBSD, BSD/OS and Darwin. There are ports/pkgsrc/fink/etc versions of <application>MPlayer</application> available that are probably easier to use than our raw sources. </para> <para> To build <application>MPlayer</application> you will need GNU make (gmake - native BSD make will not work) and a recent version of binutils. </para> <para> If <application>MPlayer</application> complains about not finding <filename>/dev/cdrom</filename> or <filename>/dev/dvd</filename>, create an appropriate symbolic link: <screen>ln -s /dev/<replaceable>your_cdrom_device</replaceable> /dev/cdrom</screen> </para> <para> To use Win32 DLLs with <application>MPlayer</application> you will need to re-compile the kernel with "<envar>option USER_LDT</envar>" (unless you run FreeBSD-CURRENT, where this is the default). </para> <sect2 id="freebsd"> <title>FreeBSD</title> <para> If your CPU has SSE, recompile your kernel with "<envar>options CPU_ENABLE_SSE</envar>" (FreeBSD-STABLE or kernel patches required). </para> </sect2> <sect2 id="openbsd"> <title>OpenBSD</title> <para> Due to limitations in different versions of gas (relocation vs MMX), you will need to compile in two steps: First make sure that the non-native as is first in your <envar>$PATH</envar> and do a <command>gmake -k</command>, then make sure that the native version is used and do <command>gmake</command>. </para> </sect2> <sect2 id="darwin"> <title>Darwin</title> <para> See the <link linkend="macos">Mac OS</link> section. </para> </sect2> </sect1> <sect1 id="solaris"> <title>Sun Solaris</title> <para> <application>MPlayer</application> should work on Solaris 2.6 or newer. </para> <para> On <emphasis role="bold">UltraSPARCs</emphasis>, <application>MPlayer</application> takes advantage of their <emphasis role="bold">VIS</emphasis> extensions (equivalent to MMX), currently only in <emphasis>libmpeg2</emphasis>, <emphasis>libvo</emphasis> and <emphasis>libavcodec</emphasis>, but not in mp3lib. You can watch a VOB file on a 400MHz CPU. You'll need <ulink url="http://www.sun.com/sparc/vis/mediaLib.html">mLib</ulink> installed. </para> <para> To build the package you will need GNU <application>make</application> (<filename>gmake</filename>, <filename>/opt/sfw/gmake</filename>), native Solaris make will not work. Typical error you get when building with Solaris' make instead of GNU make: <screen> % /usr/ccs/bin/make make: Fatal error in reader: Makefile, line 25: Unexpected end of line seen </screen> </para> <para> On Solaris SPARC, you need the GNU C/C++ Compiler; it does not matter if GNU C/C++ compiler is configured with or without the GNU assembler. </para> <para> On Solaris x86, you need the GNU assembler and the GNU C/C++ compiler, configured to use the GNU assembler! The mplayer code on the x86 platform makes heavy use of MMX, SSE and 3DNOW! instructions that cannot be compiled using Sun's assembler <filename>/usr/ccs/bin/as</filename>. </para> <para>The <filename>configure</filename> script tries to find out, which assembler program is used by your "gcc" command (in case the autodetection fails, use the <option>--as=<replaceable>/wherever/you/have/installed/gnu-as</replaceable></option> option to tell the <filename>configure</filename> script where it can find GNU "as" on your system). </para> <para> Error message from <filename>configure</filename> on a Solaris x86 system using GCC without GNU assembler: <screen> % configure ... Checking assembler (/usr/ccs/bin/as) ... , failed Please upgrade(downgrade) binutils to 2.10.1... </screen> (Solution: Install and use a gcc configured with <option>--with-as=gas</option>) </para> <para> Typical error you get when building with a GNU C compiler that does not use GNU as: <screen> % gmake ... gcc -c -Iloader -Ilibvo -O4 -march=i686 -mcpu=i686 -pipe -ffast-math -fomit-frame-pointer -I/usr/local/include -o mplayer.o mplayer.c Assembler: mplayer.c "(stdin)", line 3567 : Illegal mnemonic "(stdin)", line 3567 : Syntax error ... more "Illegal mnemonic" and "Syntax error" errors ... </screen> </para> <para> Due to bugs in Solaris 8, you may not be able to play DVD discs larger than 4 GB: </para> <itemizedlist> <listitem><para> The sd(7D) driver on Solaris 8 x86 has a bug when accessing a disk block >4GB on a device using a logical blocksize != DEV_BSIZE (i.e. CD-ROM and DVD media). Due to a 32Bit int overflow, a disk address modulo 4GB is accessed (<ulink url="http://groups.yahoo.com/group/solarisonintel/message/22516"/>). This problem does not exist in the SPARC version of Solaris 8. </para></listitem> <listitem><para> A similar bug is present in the hsfs(7FS) filesystem code (aka ISO9660), hsfs may not not support partitions/disks larger than 4GB, all data is accessed modulo 4GB (<ulink url="http://groups.yahoo.com/group/solarisonintel/message/22592"/>). The hsfs problem can be fixed by installing patch 109764-04 (sparc) / 109765-04 (x86). </para></listitem> </itemizedlist> <para> On Solaris with an UltraSPARC CPU, you can get some extra speed by using the CPU's VIS instructions for certain time consuming operations. VIS acceleration can be used in <application>MPlayer</application> by calling functions in Sun's <ulink url="http://www.sun.com/sparc/vis/mediaLib.html">mediaLib</ulink>. </para> <para> VIS accelerated operations from mediaLib are used for mpeg2 video decoding and for color space conversion in the video output drivers. </para> </sect1> <sect1 id="irix"> <title>Silicon Graphics Irix</title> <para> You can either try to install the GNU install program, and (if you did not put it in your global path) then point to the location with: <screen>./configure --with-install=<replaceable>/path/and/name/of/install</replaceable></screen> </para> <para> Or you can use the default install delivered with IRIX 6.5 in which case you will have to edit the <filename>Makefile</filename> by hand a little bit. Change the following two lines: <programlisting> $(INSTALL) -c -m 644 DOCS/mplayer.1 $(MANDIR)/man1/mplayer.1 $(INSTALL) -c -m 644 etc/codecs.conf $(CONFDIR)/codecs.conf </programlisting> to: <programlisting> $(INSTALL) -m 644 mplayer.1 $(MANDIR)/man1/ $(INSTALL) -m 644 codecs.conf $(CONFDIR)/ </programlisting> And then do (from within the <application>MPlayer</application> source dir): <screen>cp DOCS/mplayer.1 . ; cp etc/codecs.conf .</screen> and then go on with building and installing. </para> </sect1> <sect1 id="qnx"> <title>QNX</title> <para> Works. You'll need to download SDL for QNX, and install it. Then run <application>MPlayer</application> with <option>-vo sdl:photon</option> and <option>-ao sdl:nto</option> options, and it should be fast. </para> <para> The <option>-vo x11</option> output will be even slower than on Linux, since QNX has only X <emphasis>emulation</emphasis> which is VERY slow. Use SDL. </para> </sect1> <sect1 id="windows"> <title>Windows</title> <para>Yes, <application>MPlayer</application> runs on Windows under <ulink url="http://www.cygwin.com/"><application>Cygwin</application></ulink> and <ulink url="http://www.mingw.org/"><application>MinGW</application></ulink>. It does not have a GUI yet, but the command line version is almost completely functional. <ulink url="../../tech/patches.txt">Patches</ulink> are always welcome. You should check out the <ulink url="http://mplayerhq.hu/mailman/listinfo/mplayer-cygwin/">mplayer-cygwin</ulink> mailing list for help and latest information.</para> <para>Best results are achieved with the native DirectX video output driver (<option>-vo directx</option>) and the native Windows waveout audio driver (<option>-ao win32</option>) as OpenGL does not work and SDL is known to distort sound and image or crash on some systems. If the image is distorted, try turning off hardware acceleration with <option>-vo directx:noaccel</option>. Download <ulink url="http://www.videolan.org/vlc/dx7headers.tgz">DirectX 7 header files</ulink> to compile the DirectX video output driver.</para> <para>You can use Win32 codecs and Real Win32 codecs (not Real Linux codecs) if you want to. Put the codecs somewhere in your path or pass <option>--with-codecsdir=c:/path/to/your/codecs</option> (alternatively <option>--with-codecsdir=/path/to/your/codecs</option> only on <application>Cygwin</application>) to <filename>configure</filename>. We have had some reports that Real DLLs need to be writable by the user running <application>MPlayer</application>, but only on some systems. Try making them writable if you have problems. QuickTime DLLs also work, but you will have to put them in your Windows system directory (<filename class="directory">C:\Windows\system\</filename> or similar).</para> <para>The <application>Cygwin</application>/<application>MinGW</application> console is rather slow. Redirecting output or using the <option>-quiet</option> option has been reported to improve performance on some systems. Direct rendering (<option>-dr</option>) may also help. You can prevent OSD flicker through double buffering with the <option>-double</option> option. If playback is jerky, try <option>-autosync 100</option>. If some of these options help you, you may want to put them in your config file.</para> <para>Sascha Sommer releases official Windows binaries from time to time, Joey Parrish makes unofficial Windows packages complete with installer. Look for these in the Windows section of <ulink url="http://www.mplayerhq.hu/homepage/projects.html">our projects page</ulink>.</para> <sect2 id="cygwin"> <title><application>Cygwin</application></title> <para><application>Cygwin</application> versions prior to 1.5.0 do not include <filename>inttypes.h</filename>. Put this <ulink url="http://www.mplayerhq.hu/MPlayer/releases/win32-beta/contrib/inttypes.h">inttypes.h</ulink> in <filename class="directory">/usr/include/</filename> in order to make <application>MPlayer</application> compile.</para> <para>DirectX header files need to be extracted to <filename class="directory">/usr/include/</filename> or <filename class="directory">/usr/local/include/</filename>.</para> <para>Instructions and files for making SDL run under <application>Cygwin</application> can be found on the <ulink url="http://www.libsdl.org/extras/win32/cygwin/">libsdl site</ulink>.</para> <para>You can play VCDs by playing the <filename>.DAT</filename> or <filename>.MPG</filename> files that Windows exposes on VCDs. It works like this (adjust for the drive letter of your CD-ROM):</para> <screen>mplayer d:/mpegav/avseq01.dat</screen> <screen>mplayer /cygdrive/d/MPEG2/AVSEQ01.MPG</screen> <para>DVDs also work, adjust <option>-dvd-device</option> for the drive letter of your DVD-ROM:</para> <screen>mplayer dvd://<title> -dvd-device '\\.\d:'</screen> </sect2> <sect2 id="mingw"> <title><application>MinGW</application></title> <para>Installing a version of <application>MinGW</application> that could compile <application>MPlayer</application> used to be quite tricky, but it works out of the box now. Just install <application>MinGW</application> 3.1.0 or later and MSYS 1.0.9 or later and tell the MSYS postinstall that <application>MinGW</application> is installed.</para> <para>If you use a version of <application>MinGW</application> before 3.1.0, you need to replace <filename>/mingw/include/sys/types.h</filename> with this <ulink url="http://www.mplayerhq.hu/MPlayer/releases/win32-beta/contrib/types.h"><filename>types.h</filename></ulink>.</para> <para>Extract DirectX header files to <filename class="directory">/mingw/include/</filename>.</para> <para>VCDs and DVDs work almost like <application>Cygwin</application> (adjust for the drive letter of your CD-ROM/DVD-ROM):</para> <screen>mplayer d:/mpegav/avseq01.dat</screen> <screen>mplayer /d/MPEG2/AVSEQ01.MPG</screen> <screen>mplayer dvd://<title> -dvd-device /d/</screen> </sect2> </sect1> <sect1 id="macos"> <title>Mac OS</title> <para> Only Mac OS X 10.2 and up is supported by the "raw" <application>MPlayer</application> source. Feel free to make support for older Mac OS versions and send patches! </para> <para> Apple's modified GCC 3.x is preferred for compiling <application>MPlayer</application> especially when using libavcodec as Apple's modified GCC 2.95.x doesn't support C99 syntax well. </para> <para> One can get an Aqua GUI for <application>MPlayer</application> together with compiled <application>MPlayer</application> binaries for Mac OS X from the <ulink url="http://mplayerosx.sf.net/">MPlayerOSX</ulink> project. </para> </sect1> <sect1 id="hpux"> <title>HP UX</title> <para> Martin Gansser maintains a valuable <ulink url="http://cloud.prohosting.com/patos/docs/mplayer_on_hpux11.htm">HOWTO</ulink> about building <application>MPlayer</application> on HP-UX. It even has a FAQ section! </para> <para> Anyway, our "raw" <application>MPlayer</application> source is used to compile on HP-UX without flaws. </para> </sect1> <sect1 id="amiga"> <title>Amiga/MorphOS (GeekGadgets)</title> <para> Nicholas Det at Genesi has done a big and powerful port of <application>MPlayer </application> for MorphOS. Sadly it's based on the 0.90 series. </para> <para> Get if from <ulink url="http://www.morphzone.org/">MorphZone</ulink>: <itemizedlist> <listitem><para> <ulink url="http://www.morphzone.org/modules/mydownloads/singlefile.php?lid=90"> <application>MPlayer</application> 0.91 binary</ulink> </para></listitem> <listitem><para> <ulink url="http://www.morphzone.org/modules/mydownloads/singlefile.php?lid=91"> <application>MPlayer</application> 0.91 source</ulink> </para></listitem> <listitem><para> <ulink url="http://www.morphzone.org/modules/mydownloads/singlefile.php?lid=912"> <application>MEncoder</application> 0.91 binary</ulink> </para></listitem> </itemizedlist> </para> </sect1> </chapter>