# Porty

## Linux

Główną platformą rozwojową jest Linux x86, chociaż MPlayer pracuje również na wielu innych portach tego systemu. Pakiety binarne są dostępne z kilku źródeł, jednakże żaden z nich nie jest przez nas obsługiwany. Zgłaszaj problemy do ich opiekunów, a nie do nas.

### Pakiety Debiana

Aby zbudować pakiet dla Debiana, wywołaj poniższe polecenie w katalogu ze źródłami MPlayera:

    fakeroot debian/rules binary

Jeśli chcesz przekazać własne opcje do skryptu configure, możesz ustawić zmienną środowiskową `DEB_BUILD_OPTIONS`. Na przykład, jeśli chcesz obsługi menu i GUI, wyglądało by to tak:

    DEB_BUILD_OPTIONS="--enable-gui --enable-menu" fakeroot debian/rules binary

Możesz przekazać również niektóre zmienne do Makefile. Na przykład, jeśli chcesz kompilować przy pomocy gcc 3.4, nawet jeśli nie jest to domyślny kompilator:

    CC=gcc-3.4 DEB_BUILD_OPTIONS="--enable-gui" fakeroot debian/rules binary

Aby wyczyściś katalog ze źródłami wykonaj poniższa komendę:

    fakeroot debian/rules clean

Jako superużytkownik możesz zainstalować pakiet `.deb` tak, jak zwykle:

    dpkg -i ../mplayer_wersja.deb

Christian Marillat buduje dla Debiana nieoficjalne paczki MPlayera, MEncodera i naszych czcionek bitmapowych już od jakiegoś czasu, możesz je pobrać (apt-get) z jego strony domowej.

### Pakiety RPM

Dominik Mierzejewski opiekuje się oficjalnymi pakietami RPM MPlayera dla Fedora Core. Są one dostępne w repozytorium Livna.

RPMy dla Mandrake/Mandriva są dostępne na P.L.F.. SuSE zawierał okrojoną wersję MPlayera w dystrybucji. Usunęli ją w swoich najnowszych wydaniach. W pełni funkcjonalne pakiety możesz pobrać z links2linux.de.

### ARM

MPlayer działa również na PDA z procesorami ARM działających pod kontrolą Linuksa, np. Sharp Zaurus, Compaq iPAQ. Najprostszym sposobem, żeby uzyskać MPlayera, jest pobranie go z odpowiedniego źródła pakietów (stable, testing, unstable) z witryny OpenZaurus. Jeżeli chcesz go skompilować samodzielnie, powinieneś przyjrzeć się katalogom mplayera i biblioteki libavcodec w głównym katalogu źródłowym OpenZaurusa. Zawierają one najświeższe łatki i pliki Makefile, służące do samodzielnej kompilacji MPlayera z `libavcodec`. Jeżeli potrzebujesz interfejsu GUI, możesz użyć xmms-embedded.

## *BSD

MPlayer działa na FreeBSD, OpenBSD, NetBSD, BSD/OS i Darwinie. Dostępne są wersje portów/pkgsrc/fink/itp., które prawdopodobnie są łatwiejsze w instalacji, niż kompilacja ze źródeł.

Do zbudowania MPlayera będziesz potrzebował GNU make (gmake - rdzenne make BSD nie zadziała) i najnowszej wersji binutils.

Jeżeli MPlayer nie może znaleźć `/dev/cdrom` lub `/dev/dvd`, stwórz odpowiednie dowiązanie symboliczne:

    ln -s /dev/twoje_urządzenie_cdrom /dev/cdrom

Aby używać bibliotek Win32 z MPlayerem, będziesz potrzebował przekompilować jądro z opcją "`USER_LDT`" (chyba, że używasz FreeBSD-CURRENT, tam jest domyślnie włączona).

### FreeBSD

Jeżeli Twój procesor ma rozszerzenie SSE, przekompiluj jądro z opcją "`CPU_ENABLE_SSE`" (wymagany FreeBSD-STABLE lub łaty na jądro).

### OpenBSD

