Makefile fuer eigene perl-Module
Moin, Ich habe jetzt das halbe Web auf den Kopf gestellt und bin inzwischen verwirrter als vorher. Ich brauch glaubich mal ein paar Links/Tips/... um wieder auf die Spur zu kommen. In die perl-interne Doku habe ich reichlich geguckt und finde mich nicht zurecht. Bezüglich dieses Problems. Mein Problem: Ich habe ein perl-Script. Diese perl-script nutzt ein selbstgeschriebenes Modul. Dieses Modul befindet in einem Unterordner. Verzeichnisstruktur: - meinscript.pl + Meinmodul Zubehoer.pm In meinem perlscript steht: use Meinmodul::Zubehoer; Da "./" in @INC ist, funktioniert das prima - aus diesem Ordner. So, jetzt will ich den Kram publizieren. Dazu wäre es sinnvoll, daß mein Modul in einen der "richtigen" Modulpfade kopiert wird. Da könnte ich was stricken, aber ich möchte es gern ordentlich sauber haben, mit einem Makefile und so. Bei der Gelegenheit soll "meinscript.pl" auch im Pfad für die bash landen. So wie es jetzt ist, funktioniert das alles ja nur aus meinem Ordner. Ich finde riesige Anleitungen, die drei Jahre alt sind und nicht mehr funktioniern, C-Header deklarieren und 55 KB Erklärungstexttext brauchen, um "Hello, World" zu exportieren. Ich finde Tools, die mir leere Makefiles erstellen. Und ich finde (für mich zu komplizierte) Anleitungen, wie man seinen Kram auf CPAN unterbringt. Das alles erschlägt mich gerade komplett. Hilfe. :-) Also, die Kurzfassung: Wie komme ich zu einem Makefile, das mein Script nach /usr/local/bin (oder so) kopiert, mein Modul nach $INC[0] (oder so) und für das ich nicht einen Doktor in Linuxologie machen muß? Es dreht sich übrigens um die Fontlinge unter http://www.gesindel.de Danke, Ratti
Hallo, On Sun, 08 Sep 2002, Joerg Rossdeutscher wrote:
Also, die Kurzfassung: Wie komme ich zu einem Makefile, das mein Script nach /usr/local/bin (oder so) kopiert, mein Modul nach $INC[0] (oder so) und für das ich nicht einen Doktor in Linuxologie machen muß?
perldoc ExtUtils::MakeMaker Beispiele findest du in praktisch jedem Modul von CPAN. z.B: ==== Makefile.PL ==== require 5.005; use ExtUtils::MakeMaker; WriteMakefile( 'NAME' => 'fontlinge', 'VERSION_FROM' => 'Zubehoer.pm', # finds $VERSION 'EXE_FILES' => ['fontlinge.pl'] ); ==== $ perl Makefile.PL $ make $ make test $ make install -dnh -- 23: Codefreeze Linux Kernel Patch v1.3, patch-1.3.94 (00/55) (Kristian Köhntopp)
On Sun, 08 Sep 2002 at 20:06 (+0200), Ratti wrote:
use Meinmodul::Zubehoer;
Da "./" in @INC ist, funktioniert das prima - aus diesem Ordner.
So, jetzt will ich den Kram publizieren.
Dazu wäre es sinnvoll, daß mein Modul in einen der "richtigen" Modulpfade kopiert wird. Da könnte ich was stricken, aber ich möchte es gern ordentlich sauber haben, mit einem Makefile und so. Bei der Gelegenheit soll "meinscript.pl" auch im Pfad für die bash landen. So wie es jetzt ist, funktioniert das alles ja nur aus meinem Ordner.
Üblicherweise erstellt man für ein Perl-Modul ein Makefile.PL, das dann, wenn es aufgerufen wird, das eigentliche Makefile erstellt. So geschieht dies bei ganz normalen CPAN-Modulen und so sollte man es auch bei eigenen Perl-Modulen machen, wenn man sie publiziert. Es gibt verschieden Möglichkeiten, wie dieses Makefile.PL auszusehen hat. Bevor ich jetzt was aus dem Buch abschreibe: Das Ganze wird in "Programmieren in Perl" in Kap. 22, "CPAN-Module erzeugen" genau beschrieben. Wenn Du das Buch nicht hast, würde ich vorschlagen, dass ich Dir die 4 Seiten (mehr sind es nicht!) einscanne und per PM zuschicke. Bei Interesse also --> PM. Gruß, Bernhard -- _________ http://www.bwalle.de _________________________________________________ Kein kluger Mann widerspricht seiner Frau. Er wartet, bis sie es selbst tut. -- Humphrey Bogart
Moin,
* Bernhard Walle
Das Ganze wird in "Programmieren in Perl" in Kap. 22, "CPAN-Module erzeugen" genau beschrieben. Wenn Du das Buch nicht hast, würde ich vorschlagen, dass ich Dir die 4 Seiten (mehr sind es nicht!) einscanne und per PM zuschicke. Bei Interesse also --> PM.
Wenn Du das Buch nicht hast, würde ich dringend dessen Anschaffung empfehlen. Sehr viel besser als die zweite Auflage und jetzt wirklich das Lob wert, das es immer bekommen hat. Thorsten -- Getting a thrill out of some stupid quote is a sign of idiocy. - turmeric
Hallo, Ratti:
use Meinmodul::Zubehoer;
Bernhard Walle:
Üblicherweise erstellt man für ein Perl-Modul ein Makefile.PL, das
Das Ganze wird in "Programmieren in Perl" in Kap. 22, "CPAN-Module erzeugen" genau beschrieben. Wenn Du das Buch nicht hast, würde ich vorschlagen, dass ich Dir die 4 Seiten (mehr sind es nicht!) einscanne und per PM zuschicke. Bei Interesse also --> PM.
Uaaah! Gepresstes Holz. Buch! Ich Dödel. Ich bin derartig fixiert auf Google, daß ich ganz vergessen habe, meinem Chef das "Perl-Kochbuch" aus dem Kreuz geleiert zu haben. Ein ganzes Kapitel Perl-Modulerstellung für Doofe. Steht alles drin, funktioniert, geht, Klasse. Mein erstes Makefile - darauf 'n Astra. Vielen Dank! Danke! Danke! So, und zur Strafe tipps ich hier mal ein, wie es geht. Für's Archiv. Google hat erschreckend garnix hergegeben. Ich war ja auch schon auf das Programm h2xs gestoßen und bin über zwei Dinge gestolpert: 1. In der Doku ist ständig die Rede davon, daß man damit Perl-Erweiterungen in C einpacken könnte. Das stimmt auch, aber soweit muß man gar nicht gehen. Es taugt auch für "normale" Module. 2. Ich habe immer h2xs eingegeben, schön mit Parametern und dem Namen meines Moduls und habe mich darüber gewundert, daß ich immer nur eine Art "Skelett" finde: Da werden zwar Dateien erzeugt, aber meinen Kram scheint er nicht gefunden zu haben. Lösung: Ein Verständnisfehler. h2xs bearbeitet nicht meine Module und erstellt daraus "etwas distributierbares". Falsch. h2xs erstellt absichtlich ein leeres Skelett von Dateien, in die man dann seinen eigenen Code einfügen kann. In meinem Beispiel: Das neu erzeugte "Zubehoer.pm" im Editor öffnen und den Code des bereits existierenden "echten" Zubehoer.pm reinkopieren. Im Detail: h2xs -XA -n Meinmodul::Zubehoer Dann Meinmodul/Zubehoer/Zubehoer.pm öffnen und den Code aus dem Modul reinkopieren. Exportvariablen anpassen. perl Makefile.PL make dist Feddich. Jetzt noch testweise selbst instalieren, make, su, make install. Gruß, Ratti -- http://www.gesindel.de - Fontlinge - Die Fontverwaltung fuer Linux Fontmanagement for Linux
participants (4)
-
Bernhard Walle
-
David Haller
-
Joerg Rossdeutscher
-
Thorsten Haude