> On Tue, 18 Nov 2003, Juergen Boemmels wrote:
>
> > Pete Lomax <[EMAIL PROTECTED]> writes:
> >
> > > Hi,
> > > I've only just installed perl. Running Configure.pl on a windows box,
> > > I got 'bad command or file name' because line 12 of
> > > config\init\hints.pl is:
> > >   my $hints = "config/init/hints/" . lc($^O) . ".pl";
> > > I had to change it to:
> > >   my $hints = "perl config/init/hints/" . lc($^O) . ".pl";
> > >
> > > I'll carry on editing lines by hand, just though I should mention it.
> >
> > This is very strange. Last time I tested it Configure.pl runs under
> > windows without any changes.
>
> And for me as well, though it's been a little while.
It's working fine for me also.

> FWIW, with these changes rather than using the literal "perl" use $^X
> instead. That picks up the perl being used rather than whatever comes
> first in the search path, which may not be the perl being used for
> configure.
Pete sent me some further info off list, here's what happens when he runs
Configure:-

========

Parrot Version 0.0.13 Configure 2.0
Copyright (C) 2001-2003 The Perl Foundation.  All Rights Reserved.

Hello, I'm Configure.  My job is to poke and prod your system to figure out
how to build Parrot.  The process is completely automated, unless you passed
in
the `--ask' flag on the command line, in which case it'll prompt you for a
few
pieces of info.

Since you're running this script, you obviously have Perl 5--I'll be pulling
some defaults from its configuration.

Checking MANIFEST...done.
Setting up Configure's data structures...done.
Checking for --miniparrot...done.
Loading platform and local hints files...[
config/init/hints/mswin32.pl ]done.
Enabling optimization...(none requested) done.
Determinig nongenerated header files...done.
Determining what C compiler and linker to use...

    Okay, I'm going to start by asking you a couple questions about your
    compiler and linker.  Default values are in square brackets; you can
    hit ENTER to accept them.  If you don't understand a question, the
    default will usually work--they've been intuited from your Perl 5
    configuration.

Bad command or file name
What C compiler do you want to use? [cl] gcc
How about your linker? [] gcc
What program do you want to use to build shared libraries? [] gcc
What flags should your C compiler receive?
[-nologo -O1 -MD -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT ]
And your linker? [-nologo -nodefaultlib -release    -machine:x86]
And your gcc for building shared libraries? [-nologo]
What libraries should your C compiler use? [oldnames.lib kernel32.lib
user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib
ole32.lib oleaut32.lib netapi32.lib uuid.lib wsock32.lib mpr.lib winmm.lib
version.lib odbc32.lib odbccp32.lib msvcrt.lib]
Do you want a debugging build of Parrot? [y]
Do you have a lexical analyzer generator, like flex or lex? [echo]
Do you have a parser generator, like bison or yacc? [echo]
Determining what types Parrot should use...
<big snip>
gcc.exe: unrecognized option `-nologo'
gcc.exe: unrecognized option `-nodefaultlib'
gcc.exe: unrecognized option `-release'
gcc.exe: unrecognized option `-Fetest.exe'
gcc.exe: no input files
Bad command or file name
gcc.exe: unrecognized option `-nologo'
test.c: In function `main':
test.c:15: warning: left shift count >= width of type
gcc.exe: test.obj: No such file or directory (ENOENT)
gcc.exe: oldnames.lib: No such file or directory (ENOENT)
gcc.exe: kernel32.lib: No such file or directory (ENOENT)
gcc.exe: user32.lib: No such file or directory (ENOENT)
gcc.exe: gdi32.lib: No such file or directory (ENOENT)
gcc.exe: winspool.l: No such file or directory (ENOENT)
gcc.exe: unrecognized option `-nologo'
gcc.exe: unrecognized option `-nodefaultlib'
gcc.exe: unrecognized option `-release'
gcc.exe: unrecognized option `-Fetest.exe'
gcc.exe: no input files
Bad command or file name
Can't run the byteorder testing program: No such file or directory at
config/aut
o/byteorder.pl line 13.
========

The Bad command or filename error is referring to the compiler, rather than
Perl.  He is attempting to compile with gcc, but Configure detects his
compiler as cl, probably because that's what it gets from Perl's Configure
module.  This is a real issue on Win32, given that people usually use
binaries and rarely compile stuff.  So there's a decent chance the compiler
used to compile Perl won't be the same as the one they wish to use to
compile Parrot.

Of course, when Parrot is "officially" released, I have no doubt that
various people and organisations will do binary builds for Win32 users, so
in the long run it won't be an issue for the average Windows user.

Things don't work out because the compiler and linker flags are incorrect
for gcc - again, they are pulled from Perl5's config.  Unfortunately, I'm
not sure what they should be, though someone else may know.

Pete:  I'm guessing you want to compile parrot for yourself.  But if you
just want a working Win32 parrot, then you can get a reasonably up to date
binary build from http://www.jwcs.net/developers/perl/pow/ - latest one is 3
days old.

Jonathan


Reply via email to