Eigenes Tool kompilieren, aber wie?

Games, Plugins, Utils, Tools, 3rdParty, etc...
dwilx

Eigenes Tool kompilieren, aber wie?

Beitrag von dwilx »

Ich habe mir ein ein Tool geschrieben (hier testweise als ToolX bezeichnet) und mir sweit in das CDK reingebaut,, nur bekomme ich das irgendwie nicht kompiliert. hier das Log:
dixidix@linux:~/tuxbox-cvs/apps/tuxbox/tools> make
make all-recursive
make[1]: Entering directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools'
Making all in camd
make[2]: Entering directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/camd'
make[2]: Für das Ziel »all« ist nichts zu tun.
make[2]: Leaving directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/camd'
Making all in misc
make[2]: Entering directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/misc'
make[2]: Für das Ziel »all« ist nichts zu tun.
make[2]: Leaving directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/misc'
Making all in satfind
make[2]: Entering directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/satfind'
make[2]: Für das Ziel »all« ist nichts zu tun.
make[2]: Leaving directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/satfind'
Making all in test
make[2]: Entering directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/test'
make[2]: Für das Ziel »all« ist nichts zu tun.
make[2]: Leaving directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/test'
Making all in tuxinfo
make[2]: Entering directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/tuxinfo'
make[2]: Für das Ziel »all« ist nichts zu tun.
make[2]: Leaving directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/tuxinfo'
Making all in graphics
make[2]: Entering directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/graphics'
make[2]: Für das Ziel »all« ist nichts zu tun.
make[2]: Leaving directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/graphics'
Making all in kb2rcd
make[2]: Entering directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/kb2rcd'
make[2]: Für das Ziel »all« ist nichts zu tun.
make[2]: Leaving directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/kb2rcd'
Making all in ToolX
make[2]: Entering directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/ToolX'
/bin/sh: -c: line 0: syntax error near unexpected token `else'
/bin/sh: -c: line 0: `am__fastdepCXX_TRUE@ if @CXX@ -DHAVE_CONFIG_H -I. -I. -I.. -I/home/dixidix/tuxbox-cvs/driver/include -I/home/dixidix/tuxbox-cvs/driver/dvb/include @CXXFLAGS@ -MT ToolX.o -MD -MP -MF ".deps/ToolX.Tpo" -c -o ToolX.o ToolX.cpp; @am__fastdepCXX_TRUE@ then mv -f ".deps/ToolX.Tpo" ".deps/ToolX.Po"; else rm -f ".deps/ToolX.Tpo"; exit 1; fi'
make[2]: *** [ToolX.o] Fehler 2
make[2]: Leaving directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/ToolX'
make[1]: *** [all-recursive] Fehler 1
make[1]: Leaving directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools'
make: *** [all] Fehler 2
dixidix@linux:~/tuxbox-cvs/apps/tuxbox/tools>
Ich sehe da was mit token `else, aber wo soll man denn da suchen. Hat da jemand eine Idee?
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Beitrag von Barf »

/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/configure.ac angepasst?
dwilx

Beitrag von dwilx »

Zuletzt geändert von dwilx am Donnerstag 13. April 2006, 16:40, insgesamt 1-mal geändert.
dwilx

Beitrag von dwilx »

/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/configure.ac angepasst?
...ja, ich denke doch, alles erwischt zu haben. Hier mal die Files, die angepasst wurden:

besagte configure.ac
/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/configure.ac
/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/ToolX/Makefile.am
/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/config.status
/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/Makefile


Code für configure.ac:

Code: Alles auswählen

AC_INIT(tuxbox-tools,0.0.1,,tuxbox-tools)
AM_INIT_AUTOMAKE(tuxbox-tools,0.0.1)

TUXBOX_APPS
TUXBOX_APPS_DIRECTORY

AC_PROG_CC
[color=red]AC_PROG_CXX[/color]
TUXBOX_APPS_DRIVER
TUXBOX_APPS_DVB

# TUXBOX_APPS_LIB_PKGCONFIG(PLUGINS,tuxbox-plugins)
TUXBOX_APPS_LIB_PKGCONFIG(TUXBOX,tuxbox)

AC_OUTPUT([
Makefile
camd/Makefile
misc/Makefile
satfind/Makefile
test/Makefile
tuxinfo/Makefile
graphics/Makefile
kb2rcd/Makefile
ToolX/Makefile
])
Code für Makefile.am

Code: Alles auswählen

bin_PROGRAMS = ToolX
ToolX_SOURCES = ToolX.cpp
Code für config.status (nur die geänderten Zeilen)

Code: Alles auswählen

...
config_files=" Makefile camd/Makefile misc/Makefile satfind/Makefile test/Makefile tuxinfo/Makefile graphics/Makefile kb2rcd/Makefile ToolX/Makefile"
...
  "ToolX/Makefile" ) CONFIG_FILES="$CONFIG_FILES ToolX/Makefile" ;;
...
Code für Makefile wurde nur an dieser Stelle abgeändert: Zeile 182

Code: Alles auswählen

....
SUBDIRS = camd misc satfind test tuxinfo graphics kb2rcd ToolX
...
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

Code für config.status (nur die geänderten Zeilen)
config.status nicht ändern sondern löschen und generieren lassen!
dwilx

Beitrag von dwilx »

werds gleich mal testen
dwilx

Beitrag von dwilx »

Nun das kam dabei raus:

Code: Alles auswählen

dixidix@linux:~/tuxbox-cvs/apps/tuxbox/tools> make
make  all-recursive
make[1]: Entering directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools'
Making all in camd
make[2]: Entering directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/camd'
make[2]: Für das Ziel »all« ist nichts zu tun.
make[2]: Leaving directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/camd'
Making all in misc
make[2]: Entering directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/misc'
make[2]: Für das Ziel »all« ist nichts zu tun.
make[2]: Leaving directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/misc'
Making all in satfind
make[2]: Entering directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/satfind'
make[2]: Für das Ziel »all« ist nichts zu tun.
make[2]: Leaving directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/satfind'
Making all in test
make[2]: Entering directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/test'
make[2]: Für das Ziel »all« ist nichts zu tun.
make[2]: Leaving directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/test'
Making all in tuxinfo
make[2]: Entering directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/tuxinfo'
make[2]: Für das Ziel »all« ist nichts zu tun.
make[2]: Leaving directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/tuxinfo'
Making all in graphics
make[2]: Entering directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/graphics'
make[2]: Für das Ziel »all« ist nichts zu tun.
make[2]: Leaving directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/graphics'
Making all in kb2rcd
make[2]: Entering directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/kb2rcd'
make[2]: Für das Ziel »all« ist nichts zu tun.
make[2]: Leaving directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/kb2rcd'
Making all in ToolX
make[2]: Entering directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/ToolX'
if powerpc-tuxbox-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I..   -I/home/dixidix/tuxbox-cvs/driver/include -I/home/dixidix/tuxbox-cvs/driver/dvb/include  -Wall -mcpu=823 -pipe -Os -MT ToolX.o -MD -MP -MF ".deps/ToolX.Tpo" -c -o ToolX.o ToolX.cpp; \
then mv -f ".deps/ToolX.Tpo" ".deps/ToolX.Po"; else rm -f ".deps/ToolX.Tpo"; exit 1; fi
powerpc-tuxbox-linux-gnu-g++: installation problem, cannot exec `cc1plus': No such file or directory
as: Unbekannte Option »-mppc«
make[2]: *** [ToolX.o] Fehler 1
make[2]: Leaving directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools/ToolX'
make[1]: *** [all-recursive] Fehler 1
make[1]: Leaving directory `/home/dixidix/tuxbox-cvs/apps/tuxbox/tools'
make: *** [all] Fehler 2
dixidix@linux:~/tuxbox-cvs/apps/tuxbox/tools> 
könnte hier der Ansatz sein:

powerpc-tuxbox-linux-gnu-g++: installation problem, cannot exec `cc1plus': No such file or directory
as: Unbekannte Option »-mppc«
dwilx