Ze względu na ograniczenia w różnych wersjach gas (GNU assemblera - przyp. tłumacza) (dotyczące relokacji i MMX), będziesz musiał przeprowadzić kompilację w dwóch krokach: Po pierwsze, upewnij się, że wersja nierdzenna występuje w zmiennej `$PATH` i wykonaj `gmake -k`, a następnie upewnij się, że używana jest wersja rdzenna i wykonaj `gmake`.

Powyższa metoda nie jest już potrzebna w OpenBSD 3.4.

### Darwin

Zobacz rozdział Mac OS.

## Komercyjny Unix

MPlayer został przeportowany na wiele komercyjnych wariantów Uniksa. Jako, że środowiska programistyczne przeważnie różnią się od tych znajdowanych w wolnych Uniksach, być może będziesz musiał wprowadzić ręczne poprawki, aby program skompilował się poprawnie.

### Solaris

MPlayer powinien działać na Solarisie 2.6 lub nowszym. Możesz skorzystać ze sterownika dźwięku SUN'a podająć opcję `-ao sun`.

Na UltraSPARCach, MPlayer korzysta z rozszerzenia VIS (odpowiednik MMX), obecnie tylko w `libmpeg2`, `libavo` i `libavcodec`, ale nie w `mp3lib`. Możesz oglądać plik VOB na procesorze z taktowaniem 400MHz. Będziesz potrzebował do tego biblioteki `mLib`.

Caveat:

- mediaLib jest aktualnie wyłączone w domyślnej konfiguracji MPlayera, z powodu błędów. Użytkownicy SPARC-ów, którzy budują MPlayera z obsługą mediaLib informowali o delikatnym, zielonymi miganiu wideo kodowane i dekodowanego przez libavcodec. Możesz włączyć mediaLib, jeżeli chcesz używając:

      $ ./configure --enable-mlib

  Robisz to na własne ryzyko. Użytkownicy x86 powinni nigdy nie używać mediaLib, ponieważ w efekcie otrzymają kiepską wydajność MPlayera.

Aby zbudować pakiet, będziesz potrzebował GNU make (`gmake`, `/opt/sfw/gmake`), rdzenne make Solarisa nie zadziała. Typowy błąd jaki otrzymujesz, budując tym drugim zamiast GNU make, to:

       % /usr/ccs/bin/make
       make: Fatal error in reader: Makefile, line 25: Unexpected end of line seen

W Solarisie przeznaczonym dla SPARC, potrzebujesz kompilatora GNU C/C++; nie ma znaczenia, czy jest on skonfigurowany z, czy bez GNU assemblera.

Na Solarisie x86, potrzebujesz GNU assemblera i kompilatora GNU C/C++, skonfigurowanego do używania GNU assemblera! Kod MPlayera, na platformie x86, w znaczący sposób korzysta z instrukcji MMX, SSE i 3DNOW!, które nie mogą być skompilowane przy pomocy assemblera Sun `/usr/ccs/bin/as`.

Skrypt `configure` stara się określić, jaki assembler wywoływany jest przez komendę "gcc" (jeżeli próba zakończy się fiaskiem, użyj opcji `--as=`/gdziekolwiek/zainstalowałeś/gnu-as``, żeby określić gdzie skrypt `configure` może znaleźć GNU "as" w Twoim systemie).

Rozwiązania najczęstszych problemów:

- Błąd jaki wyświetli `configure` na Solarisie x86, używającym GCC bez GNU assemblera:

         % configure
         ...
         Checking assembler (/usr/ccs/bin/as) ... , failed
         Please upgrade(downgrade) binutils to 2.10.1...

  (Rozwiązanie: Zainstaluj i używaj gcc skonfigurowanego z opcją `--with-as=gas`)

  Typowy błąd, jaki otrzymasz przy próbie budowy kompilatorem GNU C, który nie używa GNU as:

         % 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 ...

