x265 unter MacOS X compilieren

  • { Fortsetzung aus: Der x265-Encoder entwickelt sich... | LigH }

    Ich müsste mir x265 ja aus der source bauen oder? Ist das dass hier:

    Code
    # libx265cd ${CMPL} hg clone https://bitbucket.org/multicoreware/x265cd x265/sourcecmake -DCMAKE_INSTALL_PREFIX:PATH=${TARGET} -DENABLE_SHARED=NO .make -j 4 && make install

    müsste ich das dann mit

    Code
    hg pull && hg update 1.4

    nutzen?

     MacBookPro 15" 2017 | 4 x 3,1 Ghz | 16 GB Ram | 1TB SSD NVME |

    Einmal editiert, zuletzt von LigH (6. März 2015 um 10:12)

  • Ja, wobei ich nicht cmake verwenden würde, sondern die make-Makefiles.bash im x265/build/linux/ Ordner um das make file zu erstellen.
    (+ 'make install' würde ich auch weglassen, wenn die x265 binary nur gebaut und nicht installiert werden soll)

  • irgendwie funktioniert dies "make-Makefiles.bash" nicht... meldet cmake not found...

     MacBookPro 15" 2017 | 4 x 3,1 Ghz | 16 GB Ram | 1TB SSD NVME |

  • Das habe ich mir schon gedacht bei der Meldung... nur wie passt der Kommentar von Selur "wobei ich nicht cmake verwenden würde, sondern die make-Makefiles.bash" dazu?

     MacBookPro 15" 2017 | 4 x 3,1 Ghz | 16 GB Ram | 1TB SSD NVME |

  • Habe ich gemacht, ändert nix... Füttere ich CMake direkt mit dem Source Ordner erstellt der unzählige Ordner und Dateien aber nix was ich als x265 binarie ansehen würde... Keine Ahnung was hier zu tun ist...

     MacBookPro 15" 2017 | 4 x 3,1 Ghz | 16 GB Ram | 1TB SSD NVME |

  • Du sollst ja auch nicht cmake manuell verwenden.

    Du sollst cmake installiert haben. Und wenn es verfügbar ist, rufst du das Shell-Skript auf, welches die Compilierung startet. Das Skript funktioniert nur eben nicht, solange cmake gar nicht mal installiert ist.

  • Habe ich gemacht, ändert nix...

    CMake ist Installiert... das Bash Script meldet aber weiter "cmake command not found"

    Code
    AKFs-MacPro:~ Massaguana$ /Users/Massaguana/Downloads/multicoreware-x265-5e604833c5aa/build/linux/make-Makefiles.bash /Users/Massaguana/Downloads/multicoreware-x265-5e604833c5aa/build/linux/make-Makefiles.bash: line 3: cmake: command not foundAKFs-MacPro:~ Massaguana$

    In line 3 steht:

    Code
    cmake -G "Unix Makefiles" ../../source && ccmake ../../source

     MacBookPro 15" 2017 | 4 x 3,1 Ghz | 16 GB Ram | 1TB SSD NVME |

  • Habe dann mal die ganzen Pfade eingebaut:

    Bash
    #!/bin/bash# Run this from within a bash shell/Applications/CMake.app/Contents/bin/cmake -G "Unix Makefiles" /Users/Massaguana/Downloads/multicoreware-x265-5e604833c5aa/source && /Applications/CMake.app/Contents/bin/ccmake /Users/Massaguana/Downloads/multicoreware-x265-5e604833c5aa/source

    Dann lande ich hier:

    Nur was soll ich da tun?

    EDIT: In " /Users/Massaguana" werden die selben "Undefinierbaren" Daten erzeugt wie als ich CMake selbst gefüttert habe...

     MacBookPro 15" 2017 | 4 x 3,1 Ghz | 16 GB Ram | 1TB SSD NVME |

    Einmal editiert, zuletzt von Massaguana (5. März 2015 um 10:39)

  • Lang ist's her...

    Der erste Aufruf erlaubt dir, die Compilierung zu konfigurieren. Wenn alle Einstellungen so richtig sind, dann "c" für "Konfiguration abspeichern". Danach geht es mit der eigentlichen Compilierung weiter.

    Ich lasse mittlerweile den Konfigurationsschritt weg, weil sich meine Konfiguration ja nicht mehr ändert. Wenn man immer mal anders compilieren wollte (z.B. mal mit HIGH_BIT_DEPTH und mal ohne, mal für 32 und mal für 64 bit), müsste man die ständig ändern; das umgehe ich durch vier Kopien meines build-Verzeichnisses, in denen jeweils eine eigene Konfiguration liegt...

  • Also "c" dann "g" für Generate:

    Raus kommen noch mehr "Undefinierbare" Daten... x265.pc x265_config.h x265.def und unzählige Ordner

     MacBookPro 15" 2017 | 4 x 3,1 Ghz | 16 GB Ram | 1TB SSD NVME |

  • Also wozu war dann das Script gleich wenn ich eh alles selbst per hand machen muss?

    Also erst einmal YASM für OSX bauen... das kann ich... nur wo sucht das Script YASM? Ich sehe nicht wo der das haben will

     MacBookPro 15" 2017 | 4 x 3,1 Ghz | 16 GB Ram | 1TB SSD NVME |

  • In meiner MSYS-Installation kommt YASM (min. v1.2.0 mit Hastable-Patch, besser v1.3.0) in das Verzeichnis /bin (möglicherweise würde "make install" von YASM das dahin kopieren).

    Das vorgegebene Skript vereinfacht eigentlich nur das Nacheinander von cmake-Configure/Generate und cmake-Build, vermutlich auch in dem Sinne, dass die Compilierung gar nicht erst beginnt, wenn die Konfiguration abgebrochen wird (ich weiß nicht genau, was '&&' tut, gehe aber davon aus, dass es auch boolesch verstanden werden kann).

  • Also ich gebe es hier mit auf da weiter dran rum zu Probieren... 2 Vormittage umsonst Investiert...

    Das Script ist scheinbar Unvollständig... YASM fehlt => Habe ich gemacht, CMake fehlt => Habe ich gemacht. Ich würde sage der Finale Befehl um die binarie zu erzeugen fehlt... Also "Make Install"... Dann kommt eine x265 binarie raus bei der aber keine "Version" drin steht... mache ich das ganze über meine Compilierumgebung kommt auch ein x265 binarie raus, aber immer nur die Neuste Version egal was ich dem als source gebe... Kann nicht Feststellen ob nur die Version Falsch ist oder ob es wirklich so ist...

     MacBookPro 15" 2017 | 4 x 3,1 Ghz | 16 GB Ram | 1TB SSD NVME |

  • Tja, leider habe ich keinen Mac, weiß also nicht, ob das was nützt ... aber das Shell-Skript, das ich mir für MSYS erstellt habe, tut im jeweiligen build/{compiler}-Verzeichnis etwa folgendes (Win-XP-Kompatibilität nützt dir ja nix, den Parameter also weggelassen):

    Code
    make clean-generatedcmake -G "MSYS Makefiles" ../../sourcemake

    oder für die 64-bit-Crosscompilierung mit dem 32-bit-Compiler:

    Code
    make clean-generated
    cmake -G "MSYS Makefiles" -DCMAKE_TOOLCHAIN_FILE=toolchain-x86_64-w64-mingw32.cmake ../../source
    make

    Mit "make clean-generated" werden ein paar durch cmake generierte Dateien gelöscht, wodurch cmake gezwungen wird, die erneut zu erzeugen, und damit auch die Versionsnummer in die x265.rc aktuell einzutragen. Und dann wird nur "make" aufgerufen, um alles zu compilieren.

    "make install" würde (glaube ich) gar nicht compilieren, nur die irgendwann mal compilierten Binaries und evtl. Dokumentation in die "Installationsverzeichnisse" kopieren.

    Bei dir müsste cmake nicht die "MSYS Makefiles" generieren, sondern was anderes. Möglicherweise "Unix Makefiles", wenn deine bisherigen Zitate richtig sind.

    Verwendest du Xcode? Dafür gäbe es ein build-Verzeichnis im x265-Repo.
    __

    Noch mal kurz zum Zweck:

    cmake ersetzt nicht make, sondern erzeugt das "Makefile" und andere Voraussetzungen (das "Projekt") für den am Ende folgenden Aufruf von "make". Es ist insofern nützlich, dass cmake (cross-platform make) verschiedene Plattformen unterstützt, die jeweils leicht abweichende "make"-Tools haben.

    Ohne weitere Parameter sucht "make" nach der Datei "Makefile" und führt dann die darin beschriebenen Befehle im Standard-"target" aus. Ein Makefile kann Befehlssequenzen für verschiedene Targets enthalten (üblich: all; install; clean).

  • Dann führst du nach dem Auschecken von x265 einmalig in build/xcode folgendes nacheinander aus:

    Code
    ./make-project.shmake

    Wenn das "make" erfolgreich lief, sollten sich die Binaries dann in diesem Verzeichnis befinden (zumindest bei MSYS tun sie das).

    Anschließend die Abfolge für das Re-Compilieren (nachdem du die Sourcen mal aktualisiert hast; danach musst du nicht mit ccmake rekonfigurieren, nur wenn du eine andere Variante - 8/16 bit Farbtiefe - bauen willst):

    Code
    make clean-generated
    cmake -G "Xcode" ../../source
    make

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!