Beitrag von dwilx »

Irgendwie löpts jetzt!!! :P

Ich hatte also die config.status gelöscht und dann einfach das Ganze mal nicht mit

./configure --prefix="$DB" --with-cvsdir="$CP" --enable-flashrules --with-checkImage=rename --with-logosdir="$LOGODIR"

durchlaufen lassen sondern

./configure --prefix="$DB" --with-cvsdir="$CP" --enable-targetrules

verwendet und make yadd-all eingegeben.

Das hat wohl alles was fehlte erzeugt und mein TestTool als Programm erstellt.
Zwar nicht gestrippt, aber das geht ja manuell.

Danke für den Tip mit der config.status!
dwilx

Beitrag von dwilx »

Noch eine Frage:

Wie ist das mit den Plugins? Läuft das da genauso? Ich meine da sind wohl mehr Sachen anzupassen oder?
Ich habs mit einem Testplugin mal probiert, und es läuft zwar durch aber ich kann hinterher keine *.so-Files im cdkroot finden. Was muss man da noch beachten?
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Beitrag von Barf »

Kuck in z.B. .../apps/tuxbox/plugins/tuxcom/Makefile.am

Wahrscheinlich ist das magische Wort install-exec-local.
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Beitrag von Barf »

... Wobei das Installieren von nicht-ausführbares Zeugs (*.cfg etc) nicht in install-exec-local sondern in install-data-local gehört. Eigentlich... :wink:
dwilx