- MPlayer może się wysypać podczas dekodowania i kodowania wideo używających win32codecs:

      ...
      Trying to force audio codec driver family acm...
      Opening audio decoder: [acm] Win32/ACM decoders
      sysi86(SI86DSCR): Invalid argument
      Couldn't install fs segment, expect segfault

      MPlayer interrupted by signal 11 in module: init_audio_codec
      ...

  Dzieje się tak z powodu zmian w sysi86() w Solaris 10 i wydaniach pre-Solaris Nevada b31. Zostało to naprawione w Solaris Nevada b32; jednak Sun nie przeniósł jeszcze poprawki do Solarisa 10. Projekt MPlayer poinformował o tym problemie Sun i łatka jest aktualnie wprowadzana do Solarisa 10. Więcej informacji o tym błędzie może zostać znaleziona na stronie: .

- Ze względu na błędy występujące w Solarisie 8, możesz nie być w stanie odtwarzać płyt DVD o pojemności większej niż 4 GB:

  - Sterownik sd(7D) dla Solarisa 8 x86 ma błąd ujawniający się przy próbie dostępu do bloku dyskowego >4GB urządzenia korzystającego z logicznego rozmiaru bloku !=DEV_BSIZE (np. nośnik CD-ROM i DVD). Ze względu na przepełnienie 32bitowych liczb całkowitych, odczytywany jest adres dysku modulo 4GB (). Ten problem nie występuje na Solarisie 8 przeznaczonym dla procesorów SPARC.

  - Podobny błąd występuje w kodzie systemu plików hsfs(7FS) (znanym jako ISO9660), hsfs może nie obsługiwać partycji/dysków większych niż 4GB, wszystkie dane są odczytywane z bloku modulo 4GB (). Problem może być rozwiązany przy pomocy łatki 109764-04 (sparc) / 109765-04 (x86).

### HP-UX

Joe Page umieścił na swojej stronie domowej dokument HOWTO stworzony przez Martina Gansser'a dotyczący MPlayera na HP-UX. Korzystając z zawartych tam intrukcji program powinien się skompilować bez najmniejszych problemów. Poniższe informacje są zaczerpnięte z tego opracowania.

Do budowy będziesz potrzebował GCC 3.4.0, GNU make 3.80, i SDL 1.2.7 lub ich nowszych wersji. Kompilator HP cc nie wyprodukuje działającego programu, a wcześniejsze wersje GCC są pełne błędów. Aby moć skorzystać z OpenGL, musisz zainstalować biblioteki Mesa, wtedy sterowniki wyjścia video gl i gl2 powinny działać. Ich wydajność może być tragiczna, jednak zależne jest to od mocy obliczeniowej procesora. Dobrym zamiennikiem, raczej kiepskiego, systemu dźwiękowego HP-UX jest GNU esound.

Stwórz urządzenie DVD, przeskanuj magistralę SCSI komendą:

    # ioscan -fn

    Class          I            H/W   Path          Driver    S/W State    H/W Type        Description
    ...
    ext_bus 1    8/16/5      c720  CLAIMED INTERFACE  Built-in SCSI
    target  3    8/16/5.2    tgt   CLAIMED DEVICE
    disk    4    8/16/5.2.0  sdisk CLAIMED DEVICE     PIONEER DVD-ROM DVD-305
                             /dev/dsk/c1t2d0 /dev/rdsk/c1t2d0
    target  4    8/16/5.7    tgt   CLAIMED DEVICE
    ctl     1    8/16/5.7.0  sctl  CLAIMED DEVICE     Initiator
                             /dev/rscsi/c1t7d0 /dev/rscsi/c1t7l0 /dev/scsi/c1t7l0
    ...

Z rezultatów działania komendy możemy odczytać, że na adresie 2 SCSI znajduje się Pioneer DVD-ROM. Instancja karty dla ścieżki sprzętowej 8/16 to 1.

Stwórz dowiązanie surowego urządzenia do urządzenia DVD.

    # ln -s /dev/rdsk/c<instancja magistrali SCSI>t<ID docelowego SCSI>d<LUN> /dev/<urządzenie>

Przykład:

    # ln -s /dev/rdsk/c1t2d0 /dev/dvd

Poniżej znajdują się rozwiązania kilku najczęstszych problemów:

