make, ein Tool, das zum Zusammenbauen von Software aus verschiedenen Dateien genutzt wird, steht unter Windows standardmäßig nicht zur Verfügung. Stattdessen gibt es von Microsoft das kostenlose Tool nmake, das im Wesentlichen wie make funktioniert.
Achtung: nmake ist nur ein make-Programm für Windows und kein C-Compiler. Daher können mit nmake keine XS-Module übersetzt werden. Dazu benötigt man einen C-Compiler.
nmake installieren
Schritt 1: Download
ftp://ftp.microsoft.com/softlib/mslfiles/nmake15.exe
Schritt 2: nmake15.exe auspacken
nmake15.exe ist ein selbstextrahierendes Archiv, welches drei Dateien enthält:
- nmake.exe
- nmake.err
- readme.txt
Schritt 3: nmake Dateien in ein geeignetes Verzeichnis verschieben
Die drei Dateien in das Perl-Bin Verzeichnis verschieben, meist C:\perl\bin\.
Fertig.
CPAN Module installieren
Die übliche Vier-Befehle-Sequenz
perl Makefile.PL make make test make install
wird nun zu
perl Makefile.PL nmake nmake test nmake install
Beispiel
Das gewünschte CPAN Modul downloaden, hier CGI.pm Version 3.42, und mit 7-Zip entpacken, dann in der Windows Eingabe-Aufforderung (cmd.exe) in das Verzeichnis wechseln, in welches das Modul ausgepackt wurde.
C:\Dokumente und Einstellungen\tf\Eigene Dateien\CGI.pm-3.42>perl Makefile.PL Set up gcc environment - 3.4.4 (cygming special, gdc 0.12, using dmd 0.125) Checking if your kit is complete... Looks good Writing Makefile for CGI C:\Dokumente und Einstellungen\tf\Eigene Dateien\CGI.pm-3.42>nmake Microsoft (R) Program Maintenance Utility Version 1.50 Copyright (c) Microsoft Corp 1988-94. All rights reserved. cp CGI/Carp.pm blib\lib\CGI\Carp.pm cp CGI/Push.pm blib\lib\CGI\Push.pm cp CGI/Switch.pm blib\lib\CGI\Switch.pm cp CGI/Fast.pm blib\lib\CGI\Fast.pm cp CGI/Util.pm blib\lib\CGI\Util.pm cp CGI/Apache.pm blib\lib\CGI\Apache.pm cp CGI.pm blib\lib\CGI.pm cp CGI/Pretty.pm blib\lib\CGI\Pretty.pm cp CGI/Cookie.pm blib\lib\CGI\Cookie.pm C:\Dokumente und Einstellungen\tf\Eigene Dateien\CGI.pm-3.42>nmake test Microsoft (R) Program Maintenance Utility Version 1.50 Copyright (c) Microsoft Corp 1988-94. All rights reserved. C:\Perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib\lib', blib\arch')" t/*.t t/apache................ok t/can...................ok t/carp..................ok t/cookie................ok t/fast..................ok 7/7 skipped: various reasons t/form..................ok t/function..............ok 2/32 skipped: various reasons t/html..................ok t/no_tabindex...........ok t/pretty................ok t/push..................ok 1/12 skipped: various reasons t/request...............ok 3/34 skipped: various reasons t/start_end_asterisk....ok t/start_end_end.........ok t/start_end_start.......ok t/switch................ok t/upload................ok t/uploadInfo............ok t/util-58...............ok t/util..................ok All tests successful, 13 subtests skipped. Files=20, Tests=521, 5 wallclock secs ( 0.00 cusr + 0.00 csys = 0.00 CPU) C:\Dokumente und Einstellungen\tf\Eigene Dateien\CGI.pm-3.42>nmake install Microsoft (R) Program Maintenance Utility Version 1.50 Copyright (c) Microsoft Corp 1988-94. All rights reserved. Installing C:\Perl\html\lib\CGI.html Installing C:\Perl\html\lib\CGI\Carp.html Installing C:\Perl\html\lib\CGI\Cookie.html Installing C:\Perl\html\lib\CGI\Fast.html Installing C:\Perl\html\lib\CGI\Pretty.html Installing C:\Perl\html\lib\CGI\Push.html Installing C:\Perl\html\lib\CGI\Util.html Installing C:\Perl\lib\CGI.pm Installing C:\Perl\lib\CGI\Apache.pm Installing C:\Perl\lib\CGI\Carp.pm Installing C:\Perl\lib\CGI\Cookie.pm Installing C:\Perl\lib\CGI\Fast.pm Installing C:\Perl\lib\CGI\Pretty.pm Installing C:\Perl\lib\CGI\Push.pm Installing C:\Perl\lib\CGI\Switch.pm Installing C:\Perl\lib\CGI\Util.pm Appending installation info to C:\Perl\lib/perllocal.pod C:\Dokumente und Einstellungen\tf\Eigene Dateien\CGI.pm-3.42> perl -MCGI -e "print $CGI::VERSION" 3.42
That's it.
Is It Possible To use a few sections of "nmake: Make für Windows - Perl HowTo - Tipps, Tricks und Anleitungen" on my own site, with a link of course ? Thank you for your answer.
That's fine. Go-ahead. Thomas