Modularisierung des CDK?

Kreuzuebersetzer, Diskussion über Änderungen im Tuxbox-CDK und Tuxbox-CVS
heptasean
Neugieriger
Neugieriger
Beiträge: 10
Registriert: Dienstag 10. März 2009, 07:51

Modularisierung des CDK?

Beitrag von heptasean »

Hallo!

Erster Post, also verzeiht bitte, wenn die Frage doof ist, aber die Suche hat nicht so richtig was ergeben. ...

Ist es möglich, das CDK etwas modularer zu gestalten?

Ich meine z.B. die Cross-Toolchain extra zu bauen (die könnte dann für verschiedene Distributionen auch binär angeboten werden ...), Kernel, gcc, uclibc, Busybox, ... direkt von den Quellen downloaden und einzeln kompilieren und nur noch die Tuxbox-spezifischen Sachen (und ggf. Patches) aus dem CVS laden (würde auch die Serverlast verringern), eh' nicht gewollte Sachen (Spiele, Sprachen, Mail, Commander, ...) gar nicht erst kompilieren und einbauen (statt sie mit Scripten nachträglich wieder zu entfernen) etc. pp. Das würde es auch erleichtern, nur geänderte Teile neu zu bauen, statt nach einem distclean auch (überflüssigerweise) Crosstools etc.

Im Endeffekt würde das ganze in Richtung eines Gentoo- oder FreeBSD-ähnlichen Systems gehen, bei dem man modular verschiedene "Pakete" kompilieren lassen kann (ob Binärpakete sinnvoll sind, weiß ich nicht) und am Ende wäre ein Tool, das auch manuell aufgerufen werden kann, um das ganze entweder in einen YADD-Tree zu kopieren oder in ein Flash-Image zu packen (und checkImage aufzurufen).

Für den Anfang würde mich interessieren, ob es irgendwo eine Dokumentation gibt, wie die verschiedenen Teile des CDK intern zusammenhängen? Bin eigentlich kein Linux-Neuling, aber durch dieses ganze autoconf- und automake-Geraffel und die davon produzierten unleserlichen Makefiles durchzusteigen, ist ganz schön schwer. ;) (Ein etwas weniger aufgeblasenes Build-System wäre vielleicht auch 'ne Idee? Von der Zeit, die ein kompletter Durchbau-Lauf braucht, geht gefühlt ein größerer Prozentsatz dafür drauf, dass verschiedene ./configures immer wieder das gleiche checken.)

Also: Meinungen? Hinweise? Alles zu aufwändig?

Grüße
heptasean
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Modularisierung des CDK?

Beitrag von seife »

Im Prinzip brauchst du nur apps/ auschecken und das Zeug dort bauen. Ich habe neutrino & Co so schon auf verschiedensten Plattformen gebaut ;)

z.B. mache ich das hier: git://gitorious.org/tripledragon-buildscripts/mainline.git so, du kannst dir ja mal die Makefiles dort anschauen.

Um es nativ zu bauen, nehme ich z.B. dieses configure-skript:

Code: Alles auswählen

#!/bin/sh
TOPDIR=/local/seife/src/tuxbox-native
TARGETPREFIX=$TOPDIR/root/cdkroot
export PKG_CONFIG_PATH=$TARGETPREFIX/lib/pkgconfig
export PATH=$TARGETPREFIX/bin:$TARGETPREFIX/sbin:$PATH
# CFLAGS="-funsigned-char -Wshadow -Werror" CXXFLAGS="$CFLAGS" # for the brave
# CFLAGS="-funsigned-char -Wshadow" CXXFLAGS="$CFLAGS" \
CFLAGS="-funsigned-char -O0 -g -W -Wall" CXXFLAGS="$CFLAGS" \
        ./configure     --oldincludedir=$TARGETPREFIX/include \
                --prefix=$TARGETPREFIX \
                --exec-prefix=$TARGETPREFIX \
                --enable-maintainer-mode \
                --with-dvbincludes=/usr/include \
                --with-driver=/local/seife/src/tuxbox-native/driver \
                --with-boxtype=generic \
                --with-datadir=$TARGETPREFIX/share/tuxbox \
                $@
das cdk/-Verzeichnis habe ich auch für die dbox schon ewig nicht mehr updated, da wegen irgendwelcher Trivialitäten ständig die ganze Toolchain neu gebaut wird ;-)
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Modularisierung des CDK?

Beitrag von rhabarber1848 »

heptasean hat geschrieben:eh' nicht gewollte Sachen (Spiele, Sprachen, Mail, Commander, ...) gar nicht erst kompilieren und einbauen (statt sie mit Scripten nachträglich wieder zu entfernen)
In der Hinsicht ist schon etwas geplant:
http://forum.tuxbox-cvs.sourceforge.net ... 80#p365580
heptasean
Neugieriger
Neugieriger
Beiträge: 10
Registriert: Dienstag 10. März 2009, 07:51

Re: Modularisierung des CDK?

Beitrag von heptasean »

seife hat geschrieben:z.B. mache ich das hier: git://gitorious.org/tripledragon-buildscripts/mainline.git so, du kannst dir ja mal die Makefiles dort anschauen.
Hey! Danke! Genau so was habe ich gesucht.

Wie ich sehe, benutzt Du crosstools. Da war ich auch schon drüber gestolpert. Werkelt das auch im Innern des CDK irgendwo? Meinst Du, es ist sehr aufwändig, das auch noch auseinanderzunehmen und selbst zu realisieren?

Irgendwie stehe ich auf möglichst flache Hierarchien. Diese "Ein Makefile ruft ein Script auf, das einen Tarball runterlädt, ./configure aufruft, um dann noch ein Make zu starten."-Orgien finde ich irgendwie unästhetisch.

Dein Ansatz geht schon ein ganzes Stück in die Richtung, wie mir scheint.
seife hat geschrieben:das cdk/-Verzeichnis habe ich auch für die dbox schon ewig nicht mehr updated, da wegen irgendwelcher Trivialitäten ständig die ganze Toolchain neu gebaut wird ;-)
Vor allem verstehe ich nicht ganz, wieso dieses ganze autoconf/automake-Zeug da überhaupt drin ist. Das braucht man doch eigentlich nur, um auf möglichst vielen Unixoiden laufen zu können. Ich bin aber beim Versuch, das CDK auf FreeBSD zu kompilieren grandios gescheitert. Irgendwo außerhalb der Hoheit von autoconf/automake stecken da nämlich unglaublich viele Linux-spezifische Sachen drin.
rhabarber1848 hat geschrieben:In der Hinsicht ist schon etwas geplant:
http://www.tuxbox-cvs.sourceforge.net/for ... 80#p365580
Danke auch dafür, aber wie vielleicht deutlich wird, hat mich der ganze Ansatz, mit autoconf zu arbeiten, nicht so ganz überzeugt.

Ich habe zwar nicht wirklich den Bedarf an noch einem Hobby, werde mir aber wohl seifes Makefiles und crosstools mal genauer angucken, ob man das schmerzlos in waf (http://code.google.com/p/waf/) übersetzen kann.

Grüße
heptasean