- Wysypanie się programu przy uruchamianiu z komunikatem błędu:

      /usr/lib/dld.sl: Unresolved symbol: finite (code) from /usr/local/lib/gcc-lib/hppa2.0n-hp-hpux11.00/3.2/../../../libGL.sl

  Oznacza to, że funkcja `.finite().` jest niedostępna w standardowej bibliotece math HP-UX. Zamiast niej dostępna jest `.isfinite().`. Rozwiązanie: Skorzystaj z najnowszego pliku składowego Mesa.

- Wysypanie się programu przy odtwarzaniu z komunikatem:

      /usr/lib/dld.sl: Unresolved symbol: sem_init (code) from /usr/local/lib/libSDL-1.2.sl.0

  Rozwiązanie: Skorzystaj z opcji extralibdir skryptu configure `--extra-ldflags="/usr/lib -lrt"`

- MPlayer powoduje błąd naruszenia ochrony pamięci (segfault) z komunikatem:

      Pid 10166 received a SIGSEGV for stack growth failure.
      Possible causes: insufficient memory or swap space, or stack size exceeded maxssiz.
      Segmentation fault

  Rozwiazanie: Jądro HP-UX ma domyślnie zdefiniowany rozmiar stosu przeznaczonego na każdy proces i jest to 8MB(?).(11.0 i nowsze łatki 10.20 pozwalają Ci zwiększyć parametr `maxssiz` do 350MB dla 32-bitowych programów). Musisz rozszerzyć `maxssiz` i przekompilować jądro (i uruchomić ponownie komputer). Możesz wykorzystać do tego celu SAM. (Kiedy w nim będziesz, sprawdź wartość `maxdsiz`. Określa ona maksymalny rozmiar danych, jaką program może użyć. To czy domyślne 64MB wystarczy czy nie, zależy wyłącznie od wymagań Twoich aplikacji.)

### AIX

MPlayer kompiluje się z powodzenie na AIX 5.1, 5.2 i 5.3, korzystając z GCC 3.3 lub wyższego. Budowanie MPlayer na AIX 4.3.3 i niższych nie było sprawdzane. Zaleca się, abyś budowal MPlayera używając GCC 3.4 lub wyższego lub jeżeli kompilujesz na POWER5 - GCC 4.0.

Upenij się, że używasz GNU make (`/opt/freeware/bin/gmake`), aby kompilować MPlayera, jako że możesz napotkać na problemy przy korzystaniu z `/usr/ccs/bin/make`.

Wykrywanie CPU jest ciągle dopracowywane. Poniższe architektury zostały przetestowane:

- 604e

- POWER3

- POWER4

Poniższe architektury nie były testowane, ale i tak powinny działać:

- POWER

- POWER2

- POWER5

Dźwięk przez Ultimedia Services nie jest obsługiwany, jako że ta technologia została porzucona w AIX 5.1; dlatego też, jedynym wyjściem jest korzystanie ze sterowników AIX Open Sound System (OSS) tworzonych przez 4Front Technologies, znajdziesz je na http://www.opensound.com/aix.html . 4Front Technologies udostępnia swoje sterowniki OSS za darmo do niekomercyjnego zastosowania; jednakże, nie ma aktualnie sterowników wyjścia audio dla AIX 5.2 lub 5.3. Oznacza to, że AIX 5.2 i 5.3 nie potrafią aktualnie używać wyjścia audio MPlayera.

Rozwiązania częstych problemów:

- Jeżeli otrzymujesz od `configure` taki komunikat błędu:

      $ ./configure
      ...
      Checking for iconv program ... no
      No working iconv program found, use
      --charset=US-ASCII to continue anyway.
      Messages in the GTK-2 interface will be broken then.

  To dzieje się tak dlatego, że AIX używa nie standardowych zestawów nazw znaków; dlatego też, konwersja wyjścia MPlayera do innego zestawu znaków (kodowania) nie jest aktualnie obsługiwana. Rozwiązaniem jest użycie:

      $ ./configure --charset=noconv

### QNX

Będziesz musiał ściągnąć bibliotekę SDL dla QNX i zainstalować ją. Wtedy uruchom MPlayera z opcją `-vo sdl:driver=photon` i `-ao sdl:nto`, powinno działać szybko.

Wyjście `-vo x11` będzie nawet wolniejsze niż na Linuksie, ponieważ QNX ma tylko emulację X'ów, która jest bardzo wolna.

