> For the complete documentation index, see [llms.txt](https://wamr.gitbook.io/document/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wamr.gitbook.io/document/wamr-in-practice/tutorial/build-tutorial.md).

# Build Tutorial

In this chapter, we provide a detailed tutorial on how to build [iwasm vmcore](/document/wamr-in-practice/tutorial/build-tutorial/build_wamr.md) and [wamrc](/document/wamr-in-practice/tutorial/build-tutorial/build_wamrc.md).

## Quick build matrix

Our powerful **iwasm vmcore** provide various running mode you could choose using the compile CMake option. Here is the matrix for different running mode and their attributes:

| Running mode        | CMake build options           | Pros and Cons |
| ------------------- | ----------------------------- | ------------- |
| AOT                 | none(default)                 |               |
| Classic Interpreter | -DWAMR\_BUILD\_FAST\_INTERP=0 |               |
| Fast Interpreter    | none(default)                 |               |
| LLVM JIT            | -DWAMR\_BUILD\_JIT=1          |               |
| Fast JIT            | -DWAMR\_BUILD\_FAST\_JIT=1    |               |

## Supported architectures and platforms

Here is a list of architectures and platforms WAMR support. You could click on the link for quick reference.

The iwasm supports the following architectures:

* X86-64, X86-32
* ARM, THUMB (ARMV7 Cortex-M7 and Cortex-A15 are tested)
* AArch64 (Cortex-A57 and Cortex-A53 are tested)
* RISCV64, RISCV32 (RISC-V LP64 and RISC-V LP64D are tested)
* XTENSA, MIPS, ARC

The following platforms are supported. Click each link below for how to build iwasm on that platform. Refer to [WAMR porting guide](/document/wamr-in-practice/advance-tutorial/port_wamr.md) for how to port WAMR to a new platform.

* [Linux](/document/wamr-in-practice/tutorial/build-tutorial/build_wamr.md#linux), [Linux SGX (Intel Software Guard Extension)](/document/wamr-in-practice/features/linux_sgx.md), [MacOS](/document/wamr-in-practice/tutorial/build-tutorial/build_wamr.md#macos), [Android](/document/wamr-in-practice/tutorial/build-tutorial/build_wamr.md#android), [Windows](/document/wamr-in-practice/tutorial/build-tutorial/build_wamr.md#windows), [Windows (MinGW)](/document/wamr-in-practice/tutorial/build-tutorial/build_wamr.md#mingw)
* [Zephyr](/document/wamr-in-practice/tutorial/build-tutorial/build_wamr.md#zephyr), [AliOS-Things](/document/wamr-in-practice/tutorial/build-tutorial/build_wamr.md#alios-things), [VxWorks](/document/wamr-in-practice/tutorial/build-tutorial/build_wamr.md#vxworks), [NuttX](/document/wamr-in-practice/tutorial/build-tutorial/build_wamr.md#nuttx), [RT-Thread](/document/wamr-in-practice/tutorial/build-tutorial/build_wamr.md#RT-Thread), [ESP-IDF](/document/wamr-in-practice/tutorial/build-tutorial/build_wamr.md#esp-idf)