Beitrag von dwilx »

... hab da mal nachgeschaut, aber nichts unheimliche festgestellt. Ich habe aber die Lösung gefunden.
Da ich dein Newmake verwendet habe, habe ich mir das File: plugin.mk angesehen und da noch einige Einträge ergänzt und das Plugin wird prompt gebaut und ins cdkroot gelegt. Da hätte ich auch gleich drauf kommen können, aber ich bin davon ausgegangen, dass einige Anleitungen fürs Pluginbauen, die hier rumgeistern dafür auch passen. Ließe sich das nicht in Newmake irgendwie per Costumize, so wie Du das ja schon bereits mit root-local... etc. eingebaut hast, machen?
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Beitrag von Tommy »

@dixidix: Kannst Du in einer art kleinem HOWTO Deine Vorgehensweise detailiert beschreiben? Sobald ich newmake bis in den letzten Winkel erforscht habe wollte ich mich an einem eigenen plugin zu schaffen machen. Wäre schön wenn ich eine step by step doku hätte.
---------------------------
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
robspr1
Einsteiger
Einsteiger
Beiträge: 203
Registriert: Mittwoch 27. April 2005, 09:37

Beitrag von robspr1 »

@Tommy

Im Dreambox-Board hab ich mal vor längerer Zeit folgendes gefunden.
(entschuldigt die fehlende Quellenangabe, ich weiss nicht mehr von wem es ist)
Das funktioniert ja sinngemäß auch für die dBox:

Code: Alles auswählen

Installation eines Plugin im CDK (tuxbox-cvs Branch "dreambox")
================================================================

In den nachfolgenden Zeilen möchte ich kurz beschreiben, wie ein Plugin
ins CDK eingebunden werden kann. Leider gibt es zu diesem Thema nur
wenig Dokumentation. Es ist sicherlich nicht die beste Methode, aber 
sie funktioniert ;-)

   - Source-Code in ein eigenständiges Verzeichnis unter 
     ~/dreambox/apps/tuxbox/plugins kopieren.


   - unter ~/dreambox/apps/tuxbox/plugins folgende Dateien bearbeiten:

      o Makefile.am
         Hier muß das Source-Code Verzeichnis an die Variable SUBDIRS
         angefügt werden.

      o configure.ac
         Hier muß am Ende zum AC_OUTPUT noch eine weitere Ausgabezeile
         hinzugefügt werden. (z.B. meinplugin/Makefile)


   - nach ~/dreambox/cdk wechseln und folgendes eingeben:
   
         rm .plugins
         make .plugins

     Hiermit wird unter ~/dreambox/apps/tuxbox/plugins u.a. die 
     config.status erstellt. 


   - nach ~/dreambox/apps/tuxbox/plugins wechseln und folgendes eingeben:

         autogen.sh                 (erzeugt das notwendige Makfile.in)
         config.status              (erzeugt das notwendige Makefile)


   - nun ins Source-Code Verzeichnis wechseln und ein make eingeben.

     Falls keine Fehler beim Compilieren aufgetreten sind, findet man
     im Unterverzeichnis .libs das Binary.


   - zum Abschluß sollte man nicht vergessen das Binary zu strippen ;-)
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Beitrag von Tommy »

ist das auch mit newmake exakt so möglich? Dixidix schrieb oben das es gerade dort etwas anders ist :gruebel:
---------------------------
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
robspr1
Einsteiger
Einsteiger
Beiträge: 203
Registriert: Mittwoch 27. April 2005, 09:37

Beitrag von robspr1 »

Bis auf

Code: Alles auswählen

rm .plugins
make .plugins

Bei newmake sollte eigentlich der Aufruf

Code: Alles auswählen

make plugins
reichen ...
dwilx

Beitrag von dwilx »

st das auch mit newmake exakt so möglich? Dixidix schrieb oben das es gerade dort etwas anders ist
Ist nicht ganz genauso, aber ich werde mal alles zusammentragen wie mans machen kann. Moment Geduuld noch!