Warum im cdk bauen?
Du kannst das auch außerhalb vom cdk machen. So habe ich mir z.B. einen Compiler + komplette Entwicklungsumgebung für die Dreambox gebaut -> läuft auf der Dreambox.
Zeig doch mal deine configure, die du erstellt hast.
Vorweg wird nicht alles so einfach auf einer Crossumgebung zu bauen sein. Perl habe ich auf diese Weise nicht hinbekommen. Ich habe das dann komplett auf der Dream gebaut. Ist auch ein Grund für die Entwicklungsumgebung auf der Box gewesen. Wie es mit php aussieht.. keine Ahnung, einige Packete wirst du aber ohne leichte Patches nicht so einfach compiliert bekommen.
Die Basis ist eigentlich immer.
./configure --build=i686-pc-linux-gnu --host=powerpc-tuxbox-linux-gnu
bzw.
./configure --build=i686-pc-linux-gnu --host=powerpc-tuxbox-linux-gnu --target=powerpc-tuxbox-linux-gnu
Build bezeichnet dabei dein Buildsystem, hier i686-pc-linux-gnu und Host dein Gastsystem, das den Crosscompiler enthält. Target wäre hierbei das Zielsystem, auf dem die Binaries laufen sollen. Da Target und Host aber die gleichen Systeme sind, braucht man Target nicht mit anzugeben. Manche configure Scripts versagen auch bei der Angabe des Targets, deswegen sollte Variante 1 reichen. Target und Host können auch verschieden sein, dann nennt sich das ganze Canadian Crosscompile, das nur nebenbei.
Dann setzt du noch ein paar CFLAGS beim Maken bzw. in der configure.
Also
CFLAGS="-mcpu=405 -msoft-float -mmultiple -mstring -meabi -pipe -Os -s"
CXXFLAGS="-mcpu=405 -msoft-float -mmultiple -mstring -meabi -pipe -Os -s"
Diese CFLAGS habe ich aus dem Makefile meiner Crossumgebung im Rootverzeichnis.
Einfach mal öffnen und nach TARGET_CFLAGS suchen. Die Optionen -g oder ggdb3 kannst "mußt du" weglassen, sonnst hast du Debuginfos drinn und die Files werden riesig. Die Options "-s" sorgt für das Strippen (entfernen unnötiger Infos mal einfach ausgedrückt) der Binaries auf ein Minimum der Größe. Wenn "-s" nicht funktioniert mal in die Manpage von gcc schauen, stehe da gerade etwas auf dem Schlauch. Ich habe das ganze immer zum Schluß per Hand gestrippt.
Das ganze sieht dann grob in etwa so aus:
1. Entpacke die Sourcen in irgend einen Pfad deines Home Verzeichnisses
2. Exportiere die PATH Variable, so daß dein Crosscompiler gefunden wird.
Befindet sich dein powerpc-tuxbox-linux-gnu-gcc also in /root/cdk/bin dann wie folgt:
export PATH=/root/cdk/bin:$PATH
3. Öffne die Konsole, wenn nicht schon getan, cd in das Verzeichnis der ausgepackten Sourcen, und tippe erstmal ./configure --help für die Übersicht evtl. nötiger Optionen.
4. Erstelle das Makefile
CFLAGS="-mcpu=405 -msoft-float -mmultiple -mstring -meabi -pipe -Os -s" CXXLAGS="-mcpu=405 -msoft-float -mmultiple -mstring -meabi -pipe -Os -s" ./configure --prefix=your_path --build=i686-pc-linux-gnu --host=powerpc-tuxbox-linux-gnu your_options...
5. Dann kannst du mit make das Packet bauen. Sollten deine gesetzten CFLAGS hier ignoriet worden sein. Kannst du diese auch alternativ beim Maken adden.
Also:
make CFLAGS+="-mcpu=405 -msoft-float -mmultiple -mstring -meabi -pipe -Os -s" CXXLAGS+="-mcpu=405 -msoft-float -mmultiple -mstring -meabi -pipe -Os -s"
6. Installiere das Packet in deinen gewünschten Pfad, der bei configure mit --prefix angegeben wurde.
7. Alternativ Binaries noch strippen
cheers