## Windows

Tak, MPlayer działa na Windowsie pod Cygwinem i MinGW. Nie ma jeszcze oficjalnego interfejsu GUI, ale wersja dla wiersza poleceń jest już w pełni funkcjonalna. Powinieneś sprawdzić listę MPlayer-cygwin, aby uzyskać pomoc albo otrzymać najnowsze informacje. Oficjalne paczki z binariami dla Windowsa znajdziesz na stronie pobierania. Pakiety zawierające instalatory i proste nakładki GUI dostępne są z zewnętrznych źródeł, informacje o nich zebraliśmy w sekcji poświęconej Windowsowi na stronie projektów.

Jeżeli chcesz uniknąć korzystania z wiersza poleceń, prostym sposobem na jego ominięcie jest umieszczenie skrótu na pulpicie, który będzie zawierał podobny wpis w części odpowiedzialnej za wykonanie komendy:

    c:\ścieżka\do\mplayer.exe %1

Spowoduje to, że MPlayer będzie odtwarzał film, który zostanie przeciągnięty na jego skrót. Dodaj opcję `-fs`, aby korzystać z trybu pełnoekranowego.

Najlepsze wyniki są osiągane ze sterownikami wyjściowymi video DirectX (`-vo directx`). Możesz skorzystać również z OpenGL lub SDL, jednak wydajność OpenGL w znacznym stopniu zależy od systemu, a SDL może powodować powstanie zakłóceń w obrazie albo wywołać błąd, i zakończyć działanie programu. Jeżeli występują zakłócenia obrazu, spróbuj wyłączyć sprzętową akcelerację przez opcję `-vo directx:noaccel`. Ściągnij pliki nagłówkowe DirectX 7, żeby skompilować sterownik do wyjścia video DirectX. Co więcej, musisz mieć zainstalowany DirectX 7 lub nowszy, aby to wyjście zadziałało.

VIDIX działa teraz również pod Windowsem jako `-vo winvidix`, chociaż jego obsługa jest eksperymentalna i wymaga trochę ręcznego przygotowania. Pobierz dhahelper.sys lub dhahelper.sys (z obsługą MTRR) i skopiuj go do `libdha/dhahelperwin` w drzewie źródłowym MPlayera. Uruchom konsolę, następnie przejdź do tego katalogu i wykonaj

    gcc -o dhasetup.exe dhasetup.c

i

    dhasetup.exe install

jako Administrator. Będziesz musiał ponownie uruchomić komputer. Teraz, skopiuj wszystkie pliki z rozszerzeniem `.so` z katalogu `vidix/drivers` do `mplayer/vidix` względem położnia pliku `mplayer.exe`.

Żeby osiągnąć najlepsze wyniki MPlayer powinien korzystać z przestrzeni kolorów, którą Twoja karta wspomaga sprzętowo. Niestety wiele sterowników graficznych Windowsa źle informuje o obsługiwanych przez kartę przestrzeniach. Aby sprawdzić które są źle obsługiwane, wykonaj poniższą komendę:

    mplayer -benchmark -nosound -frames 100 -vf format=przestrzeń film

gdzie `przestrzeń` może być jakąkolwiek wartością spośród tych uzyskanych przez opcję `-vf format=fmt=help`. Jeśli któraś z nich działa szczególnie źle, opcja `-vf noformat=`przestrzeń`` zapobiegnie jej używaniu. Możesz to na stałe dodać do Twojego pliku konfiguracyjnego.

Dostępne są specjalne zbiory z kodekami przeznaczone dla systemu Windows, znajdziesz je na stronie kodeków. Pozwolą Ci one na odtwarzanie formatów, które nie są jeszcze bezpośrednio obsługiwane w MPlayerze. Umieść je, gdzieś w swojej ścieżce (w katalogu podanym w zmiennej PATH - przyp. tłumacza) lub przekaż opcję `--codecsdir=`c:/ścieżka/do/Twoich/kodeków`` (lub, tylko w środowkisku Cygwin, `--codecsdir=`/ścieżka/do/Twoich/kodeków``) do skryptu `configure`. Mieliśmy doniesienia, że biblioteki Real, muszą być zapisywalne dla użytkownika, który uruchamia MPlayera, ale tylko na niektórych systemach (NT4). Spróbuj nadać im atrybut zapisywalności.

