Hex Artifact Content

Artifact 5a6793746c23f5f39fa280da29722fc6aa2e790a:


0000: 23 20 42 75 69 6c 64 69 6e 67 0a 0a 2d 2d 2d 2d  # Building..----
0010: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0020: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0030: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0040: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0050: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 2a 2a 2a 50  ----------..***P
0060: 61 74 69 65 6e 63 65 20 69 73 20 72 65 71 75 69  atience is requi
0070: 72 65 64 3a 2a 2a 2a 0a 2a 2a 2a 43 75 72 72 65  red:***.***Curre
0080: 6e 74 6c 79 20 53 71 75 69 72 72 65 6c 4a 4d 45  ntly SquirrelJME
0090: 20 69 73 20 69 6e 20 61 63 74 69 76 65 20 64 65   is in active de
00a0: 76 65 6c 6f 70 6d 65 6e 74 20 61 6e 64 20 61 6c  velopment and al
00b0: 74 68 6f 75 67 68 20 69 74 20 63 61 6e 2a 2a 2a  though it can***
00c0: 0a 2a 2a 2a 72 75 6e 20 61 6e 64 20 70 72 6f 64  .***run and prod
00d0: 75 63 65 20 62 69 6e 61 72 69 65 73 2c 20 74 68  uce binaries, th
00e0: 65 72 65 20 61 72 65 20 6c 69 6d 69 74 61 74 69  ere are limitati
00f0: 6f 6e 73 20 74 6f 20 63 6f 6e 73 69 64 65 72 2e  ons to consider.
0100: 2a 2a 2a 0a 2a 2a 2a 43 75 72 72 65 6e 74 6c 79  ***.***Currently
0110: 20 6f 6e 6c 79 20 61 20 6c 69 6d 69 74 65 64 20   only a limited 
0120: 73 65 74 20 6f 66 20 70 72 6f 67 72 61 6d 73 20  set of programs 
0130: 6d 61 79 20 62 65 20 72 61 6e 20 6f 6e 20 53 71  may be ran on Sq
0140: 75 69 72 72 65 6c 4a 4d 45 2e 2a 2a 2a 0a 0a 2d  uirrelJME.***..-
0150: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0160: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0170: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0180: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0190: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 53  -------------..S
01a0: 71 75 69 72 72 65 6c 4a 4d 45 20 72 65 71 75 69  quirrelJME requi
01b0: 72 65 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e  res the followin
01c0: 67 20 62 65 66 6f 72 65 20 69 74 20 63 61 6e 20  g before it can 
01d0: 62 65 20 62 75 69 6c 74 3a 0a 0a 20 2a 20 4a 61  be built:.. * Ja
01e0: 76 61 20 37 20 6f 72 20 6e 65 77 65 72 20 56 69  va 7 or newer Vi
01f0: 72 74 75 61 6c 20 4d 61 63 68 69 6e 65 0a 20 2a  rtual Machine. *
0200: 20 4a 61 76 61 20 37 20 6f 72 20 6e 65 77 65 72   Java 7 or newer
0210: 20 43 6f 6d 70 69 6c 65 72 0a 0a 23 23 20 4e 6f   Compiler..## No
0220: 74 65 73 20 6f 6e 20 52 75 6e 6e 69 6e 67 0a 0a  tes on Running..
0230: 53 71 75 69 72 72 65 6c 4a 4d 45 20 75 73 65 73  SquirrelJME uses
0240: 20 61 20 73 69 6d 70 6c 69 66 69 65 64 20 65 72   a simplified er
0250: 72 6f 72 20 73 79 73 74 65 6d 20 77 68 69 63 68  ror system which
0260: 20 73 74 61 72 74 73 20 77 69 74 68 20 61 20 74   starts with a t
0270: 77 6f 20 63 61 70 69 74 61 6c 0a 6c 65 74 74 65  wo capital.lette
0280: 72 20 70 72 65 66 69 78 20 66 6f 6c 6c 6f 77 65  r prefix followe
0290: 64 20 62 79 20 74 77 6f 20 64 69 67 69 74 73 20  d by two digits 
02a0: 61 6e 64 20 6c 65 74 74 65 72 73 2e 0a 0a 20 2a  and letters... *
02b0: 20 5b 4c 69 73 74 20 6f 66 20 45 72 72 6f 72 20   [List of Error 
02c0: 43 6f 64 65 73 5d 28 68 74 74 70 3a 2f 2f 6d 75  Codes](http://mu
02d0: 6c 74 69 70 68 61 73 69 63 61 70 70 73 2e 6e 65  ltiphasicapps.ne
02e0: 74 2f 75 76 2f 65 72 72 6f 72 73 2e 6d 6b 64 29  t/uv/errors.mkd)
02f0: 0a 0a 23 23 20 49 6e 73 74 61 6c 6c 69 6e 67 20  ..## Installing 
0300: 4a 61 76 61 0a 0a 53 71 75 69 72 72 65 6c 4a 4d  Java..SquirrelJM
0310: 45 20 72 65 71 75 69 72 65 73 20 61 20 4a 61 76  E requires a Jav
0320: 61 20 37 20 76 69 72 74 75 61 6c 20 6d 61 63 68  a 7 virtual mach
0330: 69 6e 65 20 69 6e 20 6f 72 64 65 72 20 74 6f 20  ine in order to 
0340: 62 75 69 6c 64 20 69 74 73 65 6c 66 2e 0a 0a 23  build itself...#
0350: 23 23 20 43 6f 6d 6d 6f 6e 20 4c 69 6e 75 78 20  ## Common Linux 
0360: 44 69 73 74 72 69 62 75 74 69 6f 6e 73 0a 0a 49  Distributions..I
0370: 66 20 79 6f 75 20 75 73 65 20 61 20 63 6f 6d 6d  f you use a comm
0380: 6f 6e 20 61 6e 64 20 70 6f 70 75 6c 61 72 20 4c  on and popular L
0390: 69 6e 75 78 20 64 69 73 74 72 69 62 75 74 69 6f  inux distributio
03a0: 6e 20 69 74 20 6c 69 6b 65 6c 79 20 68 61 73 20  n it likely has 
03b0: 61 20 4a 44 4b 0a 61 76 61 69 6c 61 62 6c 65 2e  a JDK.available.
03c0: 0a 0a 20 2a 20 41 72 63 68 0a 20 20 20 2a 20 53  .. * Arch.   * S
03d0: 65 65 20 3c 68 74 74 70 73 3a 2f 2f 77 69 6b 69  ee <https://wiki
03e0: 2e 61 72 63 68 6c 69 6e 75 78 2e 6f 72 67 2f 69  .archlinux.org/i
03f0: 6e 64 65 78 2e 70 68 70 2f 4a 61 76 61 3e 0a 20  ndex.php/Java>. 
0400: 2a 20 44 65 62 69 61 6e 2c 20 55 62 75 6e 74 75  * Debian, Ubuntu
0410: 2c 20 61 6e 64 20 64 65 72 69 76 61 74 69 76 65  , and derivative
0420: 73 0a 20 20 20 2a 20 53 65 65 20 3c 68 74 74 70  s.   * See <http
0430: 73 3a 2f 2f 77 69 6b 69 2e 64 65 62 69 61 6e 2e  s://wiki.debian.
0440: 6f 72 67 2f 4a 61 76 61 3e 0a 20 20 20 2a 20 4f  org/Java>.   * O
0450: 6e 65 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77  ne of the follow
0460: 69 6e 67 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e  ing depending on
0470: 20 70 61 63 6b 61 67 65 20 61 76 61 69 6c 61 62   package availab
0480: 69 6c 69 74 79 0a 20 20 20 20 20 2a 20 60 61 70  ility.     * `ap
0490: 74 2d 67 65 74 20 69 6e 73 74 61 6c 6c 20 6f 70  t-get install op
04a0: 65 6e 6a 64 6b 2d 37 2d 6a 64 6b 60 0a 20 20 20  enjdk-7-jdk`.   
04b0: 20 20 2a 20 60 61 70 74 2d 67 65 74 20 69 6e 73    * `apt-get ins
04c0: 74 61 6c 6c 20 6f 70 65 6e 6a 64 6b 2d 38 2d 6a  tall openjdk-8-j
04d0: 64 6b 60 0a 20 20 20 20 20 2a 20 60 61 70 74 2d  dk`.     * `apt-
04e0: 67 65 74 20 69 6e 73 74 61 6c 6c 20 6f 70 65 6e  get install open
04f0: 6a 64 6b 2d 39 2d 6a 64 6b 60 0a 20 2a 20 47 65  jdk-9-jdk`. * Ge
0500: 6e 74 6f 6f 0a 20 20 20 2a 20 53 65 65 20 3c 68  ntoo.   * See <h
0510: 74 74 70 73 3a 2f 2f 77 69 6b 69 2e 67 65 6e 74  ttps://wiki.gent
0520: 6f 6f 2e 6f 72 67 2f 77 69 6b 69 2f 4a 61 76 61  oo.org/wiki/Java
0530: 3e 0a 0a 23 23 23 20 4f 72 61 63 6c 65 27 73 20  >..### Oracle's 
0540: 4a 44 4b 0a 0a 4f 72 61 63 6c 65 27 73 20 4a 44  JDK..Oracle's JD
0550: 4b 20 73 75 70 70 6f 72 74 73 20 74 68 65 20 66  K supports the f
0560: 6f 6c 6c 6f 77 69 6e 67 20 28 61 73 20 6f 66 20  ollowing (as of 
0570: 74 68 69 73 20 77 72 69 74 69 6e 67 29 3a 0a 0a  this writing):..
0580: 20 2a 20 4c 69 6e 75 78 0a 20 2a 20 4d 61 63 20   * Linux. * Mac 
0590: 4f 53 20 58 0a 20 2a 20 52 65 61 63 74 4f 53 20  OS X. * ReactOS 
05a0: 28 61 73 20 57 69 6e 64 6f 77 73 29 0a 20 2a 20  (as Windows). * 
05b0: 53 6f 6c 61 72 69 73 0a 20 2a 20 57 69 6e 64 6f  Solaris. * Windo
05c0: 77 73 0a 20 2a 20 57 69 6e 65 20 28 61 73 20 57  ws. * Wine (as W
05d0: 69 6e 64 6f 77 73 29 0a 0a 4f 72 61 63 6c 65 27  indows)..Oracle'
05e0: 73 20 4a 61 76 61 20 4a 44 4b 20 63 61 6e 20 62  s Java JDK can b
05f0: 65 20 64 6f 77 6e 6c 6f 61 64 65 64 20 66 72 6f  e downloaded fro
0600: 6d 3a 0a 0a 20 2a 20 3c 68 74 74 70 3a 2f 2f 77  m:.. * <http://w
0610: 77 77 2e 6f 72 61 63 6c 65 2e 63 6f 6d 2f 74 65  ww.oracle.com/te
0620: 63 68 6e 65 74 77 6f 72 6b 2f 6a 61 76 61 2f 6a  chnetwork/java/j
0630: 61 76 61 73 65 2f 64 6f 77 6e 6c 6f 61 64 73 2f  avase/downloads/
0640: 69 6e 64 65 78 2e 68 74 6d 6c 3e 0a 20 0a 45 6e  index.html>. .En
0650: 73 75 72 65 20 74 68 61 74 20 79 6f 75 20 2a 2a  sure that you **
0660: 64 6f 77 6e 6c 6f 61 64 20 61 6e 64 20 69 6e 73  download and ins
0670: 74 61 6c 6c 2a 2a 20 74 68 65 20 2a 2a 2a 4a 44  tall** the ***JD
0680: 4b 2a 2a 2a 2e 0a 0a 49 66 20 72 75 6e 6e 69 6e  K***...If runnin
0690: 67 20 6f 6e 20 52 65 61 63 74 4f 53 2f 57 69 6e  g on ReactOS/Win
06a0: 64 6f 77 73 2f 57 69 6e 65 2c 20 6d 61 6b 65 20  dows/Wine, make 
06b0: 73 75 72 65 20 74 68 61 74 20 74 68 65 20 60 50  sure that the `P
06c0: 41 54 48 60 20 65 6e 76 69 72 6f 6e 6d 65 6e 74  ATH` environment
06d0: 0a 76 61 72 69 61 62 6c 65 73 20 72 65 66 65 72  .variables refer
06e0: 73 20 74 6f 20 74 68 65 20 4a 44 4b 27 73 20 62  s to the JDK's b
06f0: 69 6e 61 72 79 20 64 69 72 65 63 74 6f 72 79 3a  inary directory:
0700: 0a 0a 20 2a 20 60 43 3a 5c 50 72 6f 67 72 61 6d  .. * `C:\Program
0710: 20 46 69 6c 65 73 5c 4a 61 76 61 5c 6a 64 6b 31   Files\Java\jdk1
0720: 2e 38 2e 30 5f 31 33 31 5c 62 69 6e 5c 60 0a 0a  .8.0_131\bin\`..
0730: 23 20 42 6f 6f 74 73 74 72 61 70 20 42 75 69 6c  # Bootstrap Buil
0740: 64 20 45 6e 76 69 72 6f 6e 6d 65 6e 74 0a 0a 54  d Environment..T
0750: 68 65 20 6d 61 69 6e 20 69 6e 74 65 72 61 63 74  he main interact
0760: 69 6f 6e 20 77 69 74 68 20 74 68 65 20 53 71 75  ion with the Squ
0770: 69 72 72 65 6c 4a 4d 45 20 62 75 69 6c 64 20 65  irrelJME build e
0780: 6e 76 69 72 6f 6e 6d 65 6e 74 20 69 73 20 77 69  nvironment is wi
0790: 74 68 20 74 68 65 20 62 75 69 6c 64 0a 62 6f 6f  th the build.boo
07a0: 74 73 74 72 61 70 70 65 72 20 77 68 69 63 68 20  tstrapper which 
07b0: 69 6e 69 74 69 61 6c 69 7a 65 73 2c 20 63 6f 6d  initializes, com
07c0: 70 69 6c 65 73 2c 20 61 6e 64 20 72 75 6e 73 20  piles, and runs 
07d0: 74 68 65 20 62 75 69 6c 64 20 65 6e 76 69 72 6f  the build enviro
07e0: 6e 6d 65 6e 74 2e 0a 0a 23 23 20 53 79 73 74 65  nment...## Syste
07f0: 6d 20 53 70 65 63 69 66 69 63 0a 0a 45 61 63 68  m Specific..Each
0800: 20 73 79 73 74 65 6d 20 68 61 73 20 61 20 64 69   system has a di
0810: 66 66 65 72 65 6e 74 20 69 6e 74 65 72 66 61 63  fferent interfac
0820: 65 20 74 6f 20 74 68 65 20 62 6f 6f 74 73 74 72  e to the bootstr
0830: 61 70 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2c 20  ap environment, 
0840: 62 65 79 6f 6e 64 20 74 68 69 73 0a 74 68 65 20  beyond this.the 
0850: 72 65 6d 61 69 6e 64 65 72 20 6f 66 20 69 74 20  remainder of it 
0860: 69 73 20 74 68 65 20 73 61 6d 65 20 72 65 67 61  is the same rega
0870: 72 64 6c 65 73 73 20 6f 66 20 74 68 65 20 73 79  rdless of the sy
0880: 73 74 65 6d 20 75 73 65 64 2e 0a 0a 23 23 23 20  stem used...### 
0890: 52 65 61 63 74 4f 53 20 61 6e 64 20 57 69 6e 64  ReactOS and Wind
08a0: 6f 77 73 0a 0a 4f 72 61 63 6c 65 27 73 20 4a 61  ows..Oracle's Ja
08b0: 76 61 20 4a 44 4b 20 63 61 6e 20 62 65 20 64 6f  va JDK can be do
08c0: 77 6e 6c 6f 61 64 65 64 20 66 72 6f 6d 3a 0a 0a  wnloaded from:..
08d0: 20 2a 20 3c 68 74 74 70 3a 2f 2f 77 77 77 2e 6f   * <http://www.o
08e0: 72 61 63 6c 65 2e 63 6f 6d 2f 74 65 63 68 6e 65  racle.com/techne
08f0: 74 77 6f 72 6b 2f 6a 61 76 61 2f 6a 61 76 61 73  twork/java/javas
0900: 65 2f 64 6f 77 6e 6c 6f 61 64 73 2f 69 6e 64 65  e/downloads/inde
0910: 78 2e 68 74 6d 6c 3e 0a 0a 54 68 65 20 73 63 72  x.html>..The scr
0920: 69 70 74 20 75 73 65 64 20 66 6f 72 20 62 75 69  ipt used for bui
0930: 6c 64 69 6e 67 20 69 73 20 60 62 75 69 6c 64 2e  lding is `build.
0940: 63 6d 64 60 2e 20 54 68 69 73 20 72 65 71 75 69  cmd`. This requi
0950: 72 65 73 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20  res the command 
0960: 70 72 6f 6d 70 74 0a 77 68 69 63 68 20 6d 61 79  prompt.which may
0970: 20 62 65 20 61 63 63 65 73 73 65 64 20 62 79 20   be accessed by 
0980: 72 75 6e 6e 69 6e 67 20 60 63 6d 64 60 2e 20 54  running `cmd`. T
0990: 68 69 73 20 6d 61 79 20 62 65 20 66 6f 75 6e 64  his may be found
09a0: 20 69 6e 20 74 68 65 20 73 74 61 72 74 20 6d 65   in the start me
09b0: 6e 75 0a 6f 72 20 6d 61 79 20 62 65 20 61 63 63  nu.or may be acc
09c0: 65 73 73 65 64 20 76 69 61 20 2a 2a 57 69 6e 64  essed via **Wind
09d0: 6f 77 73 20 4b 65 79 20 2b 20 52 2a 2a 2c 20 74  ows Key + R**, t
09e0: 79 70 69 6e 67 20 60 63 6d 64 60 2c 20 74 68 65  yping `cmd`, the
09f0: 6e 20 68 69 74 74 69 6e 67 20 65 6e 74 65 72 2e  n hitting enter.
0a00: 0a 0a 52 65 63 6f 6d 6d 65 6e 64 65 64 20 73 65  ..Recommended se
0a10: 74 75 70 20 66 6f 72 20 72 75 6e 6e 69 6e 67 20  tup for running 
0a20: 74 68 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2c  the environment,
0a30: 20 61 73 73 75 6d 69 6e 67 20 53 71 75 69 72 72   assuming Squirr
0a40: 65 6c 4a 4d 45 20 73 6f 75 72 63 65 0a 63 6f 64  elJME source.cod
0a50: 65 20 69 73 20 6c 6f 63 61 74 65 64 20 69 6e 20  e is located in 
0a60: 74 68 65 20 65 78 61 6d 70 6c 65 20 60 63 3a 5c  the example `c:\
0a70: 75 73 65 72 73 5c 73 74 65 70 68 61 6e 69 65 5c  users\stephanie\
0a80: 64 65 73 6b 74 6f 70 5c 73 71 75 69 72 72 65 6c  desktop\squirrel
0a90: 6a 6d 65 60 3a 0a 0a 20 2a 20 60 63 64 20 63 3a  jme`:.. * `cd c:
0aa0: 5c 75 73 65 72 73 5c 73 74 65 70 68 61 6e 69 65  \users\stephanie
0ab0: 5c 74 65 6d 70 60 0a 20 2a 20 60 6d 6b 64 69 72  \temp`. * `mkdir
0ac0: 20 73 71 75 69 72 72 65 6c 6a 6d 65 2d 62 75 69   squirreljme-bui
0ad0: 6c 64 60 0a 20 2a 20 60 63 64 20 73 71 75 69 72  ld`. * `cd squir
0ae0: 72 65 6c 6a 6d 65 2d 62 75 69 6c 64 60 0a 20 2a  reljme-build`. *
0af0: 20 60 63 3a 5c 75 73 65 72 73 5c 73 74 65 70 68   `c:\users\steph
0b00: 61 6e 69 65 5c 64 65 73 6b 74 6f 70 5c 73 71 75  anie\desktop\squ
0b10: 69 72 72 65 6c 6a 6d 65 5c 62 75 69 6c 64 2e 63  irreljme\build.c
0b20: 6d 64 60 0a 0a 23 23 23 20 55 4e 49 58 2d 4c 69  md`..### UNIX-Li
0b30: 6b 65 3a 20 4c 69 6e 75 78 2c 20 4d 61 63 20 4f  ke: Linux, Mac O
0b40: 53 20 58 2c 20 53 6f 6c 61 72 69 73 2c 20 42 53  S X, Solaris, BS
0b50: 44 2c 20 65 74 63 2e 0a 0a 54 68 65 20 73 63 72  D, etc...The scr
0b60: 69 70 74 20 75 73 65 64 20 66 6f 72 20 62 75 69  ipt used for bui
0b70: 6c 64 69 6e 67 20 69 73 20 60 62 75 69 6c 64 2e  lding is `build.
0b80: 73 68 60 2e 0a 0a 52 65 63 6f 6d 6d 65 6e 64 65  sh`...Recommende
0b90: 64 20 73 65 74 75 70 20 66 6f 72 20 72 75 6e 6e  d setup for runn
0ba0: 69 6e 67 20 74 68 65 20 65 6e 76 69 72 6f 6e 6d  ing the environm
0bb0: 65 6e 74 2c 20 61 73 73 75 6d 69 6e 67 20 53 71  ent, assuming Sq
0bc0: 75 69 72 72 65 6c 4a 4d 45 20 73 6f 75 72 63 65  uirrelJME source
0bd0: 0a 63 6f 64 65 20 69 73 20 6c 6f 63 61 74 65 64  .code is located
0be0: 20 69 6e 20 74 68 65 20 65 78 61 6d 70 6c 65 20   in the example 
0bf0: 60 2f 68 6f 6d 65 2f 73 74 65 70 68 61 6e 69 65  `/home/stephanie
0c00: 2f 73 71 75 69 72 72 65 6c 6a 6d 65 60 3a 0a 0a  /squirreljme`:..
0c10: 20 2a 20 60 63 64 20 2f 74 6d 70 60 0a 20 2a 20   * `cd /tmp`. * 
0c20: 60 6d 6b 64 69 72 20 73 71 75 69 72 72 65 6c 6a  `mkdir squirrelj
0c30: 6d 65 2d 62 75 69 6c 64 60 0a 20 2a 20 60 63 64  me-build`. * `cd
0c40: 20 73 71 75 69 72 72 65 6c 6a 6d 65 2d 62 75 69   squirreljme-bui
0c50: 6c 64 60 0a 20 2a 20 60 2f 68 6f 6d 65 2f 73 74  ld`. * `/home/st
0c60: 65 70 68 61 6e 69 65 2f 73 71 75 69 72 72 65 6c  ephanie/squirrel
0c70: 6a 6d 65 2f 62 75 69 6c 64 2e 73 68 60 0a 0a 23  jme/build.sh`..#
0c80: 20 42 75 69 6c 64 69 6e 67 20 53 68 61 64 65 64   Building Shaded
0c90: 20 53 71 75 69 72 72 65 6c 4a 4d 45 20 4a 41 52   SquirrelJME JAR
0ca0: 73 0a 0a 53 68 61 64 65 64 20 53 71 75 69 72 72  s..Shaded Squirr
0cb0: 65 6c 4a 4d 45 20 4a 41 52 73 20 61 72 65 20 73  elJME JARs are s
0cc0: 74 61 6e 64 61 6c 6f 6e 65 20 4a 41 52 73 20 77  tandalone JARs w
0cd0: 68 69 63 68 20 63 61 6e 20 72 75 6e 20 6f 6e 20  hich can run on 
0ce0: 61 6e 20 65 78 69 73 74 69 6e 67 0a 4a 61 76 61  an existing.Java
0cf0: 20 53 45 20 6f 72 20 4a 61 76 61 20 4d 45 20 73   SE or Java ME s
0d00: 79 73 74 65 6d 20 64 65 70 65 6e 64 69 6e 67 20  ystem depending 
0d10: 6f 6e 20 77 68 69 63 68 20 74 61 72 67 65 74 20  on which target 
0d20: 69 74 20 77 61 73 20 62 75 69 6c 74 20 66 6f 72  it was built for
0d30: 2e 0a 47 65 6e 65 72 61 6c 6c 79 20 74 68 65 73  ..Generally thes
0d40: 65 20 4a 41 52 73 20 61 72 65 20 6a 75 73 74 20  e JARs are just 
0d50: 70 61 63 6b 61 67 65 64 20 62 79 20 74 68 65 6d  packaged by them
0d60: 73 65 6c 76 65 73 20 61 6e 64 20 69 6e 63 6c 75  selves and inclu
0d70: 64 65 20 74 68 65 20 65 6e 74 69 72 65 0a 73 65  de the entire.se
0d80: 74 20 6f 66 20 6c 69 62 72 61 72 69 65 73 20 61  t of libraries a
0d90: 6e 64 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 20  nd applications 
0da0: 66 72 6f 6d 20 77 69 74 68 69 6e 20 53 71 75 69  from within Squi
0db0: 72 72 65 6c 4a 4d 45 2e 20 54 68 65 73 65 20 73  rrelJME. These s
0dc0: 68 61 64 65 64 20 4a 41 52 73 0a 61 72 65 20 75  haded JARs.are u
0dd0: 73 75 61 6c 6c 79 20 69 6e 74 65 6e 64 65 64 20  sually intended 
0de0: 66 6f 72 20 64 65 6d 6f 20 70 72 6f 6a 65 63 74  for demo project
0df0: 73 20 61 6e 64 20 73 75 63 68 2e 20 54 68 65 20  s and such. The 
0e00: 4a 41 52 73 20 61 64 64 69 74 69 6f 6e 61 6c 6c  JARs additionall
0e10: 79 20 61 72 65 0a 70 75 72 65 20 4a 61 76 61 20  y are.pure Java 
0e20: 63 6f 64 65 20 73 6f 20 74 68 65 79 20 72 65 71  code so they req
0e30: 75 69 72 65 20 61 20 68 6f 73 74 20 4a 61 76 61  uire a host Java
0e40: 20 56 4d 2e 20 54 6f 20 63 6f 6e 74 61 69 6e 20   VM. To contain 
0e50: 74 68 65 20 53 71 75 69 72 72 65 6c 4a 4d 45 0a  the SquirrelJME.
0e60: 65 6e 76 69 72 6f 6e 6d 65 6e 74 2c 20 61 6e 20  environment, an 
0e70: 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f  implementation o
0e80: 66 20 61 20 76 69 72 74 75 61 6c 20 6d 61 63 68  f a virtual mach
0e90: 69 6e 65 20 69 73 20 75 73 65 64 20 77 68 69 63  ine is used whic
0ea0: 68 20 69 73 20 63 61 70 61 62 6c 65 0a 6f 66 20  h is capable.of 
0eb0: 75 73 69 6e 67 20 61 6e 64 20 72 75 6e 6e 69 6e  using and runnin
0ec0: 67 20 74 68 65 20 63 6c 61 73 73 20 6c 69 62 72  g the class libr
0ed0: 61 72 79 2e 20 54 68 69 73 20 76 69 72 74 75 61  ary. This virtua
0ee0: 6c 20 6d 61 63 68 69 6e 65 20 68 61 73 20 61 20  l machine has a 
0ef0: 73 70 65 65 64 0a 70 65 6e 61 6c 74 79 20 62 65  speed.penalty be
0f00: 63 61 75 73 65 20 69 74 20 69 73 20 72 75 6e 6e  cause it is runn
0f10: 69 6e 67 20 74 68 65 20 4a 61 76 61 20 62 79 74  ing the Java byt
0f20: 65 20 63 6f 64 65 20 69 74 73 65 6c 66 20 68 6f  e code itself ho
0f30: 77 65 76 65 72 20 69 74 20 69 73 20 61 0a 63 6f  wever it is a.co
0f40: 6d 70 61 74 69 62 6c 65 20 65 6e 76 69 72 6f 6e  mpatible environ
0f50: 6d 65 6e 74 2e 0a 0a 42 75 69 6c 64 69 6e 67 20  ment...Building 
0f60: 6f 66 20 73 68 61 64 65 64 20 4a 41 52 73 20 77  of shaded JARs w
0f70: 69 6c 6c 20 72 65 73 75 6c 74 20 69 6e 20 74 77  ill result in tw
0f80: 6f 20 66 6c 61 76 6f 72 73 3a 0a 0a 20 2a 20 5f  o flavors:.. * _
0f90: 42 6f 6f 74 73 74 72 61 70 70 65 64 5f 20 2d 2d  Bootstrapped_ --
0fa0: 20 41 64 64 20 63 6f 64 65 20 77 68 69 63 68 20   Add code which 
0fb0: 69 73 20 6e 65 65 64 65 64 20 74 6f 20 6d 61 6b  is needed to mak
0fc0: 65 20 69 74 20 6f 70 65 72 61 74 65 20 69 6e 0a  e it operate in.
0fd0: 20 20 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 73 20     environments 
0fe0: 77 68 69 63 68 20 6d 61 79 20 62 65 20 64 69 66  which may be dif
0ff0: 66 65 72 65 6e 74 20 66 72 6f 6d 20 4a 61 76 61  ferent from Java
1000: 20 4d 45 2c 20 73 75 63 68 20 61 73 20 4a 61 76   ME, such as Jav
1010: 61 20 53 45 2e 0a 20 2a 20 5f 4e 61 74 69 76 65  a SE.. * _Native
1020: 5f 20 2d 2d 20 42 75 69 6c 74 20 77 69 74 68 6f  _ -- Built witho
1030: 75 74 20 61 20 62 6f 6f 74 73 74 72 61 70 2c 20  ut a bootstrap, 
1040: 72 65 71 75 69 72 65 73 20 74 68 61 74 20 65 76  requires that ev
1050: 65 72 79 74 68 69 6e 67 20 69 73 20 6e 61 74 75  erything is natu
1060: 72 61 6c 6c 79 0a 20 20 20 73 75 70 70 6f 72 74  rally.   support
1070: 65 64 2e 0a 0a 49 74 20 69 73 20 72 65 63 6f 6d  ed...It is recom
1080: 6d 65 6e 64 65 64 20 74 68 61 74 20 61 6e 20 6f  mended that an o
1090: 75 74 2d 6f 66 2d 74 72 65 65 20 62 75 69 6c 64  ut-of-tree build
10a0: 20 69 73 20 70 65 72 66 6f 72 6d 65 64 20 28 74   is performed (t
10b0: 68 69 73 20 6d 65 61 6e 73 20 62 75 69 6c 64 69  his means buildi
10c0: 6e 67 0a 66 72 6f 6d 20 61 6e 6f 74 68 65 72 20  ng.from another 
10d0: 64 69 72 65 63 74 6f 72 79 20 74 68 61 74 20 69  directory that i
10e0: 73 20 6e 6f 74 20 69 6e 20 74 68 65 20 53 71 75  s not in the Squ
10f0: 69 72 72 65 6c 4a 4d 45 20 73 6f 75 72 63 65 20  irrelJME source 
1100: 74 72 65 65 29 2e 20 41 6c 6c 20 74 68 65 0a 63  tree). All the.c
1110: 6f 6d 6d 61 6e 64 73 20 70 65 72 74 61 69 6e 20  ommands pertain 
1120: 73 70 65 63 69 66 69 63 61 6c 6c 79 20 74 6f 20  specifically to 
1130: 74 68 65 20 62 75 69 6c 64 20 73 79 73 74 65 6d  the build system
1140: 20 69 74 73 65 6c 66 2e 0a 0a 23 23 20 42 75 69   itself...## Bui
1150: 6c 64 69 6e 67 20 66 6f 72 20 4a 61 76 61 20 53  lding for Java S
1160: 45 20 28 4f 72 20 57 69 74 68 20 42 6f 6f 74 73  E (Or With Boots
1170: 74 72 61 70 29 0a 0a 54 68 69 73 20 62 75 69 6c  trap)..This buil
1180: 64 20 72 65 71 75 69 72 65 73 20 61 20 72 75 6e  d requires a run
1190: 2d 74 69 6d 65 20 74 68 61 74 20 62 72 69 64 67  -time that bridg
11a0: 65 73 20 77 68 61 74 20 53 71 75 69 72 72 65 6c  es what Squirrel
11b0: 4a 4d 45 20 6e 65 65 64 73 20 77 69 74 68 20 77  JME needs with w
11c0: 68 61 74 0a 4a 61 76 61 20 53 45 20 70 72 6f 76  hat.Java SE prov
11d0: 69 64 65 73 2c 20 61 73 20 73 75 63 68 20 69 74  ides, as such it
11e0: 20 6d 75 73 74 20 62 65 20 73 70 65 63 69 66 69   must be specifi
11f0: 65 64 20 69 6e 20 74 68 65 20 62 75 69 6c 64 2e  ed in the build.
1200: 0a 0a 20 2a 20 60 76 6d 73 68 61 64 65 20 2d 62  .. * `vmshade -b
1210: 20 73 71 75 69 72 72 65 6c 6a 6d 65 2d 6a 61 76   squirreljme-jav
1220: 61 73 65 2e 6a 61 72 60 0a 0a 49 66 20 66 6f 72  ase.jar`..If for
1230: 20 73 6f 6d 65 20 72 65 61 73 6f 6e 20 79 6f 75   some reason you
1240: 20 77 69 73 68 20 74 6f 20 75 73 65 20 61 6e 20   wish to use an 
1250: 61 6c 74 65 72 6e 61 74 69 76 65 20 62 6f 6f 74  alternative boot
1260: 73 74 72 61 70 3a 0a 0a 20 2a 20 60 76 6d 73 68  strap:.. * `vmsh
1270: 61 64 65 20 2d 70 20 62 6f 6f 74 73 74 72 61 70  ade -p bootstrap
1280: 2e 6a 61 72 20 2d 62 20 73 71 75 69 72 72 65 6c  .jar -b squirrel
1290: 6a 6d 65 2d 6f 74 68 65 72 2e 6a 61 72 60 0a 0a  jme-other.jar`..
12a0: 23 23 20 42 75 69 6c 64 69 6e 67 20 66 6f 72 20  ## Building for 
12b0: 4a 61 76 61 20 4d 45 0a 0a 2a 2a 2a 4e 4f 54 45  Java ME..***NOTE
12c0: 3a 2a 2a 2a 20 49 66 20 74 68 65 20 73 68 61 64  :*** If the shad
12d0: 65 64 20 4a 41 52 20 69 73 20 6e 6f 74 20 72 75  ed JAR is not ru
12e0: 6e 6e 69 6e 67 20 6f 6e 20 53 71 75 69 72 72 65  nning on Squirre
12f0: 6c 4a 4d 45 2c 20 73 6f 6d 65 20 66 65 61 74 75  lJME, some featu
1300: 72 65 73 0a 77 69 6c 6c 20 6e 6f 74 20 62 65 20  res.will not be 
1310: 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 75 73  available for us
1320: 65 2e 20 49 74 20 73 68 6f 75 6c 64 20 73 74 69  e. It should sti
1330: 6c 6c 20 72 75 6e 20 68 6f 77 65 76 65 72 2e 0a  ll run however..
1340: 0a 20 2a 20 60 76 6d 73 68 61 64 65 20 73 71 75  . * `vmshade squ
1350: 69 72 72 65 6c 6a 6d 65 2d 6a 61 76 61 6d 65 2e  irreljme-javame.
1360: 6a 61 72 60 0a 0a                                jar`..