Nicholas Clark: # On Thu, Sep 05, 2002 at 07:03:00AM -0400, Dan Sugalski wrote: # > 4) The *only* tools you will need to build parrot are a C compiler # > environment and either a make tool or a shell # # I believe we may be able to get away without a make tool or a shell.
The final build system has been speced out for a while. It involves three components: a) a bunch of platform-specific shell scripts (or whatever) b) a miniparrot that can run with *very* minimal config info c) a bunch of byte-compiled programs Basically, you run your platform's shell script. I use the term "shell script" loosely--on Win32 it'll be a batch file, and on VMS it'll be in DCL. You get the idea. Your platform's shell script drives the C compiler (which it may ask you for path information on) to build miniparrot. Miniparrot can run more or less with ANSI C only--no platform specific bits. The bytecode swapper will have to do its tests at runtime. Miniparrot's job is to ask the configuration questions or probe the environment for them, generate any files that need to be generated (config.h, has_header.h...), and drive the C compiler to build the final Parrot. (I also have a neat idea that we probe for Perl 5 and copy stuff from Config.pm if it's there (or any other language with a similar repository of build information)). So, building Parrot ought to look something like this (for a Windows user): c:\parrot> cd build c:\parrot\build> win32 Are you using MS VC++? [yn] y <compiler crap cut out> Miniparrot build complete. Enter 'miniparrot build.pbc' to continue. c:\parrot\build> miniparrot build.pbc Parrot version 1.0 Build 1.0 Copyright (C) 2002 Yet Another Society Hello, I'm Build. My job is to poke and prod your system to figure out how to build Parrot, then build it for you. The process is mostly automated--after the first couple questions, I can finish on my own--unless you've passed the '--ask' command-line flag, in which case I'll ask you about pretty much everything. Preparing my internal data structures...done. Figuring out what kind of system I'm on... Win32? This could be a bit tricky. done. Probing for C toolkit... I've found VC++ and GCC. Which of these toolkits should I use? [VC++] OK, I'll use the Microsoft tools. Blech. done. Probing for languages with configuration info... You have Perl 5! Sweet! Should I take configuration info from it? [y] OK, I'll use some info from Perl 5. You have Python! Sweet! Should I take configuration info from it? [y] OK, I'll use some info from Python. done. Probing for data type sizes...done. <etc> Okay, I've finished the configuration stuff. I will now start building Parrot for you. <compiler crap cut out> Okay, Parrot is built. To test Parrot, type 'miniparrot build.pbc test' at a command prompt; to install it, type 'miniparrot build.pbc install'. c:\parrot\build> --Brent Dax <[EMAIL PROTECTED]> @roles=map {"Parrot $_"} qw(embedding regexen Configure) "In other words, it's the 'Blow up this Entire Planet and Possibly One or Two Others We Noticed on our Way Out Here' operator." --Damian Conway