Możesz odtwarzać VCD, odtwarzając pliki `.DAT` lub `.MPG`, które Windows pokazuje na VCD. To działa mniej więcej tak (dopasuj literę dysku do Twojego CD-ROMu):

    mplayer d:/mpegav/avseq01.dat

DVD również działa, podaj literę Twojego DVD-ROMu przez opcję `-dvd-device`:

    mplayer dvd://<tytuł> -dvd-device d:

Konsola Cygwin/MinGW jest raczej wolna. Zgłoszono, że przekierowywanie wyjścia albo używanie opcji `-quiet` poprawia wydajność na niektórych systemach. Bezpośrednie renderowanie (`-dr`) również może pomóc. Jeżeli odtwarzanie jest nierówne, spróbuj użyć `-autosync 100`. Jeżeli którakolwiek z tych opcji Ci pomogła, może będziesz chciał umieścić ją w swoim pliku konfiguracyjnym.

Na Windowsie automatyczne wykrywanie typu procesora wyłącza rozszerzenie SSE z powodu okazjonalnych i ciężkich do wyśledzenia błędów powodujących zakończenie aplikacji. Jeżeli nadal chesz mieć obsługę SSE pod Windowsem, będziesz musiał skompilować program bez wykrywania typu CPU w trakcie działania.

Jeżeli masz Pentium 4 i program wysypuje Ci się podczas używania kodeków RealPlayer'a, prawdopodobnie będziesz musiał wyłączyć obsługę hyperthreading'u.

### Cygwin

Aby skompilować MPlayera wymagana jest wersja Cygwina 1.5.0 lub późniejsza.

Pliki nagłówkowe DirectX muszą być rozpakowane do `/usr/include/` lub `/usr/local/include/`.

Instrukcje i pliki potrzebne do kompilacji SDLa dla Cygwin są dostępne na stronie libsdl.

### MinGW

Zainstalowanie MinGW, który umożliwiłby kompilację MPlayera było zawiłe, ale teraz składa się tylko z trzech prostych kroków i niedługo powinno działać "prosto z pudełka". Zainstaluj MinGW 3.0.0 lub nowszy. Zainstaluj MSYS 1.0.9 lub nowszy i wskaż systemowi poinstalacyjnemu MSYSa, że MinGW jest zainstalowane.

Rozpakuj pliki nagłówkowe DirectX do `/mingw/include/`.

Do obsługi skompresowanych nagłówków MOV wymagana jest biblioteka zlib, która nie jest domyślnie dostępna w MinGW. Skonfiguruj ją z opcją `--prefix=/mingw` i zainstaluj przed kompilacją MPlayera.

Pełną instrukcję jak zbudować MPlayera i wszystkie potrzebne biblioteki znajdziesz w MPlayer MinGW HOWTO.

## Mac OS

"Surowe" źródła MPlayera obsługują tylko Mac OS X w wersjach 10.2 i wyższych. Możesz spróbować umożliwić obsługę starszych wersji Mac OS oraz przysłać nam łaty! MPlayer nie działa na Mac OS w wersjach niższych niż 10, jednak powinien skompilować się bez problemu na systemie Mac OS X 10.2 i wyższym. Zalecanym kompilatorem jest GCC 3.x w wersji Apple. Możesz otrzymać podstawowe środowisko do kompilacji, instalując Xcode od Apple. Jeżeli masz Mac OS X 10.3.9 lub późniejszy i QuickTime 7, możesz skorzystać ze sterownika wyjścia video `corevideo`.

Niestety, to podstawowe środowisko ni epozwoli ci na skorzystanie ze wszystkich fajnych możliwości MPlayera. Przykładowo, żeby uzyskać wkompilowaną obsługę OSD, będziesz potrzebował bibliotek `fontconfig` i `freetype` zainstalowanych na swojej maszynie. W przeciwieństwie do innych Uniksów, takich jak większość odmian Linuksa i BSD, OS X nie ma systemu pakietów dostarczanego razem z systemem.

