To allow compiling on multiple platforms without a separate configuration for each, ENIGMA's compilation process is described by a network of settings files. These files are rooted first and foremost on the currently running operating system, which must be Mac OS X, Windows, or Linux.
Each of these platforms has the capacity to compile for numerous devices, so we begin by enumerating viable compilers (and thus, if we assume that each compiler can only compile for one target, viable target platforms). These could include compilers for different computer operating systems, or tools for building games for mobile devices and actual game consoles.
From there, the potential processes are broken into supported platform-wide APIs, which include Cocoa, X11, and Win32API. These are available based on the target compiler/platform selected above. For example, if the user is running Linux, and chooses the Android compiler, only the Android API will be available for selection.
Finally, subsystems such as graphics and audio show up in the hierarchy. These are made available for selection based on information from all three aforementioned items. As explained further in the About.ey documentation, sound systems can specify platforms on which they function, and graphics systems can specify platform APIs with which they function.
A simplified layout of the network of settings files is as follows, showing example snippets of About.ey files from such directories as Compilers/ (at the root level; the most important folder), Platforms/ (the next most important, in ENIGMAsystem/SHELL/), and Graphics_Systems//Audio_Systems/ (in the same folder as Platforms/, but the two are less crucial).