Epic5 mit Termcap kompilieren
Dienstag, 28. August 2007
Es gibt immer wieder Dinge, die sind absoluter Schwachsinn - aber man macht sie trotzdem! Aus dieser Episode möchte ich heute mal vorstellen: Wir kompilieren Epic5 mit Termcap. Schwachsinn ist das deswegen, weil so gut wie jedes Linux-System bereits ncurses mit den Entwickler-Quellen installiert hat. Somit ist ein kompilieren normalerweise direkt möglich.
Trotzdem war das ganze ein Versuch wert und ich sage jetzt auch nicht, wie lange ich gebraucht habe, und wie langwierig der Weg zum Ziel war. Wichtig ist im nachhinein ja nur, dass es funktioniert. Also lasst uns beginnen:
Bevor es an das kompieleren geht, muss man sich die benötigten Dateien besorgen. Da wäre als erstes natürlich Epic5. Als nächstes brauchen wir noch Termcap.
Damit hätten wir soweit eigentlich alles, was man braucht. Na ja, fast jedenfalls. Bei mir ließ sich Epic5 so nicht kompilieren. Doch fangen wir am Anfang an. Termcap ließ sich problemlos kompielieren. Wer unter Linux schon mal ein Programm kompiliert hat, wird keine Probleme haben. Da ich das ganze jedoch nicht im System installieren wollte, habe ich einfach alle kompilierten Dateien in das Source-Verzeichnis von Epic5 kopiert. Damit Epic5 diese noch erkennt, muss das passende Makefile um die Dateien ergänzt werden. Interessant ist hier nur die Reihenfolge, da tparam.o vor termcap.o stehen muss.
Nun kommt aber der interessante Teil. Wir kompiliert man Epic5? Ich habe es ganz naiv probiert: Ich habe das Konfig-Script aufgerufen, und die Parameter an meine Bedürfnisse angepasst. Dieses bedeutet, dass ich IPv6 und Ruby Unterstützung gewählt, und Perl abgewählt habe. Damit Epic5 auch noch Termcap nutzt, musste ebenfalls das passende Option gesetzt werden.
Das Kompilieren wurde dann jedoch mit einem Fehler in term.c abgerbochen. Es gäbe wohl conficting types. Dieser Fehler ließ sich zwar relativ einfach beheben, indem in der Datei include/defs.h das Define HAVE_TPARM gesetzt wurde.
Leider brachte das wieder einen neuen Fehler zu Tage. Jetzt meckert er nämlich unter anderem, dass die Funktion tparm nicht existiert. Ich habe eine Ewigkeit gebraucht, um das Problem zu lösen. Ich habe mich dann mit Hilfe von Koders bei icecap bedient. In deren Source gibt es eine tparm.c-Datei. Diese habe ich einfach in das Source-Verzeichnis kopiert und anschließend das Makefile erneut angepasst, um die Datei tparm.o vor tparam.o zu linken. Und schon lief das kompilieren durch!
Das letzte Problem war nun, dass Termcap mein Terminal xterm nicht erkannt hat. Ich habe mich dann schnell in einer Screen-Session versteckt, und endlich funktionierte Epic5.
Trotzdem war das ganze ein Versuch wert und ich sage jetzt auch nicht, wie lange ich gebraucht habe, und wie langwierig der Weg zum Ziel war. Wichtig ist im nachhinein ja nur, dass es funktioniert. Also lasst uns beginnen:
Bevor es an das kompieleren geht, muss man sich die benötigten Dateien besorgen. Da wäre als erstes natürlich Epic5. Als nächstes brauchen wir noch Termcap.
Damit hätten wir soweit eigentlich alles, was man braucht. Na ja, fast jedenfalls. Bei mir ließ sich Epic5 so nicht kompilieren. Doch fangen wir am Anfang an. Termcap ließ sich problemlos kompielieren. Wer unter Linux schon mal ein Programm kompiliert hat, wird keine Probleme haben. Da ich das ganze jedoch nicht im System installieren wollte, habe ich einfach alle kompilierten Dateien in das Source-Verzeichnis von Epic5 kopiert. Damit Epic5 diese noch erkennt, muss das passende Makefile um die Dateien ergänzt werden. Interessant ist hier nur die Reihenfolge, da tparam.o vor termcap.o stehen muss.
Nun kommt aber der interessante Teil. Wir kompiliert man Epic5? Ich habe es ganz naiv probiert: Ich habe das Konfig-Script aufgerufen, und die Parameter an meine Bedürfnisse angepasst. Dieses bedeutet, dass ich IPv6 und Ruby Unterstützung gewählt, und Perl abgewählt habe. Damit Epic5 auch noch Termcap nutzt, musste ebenfalls das passende Option gesetzt werden.
Das Kompilieren wurde dann jedoch mit einem Fehler in term.c abgerbochen. Es gäbe wohl conficting types. Dieser Fehler ließ sich zwar relativ einfach beheben, indem in der Datei include/defs.h das Define HAVE_TPARM gesetzt wurde.
Leider brachte das wieder einen neuen Fehler zu Tage. Jetzt meckert er nämlich unter anderem, dass die Funktion tparm nicht existiert. Ich habe eine Ewigkeit gebraucht, um das Problem zu lösen. Ich habe mich dann mit Hilfe von Koders bei icecap bedient. In deren Source gibt es eine tparm.c-Datei. Diese habe ich einfach in das Source-Verzeichnis kopiert und anschließend das Makefile erneut angepasst, um die Datei tparm.o vor tparam.o zu linken. Und schon lief das kompilieren durch!
Das letzte Problem war nun, dass Termcap mein Terminal xterm nicht erkannt hat. Ich habe mich dann schnell in einer Screen-Session versteckt, und endlich funktionierte Epic5.
Hallo, ich bin Sebastian!