Można wybierać spośród co najmniej dwóch systemów pakietów: Fink i DarwinPorts.\ Oba dostarczają takie same usługi (np. dużo pakietów do wyboru, rozwiązywanie zależności, możliwość łatwego dodania/aktualizacji/usunięcia pakietów itp.). Fink oferuje zarówno binarne pakiety, jak i możliwość zbudowania wszystkiego ze źródeł. Natomiast DarwinPorts pozwala tylko na budowanie ze źródeł. Autorzy tego przewodnika wybrali DarwinPorts z powodu tej prostej przyczyny, że jego podstawowa wersja była lżejsza. Podane przykłady będą oparte na DarwinPorts.

Przykładowo, żeby skomilować MPlayera z obsługą OSD:

    sudo port install pkgconfig

Zainstaluje to pkg-config, który jest systemem do zarządzania flagami kompilacji/dowiązań bibliotek. MPlayerowy skrypt `configure`używa go do prawidłowego wykrywania bibliotek. Następnie możesz zainstalować fontconfig w podobny sposób:

    sudo port install fontconfig

Następnie możesz uruchomić MPlayerowy skrypt `configure` (zapisz zmienne systemowe `PKG_CONFIG_PATH` i `PATH`, żeby `configure` znalazł biblioteki zainstalowane przez DarwinPorts):

    PKG_CONFIG_PATH=/opt/local/lib/pkgconfig/ PATH=$PATH:/opt/local/bin/ ./configure

### MPlayer OS X GUI

Możesz pobrać natywne GUI dla MPlayera razem z prekompilowanymi binariami MPlayera dla Mac OS X ze strony projektu MPlayerOSX, ale uwaga: projekt nie jest już aktywny.

Na szczęście, MPlayerOSX został przejęty przez członka załogi MPlayera. Wersje testowe są dostępne na stronie z materiałami do pobrania, a oficjalne wydanie powinno pojawić się już niedługo.

Aby zbudować MPlayerOSX bezpośrednio ze źródeł, potrzebujesz modułu `mplayerosx`, `main` i kopii modułu CVS `main` o nazwie `main_noaltivec`. `mplayerosx` to graficzna nakładka, `main` to MPlayer, a `main_noaltivec` to MPlayer zbudowany bez obsługi AltiVec.

Aby pobrać moduł z repozytorium SVN wykonaj polecenia:

    svn checkout svn://svn.mplayerhq.hu/mplayerosx/trunk/ mplayerosx
    svn checkout svn://svn.mplayerhq.hu/mplayer/trunk/ main

W celu zbudowania MPlayerOSX będziesz musiał utowrzyć podobną strukturę katalogów:

    katalog_źródłowy_MPlayera
       |
       |--->main           (źródła MPlayera z Subversion)
       |
       |--->main_noaltivec (źródła MPlayera z Subversion skonfigurowane z opcją --disable-altivec)
       |
       |--->mplayerosx     (źródła MPlayer OS X z Subversion)

Najpierw musisz zbudować main i main_noaltivec.

Następnie ustaw globalną zmienną:

    export MACOSX_DEPLOYMENT_TARGET=10.3

Potem skonfiguruj:

Jeżeli konfigurujesz dla maszyny G4 lub lepszej z obsługą AltiVec, postępuj jak poniżej:

    ./configure --with-termcaplib=ncurses.5 --disable-gl --disable-x11

Jeżeli konfigurujesz dla maszyny z procesorem G3 bez AltiVec, postępuj jak ponieżej:

    ./configure --with-termcaplib=ncurses.5 --disable-gl --disable-x11
    --disable-altivec

Być może będziesz musiał wyedytować plik `config.mak` i zmienić wartości `-mcpu` `-mtune` z `-74XX` na `-G3`.

Następnie wykonaj

    make

przejdź do katalogu mplayerosx i wpisz

    make dist

Zostanie utworzony skompresowany obraz `.dmg` zawierający gotowy do uruchomienia program.

Możes również skorzystać z projektu Xcode 2.1; stary projekt dla Xcode 1.x już nie działa.