Skip to content

The command-line compiler#

mx2cc is the command-line compiler for Monkey2.

Please note

The actual executable name of the command-line compiler is different and depends on the operating system!

The compiler binary#

The Monkey2 compiler mx2cc is located in the bin/ directory of your Monkey2 installation.
See the following table for the actual executable name on each host platform:

Platform Compiler binary
Windows /bin/mx2cc_windows.exe
Linux /bin/mx2cc_linux
macOS /bin/mx2cc_macos
Raspberry Pi /bin/mx2cc_raspbian

Hint

If you add the Monkey2/bin/ directory to your PATH environment variable, you are able to use the Monkey2 compiler directly from every directory on the command-line or in a terminal.

Compiler usage#

The command-line options for mx2cc are:

mx2cc command options input

Compiler commands#

Command Description
makeapp Build an application.
input should be a *.monkey2 file.
makemods Build module(s).
input should be a space separated list of module names, or nothing to make all modules.
makedocs Build the documentation for a set of modules.
input should be a space separated list of module names, or nothing to make all modules.

Compiler options#

Option Description
-quiet Emit less info when building.
-verbose Emit more info when building.
-clean Rebuilds everything from scratch.
-time Output information about the build-time.
-parse Parse only. Checks for parsing errors.
-semant Parse and semant. Checks for parsing and semantic errors.
-translate Parse, semant and translate.
-build Parse, semant, translate and build.
-run Runs the application after successful build.
-target=target Set target to one of the following values:
desktop (default: alias for current host),
windows, macos, linux, raspbian,
android, ios, emscripten
-config=config Set config to:
debug (default) or release
-apptype=apptype Set apptype to:
gui (default) or console

Examples#

Compile a desktop gui app in debug mode (default) and run it:

mx2cc makeapp main.monkey2

Compile a console application in release mode for the host operating system and run it:

mx2cc makeapp -config=release -apptype=console myfile.monkey2

Compile a game for the 'iOS' target:

mx2cc makeapp -config=release -target=ios mygame.monkey2

Build the complete docs:

mx2cc makedocs

Force clean rebuild of all modules for the 'Android' target in release and debug mode:

mx2cc makemods -clean -target=android -config=debug
mx2cc makemods -clean -target=android -config=release

Compile your own module 'mymodule'. The module/library must be located in the 'modules' directory.

mx2cc makemods -config=debug mymodule
mx2cc makemods -config=release mymodule