Build instructions from pschwartau@netscape.com as of 2 Dec 2001 ...
Updated - rogerl@netscape.com 10 Jan 2002

Building JS2 on WINNT:
---------------------------------------------------------------------------------------------
[/d/JS_2] cvs -z3 co mozilla/js2
          cvs -z3 co mozilla/js/src/fdlibm

Compiling in Visual C++:

Workspace:    D:\JS_2\mozilla\js2\src\winbuild\dikdik.dsw

Project Files:   D:\JS_2\mozilla\js2\src\winbuild\DikDik.dsp
                 D:\JS_2\mozilla\js2\tests\cpp\winbuild\DikDik_shell.dsp  <---------- active project
                 D:\JS_2\mozilla\js2\src\winbuild\fdlibm.dsp


RUNNING THE JS2 SHELL AFTER YOU'VE BUILT IT:
(Note the 3 underbars between "shell" and "Win32" in "DikDik_shell___Win32_Debug")
cd  (path to)/mozilla/js2/tests/cpp/winbuild/DikDik_shell___Win32_Debug
[(path to)/mozilla/js2/tests/cpp/winbuild/DikDik_shell___Win32_Debug] ./DikDik_shell.exe

[XXX I'm not getting these directories - for me it builds into 'Debug' folder]


Building JS2 on LINUX:
---------------------------------------------------------------------------------------------
[/d/JS_2] cvs -z3 co mozilla/js2
          cvs -z3 co mozilla/js/src/fdlibm

[/d/JS_2] cd mozilla/js2

[/d/JS_2/mozilla/js2] automake    <--- FIRST TIME ONLY
[/d/JS_2/mozilla/js2] autoconf      <--- FIRST TIME ONLY
[/d/JS_2/mozilla/js2] ./configure --enable-debug     <--- FIRST TIME ONLY
[/d/JS_2/mozilla/js2] make


RUNNING THE JS2 SHELL AFTER YOU'VE BUILT IT:
cd   (path to)/mozilla/js2/tests/cpp
[ (path to)/mozilla/js2/tests/cpp] ./dikdik



Building JS2 on MAC 9.1
---------------------------------------------------------------------------------------------
Get updated CodeWarrior Pro 7 tools !

Open (path to):mozilla:js2:tests:cpp:macbuild:js2_shell.mcp and build it.
There is also (path to ):mozilla:js2:tests:cpp:macbuild:parser_test.mcp, if you just want to try out the full parser
without getting complaints about unimplemented features from the back end.


RUNNING THE JS2 SHELL AFTER YOU'VE BUILT IT:
cd   (path to):mozilla:js2:tests:cpp:macbuild
[ (path to):mozilla:js2:tests:cpp:macbuild] ./js2_shell


---------------------------------------------------------------------------------------------


Files:

bytecodegen.[cpp|h]
    - Walks parse tree, emit byte code.

collector.[cpp|h]
    - GC

exception.[cpp|h]
    - exception object thrown internally

fdlibm_ns.cpp
    - wraps fdlibm in a namespace

formatter.cpp formatter.h
    - "Formatter" class, iostream like wrapper around stdio.

hash.cpp hash.h
    - a hash

js2execution.[cpp|h]
    - interpreter loop & runtime support routines

js2runtime.[cpp|h]
    - pre-bytecode passes over parse tree, build JSType objects

jsarray.[cpp|h]
jsdate.[cpp|h]
jsmath.[cpp|h]
jsstring.[cpp|h]
    - implementations of ECMAScript built-ins

lexer.cpp lexer.h
    - main lexer.

mem.cpp mem.h
    - zone, arena, and pool classes for memory management.

numerics.cpp numerics.h
    - numbers and stuff.

parser.cpp parser.h
    - main parser source.
        tables in parser.h: 
        enum ExprNode::Kind; types of expressions
        enum StmtNode::Kind; types of statements

prmjtime.[cpp|h]
    - [Mac only?] OS interface routines for jsdate

reader.cpp reader.h
    - "Reader" class, feeds source to the parser/lexer.

regexpwrapper.cpp
    - cpp front to regexp engine in regexp/regexp.[ch]

stlcfg.h
    - stupid stl tricks

strings.[cpp|h]
    - unicode string support

systemtypes.h
    - basic typedefs.

token.cpp token.h
    - token class.

utilities.cpp utilities.h
    - random things.

world.cpp world.h
    - the whole world.