Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re: nmake, CPAN and Modules not listed in PPM

by blm (Hermit)
on Oct 15, 2002 at 03:19 UTC ( [id://205271]=note: print w/replies, xml ) Need Help??


in reply to nmake, CPAN and Modules not listed in PPM

Are there any examples of computer output/errors that you can post along with the particular module being built and the make utility used?

You wouldn't happen to have tried MINGW? It has a unix-ish Make.exe and a gcc that creates native win32 binaries.

If a module is not in the Activestate PPM (or is it PPD) repository it may be in someone elses that you can have ppm.bat search through.

--blm--

Replies are listed 'Best First'.
Re: Re: nmake, CPAN and Modules not listed in PPM
by Flame (Deacon) on Oct 15, 2002 at 04:09 UTC
    I just did a test using Bundle::CPAN and a downloaded version of nmake... it spat out several lines before freezing looking like this:
    Writing Makefile for Digest::MD5 Microsoft (R) Program Maintenance Utility Version 6.00.8168.0 Copyright (C) Microsoft Corp 1988-1998. All rights reserved. cp MD5.pm blib\lib\Digest\MD5.pm E:\Perl\bin\perl.exe -IE:\Perl\lib -IE:\Perl\lib E:\Perl\lib\E +xtUtils/xs ubpp -typemap E:\Perl\lib\ExtUtils\typemap -typemap typemap MD5.xs > + MD5.c cl -c -nologo -O1 -MD -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT + -DHAVE_DE S_FCRYPT -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DPERL_MSVCRT_REA +DFIX -O1 - MD -DNDEBUG -DVERSION=\"2.20\" -DXS_VERSION=\"2.20\" -IE:\Perl\li +b\CORE MD 5.c NMAKE : fatal error U1081: 'cl' : program not found Stop. C:\WINDOWS\nmake.exe -- NOT OK Running make test Can't test without successful make Running make install make had returned bad status, install seems impossible Compress::Zlib is up to date. Running install for module Archive::Tar Running make for S/SR/SRZ/Archive-Tar-0.22.tar.gz Checksum for \.cpan\sources\authors\id\S\SR\SRZ\Archive-Tar-0.22.tar.g +z ok Archive-Tar-0.22/ Archive-Tar-0.22/ChangeLog Archive-Tar-0.22/Makefile.PL Archive-Tar-0.22/COPYRIGHT Archive-Tar-0.22/test.pl Archive-Tar-0.22/Tar.pm Archive-Tar-0.22/TODO Archive-Tar-0.22/README Archive-Tar-0.22/ptar Archive-Tar-0.22/MANIFEST Removing previously used \.cpan\build\Archive-Tar-0.22\. CPAN.pm: Going to build S/SR/SRZ/Archive-Tar-0.22.tar.gz Checking if your kit is complete... Looks good Writing Makefile for Archive::Tar Microsoft (R) Program Maintenance Utility Version 6.00.8168.0 Copyright (C) Microsoft Corp 1988-1998. All rights reserved. cp Tar.pm blib\lib\Archive\Tar.pm E:\Perl\bin\perl.exe -IE:\Perl\lib -IE:\Perl\lib -MExtUtils::C +ommand -e cp ptar blib\script\ptar E:\Perl\bin\perl.exe -IE:\Perl\lib -IE:\Perl\lib -e "system q +q[pl2bat.b at ].shift" blib\script\ptar


    I aborted it, and got:
    NMAKE : fatal error U1058: terminated by user Stop. Caught SIGINT C:\WINDOWS\nmake.exe -- NOT OK Data::Dumper is up to date. Running install for module Net::Telnet Running make for J/JR/JROGERS/Net-Telnet-3.03.tar.gz Use of uninitialized value in string eq at E:/Perl/lib/CPAN.pm line 43 +35. Use of uninitialized value in string eq at E:/Perl/lib/CPAN.pm line 43 +38. CPAN.pm: Going to build J/JR/JROGERS/Net-Telnet-3.03.tar.gz Use of uninitialized value in chdir at E:/Perl/lib/CPAN.pm line 4355. Use of uninitialized value in concatenation (.) or string at E:/Perl/l +ib/CPAN.p line 4355. Couldn't chdir : No such file or directory at E:/Perl/lib/CPAN.pm line + 5356


    I tried again using XML::SAX, which I heard was 'Pure Perl' to see if it makes a difference, I grabbed output where I could:
    XML-SAX-0.11/XML-SAX-Base/t/03chdriver.t XML-SAX-0.11/XML-SAX-Base/t/10dochdriver.t XML-SAX-0.11/XML-SAX-Base/t/01simpledriver.t XML-SAX-0.11/XML-SAX-Base/t/06lexhdriver.t XML-SAX-0.11/XML-SAX-Base/t/02simplefilter.t XML-SAX-0.11/XML-SAX-Base/t/01exception.t XML-SAX-0.11/XML-SAX-Base/t/14downstreamswitch.t XML-SAX-0.11/XML-SAX-Base/t/13handlerswitch.t XML-SAX-0.11/XML-SAX-Base/t/events.pl XML-SAX-0.11/XML-SAX-Base/t/08errorhdriver.t XML-SAX-0.11/XML-SAX-Base/t/15parentswitch.t XML-SAX-0.11/XML-SAX-Base/t/12sax2multiclass.t XML-SAX-0.11/XML-SAX-Base/t/04chfilter.t XML-SAX-0.11/XML-SAX-Base/t/09resoldriver.t XML-SAX-0.11/XML-SAX-Base/t/00basic.t XML-SAX-0.11/XML-SAX-Base/Changes XML-SAX-0.11/XML-SAX-Base/lib/ XML-SAX-0.11/XML-SAX-Base/lib/XML/ XML-SAX-0.11/XML-SAX-Base/lib/XML/SAX/ XML-SAX-0.11/XML-SAX-Base/lib/XML/SAX/placeholder.pl XML-SAX-0.11/XML-SAX-Base/README XML-SAX-0.11/XML-SAX-Base/Makefile.PL XML-SAX-0.11/t/ XML-SAX-0.11/t/16large.t XML-SAX-0.11/t/14encoding.t XML-SAX-0.11/t/99cleanup.t XML-SAX-0.11/t/20factory.t XML-SAX-0.11/t/12miscstart.t XML-SAX-0.11/t/15element.t XML-SAX-0.11/t/01known.t XML-SAX-0.11/t/11xmldecl2.t XML-SAX-0.11/t/00basic.t XML-SAX-0.11/t/13int_ent.t XML-SAX-0.11/t/10xmldecl1.t XML-SAX-0.11/LICENSE XML-SAX-0.11/SAX.pm XML-SAX-0.11/Makefile.PL XML-SAX-0.11/MANIFEST XML-SAX-0.11/Changes XML-SAX-0.11/README CPAN.pm: Going to build M/MS/MSERGEANT/XML-SAX-0.11.tar.gz Checking if your kit is complete... Looks good Warning: prerequisite XML::NamespaceSupport failed to load: Can't loca +te XML/Nam espaceSupport.pm in @INC (@INC contains: E:/Perl/lib E:/Perl/site/lib +.) at (eva l 5) line 3. Writing Makefile for XML::SAX::Base Do you want XML::SAX to alter ParserDetails.ini? [Y]


    Then
    Writing Makefile for XML::SAX ---- Unsatisfied dependencies detected during [M/MS/MSERGEANT/XML-SAX- +0.11.tar.g z] ----- XML::NamespaceSupport Shall I follow them and prepend them to the queue of modules we are processing right now? [yes]


    And
    Running make test Delayed until after prerequisites Running make install Delayed until after prerequisites Running install for module XML::NamespaceSupport Running make for R/RB/RBERJON/XML-NamespaceSupport-1.08.tar.gz Fetching with LWP: ftp://archive.progeny.com/CPAN/authors/id/R/RB/RBERJON/XML-Namespace +Support-1. 08.tar.gz Fetching with LWP: ftp://archive.progeny.com/CPAN/authors/id/R/RB/RBERJON/CHECKSUMS Checksum for \.cpan\sources\authors\id\R\RB\RBERJON\XML-NamespaceSuppo +rt-1.08.ta r.gz ok XML-NamespaceSupport-1.08/ XML-NamespaceSupport-1.08/MANIFEST XML-NamespaceSupport-1.08/t/ XML-NamespaceSupport-1.08/t/00base.t XML-NamespaceSupport-1.08/Changes XML-NamespaceSupport-1.08/NamespaceSupport.pm XML-NamespaceSupport-1.08/README XML-NamespaceSupport-1.08/Makefile.PL CPAN.pm: Going to build R/RB/RBERJON/XML-NamespaceSupport-1.08.tar.g +z Checking if your kit is complete... Looks good Writing Makefile for XML::NamespaceSupport Microsoft (R) Program Maintenance Utility Version 6.00.8168.0 Copyright (C) Microsoft Corp 1988-1998. All rights reserved. cp NamespaceSupport.pm blib\lib\XML\NamespaceSupport.pm C:\WINDOWS\nmake.exe -- OK Running make test Microsoft (R) Program Maintenance Utility Version 6.00.8168.0 Copyright (C) Microsoft Corp 1988-1998. All rights reserved. E:\Perl\bin\perl.exe -Mblib -IE:\Perl\lib -IE:\Perl\lib -e "us +e Test::Ha rness qw(&runtests $verbose); $verbose=0; runtests @ARGV;" t\00base.t Using C:/.cpan/build/XML-NamespaceSupport-1.08/blib t\00base............Use of uninitialized value in string eq at C:/.cpa +n/build/XM L-NamespaceSupport-1.08/blib/lib/XML/NamespaceSupport.pm line 96. t\00base............ok All tests successful. Files=1, Tests=46, 0 wallclock secs ( 0.00 cusr + 0.00 csys = 0.00 +CPU) C:\WINDOWS\nmake.exe test -- OK Running make install Microsoft (R) Program Maintenance Utility Version 6.00.8168.0 Copyright (C) Microsoft Corp 1988-1998. All rights reserved. Installing E:\Perl\site\lib\XML\NamespaceSupport.pm Writing E:\Perl\site\lib\auto\XML\NamespaceSupport\.packlist Appending installation info to E:\Perl\lib/perllocal.pod C:\WINDOWS\nmake.exe install -- OK Running make for M/MS/MSERGEANT/XML-SAX-0.11.tar.gz Is already unwrapped into directory \.cpan\build\XML-SAX-0.11\. CPAN.pm: Going to build M/MS/MSERGEANT/XML-SAX-0.11.tar.gz Microsoft (R) Program Maintenance Utility Version 6.00.8168.0 Copyright (C) Microsoft Corp 1988-1998. All rights reserved. makefile(435) : fatal error U1035: syntax error : expected ':' or '=' +separator Stop. C:\WINDOWS\nmake.exe -- NOT OK Running make test Can't test without successful make Running make install make had returned bad status, install seems impossible


    Unfortunately, I have no idea what just over half of that really means as I rarely work with CPAN (obviously, because it doesn't work...) I hope this helps...



    My code doesn't have bugs, it just develops random features.

    Flame ~ Lead Programmer: GMS | GMS

      Thanks this does help

      In the output from building Bundle::CPAN the build of Digest::MD5 failed because it could not find cl.exe the linking program that comes with Visual Studio. It may also come with what was MASM. MASM seems to have been renamed to Build environment and might need Visual Studio to install it anyway.

      Relevant line:

      NMAKE : fatal error U1081: 'cl' : program not found Stop.

      With XML::Sax it seemed to fail as a dependancy was unsatisfied. It seems to need XML::NamespaceSupport which you attempted to build next. (Good!). Unfortunately the build failed with the following output

      Microsoft (R) Program Maintenance Utility Version 6.00.8168.0 Copyright (C) Microsoft Corp 1988-1998. All rights reserved. makefile(435) : fatal error U1035: syntax error : expected ':' or '=' +separator Stop
      indicating a syntax error in the makefile. Possibily the module assumes a GNU or UNIX-like Make binary. This banner indicates nmake.exe is being used. If I remember correctly it has differences in its makefile syntax :-(

      IMHO there is no simple answer to these problems. The Bundle::CPAN found you were running windows and adjusted accordingly but needed a cl.exe linker to link binary objects. Can you get Visual Studio or do you already have it? I am not sure what is best to fix the other problem. You have tried various make utilities. I will try installing these on my development machine and see what I can do: make some helpful instructions or a binary package.

      All of this may come down to the fact that on windows one doesn't get the compiler included with the OS. This is why I try to use linux or something similar _where possible_

      Updated: Reread root node. You do have Visual Studio 6! Cool! Make sure that the dos environment variables are registered so it can find the cl.exe etal in the path and the .lib files. There would have been an option to register these variables at installation of VS 6. If this was not done there may be a batch file you can run to do this.

      --blm--
      NMAKE : fatal error U1081: 'cl' : program not found
      This tells you that the program cl.exe is not found in PATH. cl.exe is somewhere in the paths of VisualC++. If you add the path where you find it to your PATH-Environmentvariable, this error will probably not occur any more... Write something like the following at the end of your autoexec.bat (and then reboot):
      SET PATH=%PATH%;c:\my\path\to\MsVisualC++\Bin

      Best regards,
      perl -e "s>>*F>e=>y)\*martinF)stronat)=>print,print v8.8.8.32.11.32"

        I just tried adding that to the path, and now it's complaining of a missing dll: MSPDB60.DLL (cl is complaining that is... I can't run it manualy or under CPAN)

        Edit: I fixed the missing DLL problem, but now I try install Bundle::CPAN and it switches to a text prompt (blank line, I just type and see text, does'nt seem to do anything with the text)
        E:\Perl\bin\perl.exe -IE:\Perl\lib -IE:\Perl\lib -e "system qq[pl2bat +.b at ].shift" blib\script\cpan




        My code doesn't have bugs, it just develops random features.

        Flame ~ Lead Programmer: GMS | GMS

      I have just tried installing XML::SAX using the CPAN shell and it worked for me.

      I don't have a C compiler installed, and wonder if the fact that you do might be your problem. Here's the version information from my copy of nmake:

      P:\grantm>nmake -? Microsoft (R) Program Maintenance Utility Version 1.50 Copyright (c) Microsoft Corp 1988-94. All rights reserved. Usage: NMAKE @commandfile NMAKE [options] [/f makefile] [/x stderrfile] [macrodefs] [tar +gets] Options: /A Build all evaluated targets /B Build if time stamps are equ +al /C Suppress output messages /D Display build information /E Override env-var macros /HELP Display brief usage messa +ge /I Ignore exit codes from commands /K Build unrelated targets on e +rror /N Display commands but do not execute /NOLOGO Suppress copyright mess +age /P Display NMAKE information /Q Check time stamps but do not + build /R Ignore predefined rules/macros /S Suppress executed-commands d +isplay /T Change time stamps but do not build /? Display brief usage message

      If your version is newer, that may be contributing to the makefile syntax error message you're getting. I got my older version via the link in the Perl-XML FAQ (above).

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://205271]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others lurking in the Monastery: (5)
As of 2024-03-28 08:45 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found