Wie kompiliert man z.B. camd2

Kreuzuebersetzer, Diskussion über Änderungen im Tuxbox-CDK und Tuxbox-CVS
MattisBLN
Einsteiger
Einsteiger
Beiträge: 144
Registriert: Sonntag 6. April 2003, 10:26

Beitrag von MattisBLN »

Npq hat geschrieben:Ich meinte "make all" im CDK-Verzeichnis. Aber ich persönlich arbeite eher selten aus dem Verzeichnis raus, sondern meist in den entsprechenden Unterverzeichnissen.
Ging bei mir aber erst, nachdem ich die Links in meinem /bin-Verzeichnis angelegt hatte. Alternativ müsste es auch gehen, wenn das cdk/bin-Verzeichnis im Pfad liegt.
Npq hat geschrieben: Make überprüft z.B. das Datum der Dateien und berücksichtigt Abhängigkeiten, wenn du eine include-Datei änderst, dann werden auch alle abhängigen Sources neu übersetzt.
Make all merkt aber nicht, wenn sich in der fünften Verschachtelung ganz unten eine einzige include-Datei verändert hat, oder? Sagtest du ja selber schon.
Npq hat geschrieben: Und ja, Compiler, Linker, Assembler etc. müssen natürlich Code für die jeweilige Plattform erzeugen. Dabei muß übrigens nichts angepaßt werden, sondern das können die von Hause aus, man muß es nur beim Kompilieren der Tools angeben. Beim PC ist es dabei dann einfach so, daß Host (wo wird's mal ausgeführt?), Build (wer soll's übersetzen?) und Target (wofür soll Code erzeugt werden?)-System übereinstimmen.
Also besser:
CDK: Um ein Image für die dbox zu erstellen, müssen die für die Compilierung usw. benötigten Tools erstmal erstellt werden, da hier die frei verfügbaren (GNU) Compiler/Tools verwendet werden. Im ersten Anlauf müssen also erstmal alle Hilfsmittel erstellt werden, bevor mit diesem Tools dann die eigentliche Software für die dbox gebaut werden können.

Gruß, Matthias
Npq
Senior Member
Beiträge: 1339
Registriert: Donnerstag 24. April 2003, 12:12

Beitrag von Npq »

MattisBLN hat geschrieben:Ging bei mir aber erst, nachdem ich die Links in meinem /bin-Verzeichnis angelegt hatte. Alternativ müsste es auch gehen, wenn das cdk/bin-Verzeichnis im Pfad liegt.
Naja, Pfad ist sinnvoller, schließlich soll's ja Systeme geben, wo man keine Links in /bin anlegen darf. ;)

Außerdem ist das so für jeden gültig, was schlecht ist, weil ich's gerne trenne, um keine unangenehmen Überraschungen zu erleben. Deswegen habe ich für das CDK auch einen eigenen Benutzer und nur der hat dann auch das ppc-Verzeichnis im Pfad.
MattisBLN hat geschrieben: Make all merkt aber nicht, wenn sich in der fünften Verschachtelung ganz unten eine einzige include-Datei verändert hat, oder? Sagtest du ja selber schon.
Doch, klar. Die Makefiles gehen rekursiv alle Unterverzeichnisse durch. Das gilt aber nicht für das CDK-Makefile, das ist ja auch Spezial. Das soll eher alles zusammenfassen, um dann zentral bauen zu können. Wenn man die .deps-Datei von Hand löscht, dann funktioniert das auch mit den Unterverzeichnissen, nur wenn das Skript die nicht erzeugen würde, dann ginge er immer alles durch selbst wenn sich nichts geändert hat. Ein einfaches "rm .deps/neutrino" ist da wesentlich einfacher, verlangt aber natürlich, daß man auch weiß wo etwas geändert wurde. Das ist nicht ganz so toll, funktioniert aber solange man die Mailingliste verfolgt ganz gut.

Im Zweifelsfall merkt man an der Fehlermeldung, daß sich eine benötigte Bibliothek geändert hat. ;)

Außerdem werden manche Sourcen und ihre Objektdateien anschließend gelöscht (bei den 3rd-Party-Tools), so daß nur noch die Abhängigkeit im .deps-Verzeichnis da ist um darauf hinzuweisen.
MattisBLN hat geschrieben:Also besser: [...]
Ja genau.
MattisBLN
Einsteiger
Einsteiger
Beiträge: 144
Registriert: Sonntag 6. April 2003, 10:26

Beitrag von MattisBLN »

Hi,

also irgendwie haut das mit dem make nach einem "cvs up" nicht hin, ich sehe z. B. an der Mailingsliste, dass sich satfind geändert hat.

make all - nichts zu tun (sagtest du ja, bezieht sich haupts. auf CDK)
make rebuild-flash tut zwar was, die satfind ausführbare Datei wird aber nicht neu erstellt und ist damit im Flash-Verzeichnis nachher auch nicht neu.

Immerhin ist es mir inzwischen gelungen, ein cramfs zu erstellen (make flash-micx-cramfs), allerdings bekomme ich dann auf der Box die Fehlermeldung, "Release Zyklus weicht ab" - ich hab das JtG-Image auf der Box. Vermutlich muss ich ein Komplett-Image flashen?

Greetings,
Matthias