This page will walk you through the raw internals of the automated
checkout, update, and build process, collectively called the automated
install, assuming that you have the dependency packages already
installed (such as Java JRE). Notice that this is
not the official installation procedure - you should follow the
Install page for that. This is more for
understanding how a raw automated checkout is performed during
installation time, especially from a developer or debugging point of
view. However, following these instructions should get you a full
checkout of the latest Enigma, which is usually equivalent to an install
(aside from perhaps moving a few files around and auto-installing any
dependencies that you may have been missing). Note that this process
will provide a fully functional Linux and Mac install.
For starters, as you should be well aware, LGM itself works
out-of-the-box and is entirely self-sufficient, sans that you don't have
a compiler. The next step, then, is to hook up the compiler, or at least
the parts needed to get the compiler. This is the job of enigma.jar, aka
The Plugin, which has a dependency on
JNA for starters, and will also require
SvnKit if you wish to enable auto-updates or
checkout (as is the purpose of this article). From there, assuming you
have SvnKit, it will attempt to fetch the compiler from the internets,
and hopefully install/run it.
So to review, you need all these 4 parts, and they should all be
up-to-date:
LateralGM, named lgm16b4.jar, which should be
placed in the parent directory (enigma-dev/lgm16b4.jar). We would
recommend LGM r479, available in enigma r639 or later.
The Plugin, named enigma.jar, which should be
placed in the plugins/ directory (enigma-dev/plugins/enigma.jar). We
would recommend one from enigma r640 or later.
JNA, named jna.jar, which should be placed in
plugins/shared directory (enigma-dev/plugins/shared/jna.jar). Version
requirements are not specific, but it is available in enigma, last
updated in r437 (or later).
SvnKit, named svnkit.jar, which should be placed in
the plugins/shared directory (enigma-dev/plugins/shared/svnkit.jar). You
can copy it over from (Autoconf/svnkit.jar) if you placed it there. The
Version requirements for it are not specific, but it is available in
enigma, last updated in r639 (or later).
On Windows you also need an addition part:
The ENIGMA executable, named ENIGMA.exe, which should be place in the
parent directory (enigma-dev/ENIGMA.exe). You can copy it over from
(compilerSource/stupidity-buffer/ENIGMA.exe) if you placed it there.
The Autoconf directory (if you do not have MinGW or OpenAL installed),
the entire Autoconf folder should be placed in the parent directory
(enigma-dev/ENIGMA.exe). This needs only been done to install MinGW and
OpenAL if you have not got them, when running ENIGMA.exe these will be
installed in the process.
With this structure in place, on Linux and Mac you should now be just
able to run it from a terminal and all should run.
$ cd enigma-dev
$ java -jar lgm16b4.jar
On Windows you should execute enigma.exe which will install gcc.ey
(compilers/windows/gcc.ey) and MinGW/OpanAL is necessary, then all
should run.
# Terminal will report standard LGM behavior, usually looking like
this:
#:
Java Version: 10600 (1.6.0_20)
Loading lib files in /home/ismavatar/enigma-dev/lgm16b4.jar
01_move.lgl 02_main1.lgl 03_main2.lgl 04_control.lgl
05_score.lgl 06_extra.lgl 07_draw.lgl
If at any point the process aborts for any reason (e.g. error, failure,
or user cancellation), it should either report something in the
terminal, or via a popop message, and Enigma aspects will either be
invisible or non-functional, and attempting to access them (if visible)
should give you a popup stating "ENIGMA is not functional due to prior
errors". LGM, however, should continue to behave as normally - just
without a compiler.
If any behavior described here does not seem to match your behavior, it
may be a serious bug in either LateralGM or The Plugin, and should
immediately be reported to one of the developers of either of those
tools, such as User:IsmAvatar.
Wiki: Install
Wiki: JNA
Wiki: Java
Wiki: LateralGM
Wiki: Plugin
Wiki: SvnKit