NAME ^

README.win32 - Parrot under Windows

SYNOPSIS ^

These are instructions for building the "native" port of Parrot under Windows 2000/XP on the Intel x86 architecture.

DESCRIPTION ^

Win32 "native" ports require no additional software to run but the operating system. There should be other READMEs for (emulation) systems that run on Win32, eg Cygwin.

Native compilers include:

       Borland C++ (bcc)                version xxx or later
       Microsoft Visual C++ (cl)        version 13.10.3077 or later
       MinGW32 with GCC (gcc)           version 3.4.2 or later
       Intel C++ (icl)                  version 8.0.48 works

Setting Up Parrot ^

Make

You need "nmake" to build Parrot under Windows with Microsoft compilers. It should be available via Microsoft Visual Studio .NET 2003 or the Microsoft .NET Framework SDK 1.1. Download the latter from the Microsoft .NET Framework Homepage http://msdn.microsoft.com/netframework/.

Note: Parrot will not build using nmake v1.5 from the MS web site. Download one of the above toolkits to obtain a later version, either v7 or v8.

MinGW works with its GNU "make" (v 3.80) port and its name is 'mingw32-make.exe'. If you also have the Minimal SYStem (MSYS) installed, you will need to remove the Msys/bin folder from your PATH environment variable before calling "perl Configure.pl" and mingw32-make. Perl detects and calls /bin/sh.exe, if found, whenever shelling a new process. sh.exe causes problems for mingw32-make.exe because of its inability to handle Windows pathnames with backslashes. You must run "perl Configure.pl" and mingw32-make from a dosbox; running those commands from an MSYS shell window will experience the same backslash path problems.

Command Shell

The surest way to build it is on Windows NT/2000/XP, using the cmd shell.

ICU

Parrot no longer comes with its own ICU, thus you need to install it on your system if you want to use it. Note that ICU is now optional, you can build Parrot without it, by not installing it or asking Parrot to ignore it (--without-icu).

If you want to use ICU, download it from http://icu.sourceforge.net/download/.

If you want to use precompiled binaries, do the following. Download the package matching your compiler, unpack it (say, into C:\usr\lib), add the bin directory to PATH, and tell Configure.pl to use it.

    mkdir C:\usr\lib
    unzip icu4c-3_6-Win32-msvc7_1.zip -d C:\usr\lib
    mkdir C:\usr\lib\data
    set PATH=%PATH%;C:\usr\lib\icu\bin
    cd <parrot directory>
    perl Configure.pl
        --icushared="C:\usr\lib\icu\lib\icudt.lib C:\usr\lib\icu\lib\icuuc.lib"
        --icuheaders="C:\usr\lib\icu\include"
        --icudatadir="C:\usr\local\icu\data"
Note the step of creating the C:\usr\lib\data directory, as Parrot really wants it and the binary packages don't contain it. It doesn't need to contain anything though, as the data is pulled in from lib/icudt.lib, which contains the standard data in binary form.

Optional libraries

The availability of these libraries is checked by Configure.pl.

gdbm - GNU database manager http://gnuwin32.sourceforge.net/

GMP - GNU multiple precision arithmetic library http://developer.berlios.de/projects/win32gmp/

pcre - Perl-Compatible Regular Expression library http://gnuwin32.sourceforge.net/

readline - edit command lines http://gnuwin32.sourceforge.net/

Optional utilities

The availability of these utilities is checked by Configure.pl or by some test.

antlr - ANother Tool for Language Recognition http://www.antlr.org/

bc - arbitrary-precision arithmetic language and calculator http://gnuwin32.sourceforge.net/

m4 - macro language processor http://gnuwin32.sourceforge.net/

Python - an interpreted, interactive, object-oriented programming language http://www.python.org/

SVN::Client - Perl wrapper of Subversion client functions http://subversion.tigris.org/ (svn-win32-1.4.x_pl.zip)

Inno Setup

Inno Setup is a free installer for Windows programs.

The latest release of Inno Setup at the time of writing is 5.1.11.

The HomePage is on http://www.jrsoftware.org/.

Add the directory to PATH.

    set PATH=%PATH%;C:\Program Files\Inno Setup 5
Borland C++

XXX

Microsoft Visual C++

Since mid April 2004, Visual C++ comes in two flavors. Microsoft Visual Studio .NET 2003 (http://msdn.microsoft.com/visualc/), which includes the full blown IDE, and Microsoft Visual C++ Toolkit 2003 (http://msdn.microsoft.com/visualc/vctoolkit2003/), which is a free (but unsupported) package, containing only the basic compiler and linker stuff.

If you use the Toolkit, be sure to follow the directions for setting up your build environment that come with the perl distributions. (README.win32 in the latest perl distribution.) You may have to substitute "Microsoft Platform SDK" wherever "Microsoft SDK" is listed, depending on the your install. You can ignore the entries regarding "win32/config.vc", but be sure to create the "link.bat" batch file. Copy the missing files mentioned, run the Toolkit Command Prompt, set the appropriate env vars, and you should be fine. (For env vars, you can update them under My Computer-> properties so they are available whenever you open a shell.)

Note: It is possible to use ActiveState Perl with the Toolkit: you don't have to compile your own perl.

MinGW32 with GCC

The latest release of MinGW package at the time of writing is 4.1.1, which contains gcc-3.4.2. It can be downloaded here: http://prdownloads.sf.net/mingw/MinGW-4.1.1.exe

The HomePage is on http://www.mingw.org/.

With the ActiveState Perl distribution or PXPerl distribution, tell Configure.pl to use gcc :

    perl Configure.pl
         --cc=gcc
         --icushared="C:\usr\lib\icu\lib\icudt.lib C:\usr\lib\icu\lib\icuuc.lib"
         --icuheaders="C:\usr\lib\icu\include"
         --icudatadir="C:\usr\local\icu\data"
or
    perl Configure.pl --cc=gcc --without-icu
Intel C++

XXX

Building ^

    $MAKE

Testing ^

    $MAKE test

Installation ^

    $MAKE install

Installer ^

    $MAKE win32-inno-installer

This command creates a setup-parrot-x.y.z.exe that contains all parrot install directories.

Usage Hints ^

    XXX

BUGS AND CAVEATS ^

Features

Threads, Events, and Signals are missing.

ACKNOWLEDGEMENTS ^

XXX

AUTHORS ^

Ron Blaschke <ron@rblasch.org>

François Perrad <francois.perrad@gadz.org>

This document is maintained by The Parrot Developers (<parrot-porters@perl.org>).

SEE ALSO ^

    L<parrot>

HISTORY ^

This document borrows heavily from Perl's README.win32.

GCC/mingw32 support was added in 0.1.2 (François Perrad).

Last updated: 15 March 2007


parrot