libav und x264 (C/C++, evtl. ARMv7 asm) für Android cross-kompilieren?!

  • Grüß euch!

    Ich hab mir ja jetzt so ein dreckiges Android Phone gekauft... ok. Gleich zum Punkt:

    Ich würd gerne das [libav Codecsystem] mit der [Android NDK] Toolchain bauen, und danach noch [x264] dagegen linken und bauen, und das fertige (hoffentlich statisch gelinkte) x264 Binary dann am Android Phone nutzen.

    Hat irgendwer damit Erfahrung, wie man C/C++ mit klassischem configure/make Setup mit der Android NDK Toolchain übersetzt? Ich pack diesen cross-compile Wahnsinn gar ned, und die Doku is Mörda..

    Daher wollte ich Mal nachfragen, ob es hier jemanden gibt, der evtl. etwas Orientierungs-Starthilfe leisten könnte.

    Als Plattform fürn Bau hab ich ein CentOS 6.0 Linux, und halt die neueste Android NDK. SDK auch, brauchts aber wohl ned für den Code. GNU make, autoconf, yasm usw. sind natürlich auch vorhanden.. Ich glaub ja ich bräuchte nur ein entsprechend passendes Setup, sodaß statt den System Tools und Libs halt nur die des NDK genutzt werden mit der korrekten Target Arch und entsprechenden Optimierungen, plus evtl den yasm, um die ARMv7 Assembler Codepfade nutzen zu können, die ja auch vorliegen bei dem Source.

    Aber wie das genau aussehen soll, ich durchblicks ned. Es gibt Leute im Netz, die es geschafft haben, aber die fragmentierten und unvollständigen Infos dazu waren nicht sehr hilfreich. Guide gibts keins, und der Market... najo, den kann man in so einem Fall vergessen.. Commandline Tools für Video Encoding gibts da generell ned..

    Außer der NDK habe ich übrigens auch das Openembedded Build Environment mit Ångström Distribution versucht, aber da baut mir schon das Environment selbst nicht. Erstens muß man einiges fixen an der Buildkonfig, und selbst wenn man dran rumhacked, sodaß er alle Packages findet usw., dann hauts ihn irgendwo beim Kompilieren der Umgebung auf. Da komm ich gar nicht Mal bis zum cross-compile von x264/libav selber.

    Also wenn jemand mit dem Bau bzw. der Portierung von Source Trees mit autoconf / GNU make setup auf Google Android Erfahrung hat (bevorzugt unter Linux, aber woanders wirds wohl eh kaum einer machen), dann wäre ich für jede helfende Hand dankbar, weil mir ist das bisher schlichtweg zu hoch!

    Wobei, wahrscheinlich ist jede Erfahrung mit cross-compiling unter Verwendung von prebuilt Toolchains schon von großem Wert, auch wenns nichts mit Android zu tun hat!

    Bin für jede Hilfe dankbar!

    Edit: Mittlerweile auch gepostet auf den folgenden Seiten:

    1-6000-banner-88x31-jpg

    Stolzer Besitzer eines 3dfx Voodoo5 6000 AGP Prototypen:

    • 3dfx Voodoo5 6000 AGP HiNT Rev.A-3700

    [//wp.xin.at] - No RISC, no fun!

    QotY: Girls Love, BEST Love; 2018 - Lo and behold, for it is the third Coming; The third great Year of Yuri, citric as it may be! Edit: 2019 wasn't too bad either... Edit: 2020... holy crap, we're on a roll here~♡!

    Quote Bier.jpg@IRC 2020: "Je schlimmer der Fetisch, desto besser!"

    4 Mal editiert, zuletzt von GrandAdmiralThrawn (8. November 2011 um 14:20)

  • Geht nicht "gcc -c -march=arm" (oder was auch immer)?
    Beim ./configure-Script kannste auch meist ne Architektur übergeben. Ansonsten musste das Makefile überarbeiten.
    Falls die Quellen irgendwo einfach nur entpackt wurden (NDK & SDK) musste mit "--with=/pfad/zu/quellen" die Quellen manuell angeben.

    "Du bist und bleibst a Mensch und du kannst eben net deine menschlichkeit überwinden."

    Dennis_50300

    Einmal editiert, zuletzt von CryptonNite (8. November 2011 um 14:54)

  • Also was ich sicher machen muß ist, den prebuilt gcc der NDK zu verwenden, und gegen die Libraries zu linken, die bei der NDK dabei sind. Leider ist die Ordnerstruktur der NDK schon sehr undurchsichtig und es ist gar nicht Mal so einfach herauszufinden, wo jetzt das wirklich passende gcc Binary liegt und wo die passenden Header usw.. Das macht die Sache etwas schwierig... Autoconf und GNU make kann ich sicher vom Host OS benutzen, kA welche Komponenten sonst noch Bestandteil so einer cross-compile Toolchain sind, außer gcc selbst und der Libs gegen die man zu linken hat?!

    1-6000-banner-88x31-jpg

    Stolzer Besitzer eines 3dfx Voodoo5 6000 AGP Prototypen:

    • 3dfx Voodoo5 6000 AGP HiNT Rev.A-3700

    [//wp.xin.at] - No RISC, no fun!

    QotY: Girls Love, BEST Love; 2018 - Lo and behold, for it is the third Coming; The third great Year of Yuri, citric as it may be! Edit: 2019 wasn't too bad either... Edit: 2020... holy crap, we're on a roll here~♡!

    Quote Bier.jpg@IRC 2020: "Je schlimmer der Fetisch, desto besser!"

  • Das hier ist ja nett zu lesen: [Generische Anleitung].

    Besonders der Teil:

    Zitat

    Autotool is good only on GNU systems and using it for cross compiling can be really tedious, confusing, error prone or even impossible. The method described here is a hack and should be used at your own risk.


    Ich habe versucht die entsprechenden Variablen alle umzubiegen, also CC, LDFLAGS, usw., und dann ./configure --host=arm probiert, aber da hauts ihn auch auf.

    Meldung:

    Code
    Unknown system unknown-none, edit the configure


    Probiert man etwas wie --host=armv7, erkennt er das nicht an, also prinzipiell sollte "arm" wohl schon passen..

    Code
    Invalid configuration `armv7': machine `armv7' not recognized
    Unknown system , edit the configure


    Wieso gibts da keine selbst-konfigurierende Buildumgebung von Google für Linux/autoconf/make.. :(

    Edit: Vielleicht is es einfacher ich spiel ein Debian Image drauf und chroot in selbiges rein... Das is zwar auch massive Arbeit, aber wenigstens aussichtsreicher als dieser Irrsinn hier..

    1-6000-banner-88x31-jpg

    Stolzer Besitzer eines 3dfx Voodoo5 6000 AGP Prototypen:

    • 3dfx Voodoo5 6000 AGP HiNT Rev.A-3700

    [//wp.xin.at] - No RISC, no fun!

    QotY: Girls Love, BEST Love; 2018 - Lo and behold, for it is the third Coming; The third great Year of Yuri, citric as it may be! Edit: 2019 wasn't too bad either... Edit: 2020... holy crap, we're on a roll here~♡!

    Quote Bier.jpg@IRC 2020: "Je schlimmer der Fetisch, desto besser!"

    Einmal editiert, zuletzt von GrandAdmiralThrawn (9. November 2011 um 13:08)